]> git.uio.no Git - u/mrichter/AliRoot.git/blob - ANALYSIS/AliCentralitySelectionTask.h
added histos for new centrality triggers (Alberica)
[u/mrichter/AliRoot.git] / ANALYSIS / AliCentralitySelectionTask.h
1 #ifndef ALICENTRALITYSELECTIONTASK_H
2 #define ALICENTRALITYSELECTIONTASK_H
3
4 /* Copyright(c) 1998-2008, ALICE Experiment at CERN, All rights reserved. *
5  * See cxx source for full Copyright notice                               */
6
7 //*****************************************************
8 //   Class AliCentralitySelectionTask
9 //   author: Alberica Toia
10 //*****************************************************
11
12 #include "AliAnalysisTaskSE.h"
13
14 class TFile;
15 class TH1F;
16 class TH2F;
17 class TList;
18 class TString;
19
20 class AliESDEvent;
21 class AliESDtrackCuts;
22
23 class AliCentralitySelectionTask : public AliAnalysisTaskSE {
24
25  public:
26
27   AliCentralitySelectionTask();
28   AliCentralitySelectionTask(const char *name);
29   AliCentralitySelectionTask& operator= (const AliCentralitySelectionTask& ana);
30   AliCentralitySelectionTask(const AliCentralitySelectionTask& c);
31   virtual ~AliCentralitySelectionTask();
32
33   // Implementation of interface methods
34   virtual void UserCreateOutputObjects();
35   virtual void UserExec(Option_t *option);
36   virtual void Terminate(Option_t *option);
37
38   void SetInput(const char* input)         {fAnalysisInput = input;}
39   void SetMCInput()                        {fIsMCInput = kTRUE;}
40   void SetPass(Int_t pass)                 {fPass = pass;}
41   void DontUseScaling()                    {fUseScaling=kFALSE;}  
42   void DontUseCleaning()                   {fUseCleaning=kFALSE;}
43
44  private:
45
46   Int_t SetupRun(AliESDEvent* const esd);
47   Bool_t IsOutlierV0MSPD(Float_t spd, Float_t v0, Int_t cent) const;
48   Bool_t IsOutlierV0MTPC(Int_t tracks, Float_t v0, Int_t cent) const;
49   Bool_t IsOutlierV0MZDC(Float_t zdc, Float_t v0) const;
50   Bool_t IsOutlierV0MZDCECal(Float_t zdc, Float_t v0) const;
51
52   TString  fAnalysisInput;      // "ESD", "AOD"
53   Bool_t   fIsMCInput;          // true when input is MC
54   Int_t    fPass;               // pass of reconstruction
55   Int_t    fCurrentRun;         // current run number
56   Bool_t   fUseScaling;         // flag to use scaling 
57   Bool_t   fUseCleaning;        // flag to use cleaning  
58   Float_t  fV0MScaleFactor;     // scale factor V0M
59   Float_t  fSPDScaleFactor;     // scale factor SPD
60   Float_t  fTPCScaleFactor;     // scale factor TPC
61   Float_t  fV0MScaleFactorMC;   // scale factor V0M for MC
62   Float_t  fV0MSPDOutlierPar0;  // outliers parameter
63   Float_t  fV0MSPDOutlierPar1;  // outliers parameter
64   Float_t  fV0MTPCOutlierPar0;  // outliers parameter
65   Float_t  fV0MTPCOutlierPar1;  // outliers parameter
66   Float_t  fV0MSPDSigmaOutlierPar0;  // outliers parameter
67   Float_t  fV0MSPDSigmaOutlierPar1;  // outliers parameter
68   Float_t  fV0MSPDSigmaOutlierPar2;  // outliers parameter
69   Float_t  fV0MTPCSigmaOutlierPar0;  // outliers parameter
70   Float_t  fV0MTPCSigmaOutlierPar1;  // outliers parameter
71   Float_t  fV0MTPCSigmaOutlierPar2;  // outliers parameter                                                 
72   Float_t  fV0MZDCOutlierPar0;       // outliers parameter
73   Float_t  fV0MZDCOutlierPar1;       // outliers parameter
74   Float_t  fV0MZDCEcalOutlierPar0;   // outliers parameter
75   Float_t  fV0MZDCEcalOutlierPar1;   // outliers parameter
76
77   AliESDtrackCuts* fTrackCuts;  //! optional track cuts
78
79   Float_t  fZVCut;              //! z-vertex cut (in cm)
80   Float_t  fOutliersCut;        //! outliers cut (in n-sigma)
81   Int_t    fQuality;            //! quality for centrality determination
82
83   Bool_t   fCVHN;               //! if the event is central trigger
84   Bool_t   fCVLN;               //! if the event is semicentral trigger
85   Bool_t   fCVHNbit;               //! if the event is central trigger
86   Bool_t   fCVLNbit;               //! if the event is semicentral trigger
87   Bool_t   fCCENT;              //! if the event is central trigger
88   Bool_t   fCSEMI;              //! if the event is semicentral trigger
89   Bool_t   fCCENTbit;           //! if the event is central trigger
90   Bool_t   fCSEMIbit;           //! if the event is semicentral trigger
91   Bool_t   fIsSelected;         //! V0BG rejection
92
93   Float_t  fCentV0M;            // percentile centrality from V0
94   Float_t  fCentFMD;            // percentile centrality from FMD
95   Float_t  fCentTRK;            // percentile centrality from tracks
96   Float_t  fCentTKL;            // percentile centrality from tracklets
97   Float_t  fCentCL0;            // percentile centrality from clusters in layer 0
98   Float_t  fCentCL1;            // percentile centrality from clusters in layer 0
99   Float_t  fCentV0MvsFMD;       // percentile centrality from V0 vs FMD
100   Float_t  fCentTKLvsV0M;       // percentile centrality from tracklets vs V0
101   Float_t  fCentZEMvsZDC;       // percentile centrality from ZEM vs ZDC
102
103   TH1F    *fHtempV0M;           // histogram with centrality vs multiplicity using V0
104   TH1F    *fHtempFMD;           // histogram with centrality vs multiplicity using FMD
105   TH1F    *fHtempTRK;           // histogram with centrality vs multiplicity using tracks
106   TH1F    *fHtempTKL;           // histogram with centrality vs multiplicity using tracklets
107   TH1F    *fHtempCL0;           // histogram with centrality vs multiplicity using clusters in layer 0
108   TH1F    *fHtempCL1;           // histogram with centrality vs multiplicity using clusters in layer 0
109   TH1F    *fHtempV0MvsFMD;           // histogram with centrality vs multiplicity using V0 vs FMD   
110   TH1F    *fHtempTKLvsV0M;           // histogram with centrality vs multiplicity using tracklets vs V0
111   TH2F    *fHtempZEMvsZDC;           // histogram with centrality vs multiplicity using ZEM vs ZDC 
112
113   TList   *fOutputList; // output list
114   
115   TH1F *fHOutCentV0M     ;    //control histogram for centrality
116   TH1F *fHOutCentV0M_CVHN;    //control histogram for centrality
117   TH1F *fHOutCentV0M_CVLN;    //control histogram for centrality
118   TH1F *fHOutCentV0M_CVHNinMB;    //control histogram for centrality
119   TH1F *fHOutCentV0M_CVLNinMB;    //control histogram for centrality
120   TH1F *fHOutCentV0M_CCENT;    //control histogram for centrality
121   TH1F *fHOutCentV0M_CSEMI;    //control histogram for centrality
122   TH1F *fHOutCentV0M_CCENTinMB;    //control histogram for centrality
123   TH1F *fHOutCentV0M_CSEMIinMB;    //control histogram for centrality
124   TH1F *fHOutCentFMD     ;    //control histogram for centrality
125   TH1F *fHOutCentTRK     ;    //control histogram for centrality
126   TH1F *fHOutCentTKL     ;    //control histogram for centrality
127   TH1F *fHOutCentCL0     ;    //control histogram for centrality
128   TH1F *fHOutCentCL1     ;    //control histogram for centrality
129   TH1F *fHOutCentV0MvsFMD;    //control histogram for centrality
130   TH1F *fHOutCentTKLvsV0M;    //control histogram for centrality
131   TH1F *fHOutCentZEMvsZDC;    //control histogram for centrality
132   TH2F *fHOutCentV0MvsCentCL1;    //control histogram for centrality
133   TH2F *fHOutCentV0MvsCentTRK;    //control histogram for centrality
134   TH2F *fHOutCentTRKvsCentCL1;    //control histogram for centrality
135   TH2F *fHOutCentV0MvsCentZDC;    //control histogram for centrality
136
137   TH1F *fHOutMultV0M ;        //control histogram for multiplicity
138   TH1F *fHOutMultV0O ;        //control histogram for multiplicity
139   TH1F *fHOutMultFMD ;        //control histogram for multiplicity
140   TH1F *fHOutMultTRK ;        //control histogram for multiplicity
141   TH1F *fHOutMultTKL ;        //control histogram for multiplicity
142   TH1F *fHOutMultCL0 ;        //control histogram for multiplicity
143   TH1F *fHOutMultCL1 ;        //control histogram for multiplicity
144
145   TH2F *fHOutMultV0MvsZDN;    //control histogram for multiplicity
146   TH2F *fHOutMultZEMvsZDN;    //control histogram for multiplicity
147   TH2F *fHOutMultV0MvsZDC;    //control histogram for multiplicity
148   TH2F *fHOutMultZEMvsZDC;    //control histogram for multiplicity
149   TH2F *fHOutMultZEMvsZDCw;   //control histogram for multiplicity
150   TH2F *fHOutMultV0MvsCL1;    //control histogram for multiplicity
151   TH2F *fHOutMultV0MvsTRK;    //control histogram for multiplicity
152   TH2F *fHOutMultTRKvsCL1;    //control histogram for multiplicity
153   TH2F *fHOutMultV0MvsV0O;    //control histogram for multiplicity
154   TH2F *fHOutMultV0OvsCL1;    //control histogram for multiplicity
155   TH2F *fHOutMultV0OvsTRK;    //control histogram for multiplicity
156
157   TH1F *fHOutCentV0Mqual1     ;    //control histogram for centrality quality 1
158   TH1F *fHOutCentTRKqual1     ;    //control histogram for centrality quality 1
159   TH1F *fHOutCentCL1qual1     ;    //control histogram for centrality quality 1
160   TH2F *fHOutMultV0MvsCL1qual1;    //control histogram for multiplicity quality 1
161   TH2F *fHOutMultV0MvsTRKqual1;    //control histogram for multiplicity quality 1
162   TH2F *fHOutMultTRKvsCL1qual1;    //control histogram for multiplicity quality 1
163
164   TH1F *fHOutCentV0Mqual2     ;    //control histogram for centrality quality 2
165   TH1F *fHOutCentTRKqual2     ;    //control histogram for centrality quality 2
166   TH1F *fHOutCentCL1qual2     ;    //control histogram for centrality quality 2
167   TH2F *fHOutMultV0MvsCL1qual2;    //control histogram for multiplicity quality 2
168   TH2F *fHOutMultV0MvsTRKqual2;    //control histogram for multiplicity quality 2
169   TH2F *fHOutMultTRKvsCL1qual2;    //control histogram for multiplicity quality 2
170
171   TH1F *fHOutQuality ;        //control histogram for quality
172   TH1F *fHOutVertex ;         //control histogram for vertex
173   TH1F *fHOutVertexT0 ;         //control histogram for vertex
174
175   ClassDef(AliCentralitySelectionTask, 15); 
176 };
177
178 #endif
179