]>
Commit | Line | Data |
---|---|---|
3b77b2d1 | 1 | #ifndef ALICONVERSIONCUTS_H |
2 | #define ALICONVERSIONCUTS_H | |
3 | ||
4 | // Class handling all kinds of selection cuts for Gamma Conversion analysis | |
5 | // Authors: Svein Lindal, Daniel Lohner * | |
6 | ||
7 | #include "AliAODpidUtil.h" | |
8 | #include "AliConversionPhotonBase.h" | |
9 | #include "AliAODConversionMother.h" | |
10 | #include "AliAODTrack.h" | |
11 | #include "AliESDtrack.h" | |
12 | #include "AliVTrack.h" | |
13 | #include "AliAODTrack.h" | |
14 | #include "AliStack.h" | |
15 | #include "AliAnalysisCuts.h" | |
d008165e | 16 | #include "TH1F.h" |
0a2b2b4b | 17 | #include "AliAnalysisUtils.h" |
11c1e680 | 18 | #include "AliAnalysisManager.h" |
3b77b2d1 | 19 | |
20 | class AliESDEvent; | |
21 | class AliAODEvent; | |
22 | class AliConversionPhotonBase; | |
23 | class AliKFVertex; | |
24 | class TH1F; | |
25 | class TH2F; | |
26 | class AliPIDResponse; | |
27 | class AliAnalysisCuts; | |
28 | class iostream; | |
29 | class TList; | |
30 | class AliAnalysisManager; | |
31 | ||
3b77b2d1 | 32 | using namespace std; |
33 | ||
34 | class AliConversionCuts : public AliAnalysisCuts { | |
35 | ||
36 | public: | |
37 | ||
38 | ||
39 | enum cutIds { | |
ca91a3e1 | 40 | kisHeavyIon, |
41 | kCentralityMin, | |
42 | kCentralityMax, | |
43 | kselectV0AND, | |
44 | kmultiplicityMethod, | |
45 | kremovePileUp, | |
46 | kExtraSignals, | |
3b77b2d1 | 47 | kv0FinderType, |
ca91a3e1 | 48 | ketaCut, |
49 | kRCut, | |
3b77b2d1 | 50 | ksinglePtCut, |
51 | kclsTPCCut, | |
ca91a3e1 | 52 | kededxSigmaCut, |
53 | kpidedxSigmaCut, | |
54 | kpiMomdedxSigmaCut, | |
3b77b2d1 | 55 | kpiMaxMomdedxSigmaCut, |
ca91a3e1 | 56 | kLowPRejectionSigmaCut, |
3b77b2d1 | 57 | kTOFelectronPID, |
ca91a3e1 | 58 | kQtMaxCut, |
59 | kchi2GammaCut, | |
3b77b2d1 | 60 | kPsiPair, |
ca91a3e1 | 61 | kdoPhotonAsymmetryCut, |
3b77b2d1 | 62 | kCosPAngle, |
ca91a3e1 | 63 | kElecShare, |
64 | kToCloseV0s, | |
3b77b2d1 | 65 | kNCuts |
66 | }; | |
67 | ||
d008165e | 68 | enum photonCuts { |
69 | kPhotonIn=0, | |
70 | kOnFly, | |
71 | kNoTracks, | |
72 | kTrackCuts, | |
73 | kdEdxCuts, | |
92efd725 | 74 | kConvPointFail, |
d008165e | 75 | kPhotonCuts, |
76 | kPhotonOut | |
77 | }; | |
78 | ||
79 | ||
3b77b2d1 | 80 | Bool_t SetCutIds(TString cutString); |
81 | Int_t fCuts[kNCuts]; | |
82 | Bool_t SetCut(cutIds cutID, Int_t cut); | |
e5b6e8a6 | 83 | Bool_t UpdateCutString(); |
3b77b2d1 | 84 | |
85 | ||
86 | static const char * fgkCutNames[kNCuts]; | |
87 | ||
92efd725 | 88 | Double_t GetCosineOfPointingAngle(const AliConversionPhotonBase * photon, AliVEvent * event) const; |
3b77b2d1 | 89 | |
90 | ||
91 | Bool_t InitializeCutsFromCutString(const TString analysisCutSelection); | |
92efd725 | 92 | void SelectCollisionCandidates(UInt_t offlineTriggerMask = AliVEvent::kMB) {fOfflineTriggerMask = offlineTriggerMask;} |
93 | void FillElectonLabelArray(AliAODConversionPhoton* photon, Int_t nV0); | |
ca91a3e1 | 94 | void SetAcceptedHeader(TList *HeaderList){fHeaderList = HeaderList;} |
e5b6e8a6 | 95 | TString *GetFoundHeader(){return fGeneratorNames;} |
ca91a3e1 | 96 | |
92efd725 | 97 | Int_t GetEventQuality(){return fEventQuality;} |
e5b6e8a6 | 98 | Bool_t GetIsFromPileup(){return fRemovePileUp;} |
99 | ||
3b77b2d1 | 100 | AliConversionCuts(const char *name="V0Cuts", const char * title="V0 Cuts"); |
a280ac15 | 101 | AliConversionCuts(const AliConversionCuts&); |
102 | AliConversionCuts& operator=(const AliConversionCuts&); | |
1d9e6011 | 103 | |
3b77b2d1 | 104 | virtual ~AliConversionCuts(); //virtual destructor |
105 | ||
a280ac15 | 106 | static AliConversionCuts * GetStandardCuts2010PbPb(); |
107 | static AliConversionCuts * GetStandardCuts2010pp(); | |
108 | ||
3b77b2d1 | 109 | virtual Bool_t IsSelected(TObject* /*obj*/){return kTRUE;} |
110 | virtual Bool_t IsSelected(TList* /*list*/) {return kTRUE;} | |
111 | ||
112 | TString GetCutNumber(); | |
11c1e680 | 113 | |
92efd725 | 114 | void GetCentralityRange(Double_t range[2]){range[0]=10*fCentralityMin;range[1]=10*fCentralityMax;}; |
11c1e680 | 115 | |
3b77b2d1 | 116 | // Cut Selection |
92efd725 | 117 | Bool_t EventIsSelected(AliVEvent *fInputEvent, AliVEvent *fMCEvent); |
e5b6e8a6 | 118 | Int_t IsEventAcceptedByConversionCut(AliConversionCuts *ReaderCuts, AliVEvent *InputEvent, AliMCEvent *MCEvent, Bool_t isHeavyIon); |
d008165e | 119 | Bool_t PhotonIsSelected(AliConversionPhotonBase * photon, AliVEvent * event); |
92efd725 | 120 | Bool_t PhotonIsSelectedMC(TParticle *particle,AliStack *fMCStack,Bool_t checkForConvertedGamma=kTRUE); |
2bb2434e | 121 | Bool_t ElectronIsSelectedMC(TParticle *particle,AliStack *fMCStack); |
3b77b2d1 | 122 | Bool_t TracksAreSelected(AliVTrack * negTrack, AliVTrack * posTrack); |
123 | Bool_t MesonIsSelected(AliAODConversionMother *pi0,Bool_t IsSignal=kTRUE); | |
92efd725 | 124 | Bool_t MesonIsSelectedMC(TParticle *fMCMother,AliStack *fMCStack, Bool_t bMCDaughtersInAcceptance=kFALSE); |
3b77b2d1 | 125 | |
126 | void InitAODpidUtil(Int_t type); | |
3b77b2d1 | 127 | Bool_t InitPIDResponse(); |
128 | ||
129 | void SetPIDResponse(AliPIDResponse * pidResponse) {fPIDResponse = pidResponse;} | |
130 | AliPIDResponse * GetPIDResponse() { return fPIDResponse;} | |
131 | ||
132 | void PrintCuts(); | |
133 | ||
92efd725 | 134 | void InitCutHistograms(TString name="",Bool_t preCut = kTRUE); |
135 | void SetFillCutHistograms(TString name="",Bool_t preCut = kTRUE){if(!fHistograms){InitCutHistograms(name,preCut);};} | |
3b77b2d1 | 136 | TList *GetCutHistograms(){return fHistograms;} |
d008165e | 137 | void FillPhotonCutIndex(Int_t photoncut){if(hCutIndex)hCutIndex->Fill(photoncut);} |
11c1e680 | 138 | void SetEtaShift(Double_t etaShift) { |
139 | fEtaShift = etaShift; | |
140 | fLineCutZRSlope = tan(2*atan(exp(-fEtaCut + etaShift))); | |
141 | if(fEtaCutMin > -0.1) | |
142 | fLineCutZRSlopeMin = tan(2*atan(exp(-fEtaCutMin + etaShift))); | |
143 | fDoEtaShift = kTRUE; | |
144 | } | |
145 | Double_t GetEtaShift() {return fEtaShift;} | |
146 | Bool_t GetDoEtaShift(){return fDoEtaShift;} | |
147 | void DoEtaShift(Bool_t doEtaShift){fDoEtaShift = doEtaShift;} | |
148 | void ForceEtaShift(Int_t forcedShift){ | |
149 | fForceEtaShift = forcedShift; | |
150 | if(forcedShift>0)fDoEtaShift = kTRUE; | |
151 | } | |
152 | Int_t IsEtaShiftForced() {return fForceEtaShift;} | |
3b77b2d1 | 153 | |
92efd725 | 154 | static AliVTrack * GetTrack(AliVEvent * event, Int_t label); |
e5b6e8a6 | 155 | static AliESDtrack *GetESDTrack(AliESDEvent * event, Int_t label); |
156 | ||
3b77b2d1 | 157 | ///Cut functions |
158 | Bool_t SpecificTrackCuts(AliAODTrack * negTrack, AliAODTrack * posTrack,Int_t &cutIndex); | |
159 | Bool_t SpecificTrackCuts(AliESDtrack * negTrack, AliESDtrack * posTrack,Int_t &cutIndex); | |
160 | Bool_t AcceptanceCuts(AliConversionPhotonBase *photon); | |
161 | Bool_t AcceptanceCut(TParticle *particle, TParticle * ePos,TParticle* eNeg); | |
162 | Bool_t dEdxCuts(AliVTrack * track); | |
163 | Bool_t ArmenterosQtCut(AliConversionPhotonBase *photon); | |
164 | Bool_t AsymmetryCut(AliConversionPhotonBase *photon,AliVEvent *event); | |
165 | Bool_t PIDProbabilityCut(AliConversionPhotonBase *photon, AliVEvent * event); | |
92efd725 | 166 | Bool_t SelectV0Finder(Bool_t onfly){ |
167 | if(onfly == fUseOnFlyV0Finder) return kTRUE; | |
168 | else return kFALSE; | |
169 | } | |
3b77b2d1 | 170 | Bool_t PhotonCuts(AliConversionPhotonBase *photon,AliVEvent *event); |
171 | Bool_t CorrectedTPCClusterCut(AliConversionPhotonBase *photon, AliVEvent * event); | |
92efd725 | 172 | Bool_t PsiPairCut(const AliConversionPhotonBase * photon) const; |
173 | Bool_t CosinePAngleCut(const AliConversionPhotonBase * photon, AliVEvent * event) const; | |
174 | Bool_t RejectSharedElectronV0s(AliAODConversionPhoton* photon, Int_t nV0, Int_t nV0s); | |
175 | Bool_t RejectToCloseV0s(AliAODConversionPhoton* photon, TList *photons, Int_t nV0); | |
a280ac15 | 176 | Int_t IsParticleFromBGEvent(Int_t index, AliStack *MCStack); |
ca91a3e1 | 177 | void GetNotRejectedParticles(Int_t rejection, TList *HeaderList, AliMCEvent *MCEvent); |
178 | ||
3b77b2d1 | 179 | // Event Cuts |
e5b6e8a6 | 180 | Bool_t IsCentralitySelected(AliVEvent *fInputEvent, AliVEvent *fMCEvent = NULL); |
3b77b2d1 | 181 | Double_t GetCentrality(AliVEvent *event); |
182 | Int_t GetNumberOfContributorsVtx(AliVEvent *event); | |
183 | Bool_t VertexZCut(AliVEvent *fInputEvent); | |
92efd725 | 184 | Bool_t IsTriggerSelected(); |
e5b6e8a6 | 185 | Bool_t HasV0AND(){return fHasV0AND;} |
186 | Bool_t IsSDDFired(){return fIsSDDFired;} | |
187 | Int_t IsSpecialTrigger(){return fSpecialTrigger;} | |
3b77b2d1 | 188 | |
189 | // Set Individual Cuts | |
190 | Bool_t SetRCut(Int_t RCut); | |
191 | Bool_t SetV0Finder(Int_t v0FinderType); | |
3b77b2d1 | 192 | Bool_t SetChi2GammaCut(Int_t chi2GammaCut); |
193 | Bool_t SetTPCdEdxCutPionLine(Int_t pidedxSigmaCut); | |
194 | Bool_t SetTPCdEdxCutElectronLine(Int_t ededxSigmaCut); | |
195 | Bool_t SetSinglePtCut(Int_t singlePtCut); | |
196 | Bool_t SetTPCClusterCut(Int_t clsTPCCut); | |
197 | Bool_t SetEtaCut(Int_t etaCut); | |
3b77b2d1 | 198 | Bool_t SetMinMomPiondEdxCut(Int_t piMinMomdedxSigmaCut); |
199 | Bool_t SetMaxMomPiondEdxCut(Int_t piMaxMomdedxSigmaCut); | |
200 | Bool_t SetLowPRejectionCuts(Int_t LowPRejectionSigmaCut); | |
201 | Bool_t SetQtMaxCut(Int_t QtMaxCut); | |
3b77b2d1 | 202 | Bool_t SetTOFElectronPIDCut(Int_t TOFelectronPID); |
203 | Bool_t SetTRDElectronCut(Int_t TRDElectronCut); | |
92efd725 | 204 | Bool_t SetCentralityMin(Int_t useCentrality); |
3b77b2d1 | 205 | Bool_t SetIsHeavyIon(Int_t isHeavyIon); |
92efd725 | 206 | Bool_t SetCentralityMax(Int_t centralityBin); |
3b77b2d1 | 207 | Bool_t SetPhotonAsymmetryCut(Int_t doPhotonAsymmetryCut); |
ca91a3e1 | 208 | Bool_t SetRemovePileUp(Int_t removePileUp); |
92efd725 | 209 | Bool_t SetMultiplicityMethod(Int_t multiplicityMethod); |
e5b6e8a6 | 210 | Int_t SetSelectSpecialTrigger(Int_t selectSpecialTrigger); |
3b77b2d1 | 211 | Bool_t SetCosPAngleCut(Int_t cosCut); |
212 | Bool_t SetPsiPairCut(Int_t psiCut); | |
92efd725 | 213 | Bool_t SetSharedElectronCut(Int_t sharedElec); |
214 | Bool_t SetToCloseV0sCut(Int_t toClose); | |
ca91a3e1 | 215 | Bool_t SetRejectExtraSignalsCut(Int_t extraSignal); |
11c1e680 | 216 | |
217 | ||
3b77b2d1 | 218 | // Request Flags |
219 | ||
0a2b2b4b | 220 | Int_t IsHeavyIon(){return fIsHeavyIon;} |
3b77b2d1 | 221 | Int_t GetFirstTPCRow(Double_t radius); |
a280ac15 | 222 | Float_t GetWeightForMeson(TString period, Int_t index, AliStack *MCStack); |
ca91a3e1 | 223 | |
92efd725 | 224 | Bool_t UseElecSharingCut(){return fDoSharedElecCut;} |
225 | Bool_t UseToCloseV0sCut(){return fDoToCloseV0sCut;} | |
226 | Int_t GetMultiplicityMethod(){return fMultiplicityMethod;} | |
227 | Double_t GetEtaCut(){return fEtaCut;} | |
ca91a3e1 | 228 | Int_t GetSignalRejection(){return fRejectExtraSignals;} |
a280ac15 | 229 | Int_t GetNAcceptedHeaders(){return fnHeaders; } |
230 | TString * GetAcceptedHeaderNames(){return fGeneratorNames;} | |
231 | Int_t * GetAcceptedHeaderStart(){return fNotRejectedStart;} | |
232 | Int_t * GetAcceptedHeaderEnd(){return fNotRejectedEnd;} | |
ca91a3e1 | 233 | TList* GetAcceptedHeader(){return fHeaderList;} |
11c1e680 | 234 | |
235 | ||
3b77b2d1 | 236 | protected: |
237 | TList *fHistograms; | |
ca91a3e1 | 238 | TList *fHeaderList; |
3b77b2d1 | 239 | AliPIDResponse *fPIDResponse; |
240 | ||
92efd725 | 241 | |
242 | Int_t fEventQuality; // EventQuality | |
3b77b2d1 | 243 | //cuts |
244 | Double_t fMaxR; //r cut | |
245 | Double_t fMinR; //r cut | |
246 | Double_t fEtaCut; //eta cut | |
247 | Double_t fEtaCutMin; //eta cut | |
248 | Double_t fPtCut; // pt cut | |
249 | Double_t fSinglePtCut; // pt cut for electron/positron | |
250 | Double_t fMaxZ; //z cut | |
251 | Double_t fMinClsTPC; // minimum clusters in the TPC | |
252 | Double_t fMinClsTPCToF; // minimum clusters to findable clusters | |
253 | Double_t fLineCutZRSlope; //linecut | |
254 | Double_t fLineCutZValue; //linecut | |
255 | Double_t fLineCutZRSlopeMin; //linecut | |
256 | Double_t fLineCutZValueMin; //linecut | |
257 | Double_t fChi2CutConversion; //chi2cut | |
3b77b2d1 | 258 | Double_t fPIDProbabilityCutNegativeParticle; |
259 | Double_t fPIDProbabilityCutPositiveParticle; | |
260 | Bool_t fDodEdxSigmaCut; // flag to use the dEdxCut based on sigmas | |
261 | Bool_t fDoTOFsigmaCut; // flag to use TOF pid cut RRnewTOF | |
262 | Double_t fPIDTRDEfficiency; // required electron efficiency for TRD PID | |
263 | Bool_t fDoTRDPID; // flag to use TRD pid | |
264 | Double_t fPIDnSigmaAboveElectronLine; // sigma cut | |
265 | Double_t fPIDnSigmaBelowElectronLine; // sigma cut | |
266 | Double_t fTofPIDnSigmaAboveElectronLine; // sigma cut RRnewTOF | |
267 | Double_t fTofPIDnSigmaBelowElectronLine; // sigma cut RRnewTOF | |
268 | Double_t fPIDnSigmaAbovePionLine; // sigma cut | |
269 | Double_t fPIDnSigmaAbovePionLineHighPt; // sigma cut | |
270 | Double_t fPIDMinPnSigmaAbovePionLine; // sigma cut | |
271 | Double_t fPIDMaxPnSigmaAbovePionLine; // sigma cut | |
272 | Double_t fDoKaonRejectionLowP; // Kaon rejection at low p | |
273 | Double_t fDoProtonRejectionLowP; // Proton rejection at low p | |
274 | Double_t fDoPionRejectionLowP; // Pion rejection at low p | |
275 | Double_t fPIDnSigmaAtLowPAroundKaonLine; // sigma cut | |
276 | Double_t fPIDnSigmaAtLowPAroundProtonLine; // sigma cut | |
277 | Double_t fPIDnSigmaAtLowPAroundPionLine; // sigma cut | |
278 | Double_t fPIDMinPKaonRejectionLowP; // Momentum limit to apply kaon rejection | |
279 | Double_t fPIDMinPProtonRejectionLowP; // Momentum limit to apply proton rejection | |
280 | Double_t fPIDMinPPionRejectionLowP; // Momentum limit to apply proton rejection | |
281 | Bool_t fDoQtGammaSelection; // Select gammas using qtMax | |
282 | Bool_t fDoHighPtQtGammaSelection; // RRnew Select gammas using qtMax for high pT | |
283 | Double_t fQtMax; // Maximum Qt from Armenteros to select Gammas | |
284 | Double_t fHighPtQtMax; // RRnew Maximum Qt for High pT from Armenteros to select Gammas | |
285 | Double_t fPtBorderForQt; // RRnew | |
286 | Double_t fXVertexCut; //vertex cut | |
287 | Double_t fYVertexCut; //vertex cut | |
288 | Double_t fZVertexCut; // vertexcut | |
289 | Double_t fNSigmaMass; //nsigma cut | |
290 | Bool_t fUseEtaMinCut; //flag | |
291 | Bool_t fUseOnFlyV0Finder; //flag | |
292 | Bool_t fDoPhotonAsymmetryCut; // flag to use the PhotonAsymetryCut | |
293 | Double_t fMinPPhotonAsymmetryCut; // Min Momentum for Asymmetry Cut | |
294 | Double_t fMinPhotonAsymmetry; // Asymmetry Cut | |
0a2b2b4b | 295 | Int_t fIsHeavyIon; // flag for heavy ion |
92efd725 | 296 | Int_t fDetectorCentrality; // centrality detecotor V0M or CL1 |
297 | Int_t fModCentralityClass; // allows to select smaller centrality classes | |
3b77b2d1 | 298 | Double_t fMaxVertexZ; // max z offset of vertex |
92efd725 | 299 | Int_t fCentralityMin; // centrality selection lower bin value |
300 | Int_t fCentralityMax; // centrality selection upper bin value | |
3b77b2d1 | 301 | Bool_t fUseCorrectedTPCClsInfo; // flag to use corrected tpc cl info |
302 | Bool_t fUseTOFpid; // flag to use tof pid | |
92efd725 | 303 | Int_t fMultiplicityMethod; // selected multiplicity method |
e5b6e8a6 | 304 | Int_t fSpecialTrigger; // flag |
3b77b2d1 | 305 | Bool_t fRemovePileUp; //flag |
306 | Float_t fOpeningAngle; // min opening angle for meson | |
307 | Float_t fPsiPairCut; | |
308 | Float_t fCosPAngleCut; | |
92efd725 | 309 | Bool_t fDoToCloseV0sCut; // |
ca91a3e1 | 310 | Int_t fRejectExtraSignals;// |
92efd725 | 311 | Double_t fminV0Dist; // |
312 | Bool_t fDoSharedElecCut; // | |
313 | UInt_t fOfflineTriggerMask; // Task processes collision candidates only | |
e5b6e8a6 | 314 | Bool_t fHasV0AND; // V0AND Offline Trigger |
315 | Bool_t fIsSDDFired; // SDD FIRED to select with SDD events | |
92efd725 | 316 | TRandom3 fRandom; // |
e5b6e8a6 | 317 | Int_t fElectronArraySize; // Size of electron array |
318 | Int_t *fElectronLabelArray; //[fElectronArraySize] | |
2bb2434e | 319 | Float_t fConversionPointXArray; // Array with conversion Point x |
320 | Float_t fConversionPointYArray; // Array with conversion Point y | |
321 | Float_t fConversionPointZArray; // Array with conversion Point z | |
e5b6e8a6 | 322 | Int_t fnHeaders; // Number of Headers |
4a0aab28 | 323 | Int_t *fNotRejectedStart; //[fnHeaders] |
324 | Int_t *fNotRejectedEnd; //[fnHeaders] | |
325 | TString *fGeneratorNames; //[fnHeaders] | |
0a2b2b4b | 326 | TObjString *fCutString; // cut number used for analysis |
327 | AliAnalysisUtils *fUtils; | |
11c1e680 | 328 | Double_t fEtaShift; |
329 | Bool_t fDoEtaShift; | |
330 | Int_t fForceEtaShift; | |
3b77b2d1 | 331 | |
332 | // Histograms | |
3b77b2d1 | 333 | TH1F *hdEdxCuts; // bookkeeping for dEdx cuts |
334 | TH2F *hTPCdEdxbefore; // TPC dEdx before cuts | |
335 | TH2F *hTPCdEdxafter; // TPC dEdx after cuts | |
e5b6e8a6 | 336 | TH2F *hTPCdEdxSigbefore; // TPC Sigma dEdx before cuts |
337 | TH2F *hTPCdEdxSigafter; // TPC Sigm dEdx after cuts | |
338 | TH2F *hTOFbefore; // TOF before cuts | |
339 | TH2F *hTOFSigbefore; // TOF Sigma before cuts | |
340 | TH2F *hTOFSigafter; // TOF Sigma after cuts | |
3b77b2d1 | 341 | TH1F *hTrackCuts; // bookkeeping for track cuts |
342 | TH1F *hPhotonCuts; // bookkeeping for photon specific cuts | |
343 | TH1F *hInvMassbefore; // e+e- inv mass distribution before cuts | |
344 | TH2F *hArmenterosbefore; // armenteros podolanski plot before cuts | |
345 | TH1F *hInvMassafter; // e+e- inv mass distribution after cuts | |
346 | TH2F *hArmenterosafter; // armenteros podolanski plot after cuts | |
347 | TH1F *hAcceptanceCuts; // bookkeeping for acceptance cuts | |
348 | TH1F *hCutIndex; // bookkeeping for cuts | |
349 | TH1F *hV0EventCuts; // bookkeeping for event selection cuts | |
350 | TH1F *hCentrality; // centrality distribution for selected events | |
351 | TH1F *hVertexZ; // vertex z distribution for selected events | |
92efd725 | 352 | TH1F *hTriggerClass; //fired offline trigger class |
a280ac15 | 353 | TH1F *hTriggerClassSelected; //selected fired offline trigger class |
354 | private: | |
3b77b2d1 | 355 | |
1d9e6011 | 356 | ClassDef(AliConversionCuts,3) |
3b77b2d1 | 357 | }; |
358 | ||
359 | ||
360 | inline void AliConversionCuts::InitAODpidUtil(Int_t type) { | |
361 | if (!fPIDResponse) fPIDResponse = new AliAODpidUtil(); | |
362 | Double_t alephParameters[5]; | |
363 | // simulation | |
364 | alephParameters[0] = 2.15898e+00/50.; | |
365 | alephParameters[1] = 1.75295e+01; | |
366 | alephParameters[2] = 3.40030e-09; | |
367 | alephParameters[3] = 1.96178e+00; | |
368 | alephParameters[4] = 3.91720e+00; | |
369 | fPIDResponse->GetTOFResponse().SetTimeResolution(80.); | |
370 | ||
371 | // data | |
372 | if (type==1){ | |
373 | alephParameters[0] = 0.0283086/0.97; | |
374 | alephParameters[1] = 2.63394e+01; | |
375 | alephParameters[2] = 5.04114e-11; | |
376 | alephParameters[3] = 2.12543e+00; | |
377 | alephParameters[4] = 4.88663e+00; | |
378 | fPIDResponse->GetTOFResponse().SetTimeResolution(130.); | |
379 | fPIDResponse->GetTPCResponse().SetMip(50.); | |
380 | } | |
381 | ||
382 | fPIDResponse->GetTPCResponse().SetBetheBlochParameters( | |
383 | alephParameters[0],alephParameters[1],alephParameters[2], | |
384 | alephParameters[3],alephParameters[4]); | |
385 | ||
386 | fPIDResponse->GetTPCResponse().SetSigma(3.79301e-03, 2.21280e+04); | |
387 | } | |
388 | ||
389 | ||
390 | #endif |