]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWGPP/VZERO/AliAnaVZEROPbPb.h
Moving PWG1 to PWGPP
[u/mrichter/AliRoot.git] / PWGPP / VZERO / AliAnaVZEROPbPb.h
diff --git a/PWGPP/VZERO/AliAnaVZEROPbPb.h b/PWGPP/VZERO/AliAnaVZEROPbPb.h
new file mode 100644 (file)
index 0000000..cb0e268
--- /dev/null
@@ -0,0 +1,120 @@
+#ifndef AliAnaVZEROPbPb_cxx
+#define AliAnaVZEROPbPb_cxx
+
+class TH1F;
+class TH2F;
+class AliESDEvent;
+
+#include "AliAnalysisTaskSE.h"
+
+class AliAnaVZEROPbPb : public AliAnalysisTaskSE {
+
+public:
+  AliAnaVZEROPbPb();
+  AliAnaVZEROPbPb(const char *name);
+  virtual ~AliAnaVZEROPbPb() {}
+  
+  virtual void   UserCreateOutputObjects();
+  virtual void   UserExec(Option_t *option);
+  virtual void   Terminate(Option_t *);
+
+  virtual void Init();
+
+  void SetClassesNames(const Char_t * names);
+  void SetOnlineChargeRange(Int_t nbins, Float_t maxA, Float_t macC);
+  void SetTotalMultiplicityRange(Int_t nbins, Float_t max);
+  void SetMultiplicityRange(Int_t nbins, Float_t maxA, Float_t maxC);
+  void SetSumEquaMultRange(Int_t nbins, Float_t maxA, Float_t maxC);
+  void SetEquaMultRange(Int_t nbins, Float_t max);
+  void SetZVertexCut(Float_t cut){fZvtxCut = cut;};
+
+  void CreateQAHistos();
+  void CreateHistosPerL2Trigger();
+
+  void FillQAHistos();
+  void FillPerL2TriggerHistos();
+  
+  TH1F* CreateHisto1D(const char* name, const char* title, Int_t nBins, Double_t xMin, Double_t xMax,
+                     const char* xLabel = NULL, const char* yLabel = NULL);
+  TH2F* CreateHisto2D(const char* name, const char* title, Int_t nBinsX, Double_t xMin, Double_t xMax,
+                     Int_t nBinsY, Double_t yMin, Double_t yMax,
+                     const char* xLabel = NULL, const char* yLabel = NULL);
+  
+ private:
+  AliESDEvent *fESD;    //! ESD object
+  AliESDVZERO* fEsdV0;
+  TList       *fOutputList; //! Output list
+  Int_t fNClasses;   
+  TObjArray *fClassesNames;
+
+  TH2F *fNFlags; //!
+
+  TH1F *fhAdcNoTime[2];     // ADC spectra (no time measurement)
+  TH1F *fhAdcWithTime[2];   // ADC spectra (with time measurement)
+
+  TH2F *fhAdcPMTNoTime;   // ADC spectra per PMT (no time measurement)
+  TH2F *fhAdcPMTWithTime; // ADC spectra per PMT (with time measurement)
+  TH1F *fhTime[2];          // Time spectra per side
+
+  TH1F *fhWidth[2];         // Signal width per side
+
+  TH2F *fhTimePMT;        // Time spectra per PMT
+  TH2F *fhWidthPMT;       // Signal width per PMT
+
+  TH2F *fhAdcWidth[2];      // ADC vs Signal width per side
+
+  TH2F *fhTimeCorr;       // Corrected mean time V0C vs V0A
+
+  TH2F *fhAdcTime[2];       // ADC vs Time per side
+
+  TH2F *fhPmtMult;             // Number of fired PMTs in V0C vs V0A
+  TH1F *fhV0ampl;          // ADC spectra for both rings
+
+  TH2F *fhEvents;         // Event statistics histogram
+
+  TH2F *fhVtxXYBB;        // XY vertex for beam-beam events
+  TH1F *fhVtxZBB;         // Z vertex for beam-beam events
+  TH2F *fhVtxXYBGA;       // XY vertex for beam-gas (A side) events
+  TH1F *fhVtxZBGA;        // Z vertex for beam-gas (A side) events
+  TH2F *fhVtxXYBGC;       // XY vertex for beam-gas (C side) events
+  TH1F *fhVtxZBGC;        // Z vertex for beam-gas (C side) events
+
+  TH1F *fhL2Triggers;    //! Triggers counting histo
+  TH2F **fhOnlineCharge; //! Online Charge (send to EMCAL) histo
+  TH2F **fhRecoMult;     //! Reconstructed Multiplicity V0A % V0C
+  TH2F **fhRecoMultPMT;     //! Reconstructed Multiplicity per PMT
+  TH2F **fhV0vsSPDCentrality; //! Centrality V0 % SPD
+  TH1F **fhTriggerBits;  //! 16 trigger bits
+  TH1F **fhTotRecoMult;  //! Total Reconstructed Multiplicity V0A + V0C
+  TH1F **fhCentrality;   //! Centrality V0 
+  TH2F **fhEqualizedMult; //! Equalized Multiplicity per channel
+  TH2F **fhEqualizedMultSum; //! Equalized Multiplicity V0A % V0C
+
+  Int_t   fNBinTotMult; // number of bin of histo fhTotRecoMult
+  Float_t fTotMultMax;  // max of histo fhTotRecoMult
+
+  Int_t   fNBinMult;    // number of bin of histo fhRecoMult
+  Float_t fV0AMultMax;  // max VZERO-A of histo fhRecoMult
+  Float_t fV0CMultMax;  // max VZERO-C of histo fhRecoMult
+  Int_t   fNBinOnlineCharge;   // number of bin of histo fhOnlineCharge
+  Float_t fV0AOnlineChargeMax; // max VZERO-A of histo fhOnlineCharge
+  Float_t fV0COnlineChargeMax; // max VZERO-C of histo fhOnlineCharge
+
+  Int_t   fNBinEquaMult;     // number of bin of histo fhEqualizedMult
+  Float_t fEquaMultMax;      // max of histo fhEqualizedMult
+
+  Int_t   fNBinSumsEqMult;     // number of bin of histo fhEqualizedMultSum
+  Float_t fV0AEqMultMax;       // max VZERO-A of histo fhEqualizedMultSum
+  Float_t fV0CEqMultMax;       // max VZERO-C of histo fhEqualizedMultSum
+
+  Float_t fZvtxCut;   // Z vertex cut
+
+  AliAnaVZEROPbPb(const AliAnaVZEROPbPb&); // not implemented
+  AliAnaVZEROPbPb& operator=(const AliAnaVZEROPbPb&); // not implemented
+  
+  ClassDef(AliAnaVZEROPbPb, 3); 
+};
+
+#endif