1 //Class to extract data to do ITS+TPC global Spectra
2 //Autor Marek Chojnacki
3 //emali Marek.Chojnacki@cern.ch
5 //last line of comments
8 #include "AliAnalysisChargedHadronSpectraITSTruncatedMeanTask.h"
9 #include "AliAnalysisManager.h"
11 #include "AliESDEvent.h"
14 //#include "AliESDtrack.h"
16 #include "Riostream.h"
17 #include "AliInputEventHandler.h"
19 //#include "AliMCEventHandler.h"
20 #include "AliMCEvent.h"
27 //#include "TMCProcess.h"
28 #include "AliVEvent.h"
30 #include "AliESDtrackCuts.h"
31 //#include "AliESDpidCuts.h"
32 //#include "AliESDpid.h"
33 #include "AliCentrality.h"
35 class AliMCEventHandler;
39 ClassImp(AliAnalysisChargedHadronSpectraITSTruncatedMeanTask)
41 //________________________________________________________________________
42 AliAnalysisChargedHadronSpectraITSTruncatedMeanTask::AliAnalysisChargedHadronSpectraITSTruncatedMeanTask(const char *name)
43 :AliAnalysisTaskSE(name),fESD(0),fCuts(0),fCutsMul(0),fMC(0),
44 fLowMultiplicity(-1),fUpMultiplicity(-1),fLowCentrality(-10.0),fUpCentrality(-10.0),
45 fYCut(100.0),fsigmacut(3.0),fnsigmaxy(7.0),fnsigmaz(5.0),fchargeCut(0.0),
46 fCorrectSDD(0),fCorrectSSD(0),fHIsettings(0),fdovertexrescuts(0),
47 fK0weight(0),flambdaweight(0),fAntilambdaweight(0),
48 fHistStats(0),fHistZVertexBeforeCut(0),fHistZVertexAfterCut(0),fHistXYVertexBeforeCut(0),fHistXYVertexAfterCut(0),
49 fHistPhiPtBeforeCuts(0),fHistPhiPtAfterCuts(0),fHistEtaPtBeforeCuts(0),fHistEtaPtAfterCuts(0),fHistDCABeforeCuts(0),fHistDCAAfterCuts(0),
50 fHistPminusTPCinPAfterCuts(0),fHistPminusTPCinPglobalAfterCuts(0),
51 fHistMydEPpositive(0),fHistMydETPCinPpositive(0),fHistMydETPCinPglobalpositive(0),
52 fHistMydEPnegative(0),fHistMydETPCinPnegative(0),fHistMydETPCinPglobalnegative(0),
53 fHistL3dEP(0),fHistL4dEP(0),fHistL5dEP(0),fHistL6dEP(0),fHistL3dETPCinP(0),
54 fHistL4dETPCinP(0),fHistL5dETPCinP(0),fHistL6dETPCinP(0),fHistwhichhasmin(0),fHistMysignalminusESD(0),
55 fHistminsignalifPionP(0),fHistminsignalifKaonP(0),fHistminsignalifProtonP(0),fHistminsignalifAntiPionP(0),fHistminsignalifAntiKaonP(0),fHistminsignalifAntiProtonP(0),
56 fDCAXYZforcleanPions(0),fDCAXYZforcleanAntiPions(0),fDCAXYZforcleanProtons(0),fDCAXYZforcleanAntiProtons(0),
57 fDCAXYZOpenforcleanPions(0),fDCAXYZOpenforcleanAntiPions(0),fDCAXYZOpenforcleanProtons(0),fDCAXYZOpenforcleanAntiProtons(0),
58 fHistNtrackwithstandardcuts(0),fHistNtrackwithITSPIDcuts(0),
59 fHistSignalinTPCKaonforstandardcuts(0),fHistSignalinTPCKaonforITSPIDcuts(0),fHistSignalinTPCAntiKaonforstandardcuts(0),fHistSignalinTPCAntiKaonforITSPIDcuts(0),
60 fHistSignalinTPCProtonforstandardcuts(0),fHistSignalinTPCProtonforITSPIDcuts(0),fHistSignalinTPCAntiProtonforstandardcuts(0),fHistSignalinTPCAntiProtonforITSPIDcuts(0),
61 fHistStandartMul(0),fHistMytrackMul(0),
62 fHistminsignalifPionPPrimary(0),fHistminsignalifKaonPPrimary(0),fHistminsignalifProtonPPrimary(0),fHistminsignalifProtonPPrimaryfake(0),
63 fHistminsignalifAntiPionPPrimary(0),fHistminsignalifAntiKaonPPrimary(0),fHistminsignalifAntiProtonPPrimary(0),fHistminsignalifAntiProtonPPrimaryfake(0),
64 fHistminsignalifPionPSecondary(0),fHistminsignalifKaonPSecondary(0),
65 fHistminsignalifProtonPSecondaryWD(0),fHistminsignalifProtonPSecondaryHI(0),fHistminsignalifProtonPSecondaryRest(0),
66 fHistminsignalifProtonPSecondaryWDfake(0),fHistminsignalifProtonPSecondaryHIfake(0),
67 fHistminsignalifAntiPionPSecondary(0),fHistminsignalifAntiKaonPSecondary(0),
68 fHistminsignalifAntiProtonPSecondaryWD(0),fHistminsignalifAntiProtonPSecondaryHI(0), fHistminsignalifAntiProtonPSecondaryRest(0),
69 fHistminsignalifAntiProtonPSecondaryWDfake(0),fHistminsignalifAntiProtonPSecondaryHIfake(0),
70 fHistminsignalifMuEPositiveP(0),fHistminsignalifMuENegativeP(0),
71 fHistminsignalifPionPrimaryfake(0),fHistminsignalifKaonPrimaryfake(0),fHistminsignalifAntiPionPrimaryfake(0),fHistminsignalifAntiKaonPrimaryfake(0),
72 fHistminsignalifPionSecondaryfake(0),fHistminsignalifKaonSecondaryfake(0),fHistminsignalifAntiPionSecondaryfake(0),fHistminsignalifAntiKaonSecondaryfake(0),
73 fHistminsignalifPionPMCPrimary(0),fHistminsignalifKaonPMCPrimary(0),fHistminsignalifProtonPMCPrimary(0),
74 fHistminsignalifAntiPionPMCPrimary(0),fHistminsignalifAntiKaonPMCPrimary(0),fHistminsignalifAntiProtonPMCPrimary(0),
75 fHistminsignalifPionPMCPrimaryBeforeEventCuts(0),fHistminsignalifKaonPMCPrimaryBeforeEventCuts(0),fHistminsignalifProtonPMCPrimaryBeforeEventCuts(0),
76 fHistminsignalifAntiPionPMCPrimaryBeforeEventCuts(0),fHistminsignalifAntiKaonPMCPrimaryBeforeEventCuts(0),fHistminsignalifAntiProtonPMCPrimaryBeforeEventCuts(0),
77 fHistminsignalifPionPMCPrimaryBeforeEventCutswithgoodZvertex(0),fHistminsignalifKaonPMCPrimaryBeforeEventCutswithgoodZvertex(0),fHistminsignalifProtonPMCPrimaryBeforeEventCutswithgoodZvertex(0),
78 fHistminsignalifAntiPionPMCPrimaryBeforeEventCutswithgoodZvertex(0),fHistminsignalifAntiKaonPMCPrimaryBeforeEventCutswithgoodZvertex(0),fHistminsignalifAntiProtonPMCPrimaryBeforeEventCutswithgoodZvertex(0),
79 fHistminsignalifPionPMCPrimaryAfterEventCutsBeforeVertexZ(0),fHistminsignalifKaonPMCPrimaryAfterEventCutsBeforeVertexZ(0),fHistminsignalifProtonPMCPrimaryAfterEventCutsBeforeVertexZ(0),
80 fHistminsignalifAntiPionPMCPrimaryAfterEventCutsBeforeVertexZ(0),fHistminsignalifAntiKaonPMCPrimaryAfterEventCutsBeforeVertexZ(0),fHistminsignalifAntiProtonPMCPrimaryAfterEventCutsBeforeVertexZ(0),
81 fDCAXYZforcleanPionsMCPrimary(0),fDCAXYZforcleanAntiPionsMCPrimary(0),fDCAXYZforcleanProtonsMCPrimary(0),fDCAXYZforcleanAntiProtonsMCPrimary(0),
82 fDCAXYZforcleanPionsWD(0),fDCAXYZforcleanAntiPionsWD(0),fDCAXYZforcleanProtonsWD(0), fDCAXYZforcleanAntiProtonsWD(0),fDCAXYZforcleanPionsHI(0),fDCAXYZforcleanAntiPionsHI(0),
83 fDCAXYZforcleanProtonsHI(0),fDCAXYZforcleanAntiProtonsHI(0),fDCAXYZforcleanPionsMEPrimary(0),fDCAXYZforcleanAntiPionsMEPrimary(0),fDCAXYZforcleanPionsMESecondary(0),fDCAXYZforcleanAntiPionsMESecondary(0),fDCAXYZforcleanPionsR(0),fDCAXYZforcleanAntiPionsR(0),fDCAXYZforcleanProtonsR(0),fDCAXYZforcleanAntiProtonsR(0),
84 fDCAXYZOpenforcleanPionsMCPrimary(0),fDCAXYZOpenforcleanAntiPionsMCPrimary(0),fDCAXYZOpenforcleanProtonsMCPrimary(0),fDCAXYZOpenforcleanAntiProtonsMCPrimary(0),
85 fDCAXYZOpenforcleanPionsWD(0),fDCAXYZOpenforcleanAntiPionsWD(0),fDCAXYZOpenforcleanProtonsWD(0), fDCAXYZOpenforcleanAntiProtonsWD(0),fDCAXYZOpenforcleanPionsHI(0),fDCAXYZOpenforcleanAntiPionsHI(0),
86 fDCAXYZOpenforcleanProtonsHI(0),fDCAXYZOpenforcleanAntiProtonsHI(0),fDCAXYZOpenforcleanPionsMEPrimary(0),fDCAXYZOpenforcleanAntiPionsMEPrimary(0),fDCAXYZOpenforcleanPionsMESecondary(0),fDCAXYZOpenforcleanAntiPionsMESecondary(0),fDCAXYZOpenforcleanPionsR(0),fDCAXYZOpenforcleanAntiPionsR(0),fDCAXYZOpenforcleanProtonsR(0),fDCAXYZOpenforcleanAntiProtonsR(0),
87 fElectronsource(0),fAntiElectronsource(0),
88 fMuonsource(0),fAntiMuonsource(0),
89 fPionNTPCClusters(0),fAntiPionNTPCClusters(0),fKaonNTPCClusters(0),fAntiKaonNTPCClusters(0),fProtonNTPCClusters(0),fAntiProtonNTPCClusters(0),
90 fPionchi2(0),fAntiPionchi2(0),fKaonchi2(0),fAntiKaonchi2(0),fProtonchi2(0),fAntiProtonchi2(0),
91 fTracksCutmonitoring(0),fParticlesCutmonitoring(0),fVertexshift(0),fPtESDminusPtMCvPtESDafterallcuts(0),fPtESDminusPtMCvPtESDafterTPCcuts(0),fMulESDMulMCVz(0),
92 fTPCPIDCUT(0), fESDpid(0),fPrimaryElectronsMother(0),
96 fESDpid=new AliESDpid();
97 // fESDpid->GetTPCResponse().SetBetheBlochParameters(0.0283086,2.63394e+01,5.04114e-11,2.12543e+00,4.88663e+00);
98 fESDpid->GetTPCResponse().SetBetheBlochParameters(1.28949/50., 2.74095e+01, TMath::Exp(-3.21763e+01), 2.44026, 6.58800);
102 fCutsMul=new AliESDtrackCuts("Mul","Mul");
103 fCutsMul->SetMinNClustersTPC(70);
104 fCutsMul->SetMaxChi2PerClusterTPC(4);
105 fCutsMul->SetAcceptKinkDaughters(kFALSE);
106 fCutsMul->SetRequireTPCRefit(kTRUE);
108 fCutsMul->SetRequireITSRefit(kTRUE);
109 fCutsMul->SetClusterRequirementITS(AliESDtrackCuts::kSPD,
110 AliESDtrackCuts::kAny);
111 fCutsMul->SetMaxDCAToVertexXYPtDep("0.0182+0.0350/pt^1.01");
113 fCutsMul->SetMaxDCAToVertexZ(2);
114 fCutsMul->SetDCAToVertex2D(kFALSE);
115 fCutsMul->SetRequireSigmaToVertex(kFALSE);
117 fCutsMul->SetEtaRange(-0.8,+0.8);
118 fCutsMul->SetPtRange(0.15, 1e10);
126 fdcazpar[2]=1.114758;
132 Printf("end of AliAnalysisChargedHadronSpectraITSTruncatedMeanTask");
133 DefineOutput(1, TList::Class());
137 //________________________________________________________________________
138 void AliAnalysisChargedHadronSpectraITSTruncatedMeanTask::UserCreateOutputObjects()
140 //UserCreateOutputObject
141 Printf("AliAnalysisChargedHadronSpectraITSTruncatedMeanTask UserCreateOutputObjects");
152 const Int_t npredec=50;
153 Double_t tabx[ndec*npredec+1];
154 for (Int_t i=0;i<ndec;i++)
156 for (Int_t j=0;j<npredec;j++)
158 tabx[npredec*i+j]=TMath::Power(10,((Double_t)i)+((Double_t)startvalue)+((Double_t)j)/((Double_t)npredec));
161 tabx[ndec*npredec]=TMath::Power(10,ndec+startvalue);
164 const Double_t jump=1.5;
165 const Double_t starty=0.0;
169 Double_t binsPtDummy[kPtBins+1];
171 for(int i=1;i<=kPtBins+1;i++)
173 if(binsPtDummy[i-1]+0.05<1.01)
174 binsPtDummy[i]=binsPtDummy[i-1]+0.05;
176 binsPtDummy[i]=binsPtDummy[i-1]+0.1;
178 //{0., 0.05, 0.1, 0.15, 0.2, 0.25, 0.3, 0.35, 0.4, 0.45, 0.5, 0.55, 0.6, 0.65, 0.7, 0.75, 0.8, 0.85, 0.9, 0.95, 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.7, 1.8, 1.9, 2.0};
181 fHistStats=new TH1F("StatsHist","StatsHist",10,-0.5,9.5);
182 fHistStats->GetXaxis()->SetBinLabel(1,"Nevents");
183 fHistStats->GetXaxis()->SetBinLabel(2,"Nevents_physics");
184 fHistStats->GetXaxis()->SetBinLabel(3,"Nevents_physics_with_good_SPD_vertex");
185 fHistStats->GetXaxis()->SetBinLabel(4,"Nevents_physics_with_good_SPD_vertex_and_|z|<10.0");
186 fHistStats->GetXaxis()->SetBinLabel(5,"N_tracks_with_3_or_4_in_SSD_SDD");
187 fHistStats->GetXaxis()->SetBinLabel(6,"N_tracks_with_3_or_4_with_goodq_in_SSD_SDD");
188 fHistStats->GetXaxis()->SetBinLabel(7,"e_in_pi");
189 fHistStats->GetXaxis()->SetBinLabel(8,"mu_in_pi");
190 fHistStats->GetXaxis()->SetBinLabel(9,"MC_event");
191 fHistStats->GetXaxis()->SetBinLabel(10,"MC_event_with_z<10.0");
192 flist->Add(fHistStats);
194 fHistZVertexBeforeCut=new TH1F("HistZVertexBeforeCut","ZVertex;z[cm];N_{counts}",400,-20,20);
195 flist->Add(fHistZVertexBeforeCut);
196 fHistZVertexAfterCut=new TH1F("HistZVertexAfterCut","ZVertex;z[cm];N_{counts}",400,-20,20);
197 flist->Add(fHistZVertexAfterCut);
198 fHistXYVertexBeforeCut=new TH2F("HistXYVertexBeforeCut","XYVertex;x[cm];y[cm];N_{conuts}",100,-0.4,0.4,100,-0.4,0.4);
199 flist->Add(fHistXYVertexBeforeCut);
200 fHistXYVertexAfterCut=new TH2F("HistXYVertexAfterCut","XYVertex;x[cm];y[cm];N_{conuts}",100,-0.4,0.4,100,-0.4,0.4);
201 flist->Add(fHistXYVertexAfterCut);
203 fHistPhiPtBeforeCuts=new TH2F("HistPhiPtBeforeCuts",";#phi;pt[GeV/c]",70,0,2.0*TMath::Pi(),nptbins,-1.0*ptmax,ptmax);
204 flist->Add(fHistPhiPtBeforeCuts);
206 fHistPhiPtAfterCuts=new TH2F("HistPhiPtAfterCuts",";#phi;pt[GeV/c]",70,0,2.0*TMath::Pi(),nptbins,-1.0*ptmax,ptmax);
207 flist->Add(fHistPhiPtAfterCuts);
209 fHistEtaPtBeforeCuts=new TH2F("HistEtaPtBeforeCuts",";#eta;pt[GeV/c]",netabins,-1.0*etamax,etamax,nptbins,-1.0*ptmax,ptmax);//eta pt
210 flist->Add(fHistEtaPtBeforeCuts);
212 fHistEtaPtAfterCuts=new TH2F("HistEtaPtAfterCuts",";#eta;pt[GeV/c]",netabins,-1.0*etamax,etamax,nptbins,-1.0*ptmax,ptmax);//eta pt
213 flist->Add(fHistEtaPtAfterCuts);
215 fHistDCABeforeCuts=new TH2F("HistDCABeforeCut",";dcaxy[cm];dcaz[cm]",100,-1.0*dcamax,dcamax,100,-1.0*dcamax,1.0*dcamax);
216 flist->Add(fHistDCABeforeCuts);
218 fHistDCAAfterCuts=new TH2F("HistDCAAfterCut",";dcaxy[cm];dcaz[cm]",100,-1.0*dcamax,dcamax,100,-1.0*dcamax,1.0*dcamax);
219 flist->Add(fHistDCAAfterCuts);
222 fHistPminusTPCinPAfterCuts= new TH2F("HistPminusTPCinPVPTPCinAfterCuts",";P-PTPCin [GeV/c];PTPCin",100,-0.5,0.5,ndec*npredec,tabx);
223 flist->Add(fHistPminusTPCinPAfterCuts);
225 fHistPminusTPCinPglobalAfterCuts= new TH2F("HistPminusTPCinPVPTPCinglobalAfterCuts",";P-PTPCinglobal [GeV/c];PTPCin",100,-0.5,0.5,ndec*npredec,tabx);
226 flist->Add(fHistPminusTPCinPglobalAfterCuts);
228 fHistMydEPpositive=new TH2F("HistMydEPpositive",";P[GeV/c];dE[in 300#mum]",ndec*npredec,tabx,ny,starty,ny*jump+starty);
229 flist->Add(fHistMydEPpositive);
231 fHistMydETPCinPpositive=new TH2F("HistMydETPCinPpositive",";P[GeV/c];dE[in 300#mum]",ndec*npredec,tabx,ny,starty,ny*jump+starty);
232 flist->Add(fHistMydETPCinPpositive);
234 fHistMydETPCinPglobalpositive=new TH2F("HistMydETPCinPglobalpositive",";P[GeV/c];dE[in 300#mum]",ndec*npredec,tabx,ny,starty,ny*jump+starty);
235 flist->Add(fHistMydETPCinPglobalpositive);
237 fHistMydEPnegative=new TH2F("HistMydEPnegative",";P[GeV/c];dE[in 300#mum]",ndec*npredec,tabx,ny,starty,ny*jump+starty);
238 flist->Add(fHistMydEPnegative);
240 fHistMydETPCinPnegative=new TH2F("HistMydETPCinPnegative",";P[GeV/c];dE[in 300#mum]",ndec*npredec,tabx,ny,starty,ny*jump+starty);
241 flist->Add(fHistMydETPCinPnegative);
243 fHistMydETPCinPglobalnegative=new TH2F("HistMydETPCinPglobalnegative",";P[GeV/c];dE[in 300#mum]",ndec*npredec,tabx,ny,starty,ny*jump+starty);
244 flist->Add(fHistMydETPCinPglobalnegative);
247 fHistL3dEP=new TH2F("HistL3dEP",";P[GeV/c];dE[in 300#mum]",ndec*npredec,tabx,ny,starty,ny*jump+starty);
248 flist->Add(fHistL3dEP);
250 fHistL4dEP=new TH2F("HistL4dEP",";P[GeV/c];dE[in 300#mum]",ndec*npredec,tabx,ny,starty,ny*jump+starty);
251 flist->Add(fHistL4dEP);
253 fHistL5dEP=new TH2F("HistL5dEP",";P[GeV/c];dE[in 300#mum]",ndec*npredec,tabx,ny,starty,ny*jump+starty);
254 flist->Add(fHistL5dEP);
256 fHistL6dEP=new TH2F("HistL6dEP",";P[GeV/c];dE[in 300#mum]",ndec*npredec,tabx,ny,starty,ny*jump+starty);
257 flist->Add(fHistL6dEP);
259 fHistL3dETPCinP=new TH2F("HistL3dETPCinP",";P[GeV/c];dE[in 300#mum]",ndec*npredec,tabx,ny,starty,ny*jump+starty);
260 flist->Add(fHistL3dETPCinP);
262 fHistL4dETPCinP=new TH2F("HistL4dETPCinP",";P[GeV/c];dE[in 300#mum]",ndec*npredec,tabx,ny,starty,ny*jump+starty);
263 flist->Add(fHistL4dETPCinP);
265 fHistL5dETPCinP=new TH2F("HistL5dETPCinP",";P[GeV/c];dE[in 300#mum]",ndec*npredec,tabx,ny,starty,ny*jump+starty);
266 flist->Add(fHistL5dETPCinP);
268 fHistL6dETPCinP=new TH2F("HistL6dETPCinP",";P[GeV/c];dE[in 300#mum]",ndec*npredec,tabx,ny,starty,ny*jump+starty);
269 flist->Add(fHistL6dETPCinP);
273 fHistwhichhasmin=new TH2F("Histwhichhasmin","Histwhichhasmin;L;Q",4,-0.5,3.5,100,0,1000);
274 fHistwhichhasmin->GetXaxis()->SetBinLabel(1,"SDD1");
275 fHistwhichhasmin->GetXaxis()->SetBinLabel(2,"SDD2");
276 fHistwhichhasmin->GetXaxis()->SetBinLabel(3,"SSD1");
277 fHistwhichhasmin->GetXaxis()->SetBinLabel(4,"SSD2");
278 flist->Add(fHistwhichhasmin);
279 fHistMysignalminusESD=new TH1F("HistMysignalminus","HistMysignalminus;my-ESD;N",100,-0.2,0.2);
280 flist->Add(fHistMysignalminusESD);
283 fHistminsignalifPionP=new TH2F("HistminsignalifPionP",";Pt[GeV/c];log(dE_real)-log(dE_fit)",kPtBins,binsPtDummy,ny,-4,4);
284 flist->Add(fHistminsignalifPionP);
285 fHistminsignalifKaonP=new TH2F("HistminsignalifKaonP",";Pt[GeV/c];log(dE_real)-log(dE_fit)",kPtBins,binsPtDummy,ny,-4,4);
286 flist->Add(fHistminsignalifKaonP);
287 fHistminsignalifProtonP=new TH2F("HistminsignalifProtonP",";Pt[GeV/c];log(dE_real)-log(dE_fit)",kPtBins,binsPtDummy,ny,-4,4);
288 flist->Add(fHistminsignalifProtonP);
291 fHistminsignalifAntiPionP=new TH2F("HistminsignalifAntiPionP",";Pt[GeV/c];log(dE_real)-log(dE_fit)",kPtBins,binsPtDummy,ny,-4,4);
292 flist->Add(fHistminsignalifAntiPionP);
293 fHistminsignalifAntiKaonP=new TH2F("HistminsignalifAntiKaonP",";Pt[GeV/c];log(dE_real)-log(dE_fit)",kPtBins,binsPtDummy,ny,-4,4);
294 flist->Add(fHistminsignalifAntiKaonP);
295 fHistminsignalifAntiProtonP=new TH2F("HistminsignalifAntiProtonP",";Pt[GeV/c];log(dE_real)-log(dE_fit)",kPtBins,binsPtDummy,ny,-4,4);
296 flist->Add(fHistminsignalifAntiProtonP);
298 Int_t kDCABins=20+2+40;
299 Double_t binsDCADummy[62+1]={-3.0,-2.7,-2.4,-2.1,-1.8,-1.5,-1.2,-0.9,-0.6,-0.3,-0.25,-0.2,-0.19,-0.18,-0.17,-0.16,-0.15,-0.14,-0.13,-0.12,-0.11,-0.10,-0.09,-0.08,-0.07,-0.06,-0.05,-0.04,-0.03,-0.02,-0.01,0.0,0.01,0.02,0.03,0.04,0.05,0.06,0.07,0.08,0.09,0.1,0.11,0.12,0.13,0.14,0.15,0.16,0.17,0.18,0.19,0.2,0.25,0.3,0.6,0.9,1.2,1.5,1.8,2.1,2.4,2.7,3.0};
304 fDCAXYZforcleanPions=new TH3F("fDCAXYZforcleanPions",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy);
305 flist->Add(fDCAXYZforcleanPions);
306 fDCAXYZforcleanAntiPions=new TH3F("fDCAXYZforcleanAntiPions",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy);
307 flist->Add(fDCAXYZforcleanAntiPions);
308 fDCAXYZforcleanProtons=new TH3F("fDCAXYZforcleanProtons",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy);
309 flist->Add(fDCAXYZforcleanProtons);
310 fDCAXYZforcleanAntiProtons=new TH3F("fDCAXYZforcleanAntiProtons",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy);
311 flist->Add(fDCAXYZforcleanAntiProtons);
314 fDCAXYZOpenforcleanPions=new TH3F("fDCAXYZOpenforcleanPions",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy);
315 flist->Add(fDCAXYZOpenforcleanPions);
316 fDCAXYZOpenforcleanAntiPions=new TH3F("fDCAXYZOpenforcleanAntiPions",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy);
317 flist->Add(fDCAXYZOpenforcleanAntiPions);
318 fDCAXYZOpenforcleanProtons=new TH3F("fDCAXYZOpenforcleanProtons",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy);
319 flist->Add(fDCAXYZOpenforcleanProtons);
320 fDCAXYZOpenforcleanAntiProtons=new TH3F("fDCAXYZOpenforcleanAntiProtons",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy);
321 flist->Add(fDCAXYZOpenforcleanAntiProtons);
323 fHistNtrackwithstandardcuts=new TH2F ("fHistNtrackwithstandardcuts",";Pt[GeV/c];type;counts",kPtBins,binsPtDummy,3,-0.5,2.5);
324 flist->Add(fHistNtrackwithstandardcuts);
325 fHistNtrackwithITSPIDcuts=new TH2F ("fHistNtrackwithITSPIDcuts",";Pt[GeV/c];type;counts",kPtBins,binsPtDummy,3,-0.5,2.5);
326 flist->Add(fHistNtrackwithITSPIDcuts);
329 fHistSignalinTPCKaonforstandardcuts= new TH2F("fHistSignalinTPCKaonforstandardcuts",";Pt[GeV/c];signal",kPtBins,binsPtDummy,100,-1.0,1.0) ;
330 flist->Add(fHistSignalinTPCKaonforstandardcuts);
331 fHistSignalinTPCKaonforITSPIDcuts= new TH2F("fHistSignalinTPCKaonforITSPIDcuts",";Pt[GeV/c];signal",kPtBins,binsPtDummy,100,-1.0,1.0) ;
332 flist->Add(fHistSignalinTPCKaonforITSPIDcuts);
334 fHistSignalinTPCAntiKaonforstandardcuts= new TH2F("fHistSignalinTPCAntiKaonforstandardcuts",";Pt[GeV/c];signal",kPtBins,binsPtDummy,100,-1.0,1.0) ;
335 flist->Add(fHistSignalinTPCAntiKaonforstandardcuts);
336 fHistSignalinTPCAntiKaonforITSPIDcuts= new TH2F("fHistSignalinTPCAntiKaonforITSPIDcuts",";Pt[GeV/c];signal",kPtBins,binsPtDummy,100,-1.0,1.0) ;
337 flist->Add(fHistSignalinTPCAntiKaonforITSPIDcuts);
339 fHistSignalinTPCProtonforstandardcuts= new TH2F("fHistSignalinTPCProtonforstandardcuts",";Pt[GeV/c];signal",kPtBins,binsPtDummy,100,-1.0,1.0) ;
340 flist->Add(fHistSignalinTPCProtonforstandardcuts);
341 fHistSignalinTPCProtonforITSPIDcuts= new TH2F("fHistSignalinTPCProtonforITSPIDcuts",";Pt[GeV/c];signal",kPtBins,binsPtDummy,100,-1.0,1.0) ;
342 flist->Add(fHistSignalinTPCProtonforITSPIDcuts);
345 fHistSignalinTPCAntiProtonforstandardcuts= new TH2F("fHistSignalinTPCAntiProtonforstandardcuts",";Pt[GeV/c];signal",kPtBins,binsPtDummy,100,-1.0,1.0) ;
346 flist->Add(fHistSignalinTPCAntiProtonforstandardcuts);
347 fHistSignalinTPCAntiProtonforITSPIDcuts= new TH2F("fHistSignalinTPCAntiProtonforITSPIDcuts",";Pt[GeV/c];signal",kPtBins,binsPtDummy,100,-1.0,1.0) ;
348 flist->Add(fHistSignalinTPCAntiProtonforITSPIDcuts);
350 fPionNTPCClusters=new TH2F("fPionNTPCClusters","fPionNTPCClusters;Pt [GeV/c];NClusters",kPtBins,binsPtDummy,20,60,160);
351 flist->Add(fPionNTPCClusters);
352 fAntiPionNTPCClusters=new TH2F("fAntiPionNTPCClusters","fAntiPionNTPCClusters;Pt [GeV/c];NClusters",kPtBins,binsPtDummy,20,60,160);
353 flist->Add(fAntiPionNTPCClusters);
354 fKaonNTPCClusters=new TH2F("fKaonNTPCClusters","fKaonNTPCClusters;Pt [GeV/c];NClusters",kPtBins,binsPtDummy,20,60,160);
355 flist->Add(fKaonNTPCClusters);
356 fAntiKaonNTPCClusters=new TH2F("fAntiKaonNTPCClusters","fAntiKaonNTPCClusters;Pt [GeV/c];NClusters",kPtBins,binsPtDummy,20,60,160);
357 flist->Add(fAntiKaonNTPCClusters);
358 fProtonNTPCClusters=new TH2F("fProtonNTPCClusters","fProtonNTPCClusters;Pt [GeV/c];NClusters",kPtBins,binsPtDummy,20,60,160);
359 flist->Add(fProtonNTPCClusters);
360 fAntiProtonNTPCClusters=new TH2F("fAntiProtonNTPCClusters","fAntiProtonNTPCClusters;Pt [GeV/c];NClusters",kPtBins,binsPtDummy,20,60,160);
361 flist->Add(fAntiProtonNTPCClusters);
364 fPionchi2=new TH2F("fPionchi2","fPionchi2;Pt [GeV/c];NClusters",kPtBins,binsPtDummy,20,0,6);
365 flist->Add(fPionchi2);
366 fAntiPionchi2=new TH2F("fAntiPionchi2","fAntiPionchi2;Pt [GeV/c];NClusters",kPtBins,binsPtDummy,20,0,6);
367 flist->Add(fAntiPionchi2);
368 fKaonchi2=new TH2F("fKaonchi2","fKaonchi2;Pt [GeV/c];NClusters",kPtBins,binsPtDummy,20,0,6);
369 flist->Add(fKaonchi2);
370 fAntiKaonchi2=new TH2F("fAntiKaonchi2","fAntiKaonchi2;Pt [GeV/c];NClusters",kPtBins,binsPtDummy,20,0,6);
371 flist->Add(fAntiKaonchi2);
372 fProtonchi2=new TH2F("fProtonchi2","fProtonchi2;Pt [GeV/c];NClusters",kPtBins,binsPtDummy,20,0,6);
373 flist->Add(fProtonchi2);
374 fAntiProtonchi2=new TH2F("fAntiProtonchi2","fAntiProtonchi2;Pt [GeV/c];NClusters",kPtBins,binsPtDummy,20,0,6);
375 flist->Add(fAntiProtonchi2);
379 fHistStandartMul=new TH1F("fHistStandartMul",";Ntracks;counts",300,0,3000);
380 flist->Add(fHistStandartMul);
381 fHistMytrackMul=new TH1F("fHistMytrackMul",";Ntracks;counts",300,0,3000);
382 flist->Add(fHistMytrackMul);
386 fHistStandartMul=new TH1F("fHistStandartMul",";Ntracks;counts",300,0,300);
387 flist->Add(fHistStandartMul);
388 fHistMytrackMul=new TH1F("fHistMytrackMul",";Ntracks;counts",300,0,300);
389 flist->Add(fHistMytrackMul);
391 fTracksCutmonitoring=new TH2F("fTracksCutmonitoring",";cut;pt[GeV/c];N_{entries}",4,0.5,4.5,kPtBins,binsPtDummy);
392 fTracksCutmonitoring->GetXaxis()->SetBinLabel(1,"TPCin");
393 fTracksCutmonitoring->GetXaxis()->SetBinLabel(2,"standard");
394 fTracksCutmonitoring->GetXaxis()->SetBinLabel(3,"ITSpid");
395 fTracksCutmonitoring->GetXaxis()->SetBinLabel(4,"DCA");
396 flist->Add(fTracksCutmonitoring);
401 Printf("end of CreateOutputObjects no MC");
408 fHistminsignalifPionPPrimary=new TH2F("HistminsignalifPionPPrimary",";Pt[GeV/c];log(dE_real)-log(dE_fit)",kPtBins,binsPtDummy,ny,-4,4);
409 flist->Add(fHistminsignalifPionPPrimary);
410 fHistminsignalifKaonPPrimary=new TH2F("HistminsignalifKaonPPrimary",";Pt[GeV/c];log(dE_real)-log(dE_fit)",kPtBins,binsPtDummy,ny,-4,4);
411 flist->Add(fHistminsignalifKaonPPrimary);
412 fHistminsignalifProtonPPrimary=new TH2F("HistminsignalifProtonPPrimary",";Pt[GeV/c];log(dE_real)-log(dE_fit)",kPtBins,binsPtDummy,ny,-4,4);
413 flist->Add(fHistminsignalifProtonPPrimary);
414 fHistminsignalifProtonPPrimaryfake=new TH2F("HistminsignalifProtonPPrimaryfake",";Pt[GeV/c];log(dE_real)-log(dE_fit)",kPtBins,binsPtDummy,ny,-4,4);
415 flist->Add(fHistminsignalifProtonPPrimaryfake);
417 fHistminsignalifAntiPionPPrimary=new TH2F("HistminsignalifAntiPionPPrimary",";Pt[GeV/c];log(dE_real)-log(dE_fit)",kPtBins,binsPtDummy,ny,-4,4);
418 flist->Add(fHistminsignalifAntiPionPPrimary);
419 fHistminsignalifAntiKaonPPrimary=new TH2F("HistminsignalifAntiKaonPPrimary",";Pt[GeV/c];log(dE_real)-log(dE_fit)",kPtBins,binsPtDummy,ny,-4,4);
420 flist->Add(fHistminsignalifAntiKaonPPrimary);
421 fHistminsignalifAntiProtonPPrimary=new TH2F("HistminsignalifAntiProtonPPrimary",";Pt[GeV/c];log(dE_real)-log(dE_fit)",kPtBins,binsPtDummy,ny,-4,4);
422 flist->Add(fHistminsignalifAntiProtonPPrimary);
423 fHistminsignalifAntiProtonPPrimaryfake=new TH2F("HistminsignalifAntiProtonPPrimaryfake",";Pt[GeV/c];log(dE_real)-log(dE_fit)",kPtBins,binsPtDummy,ny,-4,4);
424 flist->Add(fHistminsignalifAntiProtonPPrimaryfake);
426 fHistminsignalifPionPSecondary=new TH2F("HistminsignalifPionPSecondary",";Pt[GeV/c];log(dE_real)-log(dE_fit)",kPtBins,binsPtDummy,ny,-4,4);
427 flist->Add(fHistminsignalifPionPSecondary);
428 fHistminsignalifKaonPSecondary=new TH2F("HistminsignalifKaonPSecondary",";Pt[GeV/c];log(dE_real)-log(dE_fit)",kPtBins,binsPtDummy,ny,-4,4);
429 flist->Add(fHistminsignalifKaonPSecondary);
430 fHistminsignalifProtonPSecondaryWD=new TH2F("HistminsignalifProtonPSecondaryWD",";Pt[GeV/c];log(dE_real)-log(dE_fit)",kPtBins,binsPtDummy,ny,-4,4);
431 flist->Add(fHistminsignalifProtonPSecondaryWD);
432 fHistminsignalifProtonPSecondaryHI=new TH2F("HistminsignalifProtonPSecondaryHI",";Pt[GeV/c];log(dE_real)-log(dE_fit)",kPtBins,binsPtDummy,ny,-4,4);
433 flist->Add(fHistminsignalifProtonPSecondaryHI);
434 fHistminsignalifProtonPSecondaryRest=new TH2F("HistminsignalifProtonPSecondaryRest",";Pt[GeV/c];log(dE_real)-log(dE_fit)",kPtBins,binsPtDummy,ny,-4,4);
435 flist->Add(fHistminsignalifProtonPSecondaryRest);
436 fHistminsignalifProtonPSecondaryWDfake=new TH2F("HistminsignalifProtonPSecondaryWDfake",";Pt[GeV/c];log(dE_real)-log(dE_fit)",kPtBins,binsPtDummy,ny,-4,4);
437 flist->Add(fHistminsignalifProtonPSecondaryWDfake);
438 fHistminsignalifProtonPSecondaryHIfake=new TH2F("HistminsignalifProtonPSecondaryHIfake",";Pt[GeV/c];log(dE_real)-log(dE_fit)",kPtBins,binsPtDummy,ny,-4,4);
439 flist->Add(fHistminsignalifProtonPSecondaryHIfake);
442 fHistminsignalifAntiPionPSecondary=new TH2F("HistminsignalifAntiPionPSecondary",";Pt[GeV/c];log(dE_real)-log(dE_fit)",kPtBins,binsPtDummy,ny,-4,4);
443 flist->Add(fHistminsignalifAntiPionPSecondary);
444 fHistminsignalifAntiKaonPSecondary=new TH2F("HistminsignalifAntiKaonPSecondary",";Pt[GeV/c];log(dE_real)-log(dE_fit)",kPtBins,binsPtDummy,ny,-4,4);
445 flist->Add(fHistminsignalifAntiKaonPSecondary);
446 fHistminsignalifAntiProtonPSecondaryWD=new TH2F("HistminsignalifAntiProtonPSecondaryWD",";Pt[GeV/c];log(dE_real)-log(dE_fit)",kPtBins,binsPtDummy,ny,-4,4);
447 flist->Add(fHistminsignalifAntiProtonPSecondaryWD);
448 fHistminsignalifAntiProtonPSecondaryHI=new TH2F("HistminsignalifAntiProtonPSecondaryHI",";Pt[GeV/c];log(dE_real)-log(dE_fit)",kPtBins,binsPtDummy,ny,-4,4);
449 flist->Add(fHistminsignalifAntiProtonPSecondaryHI);
450 fHistminsignalifAntiProtonPSecondaryRest=new TH2F("HistminsignalifAntiProtonPSecondaryRest",";Pt[GeV/c];log(dE_real)-log(dE_fit)",kPtBins,binsPtDummy,ny,-4,4);
451 flist->Add(fHistminsignalifAntiProtonPSecondaryRest);
452 fHistminsignalifAntiProtonPSecondaryWDfake=new TH2F("HistminsignalifAntiProtonPSecondaryWDfake",";Pt[GeV/c];log(dE_real)-log(dE_fit)",kPtBins,binsPtDummy,ny,-4,4);
453 flist->Add(fHistminsignalifAntiProtonPSecondaryWDfake);
454 fHistminsignalifAntiProtonPSecondaryHIfake=new TH2F("HistminsignalifAntiProtonPSecondaryHIfake",";Pt[GeV/c];log(dE_real)-log(dE_fit)",kPtBins,binsPtDummy,ny,-4,4);
455 flist->Add(fHistminsignalifAntiProtonPSecondaryHIfake);
457 fHistminsignalifMuEPositiveP=new TH2F("HistminsignalifMuEPositiveP",";Pt[GeV/c];log(dE_real)-log(dE_fit)",kPtBins,binsPtDummy,ny,-4,4);
458 flist->Add(fHistminsignalifMuEPositiveP);
459 fHistminsignalifMuENegativeP=new TH2F("HistminsignalifMuENegativeP",";Pt[GeV/c];log(dE_real)-log(dE_fit)",kPtBins,binsPtDummy,ny,-4,4);
460 flist->Add(fHistminsignalifMuENegativeP);
463 fHistminsignalifPionPrimaryfake=new TH2F("HistminsignalifPionPrimaryfake",";Pt[GeV/c];log(dE_real)-log(dE_fit)",kPtBins,binsPtDummy,ny,-4,4);
464 flist->Add(fHistminsignalifPionPrimaryfake);
465 fHistminsignalifKaonPrimaryfake=new TH2F("HistminsignalifKaonPrimaryfake",";Pt[GeV/c];log(dE_real)-log(dE_fit)",kPtBins,binsPtDummy,ny,-4,4);
466 flist->Add(fHistminsignalifKaonPrimaryfake);
468 fHistminsignalifAntiPionPrimaryfake=new TH2F("HistminsignalifAntiPionPrimaryfake",";Pt[GeV/c];log(dE_real)-log(dE_fit)",kPtBins,binsPtDummy,ny,-4,4);
469 flist->Add(fHistminsignalifAntiPionPrimaryfake);
470 fHistminsignalifAntiKaonPrimaryfake=new TH2F("HistminsignalifAntiKaonPrimaryfake",";Pt[GeV/c];log(dE_real)-log(dE_fit)",kPtBins,binsPtDummy,ny,-4,4);
471 flist->Add(fHistminsignalifAntiKaonPrimaryfake);
474 fHistminsignalifPionSecondaryfake=new TH2F("HistminsignalifPionSecondaryfake",";Pt[GeV/c];log(dE_real)-log(dE_fit)",kPtBins,binsPtDummy,ny,-4,4);
475 flist->Add(fHistminsignalifPionSecondaryfake);
476 fHistminsignalifKaonSecondaryfake=new TH2F("HistminsignalifKaonSecondaryfake",";Pt[GeV/c];log(dE_real)-log(dE_fit)",kPtBins,binsPtDummy,ny,-4,4);
477 flist->Add(fHistminsignalifKaonSecondaryfake);
479 fHistminsignalifAntiPionSecondaryfake=new TH2F("HistminsignalifAntiPionSecondaryfake",";Pt[GeV/c];log(dE_real)-log(dE_fit)",kPtBins,binsPtDummy,ny,-4,4);
480 flist->Add(fHistminsignalifAntiPionSecondaryfake);
481 fHistminsignalifAntiKaonSecondaryfake=new TH2F("HistminsignalifAntiKaonSecondaryfake",";Pt[GeV/c];log(dE_real)-log(dE_fit)",kPtBins,binsPtDummy,ny,-4,4);
482 flist->Add(fHistminsignalifAntiKaonSecondaryfake);
485 fHistminsignalifPionPMCPrimary=new TH1F("HistminsignalifPionPMCPrimary",";Pt[GeV/c]",kPtBins,binsPtDummy);
486 flist->Add(fHistminsignalifPionPMCPrimary);
487 fHistminsignalifKaonPMCPrimary=new TH1F("HistminsignalifKaonPMCPrimary",";Pt[GeV/c]",kPtBins,binsPtDummy);
488 flist->Add(fHistminsignalifKaonPMCPrimary);
489 fHistminsignalifProtonPMCPrimary=new TH1F("HistminsignalifProtonPMCPrimary",";Pt[GeV/c]",kPtBins,binsPtDummy);
490 flist->Add(fHistminsignalifProtonPMCPrimary);
492 fHistminsignalifAntiPionPMCPrimary=new TH1F("HistminsignalifAntiPionPMCPrimary",";Pt[GeV/c]",kPtBins,binsPtDummy);
493 flist->Add(fHistminsignalifAntiPionPMCPrimary);
494 fHistminsignalifAntiKaonPMCPrimary=new TH1F("HistminsignalifAntiKaonPMCPrimary",";Pt[GeV/c]",kPtBins,binsPtDummy);
495 flist->Add(fHistminsignalifAntiKaonPMCPrimary);
496 fHistminsignalifAntiProtonPMCPrimary=new TH1F("HistminsignalifAntiProtonPMCPrimary",";Pt[GeV/c]",kPtBins,binsPtDummy);
497 flist->Add(fHistminsignalifAntiProtonPMCPrimary);
500 fHistminsignalifPionPMCPrimaryBeforeEventCuts=new TH1F("HistminsignalifPionPMCPrimaryBeforeEventCuts",";Pt[GeV/c]",kPtBins,binsPtDummy);
501 flist->Add(fHistminsignalifPionPMCPrimaryBeforeEventCuts);
502 fHistminsignalifKaonPMCPrimaryBeforeEventCuts=new TH1F("HistminsignalifKaonPMCPrimaryBeforeEventCuts",";Pt[GeV/c]",kPtBins,binsPtDummy);
503 flist->Add(fHistminsignalifKaonPMCPrimaryBeforeEventCuts);
504 fHistminsignalifProtonPMCPrimaryBeforeEventCuts=new TH1F("HistminsignalifProtonPMCPrimaryBeforeEventCuts",";Pt[GeV/c]",kPtBins,binsPtDummy);
505 flist->Add(fHistminsignalifProtonPMCPrimaryBeforeEventCuts);
507 fHistminsignalifAntiPionPMCPrimaryBeforeEventCuts=new TH1F("HistminsignalifAntiPionPMCPrimaryBeforeEventCuts",";Pt[GeV/c]",kPtBins,binsPtDummy);
508 flist->Add(fHistminsignalifAntiPionPMCPrimaryBeforeEventCuts);
509 fHistminsignalifAntiKaonPMCPrimaryBeforeEventCuts=new TH1F("HistminsignalifAntiKaonPMCPrimaryBeforeEventCuts",";Pt[GeV/c]",kPtBins,binsPtDummy);
510 flist->Add(fHistminsignalifAntiKaonPMCPrimaryBeforeEventCuts);
511 fHistminsignalifAntiProtonPMCPrimaryBeforeEventCuts=new TH1F("HistminsignalifAntiProtonPMCPrimaryBeforeEventCuts",";Pt[GeV/c]",kPtBins,binsPtDummy);
512 flist->Add(fHistminsignalifAntiProtonPMCPrimaryBeforeEventCuts);
514 fHistminsignalifPionPMCPrimaryBeforeEventCutswithgoodZvertex=new TH1F("HistminsignalifPionPMCPrimaryBeforeEventCutswithgoodZvertex",";Pt[GeV/c]",kPtBins,binsPtDummy);
515 flist->Add(fHistminsignalifPionPMCPrimaryBeforeEventCutswithgoodZvertex);
516 fHistminsignalifKaonPMCPrimaryBeforeEventCutswithgoodZvertex=new TH1F("HistminsignalifKaonPMCPrimaryBeforeEventCutswithgoodZvertex",";Pt[GeV/c]",kPtBins,binsPtDummy);
517 flist->Add(fHistminsignalifKaonPMCPrimaryBeforeEventCutswithgoodZvertex);
518 fHistminsignalifProtonPMCPrimaryBeforeEventCutswithgoodZvertex=new TH1F("HistminsignalifProtonPMCPrimaryBeforeEventCutswithgoodZvertex",";Pt[GeV/c]",kPtBins,binsPtDummy);
519 flist->Add(fHistminsignalifProtonPMCPrimaryBeforeEventCutswithgoodZvertex);
521 fHistminsignalifAntiPionPMCPrimaryBeforeEventCutswithgoodZvertex=new TH1F("HistminsignalifAntiPionPMCPrimaryBeforeEventCutswithgoodZvertex",";Pt[GeV/c]",kPtBins,binsPtDummy);
522 flist->Add(fHistminsignalifAntiPionPMCPrimaryBeforeEventCutswithgoodZvertex);
523 fHistminsignalifAntiKaonPMCPrimaryBeforeEventCutswithgoodZvertex=new TH1F("HistminsignalifAntiKaonPMCPrimaryBeforeEventCutswithgoodZvertex",";Pt[GeV/c]",kPtBins,binsPtDummy);
524 flist->Add(fHistminsignalifAntiKaonPMCPrimaryBeforeEventCutswithgoodZvertex);
525 fHistminsignalifAntiProtonPMCPrimaryBeforeEventCutswithgoodZvertex=new TH1F("HistminsignalifAntiProtonPMCPrimaryBeforeEventCutswithgoodZvertex",";Pt[GeV/c]",kPtBins,binsPtDummy);
526 flist->Add(fHistminsignalifAntiProtonPMCPrimaryBeforeEventCutswithgoodZvertex);
528 fHistminsignalifPionPMCPrimaryAfterEventCutsBeforeVertexZ=new TH1F("HistminsignalifPionPMCPrimaryAfterEventCutsBeforeVertexZ",";Pt[GeV/c]",kPtBins,binsPtDummy);
529 flist->Add(fHistminsignalifPionPMCPrimaryAfterEventCutsBeforeVertexZ);
530 fHistminsignalifKaonPMCPrimaryAfterEventCutsBeforeVertexZ=new TH1F("HistminsignalifKaonPMCPrimaryAfterEventCutsBeforeVertexZ",";Pt[GeV/c]",kPtBins,binsPtDummy);
531 flist->Add(fHistminsignalifKaonPMCPrimaryAfterEventCutsBeforeVertexZ);
532 fHistminsignalifProtonPMCPrimaryAfterEventCutsBeforeVertexZ=new TH1F("HistminsignalifProtonPMCPrimaryAfterEventCutsBeforeVertexZ",";Pt[GeV/c]",kPtBins,binsPtDummy);
533 flist->Add(fHistminsignalifProtonPMCPrimaryAfterEventCutsBeforeVertexZ);
535 fHistminsignalifAntiPionPMCPrimaryAfterEventCutsBeforeVertexZ=new TH1F("HistminsignalifAntiPionPMCPrimaryAfterEventCutsBeforeVertexZ",";Pt[GeV/c]",kPtBins,binsPtDummy);
536 flist->Add(fHistminsignalifAntiPionPMCPrimaryAfterEventCutsBeforeVertexZ);
537 fHistminsignalifAntiKaonPMCPrimaryAfterEventCutsBeforeVertexZ=new TH1F("HistminsignalifAntiKaonPMCPrimaryAfterEventCutsBeforeVertexZ",";Pt[GeV/c]",kPtBins,binsPtDummy);
538 flist->Add(fHistminsignalifAntiKaonPMCPrimaryAfterEventCutsBeforeVertexZ);
539 fHistminsignalifAntiProtonPMCPrimaryAfterEventCutsBeforeVertexZ=new TH1F("HistminsignalifAntiProtonPMCPrimaryAfterEventCutsBeforeVertexZ",";Pt[GeV/c]",kPtBins,binsPtDummy);
540 flist->Add(fHistminsignalifAntiProtonPMCPrimaryAfterEventCutsBeforeVertexZ);
544 fDCAXYZforcleanPionsMCPrimary=new TH3F("fDCAXYZforcleanPionsMCPrimary",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy);
545 flist->Add(fDCAXYZforcleanPionsMCPrimary);
546 fDCAXYZforcleanAntiPionsMCPrimary=new TH3F("fDCAXYZforcleanAntiPionsMCPrimary",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy);
547 flist->Add(fDCAXYZforcleanAntiPionsMCPrimary);
548 fDCAXYZforcleanProtonsMCPrimary=new TH3F("fDCAXYZforcleanProtonsMCPrimary",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy);
549 flist->Add(fDCAXYZforcleanProtonsMCPrimary);
550 fDCAXYZforcleanAntiProtonsMCPrimary=new TH3F("fDCAXYZforcleanAntiProtonsMCPrimary",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy);
551 flist->Add(fDCAXYZforcleanAntiProtonsMCPrimary);
553 fDCAXYZforcleanPionsWD=new TH3F("fDCAXYZforcleanPionsWD",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy);
554 flist->Add(fDCAXYZforcleanPionsWD);
555 fDCAXYZforcleanAntiPionsWD=new TH3F("fDCAXYZforcleanAntiPionsWD",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy);
556 flist->Add(fDCAXYZforcleanAntiPionsWD);
557 //Secondrary Protons weak deacy
559 fDCAXYZforcleanProtonsWD=new TH3F("fDCAXYZforcleanProtonsWD",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy);
560 flist->Add(fDCAXYZforcleanProtonsWD);
561 fDCAXYZforcleanAntiProtonsWD=new TH3F("fDCAXYZforcleanAntiProtonsWD",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy);
562 flist->Add(fDCAXYZforcleanAntiProtonsWD);
564 fDCAXYZforcleanPionsHI=new TH3F("fDCAXYZforcleanPionsHI",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy);
565 flist->Add(fDCAXYZforcleanPionsHI);
566 fDCAXYZforcleanAntiPionsHI=new TH3F("fDCAXYZforcleanAntiPionsHI",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy);
567 flist->Add(fDCAXYZforcleanAntiPionsHI);
568 //Secondrary Protons Hadronic
569 fDCAXYZforcleanProtonsHI=new TH3F("fDCAXYZforcleanProtonsHI",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy);
570 flist->Add(fDCAXYZforcleanProtonsHI);
571 fDCAXYZforcleanAntiProtonsHI=new TH3F("fDCAXYZforcleanAntiProtonsHI",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy);
572 flist->Add(fDCAXYZforcleanAntiProtonsHI);
573 //Secondrary Pions mu el
574 fDCAXYZforcleanPionsMEPrimary=new TH3F("fDCAXYZforcleanPionsMEPrimary",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy);
575 flist->Add(fDCAXYZforcleanPionsMEPrimary);
576 fDCAXYZforcleanAntiPionsMEPrimary=new TH3F("fDCAXYZforcleanAntiPionsMEPrimary",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy);
577 flist->Add(fDCAXYZforcleanAntiPionsMEPrimary);
578 fDCAXYZforcleanPionsMESecondary=new TH3F("fDCAXYZforcleanPionsMESecondary",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy);
579 flist->Add(fDCAXYZforcleanPionsMESecondary);
580 fDCAXYZforcleanAntiPionsMESecondary=new TH3F("fDCAXYZforcleanAntiPionsMESecondary",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy);
581 flist->Add(fDCAXYZforcleanAntiPionsMESecondary);
583 fDCAXYZforcleanPionsR=new TH3F("fDCAXYZforcleanPionsR",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy);
584 flist->Add(fDCAXYZforcleanPionsR);
585 fDCAXYZforcleanAntiPionsR=new TH3F("fDCAXYZforcleanAntiPionsR",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy);
586 flist->Add(fDCAXYZforcleanAntiPionsR);
587 //Secondrary Protons Hadronic
588 fDCAXYZforcleanProtonsR=new TH3F("fDCAXYZforcleanProtonsR",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy);
589 flist->Add(fDCAXYZforcleanProtonsR);
590 fDCAXYZforcleanAntiProtonsR=new TH3F("fDCAXYZforcleanAntiProtonsR",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy);
591 flist->Add(fDCAXYZforcleanAntiProtonsR);
595 fDCAXYZOpenforcleanPionsMCPrimary=new TH3F("fDCAXYZOpenforcleanPionsMCPrimary",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy);
596 flist->Add(fDCAXYZOpenforcleanPionsMCPrimary);
597 fDCAXYZOpenforcleanAntiPionsMCPrimary=new TH3F("fDCAXYZOpenforcleanAntiPionsMCPrimary",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy);
598 flist->Add(fDCAXYZOpenforcleanAntiPionsMCPrimary);
599 fDCAXYZOpenforcleanProtonsMCPrimary=new TH3F("fDCAXYZOpenforcleanProtonsMCPrimary",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy);
600 flist->Add(fDCAXYZOpenforcleanProtonsMCPrimary);
601 fDCAXYZOpenforcleanAntiProtonsMCPrimary=new TH3F("fDCAXYZOpenforcleanAntiProtonsMCPrimary",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy);
602 flist->Add(fDCAXYZOpenforcleanAntiProtonsMCPrimary);
604 fDCAXYZOpenforcleanPionsWD=new TH3F("fDCAXYZOpenforcleanPionsWD",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy);
605 flist->Add(fDCAXYZOpenforcleanPionsWD);
606 fDCAXYZOpenforcleanAntiPionsWD=new TH3F("fDCAXYZOpenforcleanAntiPionsWD",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy);
607 flist->Add(fDCAXYZOpenforcleanAntiPionsWD);
608 //Secondrary Protons weak deacy
610 fDCAXYZOpenforcleanProtonsWD=new TH3F("fDCAXYZOpenforcleanProtonsWD",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy);
611 flist->Add(fDCAXYZOpenforcleanProtonsWD);
612 fDCAXYZOpenforcleanAntiProtonsWD=new TH3F("fDCAXYZOpenforcleanAntiProtonsWD",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy);
613 flist->Add(fDCAXYZOpenforcleanAntiProtonsWD);
615 fDCAXYZOpenforcleanPionsHI=new TH3F("fDCAXYZOpenforcleanPionsHI",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy);
616 flist->Add(fDCAXYZOpenforcleanPionsHI);
617 fDCAXYZOpenforcleanAntiPionsHI=new TH3F("fDCAXYZOpenforcleanAntiPionsHI",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy);
618 flist->Add(fDCAXYZOpenforcleanAntiPionsHI);
619 //Secondrary Protons Hadronic
620 fDCAXYZOpenforcleanProtonsHI=new TH3F("fDCAXYZOpenforcleanProtonsHI",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy);
621 flist->Add(fDCAXYZOpenforcleanProtonsHI);
622 fDCAXYZOpenforcleanAntiProtonsHI=new TH3F("fDCAXYZOpenforcleanAntiProtonsHI",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy);
623 flist->Add(fDCAXYZOpenforcleanAntiProtonsHI);
624 //Secondrary Pions mu el
626 fDCAXYZOpenforcleanPionsMEPrimary=new TH3F("fDCAXYZOpenforcleanPionsMEPrimary",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy);
627 flist->Add(fDCAXYZOpenforcleanPionsMEPrimary);
628 fDCAXYZOpenforcleanAntiPionsMEPrimary=new TH3F("fDCAXYZOpenforcleanAntiPionsMEPrimary",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy);
629 flist->Add(fDCAXYZOpenforcleanAntiPionsMEPrimary);
630 fDCAXYZOpenforcleanPionsMESecondary=new TH3F("fDCAXYZOpenforcleanPionsMESecondary",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy);
631 flist->Add(fDCAXYZOpenforcleanPionsMESecondary);
632 fDCAXYZOpenforcleanAntiPionsMESecondary=new TH3F("fDCAXYZOpenforcleanAntiPionsMESecondary",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy);
633 flist->Add(fDCAXYZOpenforcleanAntiPionsMESecondary);
635 fDCAXYZOpenforcleanPionsR=new TH3F("fDCAXYZOpenforcleanPionsR",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy);
636 flist->Add(fDCAXYZOpenforcleanPionsR);
637 fDCAXYZOpenforcleanAntiPionsR=new TH3F("fDCAXYZOpenforcleanAntiPionsR",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy);
638 flist->Add(fDCAXYZOpenforcleanAntiPionsR);
639 //Secondrary Protons Hadronic
640 fDCAXYZOpenforcleanProtonsR=new TH3F("fDCAXYZOpenforcleanProtonsR",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy);
641 flist->Add(fDCAXYZOpenforcleanProtonsR);
642 fDCAXYZOpenforcleanAntiProtonsR=new TH3F("fDCAXYZOpenforcleanAntiProtonsR",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy);
643 flist->Add(fDCAXYZOpenforcleanAntiProtonsR);
647 fElectronsource=new TH2F("fElectronsource","electrons;Pt [GeV/c];Process",kPtBins,binsPtDummy, kMaxMCProcess,0,kMaxMCProcess);
648 flist->Add(fElectronsource);
649 fAntiElectronsource=new TH2F("fAntiElectronsource","positrons;Pt [GeV/c];Process",kPtBins,binsPtDummy, kMaxMCProcess,0,kMaxMCProcess);
650 flist->Add(fAntiElectronsource);
651 fMuonsource=new TH2F("fMuonsource","electrons;Pt [GeV/c];Process",kPtBins,binsPtDummy, kMaxMCProcess,0,kMaxMCProcess);
652 flist->Add(fMuonsource);
653 fAntiMuonsource=new TH2F("fAntiMuonsource","positrons;Pt [GeV/c];Process",kPtBins,binsPtDummy, kMaxMCProcess,0,kMaxMCProcess);
654 flist->Add(fAntiMuonsource);
656 fPrimaryElectronsMother=new TH1F("fPrimaryElectronsMother",";pdg code",4990,10.5,5000.5);
657 flist->Add(fPrimaryElectronsMother);
659 Double_t type[13]={-0.5,0.5,1.5,2.5,3.5,4.5,5.5,6.5,7.5,8.5,9.5,10.5,11.5};
660 Double_t cutlevel[10]={0.5,1.5,2.5,3.5,4.5,5.5,6.5,7.5,8.5,9.5};
662 fParticlesCutmonitoring=new TH3F("fParticlesCutmonitoring",";particle;cut;Pt [GeV/c]",12,type,9,cutlevel,kPtBins,binsPtDummy);
664 fParticlesCutmonitoring->GetXaxis()->SetBinLabel(1,"pion");
665 fParticlesCutmonitoring->GetXaxis()->SetBinLabel(2,"kaon");
666 fParticlesCutmonitoring->GetXaxis()->SetBinLabel(3,"proton");
667 fParticlesCutmonitoring->GetXaxis()->SetBinLabel(4,"antipion");
668 fParticlesCutmonitoring->GetXaxis()->SetBinLabel(5,"antikaon");
669 fParticlesCutmonitoring->GetXaxis()->SetBinLabel(6,"antiproton");
670 fParticlesCutmonitoring->GetXaxis()->SetBinLabel(7,"pionfake");
671 fParticlesCutmonitoring->GetXaxis()->SetBinLabel(8,"kaonfake");
672 fParticlesCutmonitoring->GetXaxis()->SetBinLabel(9,"protonfake");
673 fParticlesCutmonitoring->GetXaxis()->SetBinLabel(10,"antipionfake");
674 fParticlesCutmonitoring->GetXaxis()->SetBinLabel(11,"antikaonfake");
675 fParticlesCutmonitoring->GetXaxis()->SetBinLabel(12,"antiprotonfake");
677 fParticlesCutmonitoring->GetYaxis()->SetBinLabel(1,"TPCin");
678 fParticlesCutmonitoring->GetYaxis()->SetBinLabel(2,"TPCrefit");
679 fParticlesCutmonitoring->GetYaxis()->SetBinLabel(3,"nTPCclu");
680 fParticlesCutmonitoring->GetYaxis()->SetBinLabel(4,"chi2");
681 fParticlesCutmonitoring->GetYaxis()->SetBinLabel(5,"ITSrefit");
682 fParticlesCutmonitoring->GetYaxis()->SetBinLabel(6,"SPDany");
683 fParticlesCutmonitoring->GetYaxis()->SetBinLabel(7,"standard");
684 fParticlesCutmonitoring->GetYaxis()->SetBinLabel(8,"ITSpid");
685 fParticlesCutmonitoring->GetYaxis()->SetBinLabel(9,"DCA");
686 flist->Add(fParticlesCutmonitoring);
688 fVertexshift=new TH3F("fVertexshift",";#delta_{x};#delta_{y};#delta_{z}",50,-0.06,0.06,50,-0.06,0.06,50,-2,2);
689 flist->Add(fVertexshift);
691 Double_t deltapttpc[41];
692 Double_t deltaptall[41];
693 for(int i=0;i<41;i++)
695 deltapttpc[i]=-0.8+i*(1.6/40);
696 deltaptall[i]=-0.2+i*(0.4/40);
698 fPtESDminusPtMCvPtESDafterallcuts= new TH3F("fPtESDminusPtMCvPtESDafterallcuts",";#delta_{PtESD-PtMC};PtESD;type",40,deltaptall,kPtBins,binsPtDummy,12,type);
699 flist->Add(fPtESDminusPtMCvPtESDafterallcuts);
700 fPtESDminusPtMCvPtESDafterallcuts->GetZaxis()->SetBinLabel(1,"pion");
701 fPtESDminusPtMCvPtESDafterallcuts->GetZaxis()->SetBinLabel(2,"kaon");
702 fPtESDminusPtMCvPtESDafterallcuts->GetZaxis()->SetBinLabel(3,"proton");
703 fPtESDminusPtMCvPtESDafterallcuts->GetZaxis()->SetBinLabel(4,"antipion");
704 fPtESDminusPtMCvPtESDafterallcuts->GetZaxis()->SetBinLabel(5,"antikaon");
705 fPtESDminusPtMCvPtESDafterallcuts->GetZaxis()->SetBinLabel(6,"antiproton");
706 fPtESDminusPtMCvPtESDafterallcuts->GetZaxis()->SetBinLabel(7,"pionfake");
707 fPtESDminusPtMCvPtESDafterallcuts->GetZaxis()->SetBinLabel(8,"kaonfake");
708 fPtESDminusPtMCvPtESDafterallcuts->GetZaxis()->SetBinLabel(9,"protonfake");
709 fPtESDminusPtMCvPtESDafterallcuts->GetZaxis()->SetBinLabel(10,"antipionfake");
710 fPtESDminusPtMCvPtESDafterallcuts->GetZaxis()->SetBinLabel(11,"antikaonfake");
711 fPtESDminusPtMCvPtESDafterallcuts->GetZaxis()->SetBinLabel(12,"antiprotonfake");
713 fPtESDminusPtMCvPtESDafterTPCcuts= new TH3F("fPtESDminusPtMCvPtESDafterTPCcuts",";#delta_{PtESD-PtMC};PtESD;type",40,deltapttpc,kPtBins,binsPtDummy,12,type);
714 flist->Add(fPtESDminusPtMCvPtESDafterTPCcuts);
715 fPtESDminusPtMCvPtESDafterTPCcuts->GetZaxis()->SetBinLabel(1,"pion");
716 fPtESDminusPtMCvPtESDafterTPCcuts->GetZaxis()->SetBinLabel(2,"kaon");
717 fPtESDminusPtMCvPtESDafterTPCcuts->GetZaxis()->SetBinLabel(3,"proton");
718 fPtESDminusPtMCvPtESDafterTPCcuts->GetZaxis()->SetBinLabel(4,"antipion");
719 fPtESDminusPtMCvPtESDafterTPCcuts->GetZaxis()->SetBinLabel(5,"antikaon");
720 fPtESDminusPtMCvPtESDafterTPCcuts->GetZaxis()->SetBinLabel(6,"antiproton");
721 fPtESDminusPtMCvPtESDafterTPCcuts->GetZaxis()->SetBinLabel(7,"pionfake");
722 fPtESDminusPtMCvPtESDafterTPCcuts->GetZaxis()->SetBinLabel(8,"kaonfake");
723 fPtESDminusPtMCvPtESDafterTPCcuts->GetZaxis()->SetBinLabel(9,"protonfake");
724 fPtESDminusPtMCvPtESDafterTPCcuts->GetZaxis()->SetBinLabel(10,"antipionfake");
725 fPtESDminusPtMCvPtESDafterTPCcuts->GetZaxis()->SetBinLabel(11,"antikaonfake");
726 fPtESDminusPtMCvPtESDafterTPCcuts->GetZaxis()->SetBinLabel(12,"antiprotonfake");
729 fMulESDMulMCVz=new TH3F("fMulESDMulMCVz",";NtracksESD;NparticlesMC;Vrt_z ",50,0,50,100,0,100,20,-10,10);
730 flist->Add(fMulESDMulMCVz);
732 Printf("end of CreateOutputObjects with MC");
734 //________________________________________________________________________
735 void AliAnalysisChargedHadronSpectraITSTruncatedMeanTask::LocalInit()
738 Printf("end of LocalInit");
741 //________________________________________________________________________
742 void AliAnalysisChargedHadronSpectraITSTruncatedMeanTask::UserExec(Option_t *)
745 Bool_t isphysevent=0;
746 Bool_t isgoodvertex=0;
747 Bool_t isvxerteinZ=0;
749 fESD = dynamic_cast<AliESDEvent*> (InputEvent());
752 Printf("ERROR: fESD not available");
756 Float_t refmultiplicity=fCutsMul->CountAcceptedTracks(fESD);
757 if(fLowMultiplicity>-1)
759 if(refmultiplicity<fLowMultiplicity)
762 if(fUpMultiplicity>-1)
764 if(refmultiplicity>fUpMultiplicity)
768 Double_t mcXvertex=0.0;
769 Double_t mcYvertex=0.0;
770 Double_t mcZvertex=0.0;
774 AliMCEvent* mcEvent = (AliMCEvent*) MCEvent();
775 //Printf("MC particles: %d", mcEvent->GetNumberOfTracks());
776 stack = mcEvent->Stack();
777 mcXvertex=mcEvent->GetPrimaryVertex()->GetX();
778 mcYvertex=mcEvent->GetPrimaryVertex()->GetY();
779 mcZvertex=mcEvent->GetPrimaryVertex()->GetZ();
785 //if( ((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected()==0)
786 UInt_t isSelected = 0;
787 if(((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler())))
788 isSelected=((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected();
789 //Printf("Mask_selection %u %u", isSelected,AliVEvent::kMB);
790 if(!(isSelected&AliVEvent::kMB))
793 // Printf("No phys event.........\n");
801 if(isphysevent&&fHIsettings)
803 AliCentrality *centrality = fESD->GetCentrality();
804 if(!(fLowCentrality<0.0)&&fUpCentrality>0.0)
806 if(!centrality->IsEventInCentralityClass(fLowCentrality,fUpCentrality,"V0M"))
814 const AliESDVertex *vertex = fESD->GetPrimaryVertexTracks();
817 //vertex = fESD->GetPrimaryVertexTracks();
818 if(vertex->GetNContributors()<1)
821 vertex = fESD->GetPrimaryVertexSPD();
822 if(vertex->GetNContributors()<1)
824 //Printf("No good Vertex.........\n");
831 fHistZVertexBeforeCut->Fill(vertex ->GetZ());
832 fHistXYVertexBeforeCut->Fill(vertex ->GetX(),vertex ->GetY());
839 fHistZVertexBeforeCut->Fill(vertex ->GetZ());
840 fHistXYVertexBeforeCut->Fill(vertex ->GetX(),vertex ->GetY());
844 if(TMath::Abs(vertex ->GetZ())>10.0)
846 //Printf("No good Z of Vertex.........\n");
853 if(fdovertexrescuts&&fMC)
855 cout<<TMath::Abs(vertex->GetX()-mcXvertex)<<" "<<TMath::Abs(vertex->GetY()-mcYvertex)<<" "<<TMath::Abs(vertex->GetZ()-mcZvertex)<<endl;
856 if(TMath::Abs(vertex->GetX()-mcXvertex)>0.015||TMath::Abs(vertex->GetY()-mcYvertex)>0.015||TMath::Abs(vertex->GetZ()-mcZvertex)>0.15)
860 if(stack)//Looping over MC information of all events
867 fCutsMul->GetPtRange(minpt,maxpt);
868 fCutsMul->GetEtaRange(mineta,maxeta);
870 if(TMath::Abs(mcZvertex)<10.0)
872 for (int imc=0;imc<stack->GetNtrack();imc++)
874 if(!(stack->IsPhysicalPrimary(imc)))
876 TParticle *particleMC = stack->Particle(imc);
879 Int_t pdgcodeMC = particleMC->GetPdgCode();
880 if(!(pdgcodeMC==211||pdgcodeMC==-211||pdgcodeMC==321||pdgcodeMC==-321||pdgcodeMC==2212||pdgcodeMC==-2212))
882 if(particleMC->Pt()>minpt&&particleMC->Pt()<maxpt&&particleMC->Eta()>mineta&&particleMC->Eta()<maxeta)
884 if (TMath::Abs(particleMC->Y())>fYCut)
886 if (particleMC->Pt()>2.0)
888 //Printf("%d aa",imc);
891 fHistminsignalifPionPMCPrimaryBeforeEventCuts->Fill(particleMC->Pt());
893 fHistminsignalifAntiPionPMCPrimaryBeforeEventCuts->Fill(particleMC->Pt());
895 fHistminsignalifKaonPMCPrimaryBeforeEventCuts->Fill(particleMC->Pt());
897 fHistminsignalifAntiKaonPMCPrimaryBeforeEventCuts->Fill(particleMC->Pt());
899 fHistminsignalifProtonPMCPrimaryBeforeEventCuts->Fill(particleMC->Pt());
901 fHistminsignalifAntiProtonPMCPrimaryBeforeEventCuts->Fill(particleMC->Pt());
903 if(TMath::Abs(mcZvertex)<10.0)
906 fHistminsignalifPionPMCPrimaryBeforeEventCutswithgoodZvertex->Fill(particleMC->Pt());
908 fHistminsignalifAntiPionPMCPrimaryBeforeEventCutswithgoodZvertex->Fill(particleMC->Pt());
910 fHistminsignalifKaonPMCPrimaryBeforeEventCutswithgoodZvertex->Fill(particleMC->Pt());
912 fHistminsignalifAntiKaonPMCPrimaryBeforeEventCutswithgoodZvertex->Fill(particleMC->Pt());
914 fHistminsignalifProtonPMCPrimaryBeforeEventCutswithgoodZvertex->Fill(particleMC->Pt());
916 fHistminsignalifAntiProtonPMCPrimaryBeforeEventCutswithgoodZvertex->Fill(particleMC->Pt());
923 fHistminsignalifPionPMCPrimaryAfterEventCutsBeforeVertexZ->Fill(particleMC->Pt());
925 fHistminsignalifAntiPionPMCPrimaryAfterEventCutsBeforeVertexZ->Fill(particleMC->Pt());
927 fHistminsignalifKaonPMCPrimaryAfterEventCutsBeforeVertexZ->Fill(particleMC->Pt());
929 fHistminsignalifAntiKaonPMCPrimaryAfterEventCutsBeforeVertexZ->Fill(particleMC->Pt());
931 fHistminsignalifProtonPMCPrimaryAfterEventCutsBeforeVertexZ->Fill(particleMC->Pt());
933 fHistminsignalifAntiProtonPMCPrimaryAfterEventCutsBeforeVertexZ->Fill(particleMC->Pt());
938 fHistminsignalifPionPMCPrimary->Fill(particleMC->Pt());
942 fHistminsignalifAntiPionPMCPrimary->Fill(particleMC->Pt());
946 fHistminsignalifKaonPMCPrimary->Fill(particleMC->Pt());
950 fHistminsignalifAntiKaonPMCPrimary->Fill(particleMC->Pt());
954 fHistminsignalifProtonPMCPrimary->Fill(particleMC->Pt());
958 fHistminsignalifAntiProtonPMCPrimary->Fill(particleMC->Pt());
965 if(!(isphysevent&&isgoodvertex&&isvxerteinZ))
967 //Printf("No Good event.........\n");
969 //Printf("end of Exec");
975 fHistZVertexAfterCut->Fill(vertex ->GetZ());
976 fHistXYVertexAfterCut->Fill(vertex ->GetX(),vertex ->GetY());
980 fVertexshift->Fill(vertex->GetX()-mcXvertex,vertex->GetY()-mcYvertex,vertex->GetZ()-mcZvertex);
981 fMulESDMulMCVz->Fill(refmultiplicity,fMCmult,vertex->GetZ());
985 //Printf("No CUTS Defined.........\n");
987 //Printf("end of Exec");
991 //Printf("There are %d tracks in this event", fESD->GetNumberOfTracks());
992 Int_t nTracks=fESD->GetNumberOfTracks();
994 Int_t mynumberoftracks=0;
995 AliESDtrack *trackESD=0;
997 const Float_t pionmass=AliPID::ParticleMass(2);
998 const Float_t kaonmass=AliPID::ParticleMass(3);
999 const Float_t protonmass=AliPID::ParticleMass(4);
1001 for(int tr1=0;tr1<nTracks;tr1++)
1004 trackESD=fESD->GetTrack(tr1);
1005 //fHistStats->Fill(2);
1007 Double_t pt=trackESD->Pt()*trackESD->GetSign();
1008 Double_t p=trackESD->P();
1009 Double_t eta=trackESD->Eta();
1010 Double_t phi=trackESD->Phi();
1013 trackESD->GetImpactParameters(dcaxy,dcaz);
1014 Double_t pz=trackESD->Pz();
1015 UShort_t nTPCclusters=trackESD->GetTPCNcls();
1016 Float_t chi2=trackESD->GetTPCchi2();
1018 chi2=chi2/((Float_t)nTPCclusters);
1021 if(!trackESD->IsOn(AliESDtrack::kTPCin))
1024 Float_t yforpion=0.5*TMath::Log((TMath::Sqrt(pionmass*pionmass+p*p)+pz)/(TMath::Sqrt(pionmass*pionmass+p*p)-pz));
1025 Float_t yforkaon=0.5*TMath::Log((TMath::Sqrt(kaonmass*kaonmass+p*p)+pz)/(TMath::Sqrt(kaonmass*kaonmass+p*p)-pz));
1026 Float_t yforproton=0.5*TMath::Log((TMath::Sqrt(protonmass*protonmass+p*p)+pz)/(TMath::Sqrt(protonmass*protonmass+p*p)-pz));
1028 if(TMath::Abs(yforpion)>fYCut&&TMath::Abs(yforkaon)>fYCut&&TMath::Abs(yforproton)>fYCut) //go trought one y cut
1032 label=trackESD->GetLabel();
1034 // Printf("label %d %f %f %f %f %d %f %f\n",label,p,pt,eta,chi2,nTPCclusters,dcaxy,dcaz);
1037 Double_t chargeMC=1.0;
1041 Int_t pdgcodefake=0;
1042 Int_t primaryfake=0;
1043 //TParticle *particle2=0x0;
1044 TParticle *particle2 = stack->Particle(TMath::Abs(label));
1046 if(label>=0&&stack&&fMC)
1048 primary=stack->IsPhysicalPrimary(TMath::Abs(label));
1049 //particle2 = stack->Particle(TMath::Abs(label));
1050 pdgcode=particle2->GetPdgCode();
1051 chargeMC=particle2->GetPDG(0)->Charge()/3.0;
1052 etaMC=particle2->Eta();
1053 ptMC=particle2->Pt();
1054 uniqueID=particle2->GetUniqueID();
1056 else if(label<0&&stack&&fMC)
1058 primaryfake=stack->IsPhysicalPrimary(TMath::Abs(label));
1059 //particle2 = stack->Particle(TMath::Abs(label));
1060 pdgcodefake=particle2->GetPdgCode();
1061 uniqueID=particle2->GetUniqueID();
1065 Int_t typeParticle=-10;
1066 if((primaryfake||primary))
1069 if((pdgcodefake==211||pdgcode==211)&&TMath::Abs(yforpion)<fYCut)
1071 if((pdgcodefake==321||pdgcode==321)&&TMath::Abs(yforkaon)<fYCut)
1073 if((pdgcodefake==2212||pdgcode==2212)&&TMath::Abs(yforproton)<fYCut)
1075 if((pdgcodefake==-211||pdgcode==-211)&&TMath::Abs(yforpion)<fYCut)
1077 if((pdgcodefake==-321||pdgcode==-321)&&TMath::Abs(yforkaon)<fYCut)
1079 if((pdgcodefake==-2212||pdgcode==-2212)&&TMath::Abs(yforproton)<fYCut)
1086 fTracksCutmonitoring->Fill(1,TMath::Abs(pt));
1089 fParticlesCutmonitoring->Fill(typeParticle,1,TMath::Abs(pt));
1090 if(trackESD->IsOn(AliESDtrack::kTPCrefit))
1092 fParticlesCutmonitoring->Fill(typeParticle,2,TMath::Abs(pt));
1095 fParticlesCutmonitoring->Fill(typeParticle,3,TMath::Abs(pt));
1098 fParticlesCutmonitoring->Fill(typeParticle,4,TMath::Abs(pt));
1099 fPtESDminusPtMCvPtESDafterTPCcuts->Fill(TMath::Abs(pt)-particle2->Pt(),TMath::Abs(pt),typeParticle);
1100 if(trackESD->IsOn(AliESDtrack::kITSrefit))
1102 fParticlesCutmonitoring->Fill(typeParticle,5,TMath::Abs(pt));
1103 if(trackESD->HasPointOnITSLayer(0)||trackESD->HasPointOnITSLayer(1))
1105 fParticlesCutmonitoring->Fill(typeParticle,6,TMath::Abs(pt));
1115 fHistPhiPtBeforeCuts->Fill(phi,pt);//phi pt
1116 fHistEtaPtBeforeCuts->Fill(eta,pt);
1117 fHistDCABeforeCuts->Fill(dcaxy,dcaz);
1123 if(fCuts->AcceptTrack(trackESD)==kFALSE)
1125 fTracksCutmonitoring->Fill(2,TMath::Abs(pt));
1127 fParticlesCutmonitoring->Fill(typeParticle,7,TMath::Abs(pt));
1128 //Tpc pid cut for debug
1129 Double_t pinTPC=trackESD->GetTPCInnerParam()->GetP();//momentum in primary vertex taken from TPC tracking
1130 Double_t pinTPCglobal=trackESD->GetInnerParam()->GetP();//momentum at the inner wall of the TPC taken from global tracking
1131 Float_t sigKaon= fESDpid->GetTPCResponse().GetExpectedSignal(pinTPCglobal, AliPID::kKaon);
1132 Float_t sigProton= fESDpid->GetTPCResponse().GetExpectedSignal(pinTPCglobal, AliPID::kProton);
1133 Double_t tpcSignal =trackESD ->GetTPCsignal();
1137 if(fTPCPIDCUT->AcceptTrack(trackESD,fESD)==kFALSE)
1141 Bool_t cutDCA=SelectOnImpPar(trackESD);
1143 //fHistStats->Fill(4);
1144 Double_t tmpQESD[4]={-1.0,-1.0,-1.0,-1.0};
1145 trackESD->GetITSdEdxSamples(tmpQESD);
1146 if(fCorrectSDD&&fMC)
1147 CorrectSDD(tmpQESD);
1148 if(fCorrectSSD&&fMC)
1149 CorrectSSD(tmpQESD);
1155 if(TMath::Abs(yforpion)<fYCut&&cutDCA)
1156 fHistNtrackwithstandardcuts->Fill(TMath::Abs(pt),0);
1157 if(TMath::Abs(yforkaon)<fYCut&&cutDCA)
1159 fHistNtrackwithstandardcuts->Fill(TMath::Abs(pt),1);
1161 fHistSignalinTPCKaonforstandardcuts->Fill(pt,(tpcSignal-sigKaon)/sigKaon);
1163 fHistSignalinTPCAntiKaonforstandardcuts->Fill(TMath::Abs(pt),(tpcSignal-sigKaon)/sigKaon);
1165 if(TMath::Abs(yforproton)<fYCut&&cutDCA)
1167 fHistNtrackwithstandardcuts->Fill(TMath::Abs(pt),2);
1169 fHistSignalinTPCProtonforstandardcuts->Fill(pt,(tpcSignal-sigProton)/sigProton);
1171 fHistSignalinTPCAntiProtonforstandardcuts->Fill(TMath::Abs(pt),(tpcSignal-sigProton)/sigProton);
1175 for (int iL=0;iL<4;iL++)
1177 if(tmpQESD[iL]>fchargeCut)
1183 fHistStats->Fill(4);
1187 // cout<<"BAD "<<stack->Particle(TMath::Abs(trackESD->GetLabel()))->GetPdgCode()<<endl;
1190 fTracksCutmonitoring->Fill(3,TMath::Abs(pt));
1192 fParticlesCutmonitoring->Fill(typeParticle,8,TMath::Abs(pt));
1195 fTracksCutmonitoring->Fill(4,TMath::Abs(pt));
1198 fParticlesCutmonitoring->Fill(typeParticle,9,TMath::Abs(pt));
1199 fPtESDminusPtMCvPtESDafterallcuts->Fill(TMath::Abs(pt)-particle2->Pt(),TMath::Abs(pt),typeParticle);
1202 if(TMath::Abs(yforpion)<fYCut&&cutDCA)
1204 fHistNtrackwithITSPIDcuts->Fill(TMath::Abs(pt),0);
1207 fPionNTPCClusters->Fill(pt,nTPCclusters);
1208 fPionchi2->Fill(pt,chi2);
1212 fAntiPionNTPCClusters->Fill(TMath::Abs(pt),nTPCclusters);
1213 fAntiPionchi2->Fill(TMath::Abs(pt),chi2);
1216 if(TMath::Abs(yforkaon)<fYCut&&cutDCA)
1218 fHistNtrackwithITSPIDcuts->Fill(TMath::Abs(pt),1);
1220 fHistSignalinTPCKaonforITSPIDcuts->Fill(pt,(tpcSignal-sigKaon)/sigKaon);
1222 fHistSignalinTPCAntiKaonforITSPIDcuts->Fill(TMath::Abs(pt),(tpcSignal-sigKaon)/sigKaon);
1224 if(TMath::Abs(yforproton)<fYCut&&cutDCA)
1226 fHistNtrackwithITSPIDcuts->Fill(TMath::Abs(pt),2);
1228 fHistSignalinTPCProtonforITSPIDcuts->Fill(pt,(tpcSignal-sigProton)/sigProton);
1230 fHistSignalinTPCAntiProtonforITSPIDcuts->Fill(TMath::Abs(pt),(tpcSignal-sigProton)/sigProton);
1232 fHistStats->Fill(5);
1233 fHistPhiPtAfterCuts->Fill(phi,pt);
1234 fHistEtaPtAfterCuts->Fill(eta,pt);
1235 fHistDCAAfterCuts->Fill(dcaxy,dcaz);
1236 fHistPminusTPCinPAfterCuts->Fill(pinTPC-p,pinTPC);
1237 fHistPminusTPCinPglobalAfterCuts->Fill(pinTPC-p,pinTPCglobal);
1238 if(tmpQESD[0]>fchargeCut)
1240 fHistL3dEP->Fill(p,tmpQESD[0]);
1241 fHistL3dETPCinP->Fill(pinTPC,tmpQESD[0]);
1243 if(tmpQESD[1]>fchargeCut)
1245 fHistL4dEP->Fill(p,tmpQESD[1]);
1246 fHistL4dETPCinP->Fill(pinTPC,tmpQESD[1]);
1248 if(tmpQESD[2]>fchargeCut)
1250 fHistL5dEP->Fill(p,tmpQESD[2]);
1251 fHistL5dETPCinP->Fill(pinTPC,tmpQESD[2]);
1253 if(tmpQESD[3]>fchargeCut)
1255 fHistL6dEP->Fill(p,tmpQESD[3]);
1256 fHistL6dETPCinP->Fill(pinTPC,tmpQESD[3]);
1258 Float_t myITSsignal=0.0;
1259 Float_t minITSsignal=0.0;
1264 Double_t tmp2QESD[3];
1266 for (int iL=0;iL<4;iL++)
1268 if(tmpQESD[iL]>fchargeCut)
1270 tmp2QESD[iLnotZero]=tmpQESD[iL];
1276 whichLmin=TMath::LocMin(3,tmp2QESD);
1277 if(nosignaL>-1&&nosignaL<=whichLmin)
1279 minITSsignal=TMath::MinElement(3,tmp2QESD);
1280 myITSsignal=MyITSsignalusing3points(tmp2QESD);
1284 myITSsignal=MyITSsignalusing4points(tmpQESD);
1285 whichLmin=TMath::LocMin(4,tmpQESD);
1286 minITSsignal=TMath::MinElement(4,tmpQESD);
1290 fHistwhichhasmin->Fill(0.0,tmpQESD[0]);
1292 fHistwhichhasmin->Fill(1.0,tmpQESD[1]);
1294 fHistwhichhasmin->Fill(2.0,tmpQESD[2]);
1296 fHistwhichhasmin->Fill(3.0,tmpQESD[3]);
1299 fHistMydEPpositive->Fill(p,myITSsignal);
1300 fHistMydETPCinPglobalpositive->Fill(pinTPCglobal,myITSsignal);
1301 fHistMydETPCinPpositive->Fill(pinTPC,myITSsignal);
1305 fHistMydEPnegative->Fill(p,myITSsignal);
1306 fHistMydETPCinPglobalnegative->Fill(pinTPCglobal,myITSsignal);
1307 fHistMydETPCinPnegative->Fill(pinTPC,myITSsignal);
1309 Float_t signaltouse=myITSsignal;
1312 Float_t itspidsignalforpions=TMath::Log(signaltouse)-TMath::Log(fESDpid->GetITSResponse().Bethe(p,pionmass,kFALSE));
1313 Float_t itspidsignalforkaons=TMath::Log(signaltouse)-TMath::Log(fESDpid->GetITSResponse().Bethe(p,kaonmass,kFALSE));
1314 Float_t itspidsignalforprotons=TMath::Log(signaltouse)-TMath::Log(fESDpid->GetITSResponse().Bethe(p,protonmass,kFALSE));
1319 fHistMysignalminusESD->Fill((signaltouse-trackESD->GetITSsignal())/signaltouse);
1321 if(TMath::Abs(yforpion)<=fYCut)
1325 weight=GetWeight(label,stack);
1331 fHistminsignalifPionP->Fill(pt,itspidsignalforpions,weight);
1333 fHistminsignalifPionP->Fill(pt,itspidsignalforpions);
1334 if(itspidsignalforpions>-0.5&&itspidsignalforpions<0.2) //select on clean
1336 fDCAXYZforcleanPions->Fill(pt,dcaxy,dcaz);
1339 if(primary&&pdgcode==211)
1340 fDCAXYZforcleanPionsMCPrimary->Fill(pt,dcaxy,dcaz);
1341 else if(!primary&&pdgcode==211&&uniqueID==kPDecay)
1342 fDCAXYZforcleanPionsWD->Fill(pt,dcaxy,dcaz);
1343 else if(!primary&&pdgcode==211&&uniqueID==kPHadronic)
1344 fDCAXYZforcleanPionsHI->Fill(pt,dcaxy,dcaz);
1345 else if(primary&&(pdgcode==-11||pdgcode==-13))
1346 fDCAXYZforcleanPionsMEPrimary->Fill(pt,dcaxy,dcaz);
1347 else if(!primary&&(pdgcode==-11||pdgcode==-13))
1348 fDCAXYZforcleanPionsMESecondary->Fill(pt,dcaxy,dcaz);
1350 fDCAXYZforcleanPionsR->Fill(pt,dcaxy,dcaz);
1357 fHistminsignalifPionPPrimary->Fill(pt,itspidsignalforpions);
1362 fHistminsignalifPionPSecondary->Fill(pt,itspidsignalforpions,weight);
1363 //cout<<pdgcode<<" "<< uniqueID<<" "<<kPDecay<<" "<<kPHadronic<<endl;
1365 if(pdgcode==-11||pdgcode==-13)
1367 fHistminsignalifMuEPositiveP->Fill(pt,itspidsignalforpions);
1372 fHistStats->Fill(6);
1373 fAntiElectronsource->Fill(pt,uniqueID);
1375 else if(pdgcode==-13)
1377 fHistStats->Fill(7);
1378 fAntiMuonsource->Fill(pt,uniqueID);
1381 else if(primary&&pdgcode==-11)
1383 fPrimaryElectronsMother->Fill(stack->Particle(particle2->GetFirstMother())->GetPdgCode());
1384 fAntiElectronsource->Fill(pt,0);
1386 else if(primary&&pdgcode==-13)
1387 fAntiMuonsource->Fill(pt,0);
1389 if(pdgcodefake==211)
1392 fHistminsignalifPionPrimaryfake->Fill(pt,itspidsignalforpions);
1394 fHistminsignalifPionSecondaryfake->Fill(pt,itspidsignalforpions);
1397 if(itspidsignalforpions>-0.5&&itspidsignalforpions<0.2) //select on clean
1399 fDCAXYZOpenforcleanPions->Fill(pt,dcaxy,dcaz);
1402 if(primary&&pdgcode==211)
1403 fDCAXYZOpenforcleanPionsMCPrimary->Fill(pt,dcaxy,dcaz);
1404 else if(!primary&&pdgcode==211&&uniqueID==kPDecay)
1405 fDCAXYZOpenforcleanPionsWD->Fill(pt,dcaxy,dcaz);
1406 else if(!primary&&pdgcode==211&&uniqueID==kPHadronic)
1407 fDCAXYZOpenforcleanPionsHI->Fill(pt,dcaxy,dcaz);
1408 else if(primary&&(pdgcode==-11||pdgcode==-13))
1409 fDCAXYZOpenforcleanPionsMEPrimary->Fill(pt,dcaxy,dcaz);
1410 else if(!primary&&(pdgcode==-11||pdgcode==-13))
1411 fDCAXYZOpenforcleanPionsMESecondary->Fill(pt,dcaxy,dcaz);
1413 fDCAXYZOpenforcleanPionsR->Fill(pt,dcaxy,dcaz);
1422 fHistminsignalifAntiPionP->Fill(TMath::Abs(pt),itspidsignalforpions,weight);
1424 fHistminsignalifAntiPionP->Fill(TMath::Abs(pt),itspidsignalforpions);
1425 if(itspidsignalforpions>-0.5&&itspidsignalforpions<0.2)//select on clean
1427 fDCAXYZforcleanAntiPions->Fill(TMath::Abs(pt),dcaxy,dcaz);
1430 if(primary&&pdgcode==-211)
1431 fDCAXYZforcleanAntiPionsMCPrimary->Fill(TMath::Abs(pt),dcaxy,dcaz);
1432 else if(!primary&&pdgcode==-211&&uniqueID==kPDecay)
1433 fDCAXYZforcleanAntiPionsWD->Fill(TMath::Abs(pt),dcaxy,dcaz);
1434 else if(!primary&&pdgcode==-211&&uniqueID==kPHadronic)
1435 fDCAXYZforcleanAntiPionsHI->Fill(TMath::Abs(pt),dcaxy,dcaz);
1436 else if(primary&&(pdgcode==11||pdgcode==13))
1437 fDCAXYZforcleanAntiPionsMEPrimary->Fill(TMath::Abs(pt),dcaxy,dcaz);
1438 else if(!primary&&(pdgcode==11||pdgcode==13))
1439 fDCAXYZforcleanAntiPionsMESecondary->Fill(TMath::Abs(pt),dcaxy,dcaz);
1441 fDCAXYZforcleanAntiPionsR->Fill(TMath::Abs(pt),dcaxy,dcaz);
1447 fHistminsignalifAntiPionPPrimary->Fill(TMath::Abs(pt),itspidsignalforpions);
1452 fHistminsignalifAntiPionPSecondary->Fill(TMath::Abs(pt),itspidsignalforpions,weight);
1453 //cout<<pdgcode<<" "<< uniqueID<<" "<<kPDecay<<" "<<kPHadronic<<endl;
1455 if(pdgcode==11||pdgcode==13)
1457 fHistminsignalifMuENegativeP->Fill(TMath::Abs(pt),itspidsignalforpions);
1462 fHistStats->Fill(6);
1463 fElectronsource->Fill(TMath::Abs(pt),uniqueID);
1465 else if(pdgcode==13)
1467 fHistStats->Fill(7);
1468 fMuonsource->Fill(TMath::Abs(pt),uniqueID);
1471 else if(primary&&pdgcode==11)
1473 fPrimaryElectronsMother->Fill(stack->Particle(particle2->GetFirstMother())->GetPdgCode());
1474 fElectronsource->Fill(TMath::Abs(pt),0);
1476 else if(primary&&pdgcode==13)
1477 fMuonsource->Fill(TMath::Abs(pt),0);
1479 if(pdgcodefake==-211)
1482 fHistminsignalifAntiPionPrimaryfake->Fill(TMath::Abs(pt),itspidsignalforpions);
1484 fHistminsignalifAntiPionSecondaryfake->Fill(TMath::Abs(pt),itspidsignalforpions);
1487 if(itspidsignalforpions>-0.5&&itspidsignalforpions<0.2)//select on clean
1489 fDCAXYZOpenforcleanAntiPions->Fill(TMath::Abs(pt),dcaxy,dcaz);
1492 if(primary&&pdgcode==-211)
1493 fDCAXYZOpenforcleanAntiPionsMCPrimary->Fill(TMath::Abs(pt),dcaxy,dcaz);
1494 else if(!primary&&pdgcode==-211&&uniqueID==kPDecay)
1495 fDCAXYZOpenforcleanAntiPionsWD->Fill(TMath::Abs(pt),dcaxy,dcaz);
1496 else if(!primary&&pdgcode==-211&&uniqueID==kPHadronic)
1497 fDCAXYZOpenforcleanAntiPionsHI->Fill(TMath::Abs(pt),dcaxy,dcaz);
1498 else if(primary&&(pdgcode==11||pdgcode==13))
1499 fDCAXYZOpenforcleanAntiPionsMEPrimary->Fill(TMath::Abs(pt),dcaxy,dcaz);
1500 else if(!primary&&(pdgcode==11||pdgcode==13))
1501 fDCAXYZOpenforcleanAntiPionsMESecondary->Fill(TMath::Abs(pt),dcaxy,dcaz);
1503 fDCAXYZOpenforcleanAntiPionsR->Fill(TMath::Abs(pt),dcaxy,dcaz);
1508 if(TMath::Abs(yforkaon)<=fYCut&&cutDCA)
1512 fHistminsignalifKaonP->Fill(pt,itspidsignalforkaons);
1513 if((itspidsignalforkaons>-0.2)&&(itspidsignalforkaons<0.2))
1515 fKaonNTPCClusters->Fill(pt,nTPCclusters);
1516 fKaonchi2->Fill(pt,chi2);
1521 fHistminsignalifKaonPPrimary->Fill(pt,itspidsignalforkaons);
1526 fHistminsignalifKaonPSecondary->Fill(pt,itspidsignalforkaons);
1528 if(pdgcodefake==321)
1531 fHistminsignalifKaonPrimaryfake->Fill(pt,itspidsignalforkaons);
1533 fHistminsignalifKaonSecondaryfake->Fill(pt,itspidsignalforkaons);
1540 fHistminsignalifAntiKaonP->Fill(TMath::Abs(pt),itspidsignalforkaons);
1541 if((itspidsignalforkaons>-0.2)&&(itspidsignalforkaons<0.2))
1543 fAntiKaonNTPCClusters->Fill(TMath::Abs(pt),nTPCclusters);
1544 fAntiKaonchi2->Fill(TMath::Abs(pt),chi2);
1549 fHistminsignalifAntiKaonPPrimary->Fill(TMath::Abs(pt),itspidsignalforkaons);
1554 fHistminsignalifAntiKaonPSecondary->Fill(TMath::Abs(pt),itspidsignalforkaons);
1556 if(pdgcodefake==-321)
1559 fHistminsignalifAntiKaonPrimaryfake->Fill(TMath::Abs(pt),itspidsignalforkaons);
1561 fHistminsignalifAntiKaonSecondaryfake->Fill(TMath::Abs(pt),itspidsignalforkaons);
1566 if(TMath::Abs(yforproton)<=fYCut)
1570 weight=GetWeight(label,stack);
1576 fHistminsignalifProtonP->Fill(pt,itspidsignalforprotons,weight);
1578 fHistminsignalifProtonP->Fill(pt,itspidsignalforprotons);
1580 //if(((itspidsignalforprotons))>(TMath::Abs(pt)<0.45?-0.2:0.0))&&(itspidsignalforprotons))<0.2)//select on
1582 if((itspidsignalforprotons>-0.2)&&(itspidsignalforprotons<0.5))
1584 fDCAXYZforcleanProtons->Fill(pt,dcaxy,dcaz);
1585 fProtonNTPCClusters->Fill(pt,nTPCclusters);
1586 fProtonchi2->Fill(pt,chi2);
1589 if(primary&&pdgcode==2212)
1590 fDCAXYZforcleanProtonsMCPrimary->Fill(pt,dcaxy,dcaz);
1591 else if(!primary&&!primaryfake&&(pdgcode==2212||pdgcodefake==2212)&&uniqueID==kPDecay)
1592 fDCAXYZforcleanProtonsWD->Fill(pt,dcaxy,dcaz);
1593 else if(!primary&&!primaryfake&&(pdgcode==2212||pdgcodefake==2212)&&uniqueID==kPHadronic)
1594 fDCAXYZforcleanProtonsHI->Fill(pt,dcaxy,dcaz);
1596 fDCAXYZforcleanProtonsR->Fill(pt,dcaxy,dcaz);
1602 fHistminsignalifProtonPPrimary->Fill(pt,itspidsignalforprotons);
1604 else if(primaryfake)
1606 if(pdgcodefake==2212)
1607 fHistminsignalifProtonPPrimaryfake->Fill(pt,itspidsignalforprotons);
1611 if(pdgcode==2212&&uniqueID==kPDecay)
1612 fHistminsignalifProtonPSecondaryWD->Fill(pt,itspidsignalforprotons,weight);
1613 else if(pdgcode==2212&&uniqueID==kPHadronic)
1614 fHistminsignalifProtonPSecondaryHI->Fill(pt,itspidsignalforprotons);
1615 else if(pdgcodefake==2212&&uniqueID==kPDecay)
1616 fHistminsignalifProtonPSecondaryWDfake->Fill(pt,itspidsignalforprotons,weight);
1617 else if(pdgcodefake==2212&&uniqueID==kPHadronic)
1618 fHistminsignalifProtonPSecondaryHIfake->Fill(pt,itspidsignalforprotons);
1620 fHistminsignalifProtonPSecondaryRest->Fill(pt,itspidsignalforprotons);
1624 if((itspidsignalforprotons>-0.2)&&(itspidsignalforprotons<0.5))
1626 fDCAXYZOpenforcleanProtons->Fill(pt,dcaxy,dcaz);
1629 if(primary&&pdgcode==2212)
1630 fDCAXYZOpenforcleanProtonsMCPrimary->Fill(pt,dcaxy,dcaz);
1631 else if(!primary&&!primaryfake&&(pdgcode==2212||pdgcodefake==2212)&&uniqueID==kPDecay)
1632 fDCAXYZOpenforcleanProtonsWD->Fill(pt,dcaxy,dcaz);
1633 else if(!primary&&!primaryfake&&(pdgcode==2212||pdgcodefake==2212)&&uniqueID==kPHadronic)
1634 fDCAXYZOpenforcleanProtonsHI->Fill(pt,dcaxy,dcaz);
1636 fDCAXYZOpenforcleanProtonsR->Fill(pt,dcaxy,dcaz);
1646 fHistminsignalifAntiProtonP->Fill(TMath::Abs(pt),itspidsignalforprotons,weight);
1648 fHistminsignalifAntiProtonP->Fill(TMath::Abs(pt),itspidsignalforprotons);
1649 if((itspidsignalforprotons>-0.2)&&(itspidsignalforprotons<0.5))
1651 fDCAXYZforcleanAntiProtons->Fill(TMath::Abs(pt),dcaxy,dcaz);
1655 if(primary&&pdgcode==-2212)
1656 fDCAXYZforcleanAntiProtonsMCPrimary->Fill(TMath::Abs(pt),dcaxy,dcaz);
1657 else if(!primary&&!primaryfake&&(pdgcode==-2212||pdgcodefake==-2212)&&uniqueID==kPDecay)
1658 fDCAXYZforcleanAntiProtonsWD->Fill(TMath::Abs(pt),dcaxy,dcaz);
1659 else if(!primary&&!primaryfake&&(pdgcode==-2212||pdgcodefake==-2212)&&uniqueID==kPHadronic)
1660 fDCAXYZforcleanAntiProtonsHI->Fill(TMath::Abs(pt),dcaxy,dcaz);
1662 fDCAXYZforcleanAntiProtonsR->Fill(TMath::Abs(pt),dcaxy,dcaz);
1668 fHistminsignalifAntiProtonPPrimary->Fill(TMath::Abs(pt),itspidsignalforprotons);
1670 else if(primaryfake)
1672 if(pdgcodefake==-2212)
1673 fHistminsignalifAntiProtonPPrimaryfake->Fill(TMath::Abs(pt),itspidsignalforprotons);
1677 if(pdgcode==-2212&&uniqueID==kPDecay)
1678 fHistminsignalifAntiProtonPSecondaryWD->Fill(TMath::Abs(pt),itspidsignalforprotons,weight);
1679 else if(pdgcode==-2212&&uniqueID==kPHadronic)
1680 fHistminsignalifAntiProtonPSecondaryHI->Fill(TMath::Abs(pt),itspidsignalforprotons);
1681 else if(pdgcodefake==-2212&&uniqueID==kPDecay)
1682 fHistminsignalifAntiProtonPSecondaryWDfake->Fill(TMath::Abs(pt),itspidsignalforprotons,weight);
1683 else if(pdgcodefake==-2212&&uniqueID==kPHadronic)
1684 fHistminsignalifAntiProtonPSecondaryHIfake->Fill(TMath::Abs(pt),itspidsignalforprotons);
1686 fHistminsignalifAntiProtonPSecondaryRest->Fill(TMath::Abs(pt),itspidsignalforprotons);
1689 if((itspidsignalforprotons>-0.2)&&(itspidsignalforprotons<0.5))
1691 fDCAXYZOpenforcleanAntiProtons->Fill(TMath::Abs(pt),dcaxy,dcaz);
1692 fAntiProtonNTPCClusters->Fill(TMath::Abs(pt),nTPCclusters);
1693 fAntiProtonchi2->Fill(TMath::Abs(pt),chi2);
1696 if(primary&&pdgcode==-2212)
1697 fDCAXYZOpenforcleanAntiProtonsMCPrimary->Fill(TMath::Abs(pt),dcaxy,dcaz);
1698 else if(!primary&&!primaryfake&&(pdgcode==-2212||pdgcodefake==-2212)&&uniqueID==kPDecay)
1699 fDCAXYZOpenforcleanAntiProtonsWD->Fill(TMath::Abs(pt),dcaxy,dcaz);
1700 else if(!primary&&!primaryfake&&(pdgcode==-2212||pdgcodefake==-2212)&&uniqueID==kPHadronic)
1701 fDCAXYZOpenforcleanAntiProtonsHI->Fill(TMath::Abs(pt),dcaxy,dcaz);
1703 fDCAXYZOpenforcleanAntiProtonsR->Fill(TMath::Abs(pt),dcaxy,dcaz);
1709 fHistStandartMul->Fill(refmultiplicity);
1710 fHistMytrackMul->Fill(mynumberoftracks);
1713 // Post output data.
1714 Printf("Done..........\n");
1716 //Printf("....................Done!\n");
1717 //Printf("end of Exec");
1720 //________________________________________________________________________
1721 void AliAnalysisChargedHadronSpectraITSTruncatedMeanTask::Terminate(Option_t *)
1726 Printf("YCut=%f",fYCut);
1727 Printf("nsigma=%f",fsigmacut);
1728 Printf("DCA cut xy sigma =%f zsigma=%f", fnsigmaxy, fnsigmaz);
1729 Printf("ChargeCut=%f ", fchargeCut);
1730 Printf("DCAxy parameters %f %f %f",fdcaxypar[0],fdcaxypar[1],fdcaxypar[2]);
1731 Printf("DCAz parameters %f %f %f %f",fdcazpar[0],fdcazpar[1],fdcazpar[2],fdcazpar[3]);
1737 Printf("correct SDD On\n");
1739 Printf("correct SSD On\n");
1742 Printf("weigth for pions");
1743 fK0weight->Print("All");
1747 Printf("weigth for protons");
1748 flambdaweight->Print("All");
1750 if(fAntilambdaweight)
1752 Printf("weigth for antiprotons");
1753 fAntilambdaweight->Print("All");
1755 Printf("Mul low %d Mul up %d",fLowMultiplicity, fUpMultiplicity);
1756 Printf("cent low %f cent up %f",fLowCentrality,fUpCentrality);
1757 if(fdovertexrescuts)
1758 Printf("Veretx resolution cut");
1759 Printf("end of Terminate");
1761 //___________________________________________________
1762 Float_t AliAnalysisChargedHadronSpectraITSTruncatedMeanTask::MyITSsignalusing4points(Double_t* tmpQESD) const
1764 //dE signal in case of 4 points in ITS
1765 Int_t indexes[4]={-1,-1,-1,-1};
1766 TMath::Sort(4,tmpQESD,indexes,0);
1767 return 0.5*(tmpQESD[indexes[0]]+tmpQESD[indexes[1]]);
1769 //________________________________________________________
1770 Float_t AliAnalysisChargedHadronSpectraITSTruncatedMeanTask::MyITSsignalusing3points( Double_t* tmpQESD) const
1772 //dE signal in case of 3 points in ITS
1773 Int_t indexes[3]={-1,-1,-1};
1774 TMath::Sort(3,tmpQESD,indexes,0);
1775 //cout<<tmpQESD[indexes[0]]<<" "<<tmpQESD[indexes[1]]<<" "<<tmpQESD[indexes[2]]<<endl;
1776 return (tmpQESD[indexes[0]]+tmpQESD[indexes[1]]*0.5)/1.5;
1778 //____________________________________________________________________________________________________
1779 void AliAnalysisChargedHadronSpectraITSTruncatedMeanTask::SetFunctionParam( Double_t * const par)
1781 fESDpid->GetITSResponse().SetBetheBlochParamsITSTPC(par);
1783 //_____________________________________________________________________________________________________
1784 void AliAnalysisChargedHadronSpectraITSTruncatedMeanTask::CorrectSDD(Double_t *tmpQESD) const
1786 //correction of SDD signal
1789 tmpQESD[0]=tmpQESD[0]*3.34/5.43;
1795 tmpQESD[1]=tmpQESD[1]*3.34/5.43;
1800 //_____________________________________________________________________________________________________
1801 void AliAnalysisChargedHadronSpectraITSTruncatedMeanTask::CorrectSSD(Double_t *tmpQESD) const
1803 //Correction of SSD signal
1804 tmpQESD[2]=(85.0/77.0)*tmpQESD[2];
1805 tmpQESD[3]=(85.0/77.0)*tmpQESD[3];
1807 //_______________________________________________________________________________________________________
1808 Bool_t AliAnalysisChargedHadronSpectraITSTruncatedMeanTask::SelectOnImpPar(AliESDtrack* t) const
1811 // cut on transverse impact parameter
1813 Float_t d0z0[2],covd0z0[3];
1814 t->GetImpactParameters(d0z0,covd0z0);
1815 Float_t sigma= fdcaxypar[0]+fdcaxypar[1]/TMath::Power(t->Pt(),fdcaxypar[2]);
1816 Float_t d0max = fnsigmaxy*sigma;
1818 Float_t sigmaZ = fdcazpar[0]+fdcazpar[1]/TMath::Power(t->Pt(),fdcazpar[2]);
1820 sigmaZ = fdcazpar[3];
1821 Float_t d0maxZ = fnsigmaz*sigmaZ;
1823 if(TMath::Abs(d0z0[0]) < d0max && TMath::Abs(d0z0[1]) < d0maxZ) //error
1827 //__________________________________________________________________________________________________
1828 Float_t AliAnalysisChargedHadronSpectraITSTruncatedMeanTask::GetWeight(Int_t t,AliStack* const stack) const
1831 //Get weigth for pions protons and antiprotons
1832 if(stack->IsPhysicalPrimary(TMath::Abs(t)))
1834 TParticle *particleMC = stack->Particle(TMath::Abs(t));
1835 Int_t pdgcodeMC = particleMC->GetPdgCode();
1836 if(TMath::Abs(pdgcodeMC)!=211&&TMath::Abs(pdgcodeMC)!=2212)
1838 if(!stack->IsPhysicalPrimary(TMath::Abs(particleMC->GetFirstMother())))
1840 TParticle *particleMother=stack->Particle(TMath::Abs(particleMC->GetFirstMother()));
1841 Int_t pdgcodeMother = particleMother->GetPdgCode();
1842 Float_t motherpt=particleMother-> Pt();
1843 if(TMath::Abs(pdgcodeMC)==211&&pdgcodeMother==310&&fK0weight)
1844 return fK0weight->Eval(motherpt);
1845 else if (pdgcodeMother==3122&&flambdaweight)
1846 return flambdaweight->Eval(motherpt);
1847 else if(pdgcodeMother==-3122&&fAntilambdaweight)
1848 return fAntilambdaweight->Eval(motherpt);
1851 //________________________________________________________________________________________________
1852 void AliAnalysisChargedHadronSpectraITSTruncatedMeanTask::SetDCA2010()
1854 //setting the DCA for 2010
1855 fdcaxypar[0]=0.0026;
1859 fdcazpar[0]=1000000.0;
1862 fdcazpar[3]=1000000.0;
1864 //______________________________________________________________________________________________________________
1865 void AliAnalysisChargedHadronSpectraITSTruncatedMeanTask::SetCentralityCut(Float_t low, Float_t up)
1867 //centrality cut setter
1868 if((up>low)&&(!(low<0.0))&&(!(up>100.0)))
1875 //_____________________________________________________________________________________________________________
1876 void AliAnalysisChargedHadronSpectraITSTruncatedMeanTask::SetMultiplicityCut(Int_t low, Int_t up)
1878 //mulyiplicty cut setter
1879 if((!(up>low))&&low>=0&&up>=0)
1881 fLowMultiplicity=-1;
1886 fLowMultiplicity=low;