]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG1/VZERO/AliAnaVZEROPbPb.h
70ad98265bd31d61982583d438db6df4fb792fe2
[u/mrichter/AliRoot.git] / PWG1 / VZERO / AliAnaVZEROPbPb.h
1 #ifndef AliAnaVZEROPbPb_cxx
2 #define AliAnaVZEROPbPb_cxx
3
4 class TH1F;
5 class TH2F;
6 class AliESDEvent;
7
8 #include "AliAnalysisTaskSE.h"
9
10 class AliAnaVZEROPbPb : public AliAnalysisTaskSE {
11
12 public:
13   AliAnaVZEROPbPb();
14   AliAnaVZEROPbPb(const char *name);
15   virtual ~AliAnaVZEROPbPb() {}
16   
17   virtual void   UserCreateOutputObjects();
18   virtual void   UserExec(Option_t *option);
19   virtual void   Terminate(Option_t *);
20
21   virtual void Init();
22
23   void SetClassesNames(const Char_t * names);
24   void SetOnlineChargeRange(Int_t nbins, Float_t maxA, Float_t macC);
25   void SetTotalMultiplicityRange(Int_t nbins, Float_t max);
26   void SetMultiplicityRange(Int_t nbins, Float_t maxA, Float_t maxC);
27   void SetSumEquaMultRange(Int_t nbins, Float_t maxA, Float_t maxC);
28   void SetEquaMultRange(Int_t nbins, Float_t max);
29
30   void CreateQAHistos();
31   void CreateHistosPerL2Trigger();
32
33   void FillQAHistos();
34   void FillPerL2TriggerHistos();
35   
36   TH1F* CreateHisto1D(const char* name, const char* title, Int_t nBins, Double_t xMin, Double_t xMax,
37                       const char* xLabel = NULL, const char* yLabel = NULL);
38   TH2F* CreateHisto2D(const char* name, const char* title, Int_t nBinsX, Double_t xMin, Double_t xMax,
39                       Int_t nBinsY, Double_t yMin, Double_t yMax,
40                       const char* xLabel = NULL, const char* yLabel = NULL);
41   
42  private:
43   AliESDEvent *fESD;    //! ESD object
44   AliESDVZERO* fEsdV0;
45   TList       *fOutputList; //! Output list
46   Int_t fNClasses;   
47   TObjArray *fClassesNames;
48
49   TH2F *fNFlags; //!
50
51   TH1F *fhAdcNoTime[2];     // ADC spectra (no time measurement)
52   TH1F *fhAdcWithTime[2];   // ADC spectra (with time measurement)
53
54   TH2F *fhAdcPMTNoTime;   // ADC spectra per PMT (no time measurement)
55   TH2F *fhAdcPMTWithTime; // ADC spectra per PMT (with time measurement)
56  
57   TH1F *fhTime[2];          // Time spectra per side
58
59   TH1F *fhWidth[2];         // Signal width per side
60
61   TH2F *fhTimePMT;        // Time spectra per PMT
62   TH2F *fhWidthPMT;       // Signal width per PMT
63
64   TH2F *fhAdcWidth[2];      // ADC vs Signal width per side
65
66   TH2F *fhTimeCorr;       // Corrected mean time V0C vs V0A
67
68   TH2F *fhAdcTime[2];       // ADC vs Time per side
69
70   TH2F *fhPmtMult;             // Number of fired PMTs in V0C vs V0A
71   TH1F *fhV0ampl;          // ADC spectra for both rings
72
73   TH2F *fhEvents;         // Event statistics histogram
74
75   TH2F *fhVtxXYBB;        // XY vertex for beam-beam events
76   TH1F *fhVtxZBB;         // Z vertex for beam-beam events
77   TH2F *fhVtxXYBGA;       // XY vertex for beam-gas (A side) events
78   TH1F *fhVtxZBGA;        // Z vertex for beam-gas (A side) events
79   TH2F *fhVtxXYBGC;       // XY vertex for beam-gas (C side) events
80   TH1F *fhVtxZBGC;        // Z vertex for beam-gas (C side) events
81
82   TH1F *fhL2Triggers;    //! Triggers counting histo
83   TH2F **fhOnlineCharge; //! Online Charge (send to EMCAL) histo
84   TH2F **fhRecoMult;     //! Reconstructed Multiplicity V0A % V0C
85   TH2F **fhRecoMultPMT;     //! Reconstructed Multiplicity per PMT
86   TH2F **fhV0vsSPDCentrality; //! Centrality V0 % SPD
87   TH1F **fhTriggerBits;  //! 16 trigger bits
88   TH1F **fhTotRecoMult;  //! Total Reconstructed Multiplicity V0A + V0C
89   TH1F **fhCentrality;   //! Centrality V0 
90   TH2F **fhEqualizedMult; //! Equalized Multiplicity per channel
91   TH2F **fhEqualizedMultSum; //! Equalized Multiplicity V0A % V0C
92
93   Int_t   fNBinTotMult; //! number of bin of histo fhTotRecoMult
94   Float_t fTotMultMax;  //! max of histo fhTotRecoMult
95
96   Int_t   fNBinMult;    //! number of bin of histo fhRecoMult
97   Float_t fV0AMultMax;  //! max VZERO-A of histo fhRecoMult
98   Float_t fV0CMultMax;  //! max VZERO-C of histo fhRecoMult
99  
100   Int_t   fNBinOnlineCharge;   //! number of bin of histo fhOnlineCharge
101   Float_t fV0AOnlineChargeMax; //! max VZERO-A of histo fhOnlineCharge
102   Float_t fV0COnlineChargeMax; //! max VZERO-C of histo fhOnlineCharge
103
104   Int_t   fNBinEquaMult;     //! number of bin of histo fhEqualizedMult
105   Float_t fEquaMultMax;      //! max of histo fhEqualizedMult
106
107   Int_t   fNBinSumsEqMult;     //! number of bin of histo fhEqualizedMultSum
108   Float_t fV0AEqMultMax;       //! max VZERO-A of histo fhEqualizedMultSum
109   Float_t fV0CEqMultMax;       //! max VZERO-C of histo fhEqualizedMultSum
110
111   AliAnaVZEROPbPb(const AliAnaVZEROPbPb&); // not implemented
112   AliAnaVZEROPbPb& operator=(const AliAnaVZEROPbPb&); // not implemented
113   
114   ClassDef(AliAnaVZEROPbPb, 2); 
115 };
116
117 #endif