]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGLF/SPECTRA/PiKaPr/ITSTPC/AliAnalysisChargedHadronSpectraITSTruncatedMeanTask.h
Merge branch 'feature-movesplit'
[u/mrichter/AliRoot.git] / PWGLF / SPECTRA / PiKaPr / ITSTPC / AliAnalysisChargedHadronSpectraITSTruncatedMeanTask.h
CommitLineData
e1b3d73c 1//Class to extract data to do ITS+TPC global Spectra
2//Autor Marek Chojnacki
3//emali Marek.Chojnacki@cern.ch
4
5
6
7#ifndef ALIANALYSISCHARGEDHADRONSPECTRAITSTRUNCATEDMEANTASK_H
8#define ALIANALYSISCHARGEDHADRONSPECTRAITSTRUNCATEDMEANTASK_H
9//#include <fstream>
10class TH1F;
11class TH2F;
12class TH3F;
13class AliESDEvent;
14class AliESDtrack;
15class AliESDtrackCuts;
16class AliESDpidCuts;
17class AliESDpid;
18class TGraph;
19class AliStack;
20#include "AliAnalysisTaskSE.h"
21//#include "AliESDtrackCuts.h"
22#include "AliESDpidCuts.h"
23#include "AliESDpid.h"
24
25
26
27
28class AliAnalysisChargedHadronSpectraITSTruncatedMeanTask : public AliAnalysisTaskSE {
29 public:
30 AliAnalysisChargedHadronSpectraITSTruncatedMeanTask(const char *name = "AliAnalysisChargedHadronSpectraITSTruncatedMeanTask");
31 virtual ~AliAnalysisChargedHadronSpectraITSTruncatedMeanTask() {}
32
33 //virtual void ConnectInputData(Option_t *);
34 virtual void UserCreateOutputObjects();
35 virtual void UserExec(Option_t *option);
36 virtual void Terminate(Option_t *);
37 virtual void LocalInit();
38 AliESDtrackCuts* GetAliESDtrackCuts() const {return fCuts;}
39 void SetMCOn(){fMC=kTRUE;
40 fESDpid->GetTPCResponse().SetBetheBlochParameters(2.15898e+00/50.,1.75295e+01,3.40030e-09,1.96178e+00,3.91720e+00);}
41 void SetAliESDtrackCuts(AliESDtrackCuts* const cuts ){fCuts=cuts;/*flist->Add(fCuts);*/}
42 void SetFunctionParam(Double_t* const par);
43 void SetMultiplicityCut(Int_t low, Int_t up);
44 void SetSPDMethodCut(){fSPD=kTRUE;}
45 void SetCorrectSDD(){fCorrectSDD=kTRUE;}
46 void SetCorrectSSD(){fCorrectSSD=kTRUE;}
47 void SetYcut(Float_t value){fYCut=TMath::Abs(value);}
48 void Setsigmacut(Float_t value){fsigmacut=TMath::Abs(value);}
49 void SetNsigmaDCAcut(Float_t sigmaxy,Float_t sigmaz){fnsigmaxy=sigmaxy;fnsigmaz=sigmaz;}
50 void SetChargeCut(Float_t chargeCut){fchargeCut=TMath::Abs(chargeCut)>50.0?50.0:TMath::Abs(chargeCut);}
51 void SetTPCPIDCUT(AliESDpidCuts* const cuts){fTPCPIDCUT=cuts;}
52 void SetWeights(TGraph* const setK0weight, TGraph* const setlambdaweight,TGraph* const setAntilambdaweight){fK0weight=setK0weight;flambdaweight=setlambdaweight;fAntilambdaweight=setAntilambdaweight;}
53 void SetDCA2010();
54 void SetHImode(){fHIsettings=kTRUE;}
55 void SetCentralityCut(Float_t low, Float_t up);
56 void SetDoVertexrescuts(){fdovertexrescuts=kTRUE;}
388bf048 57 void SetRejectPileUp(){fUsePilerejection=kTRUE;}
e1b3d73c 58 private:
59
60
61 AliESDEvent *fESD; //ESD object
62 AliESDtrackCuts *fCuts;//cuts
63 AliESDtrackCuts *fCutsMul;//cuts for multiplicty
64
65
66
67 Bool_t fMC;//if TRUE use MC
68 Int_t fLowMultiplicity;//low Multiplicity cut
69 Int_t fUpMultiplicity;//up Multiplicity cut
70 Float_t fLowCentrality;//low Centrality cut
71 Float_t fUpCentrality;//up Centrality cut
72 Bool_t fSPD;//use spd2 as mulestimator
388bf048 73 Bool_t fUsePilerejection;// flag to use
e1b3d73c 74
75 Float_t fYCut;//cut in y
76 Float_t fsigmacut;//cut in sigma in n-sigma method
77 Float_t fnsigmaxy; //cut in sigma on xy dca
78 Float_t fnsigmaz;//cut in sigma on Z dca
79 Float_t fdcaxypar[3];//parameters for DCAxy cut
80 Float_t fdcazpar[4];//parameters for DCAz cut
81
82 Float_t fchargeCut;//cut for the low charges
83
84
85 Bool_t fCorrectSDD;//In LHC10a3 in some runs dE in SDD had to scaled to SSD flag if this should be done
86 Bool_t fCorrectSSD;//this same but for dE SSS
87
88 Bool_t fHIsettings;//speciall settings fot HI mode
89 Bool_t fdovertexrescuts;// check on Vmc-VESD
90
91
92
93 TGraph* fK0weight ;//weight for pions comming from K0shorts
94 TGraph* flambdaweight ;//weight for protons comming from lambdas
95 TGraph* fAntilambdaweight ;//weight for antiprotons comming from antilambdas
96
97
98
99
100TH1F *fHistStats; //histogram with statistic of events
101TH1F* fHistZVertexBeforeCut; //Z of vertex before cut
102TH1F* fHistZVertexAfterCut; //Z of vertex after cut
103TH2F* fHistXYVertexBeforeCut; //XY of vertex before cut
104TH2F* fHistXYVertexAfterCut; //XY of vertex after cut
105
106
107TH2F* fHistPhiPtBeforeCuts;//phi pt before cuts
108TH2F* fHistPhiPtAfterCuts;//phi pt after cuts
109TH2F* fHistEtaPtBeforeCuts;//eta pt before cuts
110TH2F* fHistEtaPtAfterCuts;//eta pt after cuts
111
112TH2F* fHistDCABeforeCuts;//dca hist before cuts
113TH2F* fHistDCAAfterCuts;//dca hist after cuts
114
115TH2F* fHistPminusTPCinPAfterCuts;//differnece between global momentum at primary vetrex and tpc standalone momentum at primry vertex
116TH2F* fHistPminusTPCinPglobalAfterCuts;//differnece between global momentum at primary vetrex and global momentum at the inner wall of the TPC taken from global tracking
117
118//positive
119TH2F* fHistMydEPpositive;//dE in its as function of global p at p.v.
120TH2F* fHistMydETPCinPpositive;//dE in its as function of TPC p at p.v.
121TH2F* fHistMydETPCinPglobalpositive;//dE in its as function of p at the inner wall of the TPC taken from global tracking
122//negative
123TH2F* fHistMydEPnegative;//dE in its as function of global p at p.v.
124TH2F* fHistMydETPCinPnegative;//dE in its as function of TPC p at p.v.
125TH2F* fHistMydETPCinPglobalnegative;//dE in its as function of p at the inner wall of the TPC taken from global tracking
126
127//dE as function of global p at p.v.
128TH2F* fHistL3dEP;// SDD1
129TH2F* fHistL4dEP;// SDD2
130TH2F* fHistL5dEP;//SSD1
131TH2F* fHistL6dEP; //SSD2
132
133//dE in its as function of TPC p at p.v.
134TH2F* fHistL3dETPCinP;// SDD1
135TH2F* fHistL4dETPCinP;// SDD2
136TH2F* fHistL5dETPCinP;//SSD1
137TH2F* fHistL6dETPCinP;//SSD2
138
139
140
141
142TH2F* fHistwhichhasmin;// ITS layer with minimal charged
143TH1F* fHistMysignalminusESD;// My signal minus ESD
144
145
146//log dE-logdEfit as function of global p at p.v. for
147TH2F* fHistminsignalifPionP;//pions
148TH2F* fHistminsignalifKaonP;//kaons
149TH2F* fHistminsignalifProtonP;//protons
150
151TH2F* fHistminsignalifAntiPionP;//antipions
152TH2F* fHistminsignalifAntiKaonP;//antikaons
153TH2F* fHistminsignalifAntiProtonP;//antiprotons
154
155
156//DCA histograms for clean particles with after dca cut
157TH3F* fDCAXYZforcleanPions;//pions
158TH3F* fDCAXYZforcleanAntiPions;//antipion
159TH3F* fDCAXYZforcleanProtons;//kaons
160TH3F* fDCAXYZforcleanAntiProtons;//antikaons
161
162//DCA histograms for clean particles with before dca cut
163TH3F* fDCAXYZOpenforcleanPions;//pions
164TH3F* fDCAXYZOpenforcleanAntiPions;//antipions
165TH3F* fDCAXYZOpenforcleanProtons;//kaons
166TH3F* fDCAXYZOpenforcleanAntiProtons;//antikaons
167
168//pt distibution of track fullfilling some cuts 0-pions, 1-kaons,2-protons
169TH2F* fHistNtrackwithstandardcuts;//TPC cuts
170TH2F* fHistNtrackwithITSPIDcuts;//TPC cuts + ITS pid cuts
171
172TH2F* fHistSignalinTPCKaonforstandardcuts;//TPC signal for Kaons tpc cuts tracks
173TH2F* fHistSignalinTPCKaonforITSPIDcuts;//TPC signal for Kaons tpc+itspid cuts tracks
174
175TH2F* fHistSignalinTPCAntiKaonforstandardcuts;//TPC signal for AntiKaons tpc cuts tracks
176TH2F* fHistSignalinTPCAntiKaonforITSPIDcuts; //TPC signal for AntiKaons tpc+itspid cuts tracks
177
178
179TH2F* fHistSignalinTPCProtonforstandardcuts; //TPC signal for Protons tpc cuts tracks
180TH2F* fHistSignalinTPCProtonforITSPIDcuts;//TPC signal for Protons tpc+itspid cuts tracks
181
182TH2F* fHistSignalinTPCAntiProtonforstandardcuts;//TPC signal for AntiProtons tpc cuts tracks
183TH2F* fHistSignalinTPCAntiProtonforITSPIDcuts; //TPC signal for AntiProtons tpc+itspid cuts tracks
184
185
186//Multiplicity histos
187TH1F* fHistStandartMul;//number from AliESDtrackCuts::GetReferenceMultiplicity
188TH1F* fHistMytrackMul;//number of my tracks
189TH2F* fHistStandartMulvSPD2;//number from AliESDtrackCuts::GetReferenceMultiplicity v SPD2
190
191//log dE-logdEfit as function of global p at p.v. for primary tracks
192TH2F* fHistminsignalifPionPPrimary; //pions
193TH2F* fHistminsignalifKaonPPrimary;//kaons
194TH2F* fHistminsignalifProtonPPrimary;//protons
195TH2F* fHistminsignalifProtonPPrimaryfake;//fake protons
196
197TH2F* fHistminsignalifAntiPionPPrimary;//antipions
198TH2F* fHistminsignalifAntiKaonPPrimary;//antikaons
199TH2F* fHistminsignalifAntiProtonPPrimary;//antiprotons
200TH2F* fHistminsignalifAntiProtonPPrimaryfake;//antiprotonsfake
201
202
203//log dE-logdEfit as function of global p at p.v. for secondary and other tracks tracks
204TH2F* fHistminsignalifPionPSecondary;//pions
205TH2F* fHistminsignalifKaonPSecondary;//kaon
206TH2F* fHistminsignalifProtonPSecondaryWD;//protons comming from weak decays
207TH2F* fHistminsignalifProtonPSecondaryHI;//protons comming from material
208TH2F* fHistminsignalifProtonPSecondaryRest;//rest contamination
209
210TH2F* fHistminsignalifProtonPSecondaryWDfake;//protons fakes comming from weak decays
211TH2F* fHistminsignalifProtonPSecondaryHIfake;//protons fakes comming from material
212
213TH2F* fHistminsignalifAntiPionPSecondary;//antipions
214TH2F* fHistminsignalifAntiKaonPSecondary;//antikaon
215
216TH2F* fHistminsignalifAntiProtonPSecondaryWD;//antiprotons comming from weak decays
217TH2F* fHistminsignalifAntiProtonPSecondaryHI;//antiprotons fakes comming from material
218TH2F* fHistminsignalifAntiProtonPSecondaryRest;//rest contamination
219
220TH2F* fHistminsignalifAntiProtonPSecondaryWDfake;//antiprotons fakes comming from weak decays
221TH2F* fHistminsignalifAntiProtonPSecondaryHIfake;//antiprotons fakes comming from material
222
223
224TH2F* fHistminsignalifMuEPositiveP;//mu+ positronium for pions
225TH2F* fHistminsignalifMuENegativeP;//mu- electrons for antipions
226
227 TH2F* fHistminsignalifPionPrimaryfake;//fake pions primary
228 TH2F* fHistminsignalifKaonPrimaryfake;//fake kaons primary
229
230 TH2F* fHistminsignalifAntiPionPrimaryfake;//fake antipions primary
231 TH2F* fHistminsignalifAntiKaonPrimaryfake;//fake antikaons primary
232
233
234 TH2F* fHistminsignalifPionSecondaryfake;//fake pions
235 TH2F* fHistminsignalifKaonSecondaryfake;//fake kaons
236
237 TH2F* fHistminsignalifAntiPionSecondaryfake;//fake antipions
238 TH2F* fHistminsignalifAntiKaonSecondaryfake;//fake antikaons
239
240
241 //MC particles from Events passing ESD event cuts only pt
242TH1F* fHistminsignalifPionPMCPrimary;//Pions
243TH1F* fHistminsignalifKaonPMCPrimary;//Kaons
244TH1F* fHistminsignalifProtonPMCPrimary;//Protons
245
246TH1F* fHistminsignalifAntiPionPMCPrimary;//AntiPions
247TH1F* fHistminsignalifAntiKaonPMCPrimary;//AntiKaons
248TH1F* fHistminsignalifAntiProtonPMCPrimary;//AntiProtons
249
250
251//MC particles from all MC events
252TH1F* fHistminsignalifPionPMCPrimaryBeforeEventCuts;//Pions
253TH1F* fHistminsignalifKaonPMCPrimaryBeforeEventCuts;//Kaons
254TH1F* fHistminsignalifProtonPMCPrimaryBeforeEventCuts;//Protons
255
256TH1F* fHistminsignalifAntiPionPMCPrimaryBeforeEventCuts;//AntiPions
257TH1F* fHistminsignalifAntiKaonPMCPrimaryBeforeEventCuts;//AntiKaons
258TH1F* fHistminsignalifAntiProtonPMCPrimaryBeforeEventCuts;//AntiProtons
259
260//MC particles from all MC events with good vertex in z
261TH1F* fHistminsignalifPionPMCPrimaryBeforeEventCutswithgoodZvertex;//Pions
262TH1F* fHistminsignalifKaonPMCPrimaryBeforeEventCutswithgoodZvertex;//Kaons
263TH1F* fHistminsignalifProtonPMCPrimaryBeforeEventCutswithgoodZvertex;//Protons
264
265TH1F* fHistminsignalifAntiPionPMCPrimaryBeforeEventCutswithgoodZvertex;//AntiPions
266TH1F* fHistminsignalifAntiKaonPMCPrimaryBeforeEventCutswithgoodZvertex;//AntiKaons
267TH1F* fHistminsignalifAntiProtonPMCPrimaryBeforeEventCutswithgoodZvertex;//AntiProtons
268
269
270//MC particles from MC events which ESD event go trought physics selection and has vertex
271TH1F* fHistminsignalifPionPMCPrimaryAfterEventCutsBeforeVertexZ;//Pions
272TH1F* fHistminsignalifKaonPMCPrimaryAfterEventCutsBeforeVertexZ;//Kaons
273TH1F* fHistminsignalifProtonPMCPrimaryAfterEventCutsBeforeVertexZ;//Protons
274
275TH1F* fHistminsignalifAntiPionPMCPrimaryAfterEventCutsBeforeVertexZ;//AntiPions
276TH1F* fHistminsignalifAntiKaonPMCPrimaryAfterEventCutsBeforeVertexZ;//AntiKaons
277TH1F* fHistminsignalifAntiProtonPMCPrimaryAfterEventCutsBeforeVertexZ;//AntiProtons
278
279
280//DCA distributions for different parctiles after dca cuts
281
282TH3F* fDCAXYZforcleanPionsMCPrimary;//primary pions
283TH3F* fDCAXYZforcleanAntiPionsMCPrimary;//primary antipions
284TH3F* fDCAXYZforcleanProtonsMCPrimary;//primary protons
285TH3F* fDCAXYZforcleanAntiProtonsMCPrimary;//primary antiprotons
286
287//Secondrary Pions weak deacy
288TH3F* fDCAXYZforcleanPionsWD;//pions
289TH3F* fDCAXYZforcleanAntiPionsWD;// antipions
290
291//Secondrary Protons weak deacy + fakes
292TH3F* fDCAXYZforcleanProtonsWD;//protons
293TH3F* fDCAXYZforcleanAntiProtonsWD;//antiprotons
294
295//Secondrary Pions Hadronic
296TH3F* fDCAXYZforcleanPionsHI;//pions
297TH3F* fDCAXYZforcleanAntiPionsHI;//antipions
298
299//Secondrary Protons Hadronic+fakes
300TH3F* fDCAXYZforcleanProtonsHI;//pions
301TH3F* fDCAXYZforcleanAntiProtonsHI;//antipions
302
303//Secondrary Pions mu el
304TH3F* fDCAXYZforcleanPionsMEPrimary;//posvitive
305TH3F* fDCAXYZforcleanAntiPionsMEPrimary;//negative
306TH3F* fDCAXYZforcleanPionsMESecondary;//posvitive
307TH3F* fDCAXYZforcleanAntiPionsMESecondary;//negative
308
309//Secondrary Pions rest source
310TH3F* fDCAXYZforcleanPionsR;//positive
311TH3F* fDCAXYZforcleanAntiPionsR;//negative
312
313//Secondrary Protons rest
314TH3F* fDCAXYZforcleanProtonsR;//positive
315TH3F* fDCAXYZforcleanAntiProtonsR;//negative
316
317
318//DCA distributions for different parctiles before dca cuts
319
320TH3F* fDCAXYZOpenforcleanPionsMCPrimary;//primary pions
321TH3F* fDCAXYZOpenforcleanAntiPionsMCPrimary;//primary antipions
322TH3F* fDCAXYZOpenforcleanProtonsMCPrimary;//primary protons
323TH3F* fDCAXYZOpenforcleanAntiProtonsMCPrimary;//primary antiprotons
324
325//Secondrary Pions weak deacy
326TH3F* fDCAXYZOpenforcleanPionsWD;//pions
327TH3F* fDCAXYZOpenforcleanAntiPionsWD;// antipions
328
329//Secondrary Protons weak deacy + fakes
330TH3F* fDCAXYZOpenforcleanProtonsWD;//protons
331TH3F* fDCAXYZOpenforcleanAntiProtonsWD;//antiprotons
332
333//Secondrary Pions Hadronic
334TH3F* fDCAXYZOpenforcleanPionsHI;//pions
335TH3F* fDCAXYZOpenforcleanAntiPionsHI;//antipions
336
337//Secondrary Protons Hadronic+fakes
338TH3F* fDCAXYZOpenforcleanProtonsHI;//pions
339TH3F* fDCAXYZOpenforcleanAntiProtonsHI;//antipions
340
341//Secondrary Pions mu el
342TH3F* fDCAXYZOpenforcleanPionsMEPrimary;//posvitive
343TH3F* fDCAXYZOpenforcleanAntiPionsMEPrimary;//negative
344TH3F* fDCAXYZOpenforcleanPionsMESecondary;//posvitive
345TH3F* fDCAXYZOpenforcleanAntiPionsMESecondary;//negative
346
347//Secondrary Pions rest source
348TH3F* fDCAXYZOpenforcleanPionsR;//positive
349TH3F* fDCAXYZOpenforcleanAntiPionsR;//negative
350
351//Secondrary Protons rest
352TH3F* fDCAXYZOpenforcleanProtonsR;//positive
353TH3F* fDCAXYZOpenforcleanAntiProtonsR;//negative
354
355
356
357
358//Electron Muon source procces
359TH2F* fElectronsource; //e+
360TH2F* fAntiElectronsource;//e-
361
362TH2F* fMuonsource;//mu+
363TH2F* fAntiMuonsource;//mu-
364
365//N tpc clusters for
366TH2F* fPionNTPCClusters; //pions tracks
367TH2F* fAntiPionNTPCClusters;//antipions tracks
368
369TH2F* fKaonNTPCClusters; //Kaons tracks
370TH2F* fAntiKaonNTPCClusters;//antiKaons tracks
371
372TH2F* fProtonNTPCClusters; //Protons tracks
373TH2F* fAntiProtonNTPCClusters;//antiProtons tracks
374
375TH2F* fPionchi2; //pions tracks
376TH2F* fAntiPionchi2;//antipions tracks
377
378TH2F* fKaonchi2; //Kaons tracks
379TH2F* fAntiKaonchi2;//antiKaons tracks
380
381TH2F* fProtonchi2; //Protons tracks
382TH2F* fAntiProtonchi2;//antiProtons tracks
383
384
385TH2F* fTracksCutmonitoring;// Number of tracks as fun of pt on each step of selection
386TH3F* fParticlesCutmonitoring;//Number of as particles as fun of pt on each step of selection x 0-pion 1-kaon,2-proton,3-antipion,4-antikaon,5-antiproton
387TH3F* fVertexshift; //shift of the vertex due to reconstruction
388
389TH3F* fPtESDminusPtMCvPtESDafterallcuts;//ptESD -ptMC v ptESD after all cuts
390TH3F* fPtESDminusPtMCvPtESDafterTPCcuts;//ptESD - ptMC v ptESD after TPC cuts (refit,chi2,nclus);
391
392TH3F* fMulESDMulMCVz;//Multiplicty ESD Multiplicty MC Vrt Z
393
394
395
396//TPC pid objects
397AliESDpidCuts* fTPCPIDCUT;//cut
398AliESDpid* fESDpid; // global thing
399
400TH1F* fPrimaryElectronsMother; //name says all
401
402
403
404
405
406 TList *flist;//output list
407
408 AliAnalysisChargedHadronSpectraITSTruncatedMeanTask(const AliAnalysisChargedHadronSpectraITSTruncatedMeanTask&); // not implemented
409AliAnalysisChargedHadronSpectraITSTruncatedMeanTask& operator=(const AliAnalysisChargedHadronSpectraITSTruncatedMeanTask&); // not implemented
410
411
412 Float_t MyITSsignalusing4points(Double_t* const) const;
413 Float_t MyITSsignalusing3points(Double_t* const) const;
414void CorrectSDD(Double_t *tmpQESD) const;
415void CorrectSSD(Double_t *tmpQESD) const;
416 Bool_t SelectOnImpPar(AliESDtrack* const t) const;
417 Float_t GetWeight(Int_t type,AliStack* const stack) const;
418
419
420
388bf048 421
e1b3d73c 422 ClassDef(AliAnalysisChargedHadronSpectraITSTruncatedMeanTask, 2); // example of analysis
423};
424
425#endif