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"
34 #include "AliESDUtils.h"
35 #include "AliMultiplicity.h"
37 class AliMCEventHandler;
41 ClassImp(AliAnalysisChargedHadronSpectraITSTruncatedMeanTask)
43 //________________________________________________________________________
44 AliAnalysisChargedHadronSpectraITSTruncatedMeanTask::AliAnalysisChargedHadronSpectraITSTruncatedMeanTask(const char *name)
45 :AliAnalysisTaskSE(name),fESD(0),fCuts(0),fCutsMul(0),fMC(0),
46 fLowMultiplicity(-1),fUpMultiplicity(-1),fLowCentrality(-10.0),fUpCentrality(-10.0),fSPD(0),fUsePilerejection(0),
47 fYCut(100.0),fsigmacut(3.0),fnsigmaxy(7.0),fnsigmaz(5.0),fchargeCut(0.0),
48 fCorrectSDD(0),fCorrectSSD(0),fHIsettings(0),fdovertexrescuts(0),
49 fK0weight(0),flambdaweight(0),fAntilambdaweight(0),
50 fHistStats(0),fHistZVertexBeforeCut(0),fHistZVertexAfterCut(0),fHistXYVertexBeforeCut(0),fHistXYVertexAfterCut(0),
51 fHistPhiPtBeforeCuts(0),fHistPhiPtAfterCuts(0),fHistEtaPtBeforeCuts(0),fHistEtaPtAfterCuts(0),fHistDCABeforeCuts(0),fHistDCAAfterCuts(0),
52 fHistPminusTPCinPAfterCuts(0),fHistPminusTPCinPglobalAfterCuts(0),
53 fHistMydEPpositive(0),fHistMydETPCinPpositive(0),fHistMydETPCinPglobalpositive(0),
54 fHistMydEPnegative(0),fHistMydETPCinPnegative(0),fHistMydETPCinPglobalnegative(0),
55 fHistL3dEP(0),fHistL4dEP(0),fHistL5dEP(0),fHistL6dEP(0),fHistL3dETPCinP(0),
56 fHistL4dETPCinP(0),fHistL5dETPCinP(0),fHistL6dETPCinP(0),fHistwhichhasmin(0),fHistMysignalminusESD(0),
57 fHistminsignalifPionP(0),fHistminsignalifKaonP(0),fHistminsignalifProtonP(0),fHistminsignalifAntiPionP(0),fHistminsignalifAntiKaonP(0),fHistminsignalifAntiProtonP(0),
58 fDCAXYZforcleanPions(0),fDCAXYZforcleanAntiPions(0),fDCAXYZforcleanProtons(0),fDCAXYZforcleanAntiProtons(0),
59 fDCAXYZOpenforcleanPions(0),fDCAXYZOpenforcleanAntiPions(0),fDCAXYZOpenforcleanProtons(0),fDCAXYZOpenforcleanAntiProtons(0),
60 fHistNtrackwithstandardcuts(0),fHistNtrackwithITSPIDcuts(0),
61 fHistSignalinTPCKaonforstandardcuts(0),fHistSignalinTPCKaonforITSPIDcuts(0),fHistSignalinTPCAntiKaonforstandardcuts(0),fHistSignalinTPCAntiKaonforITSPIDcuts(0),
62 fHistSignalinTPCProtonforstandardcuts(0),fHistSignalinTPCProtonforITSPIDcuts(0),fHistSignalinTPCAntiProtonforstandardcuts(0),fHistSignalinTPCAntiProtonforITSPIDcuts(0),
63 fHistStandartMul(0),fHistMytrackMul(0),fHistStandartMulvSPD2(0),
64 fHistminsignalifPionPPrimary(0),fHistminsignalifKaonPPrimary(0),fHistminsignalifProtonPPrimary(0),fHistminsignalifProtonPPrimaryfake(0),
65 fHistminsignalifAntiPionPPrimary(0),fHistminsignalifAntiKaonPPrimary(0),fHistminsignalifAntiProtonPPrimary(0),fHistminsignalifAntiProtonPPrimaryfake(0),
66 fHistminsignalifPionPSecondary(0),fHistminsignalifKaonPSecondary(0),
67 fHistminsignalifProtonPSecondaryWD(0),fHistminsignalifProtonPSecondaryHI(0),fHistminsignalifProtonPSecondaryRest(0),
68 fHistminsignalifProtonPSecondaryWDfake(0),fHistminsignalifProtonPSecondaryHIfake(0),
69 fHistminsignalifAntiPionPSecondary(0),fHistminsignalifAntiKaonPSecondary(0),
70 fHistminsignalifAntiProtonPSecondaryWD(0),fHistminsignalifAntiProtonPSecondaryHI(0), fHistminsignalifAntiProtonPSecondaryRest(0),
71 fHistminsignalifAntiProtonPSecondaryWDfake(0),fHistminsignalifAntiProtonPSecondaryHIfake(0),
72 fHistminsignalifMuEPositiveP(0),fHistminsignalifMuENegativeP(0),
73 fHistminsignalifPionPrimaryfake(0),fHistminsignalifKaonPrimaryfake(0),fHistminsignalifAntiPionPrimaryfake(0),fHistminsignalifAntiKaonPrimaryfake(0),
74 fHistminsignalifPionSecondaryfake(0),fHistminsignalifKaonSecondaryfake(0),fHistminsignalifAntiPionSecondaryfake(0),fHistminsignalifAntiKaonSecondaryfake(0),
75 fHistminsignalifPionPMCPrimary(0),fHistminsignalifKaonPMCPrimary(0),fHistminsignalifProtonPMCPrimary(0),
76 fHistminsignalifAntiPionPMCPrimary(0),fHistminsignalifAntiKaonPMCPrimary(0),fHistminsignalifAntiProtonPMCPrimary(0),
77 fHistminsignalifPionPMCPrimaryBeforeEventCuts(0),fHistminsignalifKaonPMCPrimaryBeforeEventCuts(0),fHistminsignalifProtonPMCPrimaryBeforeEventCuts(0),
78 fHistminsignalifAntiPionPMCPrimaryBeforeEventCuts(0),fHistminsignalifAntiKaonPMCPrimaryBeforeEventCuts(0),fHistminsignalifAntiProtonPMCPrimaryBeforeEventCuts(0),
79 fHistminsignalifPionPMCPrimaryBeforeEventCutswithgoodZvertex(0),fHistminsignalifKaonPMCPrimaryBeforeEventCutswithgoodZvertex(0),fHistminsignalifProtonPMCPrimaryBeforeEventCutswithgoodZvertex(0),
80 fHistminsignalifAntiPionPMCPrimaryBeforeEventCutswithgoodZvertex(0),fHistminsignalifAntiKaonPMCPrimaryBeforeEventCutswithgoodZvertex(0),fHistminsignalifAntiProtonPMCPrimaryBeforeEventCutswithgoodZvertex(0),
81 fHistminsignalifPionPMCPrimaryAfterEventCutsBeforeVertexZ(0),fHistminsignalifKaonPMCPrimaryAfterEventCutsBeforeVertexZ(0),fHistminsignalifProtonPMCPrimaryAfterEventCutsBeforeVertexZ(0),
82 fHistminsignalifAntiPionPMCPrimaryAfterEventCutsBeforeVertexZ(0),fHistminsignalifAntiKaonPMCPrimaryAfterEventCutsBeforeVertexZ(0),fHistminsignalifAntiProtonPMCPrimaryAfterEventCutsBeforeVertexZ(0),
83 fDCAXYZforcleanPionsMCPrimary(0),fDCAXYZforcleanAntiPionsMCPrimary(0),fDCAXYZforcleanProtonsMCPrimary(0),fDCAXYZforcleanAntiProtonsMCPrimary(0),
84 fDCAXYZforcleanPionsWD(0),fDCAXYZforcleanAntiPionsWD(0),fDCAXYZforcleanProtonsWD(0), fDCAXYZforcleanAntiProtonsWD(0),fDCAXYZforcleanPionsHI(0),fDCAXYZforcleanAntiPionsHI(0),
85 fDCAXYZforcleanProtonsHI(0),fDCAXYZforcleanAntiProtonsHI(0),fDCAXYZforcleanPionsMEPrimary(0),fDCAXYZforcleanAntiPionsMEPrimary(0),fDCAXYZforcleanPionsMESecondary(0),fDCAXYZforcleanAntiPionsMESecondary(0),fDCAXYZforcleanPionsR(0),fDCAXYZforcleanAntiPionsR(0),fDCAXYZforcleanProtonsR(0),fDCAXYZforcleanAntiProtonsR(0),
86 fDCAXYZOpenforcleanPionsMCPrimary(0),fDCAXYZOpenforcleanAntiPionsMCPrimary(0),fDCAXYZOpenforcleanProtonsMCPrimary(0),fDCAXYZOpenforcleanAntiProtonsMCPrimary(0),
87 fDCAXYZOpenforcleanPionsWD(0),fDCAXYZOpenforcleanAntiPionsWD(0),fDCAXYZOpenforcleanProtonsWD(0), fDCAXYZOpenforcleanAntiProtonsWD(0),fDCAXYZOpenforcleanPionsHI(0),fDCAXYZOpenforcleanAntiPionsHI(0),
88 fDCAXYZOpenforcleanProtonsHI(0),fDCAXYZOpenforcleanAntiProtonsHI(0),fDCAXYZOpenforcleanPionsMEPrimary(0),fDCAXYZOpenforcleanAntiPionsMEPrimary(0),fDCAXYZOpenforcleanPionsMESecondary(0),fDCAXYZOpenforcleanAntiPionsMESecondary(0),fDCAXYZOpenforcleanPionsR(0),fDCAXYZOpenforcleanAntiPionsR(0),fDCAXYZOpenforcleanProtonsR(0),fDCAXYZOpenforcleanAntiProtonsR(0),
89 fElectronsource(0),fAntiElectronsource(0),
90 fMuonsource(0),fAntiMuonsource(0),
91 fPionNTPCClusters(0),fAntiPionNTPCClusters(0),fKaonNTPCClusters(0),fAntiKaonNTPCClusters(0),fProtonNTPCClusters(0),fAntiProtonNTPCClusters(0),
92 fPionchi2(0),fAntiPionchi2(0),fKaonchi2(0),fAntiKaonchi2(0),fProtonchi2(0),fAntiProtonchi2(0),
93 fTracksCutmonitoring(0),fParticlesCutmonitoring(0),fVertexshift(0),fPtESDminusPtMCvPtESDafterallcuts(0),fPtESDminusPtMCvPtESDafterTPCcuts(0),fMulESDMulMCVz(0),
94 fTPCPIDCUT(0), fESDpid(0),fPrimaryElectronsMother(0),
98 fESDpid=new AliESDpid();
99 // fESDpid->GetTPCResponse().SetBetheBlochParameters(0.0283086,2.63394e+01,5.04114e-11,2.12543e+00,4.88663e+00);
100 fESDpid->GetTPCResponse().SetBetheBlochParameters(1.28949/50., 2.74095e+01, TMath::Exp(-3.21763e+01), 2.44026, 6.58800);
104 fCutsMul=new AliESDtrackCuts("Mul","Mul");
105 fCutsMul->SetMinNClustersTPC(70);
106 fCutsMul->SetMaxChi2PerClusterTPC(4);
107 fCutsMul->SetAcceptKinkDaughters(kFALSE);
108 fCutsMul->SetRequireTPCRefit(kTRUE);
110 fCutsMul->SetRequireITSRefit(kTRUE);
111 fCutsMul->SetClusterRequirementITS(AliESDtrackCuts::kSPD,
112 AliESDtrackCuts::kAny);
113 fCutsMul->SetMaxDCAToVertexXYPtDep("0.0182+0.0350/pt^1.01");
115 fCutsMul->SetMaxDCAToVertexZ(2);
116 fCutsMul->SetDCAToVertex2D(kFALSE);
117 fCutsMul->SetRequireSigmaToVertex(kFALSE);
119 fCutsMul->SetEtaRange(-0.8,+0.8);
120 fCutsMul->SetPtRange(0.15, 1e10);
128 fdcazpar[2]=1.114758;
134 Printf("end of AliAnalysisChargedHadronSpectraITSTruncatedMeanTask");
135 DefineOutput(1, TList::Class());
139 //________________________________________________________________________
140 void AliAnalysisChargedHadronSpectraITSTruncatedMeanTask::UserCreateOutputObjects()
142 //UserCreateOutputObject
143 Printf("AliAnalysisChargedHadronSpectraITSTruncatedMeanTask UserCreateOutputObjects");
154 const Int_t npredec=50;
155 Double_t tabx[ndec*npredec+1];
156 for (Int_t i=0;i<ndec;i++)
158 for (Int_t j=0;j<npredec;j++)
160 tabx[npredec*i+j]=TMath::Power(10,((Double_t)i)+((Double_t)startvalue)+((Double_t)j)/((Double_t)npredec));
163 tabx[ndec*npredec]=TMath::Power(10,ndec+startvalue);
166 const Double_t jump=1.5;
167 const Double_t starty=0.0;
171 Double_t binsPtDummy[kPtBins+1];
173 for(int i=1;i<=kPtBins+1;i++)
175 if(binsPtDummy[i-1]+0.05<1.01)
176 binsPtDummy[i]=binsPtDummy[i-1]+0.05;
178 binsPtDummy[i]=binsPtDummy[i-1]+0.1;
180 //{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};
183 fHistStats=new TH1F("StatsHist","StatsHist",10,-0.5,9.5);
184 fHistStats->GetXaxis()->SetBinLabel(1,"Nevents");
185 fHistStats->GetXaxis()->SetBinLabel(2,"Nevents_physics");
186 fHistStats->GetXaxis()->SetBinLabel(3,"Nevents_physics_with_good_SPD_vertex");
187 fHistStats->GetXaxis()->SetBinLabel(4,"Nevents_physics_with_good_SPD_vertex_and_|z|<10.0");
188 fHistStats->GetXaxis()->SetBinLabel(5,"N_tracks_with_3_or_4_in_SSD_SDD");
189 fHistStats->GetXaxis()->SetBinLabel(6,"N_tracks_with_3_or_4_with_goodq_in_SSD_SDD");
190 fHistStats->GetXaxis()->SetBinLabel(7,"e_in_pi");
191 fHistStats->GetXaxis()->SetBinLabel(8,"mu_in_pi");
192 fHistStats->GetXaxis()->SetBinLabel(9,"MC_event");
193 fHistStats->GetXaxis()->SetBinLabel(10,"MC_event_with_z<10.0");
194 flist->Add(fHistStats);
196 fHistZVertexBeforeCut=new TH1F("HistZVertexBeforeCut","ZVertex;z[cm];N_{counts}",400,-20,20);
197 flist->Add(fHistZVertexBeforeCut);
198 fHistZVertexAfterCut=new TH1F("HistZVertexAfterCut","ZVertex;z[cm];N_{counts}",400,-20,20);
199 flist->Add(fHistZVertexAfterCut);
200 fHistXYVertexBeforeCut=new TH2F("HistXYVertexBeforeCut","XYVertex;x[cm];y[cm];N_{conuts}",100,-0.4,0.4,100,-0.4,0.4);
201 flist->Add(fHistXYVertexBeforeCut);
202 fHistXYVertexAfterCut=new TH2F("HistXYVertexAfterCut","XYVertex;x[cm];y[cm];N_{conuts}",100,-0.4,0.4,100,-0.4,0.4);
203 flist->Add(fHistXYVertexAfterCut);
205 fHistPhiPtBeforeCuts=new TH2F("HistPhiPtBeforeCuts",";#phi;pt[GeV/c]",70,0,2.0*TMath::Pi(),nptbins,-1.0*ptmax,ptmax);
206 flist->Add(fHistPhiPtBeforeCuts);
208 fHistPhiPtAfterCuts=new TH2F("HistPhiPtAfterCuts",";#phi;pt[GeV/c]",70,0,2.0*TMath::Pi(),nptbins,-1.0*ptmax,ptmax);
209 flist->Add(fHistPhiPtAfterCuts);
211 fHistEtaPtBeforeCuts=new TH2F("HistEtaPtBeforeCuts",";#eta;pt[GeV/c]",netabins,-1.0*etamax,etamax,nptbins,-1.0*ptmax,ptmax);//eta pt
212 flist->Add(fHistEtaPtBeforeCuts);
214 fHistEtaPtAfterCuts=new TH2F("HistEtaPtAfterCuts",";#eta;pt[GeV/c]",netabins,-1.0*etamax,etamax,nptbins,-1.0*ptmax,ptmax);//eta pt
215 flist->Add(fHistEtaPtAfterCuts);
217 fHistDCABeforeCuts=new TH2F("HistDCABeforeCut",";dcaxy[cm];dcaz[cm]",100,-1.0*dcamax,dcamax,100,-1.0*dcamax,1.0*dcamax);
218 flist->Add(fHistDCABeforeCuts);
220 fHistDCAAfterCuts=new TH2F("HistDCAAfterCut",";dcaxy[cm];dcaz[cm]",100,-1.0*dcamax,dcamax,100,-1.0*dcamax,1.0*dcamax);
221 flist->Add(fHistDCAAfterCuts);
224 fHistPminusTPCinPAfterCuts= new TH2F("HistPminusTPCinPVPTPCinAfterCuts",";P-PTPCin [GeV/c];PTPCin",100,-0.5,0.5,ndec*npredec,tabx);
225 flist->Add(fHistPminusTPCinPAfterCuts);
227 fHistPminusTPCinPglobalAfterCuts= new TH2F("HistPminusTPCinPVPTPCinglobalAfterCuts",";P-PTPCinglobal [GeV/c];PTPCin",100,-0.5,0.5,ndec*npredec,tabx);
228 flist->Add(fHistPminusTPCinPglobalAfterCuts);
230 fHistMydEPpositive=new TH2F("HistMydEPpositive",";P[GeV/c];dE[in 300#mum]",ndec*npredec,tabx,ny,starty,ny*jump+starty);
231 flist->Add(fHistMydEPpositive);
233 fHistMydETPCinPpositive=new TH2F("HistMydETPCinPpositive",";P[GeV/c];dE[in 300#mum]",ndec*npredec,tabx,ny,starty,ny*jump+starty);
234 flist->Add(fHistMydETPCinPpositive);
236 fHistMydETPCinPglobalpositive=new TH2F("HistMydETPCinPglobalpositive",";P[GeV/c];dE[in 300#mum]",ndec*npredec,tabx,ny,starty,ny*jump+starty);
237 flist->Add(fHistMydETPCinPglobalpositive);
239 fHistMydEPnegative=new TH2F("HistMydEPnegative",";P[GeV/c];dE[in 300#mum]",ndec*npredec,tabx,ny,starty,ny*jump+starty);
240 flist->Add(fHistMydEPnegative);
242 fHistMydETPCinPnegative=new TH2F("HistMydETPCinPnegative",";P[GeV/c];dE[in 300#mum]",ndec*npredec,tabx,ny,starty,ny*jump+starty);
243 flist->Add(fHistMydETPCinPnegative);
245 fHistMydETPCinPglobalnegative=new TH2F("HistMydETPCinPglobalnegative",";P[GeV/c];dE[in 300#mum]",ndec*npredec,tabx,ny,starty,ny*jump+starty);
246 flist->Add(fHistMydETPCinPglobalnegative);
249 fHistL3dEP=new TH2F("HistL3dEP",";P[GeV/c];dE[in 300#mum]",ndec*npredec,tabx,ny,starty,ny*jump+starty);
250 flist->Add(fHistL3dEP);
252 fHistL4dEP=new TH2F("HistL4dEP",";P[GeV/c];dE[in 300#mum]",ndec*npredec,tabx,ny,starty,ny*jump+starty);
253 flist->Add(fHistL4dEP);
255 fHistL5dEP=new TH2F("HistL5dEP",";P[GeV/c];dE[in 300#mum]",ndec*npredec,tabx,ny,starty,ny*jump+starty);
256 flist->Add(fHistL5dEP);
258 fHistL6dEP=new TH2F("HistL6dEP",";P[GeV/c];dE[in 300#mum]",ndec*npredec,tabx,ny,starty,ny*jump+starty);
259 flist->Add(fHistL6dEP);
261 fHistL3dETPCinP=new TH2F("HistL3dETPCinP",";P[GeV/c];dE[in 300#mum]",ndec*npredec,tabx,ny,starty,ny*jump+starty);
262 flist->Add(fHistL3dETPCinP);
264 fHistL4dETPCinP=new TH2F("HistL4dETPCinP",";P[GeV/c];dE[in 300#mum]",ndec*npredec,tabx,ny,starty,ny*jump+starty);
265 flist->Add(fHistL4dETPCinP);
267 fHistL5dETPCinP=new TH2F("HistL5dETPCinP",";P[GeV/c];dE[in 300#mum]",ndec*npredec,tabx,ny,starty,ny*jump+starty);
268 flist->Add(fHistL5dETPCinP);
270 fHistL6dETPCinP=new TH2F("HistL6dETPCinP",";P[GeV/c];dE[in 300#mum]",ndec*npredec,tabx,ny,starty,ny*jump+starty);
271 flist->Add(fHistL6dETPCinP);
275 fHistwhichhasmin=new TH2F("Histwhichhasmin","Histwhichhasmin;L;Q",4,-0.5,3.5,100,0,1000);
276 fHistwhichhasmin->GetXaxis()->SetBinLabel(1,"SDD1");
277 fHistwhichhasmin->GetXaxis()->SetBinLabel(2,"SDD2");
278 fHistwhichhasmin->GetXaxis()->SetBinLabel(3,"SSD1");
279 fHistwhichhasmin->GetXaxis()->SetBinLabel(4,"SSD2");
280 flist->Add(fHistwhichhasmin);
281 fHistMysignalminusESD=new TH1F("HistMysignalminus","HistMysignalminus;my-ESD;N",100,-0.2,0.2);
282 flist->Add(fHistMysignalminusESD);
285 fHistminsignalifPionP=new TH2F("HistminsignalifPionP",";Pt[GeV/c];log(dE_real)-log(dE_fit)",kPtBins,binsPtDummy,ny,-4,4);
286 flist->Add(fHistminsignalifPionP);
287 fHistminsignalifKaonP=new TH2F("HistminsignalifKaonP",";Pt[GeV/c];log(dE_real)-log(dE_fit)",kPtBins,binsPtDummy,ny,-4,4);
288 flist->Add(fHistminsignalifKaonP);
289 fHistminsignalifProtonP=new TH2F("HistminsignalifProtonP",";Pt[GeV/c];log(dE_real)-log(dE_fit)",kPtBins,binsPtDummy,ny,-4,4);
290 flist->Add(fHistminsignalifProtonP);
293 fHistminsignalifAntiPionP=new TH2F("HistminsignalifAntiPionP",";Pt[GeV/c];log(dE_real)-log(dE_fit)",kPtBins,binsPtDummy,ny,-4,4);
294 flist->Add(fHistminsignalifAntiPionP);
295 fHistminsignalifAntiKaonP=new TH2F("HistminsignalifAntiKaonP",";Pt[GeV/c];log(dE_real)-log(dE_fit)",kPtBins,binsPtDummy,ny,-4,4);
296 flist->Add(fHistminsignalifAntiKaonP);
297 fHistminsignalifAntiProtonP=new TH2F("HistminsignalifAntiProtonP",";Pt[GeV/c];log(dE_real)-log(dE_fit)",kPtBins,binsPtDummy,ny,-4,4);
298 flist->Add(fHistminsignalifAntiProtonP);
300 Int_t kDCABins=20+2+40;
301 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};
306 fDCAXYZforcleanPions=new TH3F("fDCAXYZforcleanPions",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy);
307 flist->Add(fDCAXYZforcleanPions);
308 fDCAXYZforcleanAntiPions=new TH3F("fDCAXYZforcleanAntiPions",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy);
309 flist->Add(fDCAXYZforcleanAntiPions);
310 fDCAXYZforcleanProtons=new TH3F("fDCAXYZforcleanProtons",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy);
311 flist->Add(fDCAXYZforcleanProtons);
312 fDCAXYZforcleanAntiProtons=new TH3F("fDCAXYZforcleanAntiProtons",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy);
313 flist->Add(fDCAXYZforcleanAntiProtons);
316 fDCAXYZOpenforcleanPions=new TH3F("fDCAXYZOpenforcleanPions",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy);
317 flist->Add(fDCAXYZOpenforcleanPions);
318 fDCAXYZOpenforcleanAntiPions=new TH3F("fDCAXYZOpenforcleanAntiPions",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy);
319 flist->Add(fDCAXYZOpenforcleanAntiPions);
320 fDCAXYZOpenforcleanProtons=new TH3F("fDCAXYZOpenforcleanProtons",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy);
321 flist->Add(fDCAXYZOpenforcleanProtons);
322 fDCAXYZOpenforcleanAntiProtons=new TH3F("fDCAXYZOpenforcleanAntiProtons",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy);
323 flist->Add(fDCAXYZOpenforcleanAntiProtons);
325 fHistNtrackwithstandardcuts=new TH2F ("fHistNtrackwithstandardcuts",";Pt[GeV/c];type;counts",kPtBins,binsPtDummy,3,-0.5,2.5);
326 flist->Add(fHistNtrackwithstandardcuts);
327 fHistNtrackwithITSPIDcuts=new TH2F ("fHistNtrackwithITSPIDcuts",";Pt[GeV/c];type;counts",kPtBins,binsPtDummy,3,-0.5,2.5);
328 flist->Add(fHistNtrackwithITSPIDcuts);
331 fHistSignalinTPCKaonforstandardcuts= new TH2F("fHistSignalinTPCKaonforstandardcuts",";Pt[GeV/c];signal",kPtBins,binsPtDummy,100,-1.0,1.0) ;
332 flist->Add(fHistSignalinTPCKaonforstandardcuts);
333 fHistSignalinTPCKaonforITSPIDcuts= new TH2F("fHistSignalinTPCKaonforITSPIDcuts",";Pt[GeV/c];signal",kPtBins,binsPtDummy,100,-1.0,1.0) ;
334 flist->Add(fHistSignalinTPCKaonforITSPIDcuts);
336 fHistSignalinTPCAntiKaonforstandardcuts= new TH2F("fHistSignalinTPCAntiKaonforstandardcuts",";Pt[GeV/c];signal",kPtBins,binsPtDummy,100,-1.0,1.0) ;
337 flist->Add(fHistSignalinTPCAntiKaonforstandardcuts);
338 fHistSignalinTPCAntiKaonforITSPIDcuts= new TH2F("fHistSignalinTPCAntiKaonforITSPIDcuts",";Pt[GeV/c];signal",kPtBins,binsPtDummy,100,-1.0,1.0) ;
339 flist->Add(fHistSignalinTPCAntiKaonforITSPIDcuts);
341 fHistSignalinTPCProtonforstandardcuts= new TH2F("fHistSignalinTPCProtonforstandardcuts",";Pt[GeV/c];signal",kPtBins,binsPtDummy,100,-1.0,1.0) ;
342 flist->Add(fHistSignalinTPCProtonforstandardcuts);
343 fHistSignalinTPCProtonforITSPIDcuts= new TH2F("fHistSignalinTPCProtonforITSPIDcuts",";Pt[GeV/c];signal",kPtBins,binsPtDummy,100,-1.0,1.0) ;
344 flist->Add(fHistSignalinTPCProtonforITSPIDcuts);
347 fHistSignalinTPCAntiProtonforstandardcuts= new TH2F("fHistSignalinTPCAntiProtonforstandardcuts",";Pt[GeV/c];signal",kPtBins,binsPtDummy,100,-1.0,1.0) ;
348 flist->Add(fHistSignalinTPCAntiProtonforstandardcuts);
349 fHistSignalinTPCAntiProtonforITSPIDcuts= new TH2F("fHistSignalinTPCAntiProtonforITSPIDcuts",";Pt[GeV/c];signal",kPtBins,binsPtDummy,100,-1.0,1.0) ;
350 flist->Add(fHistSignalinTPCAntiProtonforITSPIDcuts);
352 fPionNTPCClusters=new TH2F("fPionNTPCClusters","fPionNTPCClusters;Pt [GeV/c];NClusters",kPtBins,binsPtDummy,20,60,160);
353 flist->Add(fPionNTPCClusters);
354 fAntiPionNTPCClusters=new TH2F("fAntiPionNTPCClusters","fAntiPionNTPCClusters;Pt [GeV/c];NClusters",kPtBins,binsPtDummy,20,60,160);
355 flist->Add(fAntiPionNTPCClusters);
356 fKaonNTPCClusters=new TH2F("fKaonNTPCClusters","fKaonNTPCClusters;Pt [GeV/c];NClusters",kPtBins,binsPtDummy,20,60,160);
357 flist->Add(fKaonNTPCClusters);
358 fAntiKaonNTPCClusters=new TH2F("fAntiKaonNTPCClusters","fAntiKaonNTPCClusters;Pt [GeV/c];NClusters",kPtBins,binsPtDummy,20,60,160);
359 flist->Add(fAntiKaonNTPCClusters);
360 fProtonNTPCClusters=new TH2F("fProtonNTPCClusters","fProtonNTPCClusters;Pt [GeV/c];NClusters",kPtBins,binsPtDummy,20,60,160);
361 flist->Add(fProtonNTPCClusters);
362 fAntiProtonNTPCClusters=new TH2F("fAntiProtonNTPCClusters","fAntiProtonNTPCClusters;Pt [GeV/c];NClusters",kPtBins,binsPtDummy,20,60,160);
363 flist->Add(fAntiProtonNTPCClusters);
366 fPionchi2=new TH2F("fPionchi2","fPionchi2;Pt [GeV/c];NClusters",kPtBins,binsPtDummy,20,0,6);
367 flist->Add(fPionchi2);
368 fAntiPionchi2=new TH2F("fAntiPionchi2","fAntiPionchi2;Pt [GeV/c];NClusters",kPtBins,binsPtDummy,20,0,6);
369 flist->Add(fAntiPionchi2);
370 fKaonchi2=new TH2F("fKaonchi2","fKaonchi2;Pt [GeV/c];NClusters",kPtBins,binsPtDummy,20,0,6);
371 flist->Add(fKaonchi2);
372 fAntiKaonchi2=new TH2F("fAntiKaonchi2","fAntiKaonchi2;Pt [GeV/c];NClusters",kPtBins,binsPtDummy,20,0,6);
373 flist->Add(fAntiKaonchi2);
374 fProtonchi2=new TH2F("fProtonchi2","fProtonchi2;Pt [GeV/c];NClusters",kPtBins,binsPtDummy,20,0,6);
375 flist->Add(fProtonchi2);
376 fAntiProtonchi2=new TH2F("fAntiProtonchi2","fAntiProtonchi2;Pt [GeV/c];NClusters",kPtBins,binsPtDummy,20,0,6);
377 flist->Add(fAntiProtonchi2);
381 fHistStandartMul=new TH1F("fHistStandartMul",";Ntracks;counts",300,0,3000);
382 flist->Add(fHistStandartMul);
383 fHistMytrackMul=new TH1F("fHistMytrackMul",";Ntracks;counts",300,0,3000);
384 flist->Add(fHistMytrackMul);
385 fHistStandartMulvSPD2=new TH2F("fHistStandartMulvSPD2",";Ntracks;nSPD2;counts",300,0,3000,300,0,3000);
386 flist->Add(fHistStandartMulvSPD2);
390 fHistStandartMul=new TH1F("fHistStandartMul",";Ntracks;counts",300,0,300);
391 flist->Add(fHistStandartMul);
392 fHistMytrackMul=new TH1F("fHistMytrackMul",";Ntracks;counts",300,0,300);
393 flist->Add(fHistMytrackMul);
394 fHistStandartMulvSPD2=new TH2F("fHistStandartMulvSPD2",";Ntracks;nSPD2;counts",300,0,300,300,0,300);
395 flist->Add(fHistStandartMulvSPD2);
397 fTracksCutmonitoring=new TH2F("fTracksCutmonitoring",";cut;pt[GeV/c];N_{entries}",4,0.5,4.5,kPtBins,binsPtDummy);
398 fTracksCutmonitoring->GetXaxis()->SetBinLabel(1,"TPCin");
399 fTracksCutmonitoring->GetXaxis()->SetBinLabel(2,"standard");
400 fTracksCutmonitoring->GetXaxis()->SetBinLabel(3,"ITSpid");
401 fTracksCutmonitoring->GetXaxis()->SetBinLabel(4,"DCA");
402 flist->Add(fTracksCutmonitoring);
410 Printf("end of CreateOutputObjects no MC");
417 fHistminsignalifPionPPrimary=new TH2F("HistminsignalifPionPPrimary",";Pt[GeV/c];log(dE_real)-log(dE_fit)",kPtBins,binsPtDummy,ny,-4,4);
418 flist->Add(fHistminsignalifPionPPrimary);
419 fHistminsignalifKaonPPrimary=new TH2F("HistminsignalifKaonPPrimary",";Pt[GeV/c];log(dE_real)-log(dE_fit)",kPtBins,binsPtDummy,ny,-4,4);
420 flist->Add(fHistminsignalifKaonPPrimary);
421 fHistminsignalifProtonPPrimary=new TH2F("HistminsignalifProtonPPrimary",";Pt[GeV/c];log(dE_real)-log(dE_fit)",kPtBins,binsPtDummy,ny,-4,4);
422 flist->Add(fHistminsignalifProtonPPrimary);
423 fHistminsignalifProtonPPrimaryfake=new TH2F("HistminsignalifProtonPPrimaryfake",";Pt[GeV/c];log(dE_real)-log(dE_fit)",kPtBins,binsPtDummy,ny,-4,4);
424 flist->Add(fHistminsignalifProtonPPrimaryfake);
426 fHistminsignalifAntiPionPPrimary=new TH2F("HistminsignalifAntiPionPPrimary",";Pt[GeV/c];log(dE_real)-log(dE_fit)",kPtBins,binsPtDummy,ny,-4,4);
427 flist->Add(fHistminsignalifAntiPionPPrimary);
428 fHistminsignalifAntiKaonPPrimary=new TH2F("HistminsignalifAntiKaonPPrimary",";Pt[GeV/c];log(dE_real)-log(dE_fit)",kPtBins,binsPtDummy,ny,-4,4);
429 flist->Add(fHistminsignalifAntiKaonPPrimary);
430 fHistminsignalifAntiProtonPPrimary=new TH2F("HistminsignalifAntiProtonPPrimary",";Pt[GeV/c];log(dE_real)-log(dE_fit)",kPtBins,binsPtDummy,ny,-4,4);
431 flist->Add(fHistminsignalifAntiProtonPPrimary);
432 fHistminsignalifAntiProtonPPrimaryfake=new TH2F("HistminsignalifAntiProtonPPrimaryfake",";Pt[GeV/c];log(dE_real)-log(dE_fit)",kPtBins,binsPtDummy,ny,-4,4);
433 flist->Add(fHistminsignalifAntiProtonPPrimaryfake);
435 fHistminsignalifPionPSecondary=new TH2F("HistminsignalifPionPSecondary",";Pt[GeV/c];log(dE_real)-log(dE_fit)",kPtBins,binsPtDummy,ny,-4,4);
436 flist->Add(fHistminsignalifPionPSecondary);
437 fHistminsignalifKaonPSecondary=new TH2F("HistminsignalifKaonPSecondary",";Pt[GeV/c];log(dE_real)-log(dE_fit)",kPtBins,binsPtDummy,ny,-4,4);
438 flist->Add(fHistminsignalifKaonPSecondary);
439 fHistminsignalifProtonPSecondaryWD=new TH2F("HistminsignalifProtonPSecondaryWD",";Pt[GeV/c];log(dE_real)-log(dE_fit)",kPtBins,binsPtDummy,ny,-4,4);
440 flist->Add(fHistminsignalifProtonPSecondaryWD);
441 fHistminsignalifProtonPSecondaryHI=new TH2F("HistminsignalifProtonPSecondaryHI",";Pt[GeV/c];log(dE_real)-log(dE_fit)",kPtBins,binsPtDummy,ny,-4,4);
442 flist->Add(fHistminsignalifProtonPSecondaryHI);
443 fHistminsignalifProtonPSecondaryRest=new TH2F("HistminsignalifProtonPSecondaryRest",";Pt[GeV/c];log(dE_real)-log(dE_fit)",kPtBins,binsPtDummy,ny,-4,4);
444 flist->Add(fHistminsignalifProtonPSecondaryRest);
445 fHistminsignalifProtonPSecondaryWDfake=new TH2F("HistminsignalifProtonPSecondaryWDfake",";Pt[GeV/c];log(dE_real)-log(dE_fit)",kPtBins,binsPtDummy,ny,-4,4);
446 flist->Add(fHistminsignalifProtonPSecondaryWDfake);
447 fHistminsignalifProtonPSecondaryHIfake=new TH2F("HistminsignalifProtonPSecondaryHIfake",";Pt[GeV/c];log(dE_real)-log(dE_fit)",kPtBins,binsPtDummy,ny,-4,4);
448 flist->Add(fHistminsignalifProtonPSecondaryHIfake);
451 fHistminsignalifAntiPionPSecondary=new TH2F("HistminsignalifAntiPionPSecondary",";Pt[GeV/c];log(dE_real)-log(dE_fit)",kPtBins,binsPtDummy,ny,-4,4);
452 flist->Add(fHistminsignalifAntiPionPSecondary);
453 fHistminsignalifAntiKaonPSecondary=new TH2F("HistminsignalifAntiKaonPSecondary",";Pt[GeV/c];log(dE_real)-log(dE_fit)",kPtBins,binsPtDummy,ny,-4,4);
454 flist->Add(fHistminsignalifAntiKaonPSecondary);
455 fHistminsignalifAntiProtonPSecondaryWD=new TH2F("HistminsignalifAntiProtonPSecondaryWD",";Pt[GeV/c];log(dE_real)-log(dE_fit)",kPtBins,binsPtDummy,ny,-4,4);
456 flist->Add(fHistminsignalifAntiProtonPSecondaryWD);
457 fHistminsignalifAntiProtonPSecondaryHI=new TH2F("HistminsignalifAntiProtonPSecondaryHI",";Pt[GeV/c];log(dE_real)-log(dE_fit)",kPtBins,binsPtDummy,ny,-4,4);
458 flist->Add(fHistminsignalifAntiProtonPSecondaryHI);
459 fHistminsignalifAntiProtonPSecondaryRest=new TH2F("HistminsignalifAntiProtonPSecondaryRest",";Pt[GeV/c];log(dE_real)-log(dE_fit)",kPtBins,binsPtDummy,ny,-4,4);
460 flist->Add(fHistminsignalifAntiProtonPSecondaryRest);
461 fHistminsignalifAntiProtonPSecondaryWDfake=new TH2F("HistminsignalifAntiProtonPSecondaryWDfake",";Pt[GeV/c];log(dE_real)-log(dE_fit)",kPtBins,binsPtDummy,ny,-4,4);
462 flist->Add(fHistminsignalifAntiProtonPSecondaryWDfake);
463 fHistminsignalifAntiProtonPSecondaryHIfake=new TH2F("HistminsignalifAntiProtonPSecondaryHIfake",";Pt[GeV/c];log(dE_real)-log(dE_fit)",kPtBins,binsPtDummy,ny,-4,4);
464 flist->Add(fHistminsignalifAntiProtonPSecondaryHIfake);
466 fHistminsignalifMuEPositiveP=new TH2F("HistminsignalifMuEPositiveP",";Pt[GeV/c];log(dE_real)-log(dE_fit)",kPtBins,binsPtDummy,ny,-4,4);
467 flist->Add(fHistminsignalifMuEPositiveP);
468 fHistminsignalifMuENegativeP=new TH2F("HistminsignalifMuENegativeP",";Pt[GeV/c];log(dE_real)-log(dE_fit)",kPtBins,binsPtDummy,ny,-4,4);
469 flist->Add(fHistminsignalifMuENegativeP);
472 fHistminsignalifPionPrimaryfake=new TH2F("HistminsignalifPionPrimaryfake",";Pt[GeV/c];log(dE_real)-log(dE_fit)",kPtBins,binsPtDummy,ny,-4,4);
473 flist->Add(fHistminsignalifPionPrimaryfake);
474 fHistminsignalifKaonPrimaryfake=new TH2F("HistminsignalifKaonPrimaryfake",";Pt[GeV/c];log(dE_real)-log(dE_fit)",kPtBins,binsPtDummy,ny,-4,4);
475 flist->Add(fHistminsignalifKaonPrimaryfake);
477 fHistminsignalifAntiPionPrimaryfake=new TH2F("HistminsignalifAntiPionPrimaryfake",";Pt[GeV/c];log(dE_real)-log(dE_fit)",kPtBins,binsPtDummy,ny,-4,4);
478 flist->Add(fHistminsignalifAntiPionPrimaryfake);
479 fHistminsignalifAntiKaonPrimaryfake=new TH2F("HistminsignalifAntiKaonPrimaryfake",";Pt[GeV/c];log(dE_real)-log(dE_fit)",kPtBins,binsPtDummy,ny,-4,4);
480 flist->Add(fHistminsignalifAntiKaonPrimaryfake);
483 fHistminsignalifPionSecondaryfake=new TH2F("HistminsignalifPionSecondaryfake",";Pt[GeV/c];log(dE_real)-log(dE_fit)",kPtBins,binsPtDummy,ny,-4,4);
484 flist->Add(fHistminsignalifPionSecondaryfake);
485 fHistminsignalifKaonSecondaryfake=new TH2F("HistminsignalifKaonSecondaryfake",";Pt[GeV/c];log(dE_real)-log(dE_fit)",kPtBins,binsPtDummy,ny,-4,4);
486 flist->Add(fHistminsignalifKaonSecondaryfake);
488 fHistminsignalifAntiPionSecondaryfake=new TH2F("HistminsignalifAntiPionSecondaryfake",";Pt[GeV/c];log(dE_real)-log(dE_fit)",kPtBins,binsPtDummy,ny,-4,4);
489 flist->Add(fHistminsignalifAntiPionSecondaryfake);
490 fHistminsignalifAntiKaonSecondaryfake=new TH2F("HistminsignalifAntiKaonSecondaryfake",";Pt[GeV/c];log(dE_real)-log(dE_fit)",kPtBins,binsPtDummy,ny,-4,4);
491 flist->Add(fHistminsignalifAntiKaonSecondaryfake);
494 fHistminsignalifPionPMCPrimary=new TH1F("HistminsignalifPionPMCPrimary",";Pt[GeV/c]",kPtBins,binsPtDummy);
495 flist->Add(fHistminsignalifPionPMCPrimary);
496 fHistminsignalifKaonPMCPrimary=new TH1F("HistminsignalifKaonPMCPrimary",";Pt[GeV/c]",kPtBins,binsPtDummy);
497 flist->Add(fHistminsignalifKaonPMCPrimary);
498 fHistminsignalifProtonPMCPrimary=new TH1F("HistminsignalifProtonPMCPrimary",";Pt[GeV/c]",kPtBins,binsPtDummy);
499 flist->Add(fHistminsignalifProtonPMCPrimary);
501 fHistminsignalifAntiPionPMCPrimary=new TH1F("HistminsignalifAntiPionPMCPrimary",";Pt[GeV/c]",kPtBins,binsPtDummy);
502 flist->Add(fHistminsignalifAntiPionPMCPrimary);
503 fHistminsignalifAntiKaonPMCPrimary=new TH1F("HistminsignalifAntiKaonPMCPrimary",";Pt[GeV/c]",kPtBins,binsPtDummy);
504 flist->Add(fHistminsignalifAntiKaonPMCPrimary);
505 fHistminsignalifAntiProtonPMCPrimary=new TH1F("HistminsignalifAntiProtonPMCPrimary",";Pt[GeV/c]",kPtBins,binsPtDummy);
506 flist->Add(fHistminsignalifAntiProtonPMCPrimary);
509 fHistminsignalifPionPMCPrimaryBeforeEventCuts=new TH1F("HistminsignalifPionPMCPrimaryBeforeEventCuts",";Pt[GeV/c]",kPtBins,binsPtDummy);
510 flist->Add(fHistminsignalifPionPMCPrimaryBeforeEventCuts);
511 fHistminsignalifKaonPMCPrimaryBeforeEventCuts=new TH1F("HistminsignalifKaonPMCPrimaryBeforeEventCuts",";Pt[GeV/c]",kPtBins,binsPtDummy);
512 flist->Add(fHistminsignalifKaonPMCPrimaryBeforeEventCuts);
513 fHistminsignalifProtonPMCPrimaryBeforeEventCuts=new TH1F("HistminsignalifProtonPMCPrimaryBeforeEventCuts",";Pt[GeV/c]",kPtBins,binsPtDummy);
514 flist->Add(fHistminsignalifProtonPMCPrimaryBeforeEventCuts);
516 fHistminsignalifAntiPionPMCPrimaryBeforeEventCuts=new TH1F("HistminsignalifAntiPionPMCPrimaryBeforeEventCuts",";Pt[GeV/c]",kPtBins,binsPtDummy);
517 flist->Add(fHistminsignalifAntiPionPMCPrimaryBeforeEventCuts);
518 fHistminsignalifAntiKaonPMCPrimaryBeforeEventCuts=new TH1F("HistminsignalifAntiKaonPMCPrimaryBeforeEventCuts",";Pt[GeV/c]",kPtBins,binsPtDummy);
519 flist->Add(fHistminsignalifAntiKaonPMCPrimaryBeforeEventCuts);
520 fHistminsignalifAntiProtonPMCPrimaryBeforeEventCuts=new TH1F("HistminsignalifAntiProtonPMCPrimaryBeforeEventCuts",";Pt[GeV/c]",kPtBins,binsPtDummy);
521 flist->Add(fHistminsignalifAntiProtonPMCPrimaryBeforeEventCuts);
523 fHistminsignalifPionPMCPrimaryBeforeEventCutswithgoodZvertex=new TH1F("HistminsignalifPionPMCPrimaryBeforeEventCutswithgoodZvertex",";Pt[GeV/c]",kPtBins,binsPtDummy);
524 flist->Add(fHistminsignalifPionPMCPrimaryBeforeEventCutswithgoodZvertex);
525 fHistminsignalifKaonPMCPrimaryBeforeEventCutswithgoodZvertex=new TH1F("HistminsignalifKaonPMCPrimaryBeforeEventCutswithgoodZvertex",";Pt[GeV/c]",kPtBins,binsPtDummy);
526 flist->Add(fHistminsignalifKaonPMCPrimaryBeforeEventCutswithgoodZvertex);
527 fHistminsignalifProtonPMCPrimaryBeforeEventCutswithgoodZvertex=new TH1F("HistminsignalifProtonPMCPrimaryBeforeEventCutswithgoodZvertex",";Pt[GeV/c]",kPtBins,binsPtDummy);
528 flist->Add(fHistminsignalifProtonPMCPrimaryBeforeEventCutswithgoodZvertex);
530 fHistminsignalifAntiPionPMCPrimaryBeforeEventCutswithgoodZvertex=new TH1F("HistminsignalifAntiPionPMCPrimaryBeforeEventCutswithgoodZvertex",";Pt[GeV/c]",kPtBins,binsPtDummy);
531 flist->Add(fHistminsignalifAntiPionPMCPrimaryBeforeEventCutswithgoodZvertex);
532 fHistminsignalifAntiKaonPMCPrimaryBeforeEventCutswithgoodZvertex=new TH1F("HistminsignalifAntiKaonPMCPrimaryBeforeEventCutswithgoodZvertex",";Pt[GeV/c]",kPtBins,binsPtDummy);
533 flist->Add(fHistminsignalifAntiKaonPMCPrimaryBeforeEventCutswithgoodZvertex);
534 fHistminsignalifAntiProtonPMCPrimaryBeforeEventCutswithgoodZvertex=new TH1F("HistminsignalifAntiProtonPMCPrimaryBeforeEventCutswithgoodZvertex",";Pt[GeV/c]",kPtBins,binsPtDummy);
535 flist->Add(fHistminsignalifAntiProtonPMCPrimaryBeforeEventCutswithgoodZvertex);
537 fHistminsignalifPionPMCPrimaryAfterEventCutsBeforeVertexZ=new TH1F("HistminsignalifPionPMCPrimaryAfterEventCutsBeforeVertexZ",";Pt[GeV/c]",kPtBins,binsPtDummy);
538 flist->Add(fHistminsignalifPionPMCPrimaryAfterEventCutsBeforeVertexZ);
539 fHistminsignalifKaonPMCPrimaryAfterEventCutsBeforeVertexZ=new TH1F("HistminsignalifKaonPMCPrimaryAfterEventCutsBeforeVertexZ",";Pt[GeV/c]",kPtBins,binsPtDummy);
540 flist->Add(fHistminsignalifKaonPMCPrimaryAfterEventCutsBeforeVertexZ);
541 fHistminsignalifProtonPMCPrimaryAfterEventCutsBeforeVertexZ=new TH1F("HistminsignalifProtonPMCPrimaryAfterEventCutsBeforeVertexZ",";Pt[GeV/c]",kPtBins,binsPtDummy);
542 flist->Add(fHistminsignalifProtonPMCPrimaryAfterEventCutsBeforeVertexZ);
544 fHistminsignalifAntiPionPMCPrimaryAfterEventCutsBeforeVertexZ=new TH1F("HistminsignalifAntiPionPMCPrimaryAfterEventCutsBeforeVertexZ",";Pt[GeV/c]",kPtBins,binsPtDummy);
545 flist->Add(fHistminsignalifAntiPionPMCPrimaryAfterEventCutsBeforeVertexZ);
546 fHistminsignalifAntiKaonPMCPrimaryAfterEventCutsBeforeVertexZ=new TH1F("HistminsignalifAntiKaonPMCPrimaryAfterEventCutsBeforeVertexZ",";Pt[GeV/c]",kPtBins,binsPtDummy);
547 flist->Add(fHistminsignalifAntiKaonPMCPrimaryAfterEventCutsBeforeVertexZ);
548 fHistminsignalifAntiProtonPMCPrimaryAfterEventCutsBeforeVertexZ=new TH1F("HistminsignalifAntiProtonPMCPrimaryAfterEventCutsBeforeVertexZ",";Pt[GeV/c]",kPtBins,binsPtDummy);
549 flist->Add(fHistminsignalifAntiProtonPMCPrimaryAfterEventCutsBeforeVertexZ);
553 fDCAXYZforcleanPionsMCPrimary=new TH3F("fDCAXYZforcleanPionsMCPrimary",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy);
554 flist->Add(fDCAXYZforcleanPionsMCPrimary);
555 fDCAXYZforcleanAntiPionsMCPrimary=new TH3F("fDCAXYZforcleanAntiPionsMCPrimary",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy);
556 flist->Add(fDCAXYZforcleanAntiPionsMCPrimary);
557 fDCAXYZforcleanProtonsMCPrimary=new TH3F("fDCAXYZforcleanProtonsMCPrimary",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy);
558 flist->Add(fDCAXYZforcleanProtonsMCPrimary);
559 fDCAXYZforcleanAntiProtonsMCPrimary=new TH3F("fDCAXYZforcleanAntiProtonsMCPrimary",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy);
560 flist->Add(fDCAXYZforcleanAntiProtonsMCPrimary);
562 fDCAXYZforcleanPionsWD=new TH3F("fDCAXYZforcleanPionsWD",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy);
563 flist->Add(fDCAXYZforcleanPionsWD);
564 fDCAXYZforcleanAntiPionsWD=new TH3F("fDCAXYZforcleanAntiPionsWD",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy);
565 flist->Add(fDCAXYZforcleanAntiPionsWD);
566 //Secondrary Protons weak deacy
568 fDCAXYZforcleanProtonsWD=new TH3F("fDCAXYZforcleanProtonsWD",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy);
569 flist->Add(fDCAXYZforcleanProtonsWD);
570 fDCAXYZforcleanAntiProtonsWD=new TH3F("fDCAXYZforcleanAntiProtonsWD",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy);
571 flist->Add(fDCAXYZforcleanAntiProtonsWD);
573 fDCAXYZforcleanPionsHI=new TH3F("fDCAXYZforcleanPionsHI",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy);
574 flist->Add(fDCAXYZforcleanPionsHI);
575 fDCAXYZforcleanAntiPionsHI=new TH3F("fDCAXYZforcleanAntiPionsHI",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy);
576 flist->Add(fDCAXYZforcleanAntiPionsHI);
577 //Secondrary Protons Hadronic
578 fDCAXYZforcleanProtonsHI=new TH3F("fDCAXYZforcleanProtonsHI",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy);
579 flist->Add(fDCAXYZforcleanProtonsHI);
580 fDCAXYZforcleanAntiProtonsHI=new TH3F("fDCAXYZforcleanAntiProtonsHI",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy);
581 flist->Add(fDCAXYZforcleanAntiProtonsHI);
582 //Secondrary Pions mu el
583 fDCAXYZforcleanPionsMEPrimary=new TH3F("fDCAXYZforcleanPionsMEPrimary",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy);
584 flist->Add(fDCAXYZforcleanPionsMEPrimary);
585 fDCAXYZforcleanAntiPionsMEPrimary=new TH3F("fDCAXYZforcleanAntiPionsMEPrimary",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy);
586 flist->Add(fDCAXYZforcleanAntiPionsMEPrimary);
587 fDCAXYZforcleanPionsMESecondary=new TH3F("fDCAXYZforcleanPionsMESecondary",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy);
588 flist->Add(fDCAXYZforcleanPionsMESecondary);
589 fDCAXYZforcleanAntiPionsMESecondary=new TH3F("fDCAXYZforcleanAntiPionsMESecondary",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy);
590 flist->Add(fDCAXYZforcleanAntiPionsMESecondary);
592 fDCAXYZforcleanPionsR=new TH3F("fDCAXYZforcleanPionsR",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy);
593 flist->Add(fDCAXYZforcleanPionsR);
594 fDCAXYZforcleanAntiPionsR=new TH3F("fDCAXYZforcleanAntiPionsR",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy);
595 flist->Add(fDCAXYZforcleanAntiPionsR);
596 //Secondrary Protons Hadronic
597 fDCAXYZforcleanProtonsR=new TH3F("fDCAXYZforcleanProtonsR",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy);
598 flist->Add(fDCAXYZforcleanProtonsR);
599 fDCAXYZforcleanAntiProtonsR=new TH3F("fDCAXYZforcleanAntiProtonsR",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy);
600 flist->Add(fDCAXYZforcleanAntiProtonsR);
604 fDCAXYZOpenforcleanPionsMCPrimary=new TH3F("fDCAXYZOpenforcleanPionsMCPrimary",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy);
605 flist->Add(fDCAXYZOpenforcleanPionsMCPrimary);
606 fDCAXYZOpenforcleanAntiPionsMCPrimary=new TH3F("fDCAXYZOpenforcleanAntiPionsMCPrimary",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy);
607 flist->Add(fDCAXYZOpenforcleanAntiPionsMCPrimary);
608 fDCAXYZOpenforcleanProtonsMCPrimary=new TH3F("fDCAXYZOpenforcleanProtonsMCPrimary",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy);
609 flist->Add(fDCAXYZOpenforcleanProtonsMCPrimary);
610 fDCAXYZOpenforcleanAntiProtonsMCPrimary=new TH3F("fDCAXYZOpenforcleanAntiProtonsMCPrimary",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy);
611 flist->Add(fDCAXYZOpenforcleanAntiProtonsMCPrimary);
613 fDCAXYZOpenforcleanPionsWD=new TH3F("fDCAXYZOpenforcleanPionsWD",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy);
614 flist->Add(fDCAXYZOpenforcleanPionsWD);
615 fDCAXYZOpenforcleanAntiPionsWD=new TH3F("fDCAXYZOpenforcleanAntiPionsWD",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy);
616 flist->Add(fDCAXYZOpenforcleanAntiPionsWD);
617 //Secondrary Protons weak deacy
619 fDCAXYZOpenforcleanProtonsWD=new TH3F("fDCAXYZOpenforcleanProtonsWD",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy);
620 flist->Add(fDCAXYZOpenforcleanProtonsWD);
621 fDCAXYZOpenforcleanAntiProtonsWD=new TH3F("fDCAXYZOpenforcleanAntiProtonsWD",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy);
622 flist->Add(fDCAXYZOpenforcleanAntiProtonsWD);
624 fDCAXYZOpenforcleanPionsHI=new TH3F("fDCAXYZOpenforcleanPionsHI",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy);
625 flist->Add(fDCAXYZOpenforcleanPionsHI);
626 fDCAXYZOpenforcleanAntiPionsHI=new TH3F("fDCAXYZOpenforcleanAntiPionsHI",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy);
627 flist->Add(fDCAXYZOpenforcleanAntiPionsHI);
628 //Secondrary Protons Hadronic
629 fDCAXYZOpenforcleanProtonsHI=new TH3F("fDCAXYZOpenforcleanProtonsHI",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy);
630 flist->Add(fDCAXYZOpenforcleanProtonsHI);
631 fDCAXYZOpenforcleanAntiProtonsHI=new TH3F("fDCAXYZOpenforcleanAntiProtonsHI",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy);
632 flist->Add(fDCAXYZOpenforcleanAntiProtonsHI);
633 //Secondrary Pions mu el
635 fDCAXYZOpenforcleanPionsMEPrimary=new TH3F("fDCAXYZOpenforcleanPionsMEPrimary",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy);
636 flist->Add(fDCAXYZOpenforcleanPionsMEPrimary);
637 fDCAXYZOpenforcleanAntiPionsMEPrimary=new TH3F("fDCAXYZOpenforcleanAntiPionsMEPrimary",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy);
638 flist->Add(fDCAXYZOpenforcleanAntiPionsMEPrimary);
639 fDCAXYZOpenforcleanPionsMESecondary=new TH3F("fDCAXYZOpenforcleanPionsMESecondary",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy);
640 flist->Add(fDCAXYZOpenforcleanPionsMESecondary);
641 fDCAXYZOpenforcleanAntiPionsMESecondary=new TH3F("fDCAXYZOpenforcleanAntiPionsMESecondary",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy);
642 flist->Add(fDCAXYZOpenforcleanAntiPionsMESecondary);
644 fDCAXYZOpenforcleanPionsR=new TH3F("fDCAXYZOpenforcleanPionsR",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy);
645 flist->Add(fDCAXYZOpenforcleanPionsR);
646 fDCAXYZOpenforcleanAntiPionsR=new TH3F("fDCAXYZOpenforcleanAntiPionsR",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy);
647 flist->Add(fDCAXYZOpenforcleanAntiPionsR);
648 //Secondrary Protons Hadronic
649 fDCAXYZOpenforcleanProtonsR=new TH3F("fDCAXYZOpenforcleanProtonsR",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy);
650 flist->Add(fDCAXYZOpenforcleanProtonsR);
651 fDCAXYZOpenforcleanAntiProtonsR=new TH3F("fDCAXYZOpenforcleanAntiProtonsR",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy);
652 flist->Add(fDCAXYZOpenforcleanAntiProtonsR);
656 fElectronsource=new TH2F("fElectronsource","electrons;Pt [GeV/c];Process",kPtBins,binsPtDummy, kMaxMCProcess,0,kMaxMCProcess);
657 flist->Add(fElectronsource);
658 fAntiElectronsource=new TH2F("fAntiElectronsource","positrons;Pt [GeV/c];Process",kPtBins,binsPtDummy, kMaxMCProcess,0,kMaxMCProcess);
659 flist->Add(fAntiElectronsource);
660 fMuonsource=new TH2F("fMuonsource","electrons;Pt [GeV/c];Process",kPtBins,binsPtDummy, kMaxMCProcess,0,kMaxMCProcess);
661 flist->Add(fMuonsource);
662 fAntiMuonsource=new TH2F("fAntiMuonsource","positrons;Pt [GeV/c];Process",kPtBins,binsPtDummy, kMaxMCProcess,0,kMaxMCProcess);
663 flist->Add(fAntiMuonsource);
665 fPrimaryElectronsMother=new TH1F("fPrimaryElectronsMother",";pdg code",4990,10.5,5000.5);
666 flist->Add(fPrimaryElectronsMother);
668 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};
669 Double_t cutlevel[10]={0.5,1.5,2.5,3.5,4.5,5.5,6.5,7.5,8.5,9.5};
671 fParticlesCutmonitoring=new TH3F("fParticlesCutmonitoring",";particle;cut;Pt [GeV/c]",12,type,9,cutlevel,kPtBins,binsPtDummy);
673 fParticlesCutmonitoring->GetXaxis()->SetBinLabel(1,"pion");
674 fParticlesCutmonitoring->GetXaxis()->SetBinLabel(2,"kaon");
675 fParticlesCutmonitoring->GetXaxis()->SetBinLabel(3,"proton");
676 fParticlesCutmonitoring->GetXaxis()->SetBinLabel(4,"antipion");
677 fParticlesCutmonitoring->GetXaxis()->SetBinLabel(5,"antikaon");
678 fParticlesCutmonitoring->GetXaxis()->SetBinLabel(6,"antiproton");
679 fParticlesCutmonitoring->GetXaxis()->SetBinLabel(7,"pionfake");
680 fParticlesCutmonitoring->GetXaxis()->SetBinLabel(8,"kaonfake");
681 fParticlesCutmonitoring->GetXaxis()->SetBinLabel(9,"protonfake");
682 fParticlesCutmonitoring->GetXaxis()->SetBinLabel(10,"antipionfake");
683 fParticlesCutmonitoring->GetXaxis()->SetBinLabel(11,"antikaonfake");
684 fParticlesCutmonitoring->GetXaxis()->SetBinLabel(12,"antiprotonfake");
686 fParticlesCutmonitoring->GetYaxis()->SetBinLabel(1,"TPCin");
687 fParticlesCutmonitoring->GetYaxis()->SetBinLabel(2,"TPCrefit");
688 fParticlesCutmonitoring->GetYaxis()->SetBinLabel(3,"nTPCclu");
689 fParticlesCutmonitoring->GetYaxis()->SetBinLabel(4,"chi2");
690 fParticlesCutmonitoring->GetYaxis()->SetBinLabel(5,"ITSrefit");
691 fParticlesCutmonitoring->GetYaxis()->SetBinLabel(6,"SPDany");
692 fParticlesCutmonitoring->GetYaxis()->SetBinLabel(7,"standard");
693 fParticlesCutmonitoring->GetYaxis()->SetBinLabel(8,"ITSpid");
694 fParticlesCutmonitoring->GetYaxis()->SetBinLabel(9,"DCA");
695 flist->Add(fParticlesCutmonitoring);
697 fVertexshift=new TH3F("fVertexshift",";#delta_{x};#delta_{y};#delta_{z}",50,-0.06,0.06,50,-0.06,0.06,50,-2,2);
698 flist->Add(fVertexshift);
700 Double_t deltapttpc[41];
701 Double_t deltaptall[41];
702 for(int i=0;i<41;i++)
704 deltapttpc[i]=-0.8+i*(1.6/40);
705 deltaptall[i]=-0.2+i*(0.4/40);
707 fPtESDminusPtMCvPtESDafterallcuts= new TH3F("fPtESDminusPtMCvPtESDafterallcuts",";#delta_{PtESD-PtMC};PtESD;type",40,deltaptall,kPtBins,binsPtDummy,12,type);
708 flist->Add(fPtESDminusPtMCvPtESDafterallcuts);
709 fPtESDminusPtMCvPtESDafterallcuts->GetZaxis()->SetBinLabel(1,"pion");
710 fPtESDminusPtMCvPtESDafterallcuts->GetZaxis()->SetBinLabel(2,"kaon");
711 fPtESDminusPtMCvPtESDafterallcuts->GetZaxis()->SetBinLabel(3,"proton");
712 fPtESDminusPtMCvPtESDafterallcuts->GetZaxis()->SetBinLabel(4,"antipion");
713 fPtESDminusPtMCvPtESDafterallcuts->GetZaxis()->SetBinLabel(5,"antikaon");
714 fPtESDminusPtMCvPtESDafterallcuts->GetZaxis()->SetBinLabel(6,"antiproton");
715 fPtESDminusPtMCvPtESDafterallcuts->GetZaxis()->SetBinLabel(7,"pionfake");
716 fPtESDminusPtMCvPtESDafterallcuts->GetZaxis()->SetBinLabel(8,"kaonfake");
717 fPtESDminusPtMCvPtESDafterallcuts->GetZaxis()->SetBinLabel(9,"protonfake");
718 fPtESDminusPtMCvPtESDafterallcuts->GetZaxis()->SetBinLabel(10,"antipionfake");
719 fPtESDminusPtMCvPtESDafterallcuts->GetZaxis()->SetBinLabel(11,"antikaonfake");
720 fPtESDminusPtMCvPtESDafterallcuts->GetZaxis()->SetBinLabel(12,"antiprotonfake");
722 fPtESDminusPtMCvPtESDafterTPCcuts= new TH3F("fPtESDminusPtMCvPtESDafterTPCcuts",";#delta_{PtESD-PtMC};PtESD;type",40,deltapttpc,kPtBins,binsPtDummy,12,type);
723 flist->Add(fPtESDminusPtMCvPtESDafterTPCcuts);
724 fPtESDminusPtMCvPtESDafterTPCcuts->GetZaxis()->SetBinLabel(1,"pion");
725 fPtESDminusPtMCvPtESDafterTPCcuts->GetZaxis()->SetBinLabel(2,"kaon");
726 fPtESDminusPtMCvPtESDafterTPCcuts->GetZaxis()->SetBinLabel(3,"proton");
727 fPtESDminusPtMCvPtESDafterTPCcuts->GetZaxis()->SetBinLabel(4,"antipion");
728 fPtESDminusPtMCvPtESDafterTPCcuts->GetZaxis()->SetBinLabel(5,"antikaon");
729 fPtESDminusPtMCvPtESDafterTPCcuts->GetZaxis()->SetBinLabel(6,"antiproton");
730 fPtESDminusPtMCvPtESDafterTPCcuts->GetZaxis()->SetBinLabel(7,"pionfake");
731 fPtESDminusPtMCvPtESDafterTPCcuts->GetZaxis()->SetBinLabel(8,"kaonfake");
732 fPtESDminusPtMCvPtESDafterTPCcuts->GetZaxis()->SetBinLabel(9,"protonfake");
733 fPtESDminusPtMCvPtESDafterTPCcuts->GetZaxis()->SetBinLabel(10,"antipionfake");
734 fPtESDminusPtMCvPtESDafterTPCcuts->GetZaxis()->SetBinLabel(11,"antikaonfake");
735 fPtESDminusPtMCvPtESDafterTPCcuts->GetZaxis()->SetBinLabel(12,"antiprotonfake");
738 fMulESDMulMCVz=new TH3F("fMulESDMulMCVz",";NtracksESD;NparticlesMC;Vrt_z ",50,0,50,100,0,100,20,-10,10);
739 flist->Add(fMulESDMulMCVz);
741 Printf("end of CreateOutputObjects with MC");
743 //________________________________________________________________________
744 void AliAnalysisChargedHadronSpectraITSTruncatedMeanTask::LocalInit()
747 Printf("end of LocalInit");
750 //________________________________________________________________________
751 void AliAnalysisChargedHadronSpectraITSTruncatedMeanTask::UserExec(Option_t *)
754 Bool_t isphysevent=0;
755 Bool_t isgoodvertex=0;
756 Bool_t isvxerteinZ=0;
757 fESD = dynamic_cast<AliESDEvent*> (InputEvent());
760 Printf("ERROR: fESD not available");
764 Float_t refmultiplicity=fCutsMul->CountAcceptedTracks(fESD);
767 if(fLowMultiplicity>-1)
769 if(refmultiplicity<fLowMultiplicity)
772 if(fUpMultiplicity>-1)
774 if(refmultiplicity>fUpMultiplicity)
779 Double_t mcXvertex=0.0;
780 Double_t mcYvertex=0.0;
781 Double_t mcZvertex=0.0;
785 AliMCEvent* mcEvent = (AliMCEvent*) MCEvent();
786 //Printf("MC particles: %d", mcEvent->GetNumberOfTracks());
787 stack = mcEvent->Stack();
788 mcXvertex=mcEvent->GetPrimaryVertex()->GetX();
789 mcYvertex=mcEvent->GetPrimaryVertex()->GetY();
790 mcZvertex=mcEvent->GetPrimaryVertex()->GetZ();
796 //if( ((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected()==0)
797 UInt_t isSelected = 0;
798 if(((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler())))
799 isSelected=((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected();
800 //Printf("Mask_selection %u %u", isSelected,AliVEvent::kMB);
801 if(!(isSelected&AliVEvent::kMB))
804 // Printf("No phys event.........\n");
812 if(isphysevent&&fHIsettings)
814 AliCentrality *centrality = fESD->GetCentrality();
815 if(!(fLowCentrality<0.0)&&fUpCentrality>0.0)
817 if(!centrality->IsEventInCentralityClass(fLowCentrality,fUpCentrality,"V0M"))
825 const AliESDVertex *vertex = 0x0;
828 vertex = fESD->GetPrimaryVertexTracks();
829 if(vertex->GetNContributors()<1)
832 vertex = fESD->GetPrimaryVertexSPD();
833 if(vertex->GetNContributors()<1)
835 //Printf("No good Vertex.........\n");
841 //fHistStats->Fill(2);
842 fHistZVertexBeforeCut->Fill(vertex ->GetZ());
843 fHistXYVertexBeforeCut->Fill(vertex ->GetX(),vertex ->GetY());
849 //fHistStats->Fill(2);
850 fHistZVertexBeforeCut->Fill(vertex ->GetZ());
851 fHistXYVertexBeforeCut->Fill(vertex ->GetX(),vertex ->GetY());
853 if(isgoodvertex&&fUsePilerejection)
855 if(fESD->IsPileupFromSPDInMultBins())
860 if(TMath::Abs(vertex ->GetZ())>10.0)
862 //Printf("No good Z of Vertex.........\n");
871 if(fdovertexrescuts&&fMC)
875 cout<<TMath::Abs(vertex->GetX()-mcXvertex)<<" "<<TMath::Abs(vertex->GetY()-mcYvertex)<<" "<<TMath::Abs(vertex->GetZ()-mcZvertex)<<endl;
876 if(TMath::Abs(vertex->GetX()-mcXvertex)>0.015||TMath::Abs(vertex->GetY()-mcYvertex)>0.015||TMath::Abs(vertex->GetZ()-mcZvertex)>0.15)
880 Float_t spdCorr=-1.0;
883 const AliMultiplicity *mult = fESD->GetMultiplicity();
884 Float_t nClusters[6]={0.0,0.0,0.0,0.0,0.0,0.0};
885 for(Int_t ilay=0; ilay<6; ilay++)
887 nClusters[ilay] = (Float_t)mult->GetNumberOfITSClusters(ilay);
889 spdCorr = AliESDUtils::GetCorrSPD2(nClusters[1],vertex->GetZ());
892 if(fLowMultiplicity>-1)
894 if(((Int_t)spdCorr)<fLowMultiplicity)
900 if(fUpMultiplicity>-1)
902 if(((Int_t)spdCorr)>fUpMultiplicity)
914 if(stack&&fMC)//Looping over MC information of all events
921 fCutsMul->GetPtRange(minpt,maxpt);
922 fCutsMul->GetEtaRange(mineta,maxeta);
924 if(TMath::Abs(mcZvertex)<10.0)
926 for (int imc=0;imc<stack->GetNtrack();imc++)
928 if(!(stack->IsPhysicalPrimary(imc)))
930 TParticle *particleMC = stack->Particle(imc);
933 Int_t pdgcodeMC = particleMC->GetPdgCode();
934 if(!(pdgcodeMC==211||pdgcodeMC==-211||pdgcodeMC==321||pdgcodeMC==-321||pdgcodeMC==2212||pdgcodeMC==-2212))
936 if(particleMC->Pt()>minpt&&particleMC->Pt()<maxpt&&particleMC->Eta()>mineta&&particleMC->Eta()<maxeta)
938 if (TMath::Abs(particleMC->Y())>fYCut)
940 if (particleMC->Pt()>2.0)
942 //Printf("%d aa",imc);
945 fHistminsignalifPionPMCPrimaryBeforeEventCuts->Fill(particleMC->Pt());
947 fHistminsignalifAntiPionPMCPrimaryBeforeEventCuts->Fill(particleMC->Pt());
949 fHistminsignalifKaonPMCPrimaryBeforeEventCuts->Fill(particleMC->Pt());
951 fHistminsignalifAntiKaonPMCPrimaryBeforeEventCuts->Fill(particleMC->Pt());
953 fHistminsignalifProtonPMCPrimaryBeforeEventCuts->Fill(particleMC->Pt());
955 fHistminsignalifAntiProtonPMCPrimaryBeforeEventCuts->Fill(particleMC->Pt());
957 if(TMath::Abs(mcZvertex)<10.0)
960 fHistminsignalifPionPMCPrimaryBeforeEventCutswithgoodZvertex->Fill(particleMC->Pt());
962 fHistminsignalifAntiPionPMCPrimaryBeforeEventCutswithgoodZvertex->Fill(particleMC->Pt());
964 fHistminsignalifKaonPMCPrimaryBeforeEventCutswithgoodZvertex->Fill(particleMC->Pt());
966 fHistminsignalifAntiKaonPMCPrimaryBeforeEventCutswithgoodZvertex->Fill(particleMC->Pt());
968 fHistminsignalifProtonPMCPrimaryBeforeEventCutswithgoodZvertex->Fill(particleMC->Pt());
970 fHistminsignalifAntiProtonPMCPrimaryBeforeEventCutswithgoodZvertex->Fill(particleMC->Pt());
977 fHistminsignalifPionPMCPrimaryAfterEventCutsBeforeVertexZ->Fill(particleMC->Pt());
979 fHistminsignalifAntiPionPMCPrimaryAfterEventCutsBeforeVertexZ->Fill(particleMC->Pt());
981 fHistminsignalifKaonPMCPrimaryAfterEventCutsBeforeVertexZ->Fill(particleMC->Pt());
983 fHistminsignalifAntiKaonPMCPrimaryAfterEventCutsBeforeVertexZ->Fill(particleMC->Pt());
985 fHistminsignalifProtonPMCPrimaryAfterEventCutsBeforeVertexZ->Fill(particleMC->Pt());
987 fHistminsignalifAntiProtonPMCPrimaryAfterEventCutsBeforeVertexZ->Fill(particleMC->Pt());
992 fHistminsignalifPionPMCPrimary->Fill(particleMC->Pt());
996 fHistminsignalifAntiPionPMCPrimary->Fill(particleMC->Pt());
1000 fHistminsignalifKaonPMCPrimary->Fill(particleMC->Pt());
1004 fHistminsignalifAntiKaonPMCPrimary->Fill(particleMC->Pt());
1008 fHistminsignalifProtonPMCPrimary->Fill(particleMC->Pt());
1010 if(pdgcodeMC==-2212)
1012 fHistminsignalifAntiProtonPMCPrimary->Fill(particleMC->Pt());
1020 Printf("Data mode \n");
1022 if(!(isphysevent&&isgoodvertex&&isvxerteinZ))
1024 //Printf("No Good event.........\n");
1026 //Printf("end of Exec");
1032 fHistStandartMulvSPD2->Fill(refmultiplicity,spdCorr);
1033 fHistStats->Fill(3);
1035 fHistZVertexAfterCut->Fill(vertex ->GetZ());
1036 fHistXYVertexAfterCut->Fill(vertex ->GetX(),vertex ->GetY());
1040 fVertexshift->Fill(vertex->GetX()-mcXvertex,vertex->GetY()-mcYvertex,vertex->GetZ()-mcZvertex);
1041 fMulESDMulMCVz->Fill(refmultiplicity,fMCmult,vertex->GetZ());
1045 //Printf("No CUTS Defined.........\n");
1047 //Printf("end of Exec");
1051 //Printf("There are %d tracks in this event", fESD->GetNumberOfTracks());
1052 Int_t nTracks=fESD->GetNumberOfTracks();
1054 Int_t mynumberoftracks=0;
1055 AliESDtrack *trackESD=0;
1057 const Float_t pionmass=AliPID::ParticleMass(2);
1058 const Float_t kaonmass=AliPID::ParticleMass(3);
1059 const Float_t protonmass=AliPID::ParticleMass(4);
1061 for(int tr1=0;tr1<nTracks;tr1++)
1064 trackESD=fESD->GetTrack(tr1);
1065 //fHistStats->Fill(2);
1067 Double_t pt=trackESD->Pt()*trackESD->GetSign();
1068 Double_t p=trackESD->P();
1069 Double_t eta=trackESD->Eta();
1070 Double_t phi=trackESD->Phi();
1073 trackESD->GetImpactParameters(dcaxy,dcaz);
1074 Double_t pz=trackESD->Pz();
1075 UShort_t nTPCclusters=trackESD->GetTPCNcls();
1076 Float_t chi2=trackESD->GetTPCchi2();
1078 chi2=chi2/((Float_t)nTPCclusters);
1081 if(!trackESD->IsOn(AliESDtrack::kTPCin))
1084 Float_t yforpion=0.5*TMath::Log((TMath::Sqrt(pionmass*pionmass+p*p)+pz)/(TMath::Sqrt(pionmass*pionmass+p*p)-pz));
1085 Float_t yforkaon=0.5*TMath::Log((TMath::Sqrt(kaonmass*kaonmass+p*p)+pz)/(TMath::Sqrt(kaonmass*kaonmass+p*p)-pz));
1086 Float_t yforproton=0.5*TMath::Log((TMath::Sqrt(protonmass*protonmass+p*p)+pz)/(TMath::Sqrt(protonmass*protonmass+p*p)-pz));
1088 if(TMath::Abs(yforpion)>fYCut&&TMath::Abs(yforkaon)>fYCut&&TMath::Abs(yforproton)>fYCut) //go trought one y cut
1092 label=trackESD->GetLabel();
1094 // Printf("label %d %f %f %f %f %d %f %f\n",label,p,pt,eta,chi2,nTPCclusters,dcaxy,dcaz);
1097 Double_t chargeMC=1.0;
1101 Int_t pdgcodefake=0;
1102 Int_t primaryfake=0;
1103 TParticle *particle2=0x0;
1104 if(label>=0&&stack&&fMC)
1106 primary=stack->IsPhysicalPrimary(TMath::Abs(label));
1107 particle2 = stack->Particle(TMath::Abs(label));
1108 pdgcode=particle2->GetPdgCode();
1109 chargeMC=particle2->GetPDG(0)->Charge()/3.0;
1110 etaMC=particle2->Eta();
1111 ptMC=particle2->Pt();
1112 uniqueID=particle2->GetUniqueID();
1114 if(label<0&&stack&&fMC)
1116 primaryfake=stack->IsPhysicalPrimary(TMath::Abs(label));
1117 particle2 = stack->Particle(TMath::Abs(label));
1118 pdgcodefake=particle2->GetPdgCode();
1119 uniqueID=particle2->GetUniqueID();
1123 Int_t typeParticle=-10;
1124 if((primaryfake||primary))
1127 if((pdgcodefake==211||pdgcode==211)&&TMath::Abs(yforpion)<fYCut)
1129 if((pdgcodefake==321||pdgcode==321)&&TMath::Abs(yforkaon)<fYCut)
1131 if((pdgcodefake==2212||pdgcode==2212)&&TMath::Abs(yforproton)<fYCut)
1133 if((pdgcodefake==-211||pdgcode==-211)&&TMath::Abs(yforpion)<fYCut)
1135 if((pdgcodefake==-321||pdgcode==-321)&&TMath::Abs(yforkaon)<fYCut)
1137 if((pdgcodefake==-2212||pdgcode==-2212)&&TMath::Abs(yforproton)<fYCut)
1144 fTracksCutmonitoring->Fill(1,TMath::Abs(pt));
1147 fParticlesCutmonitoring->Fill(typeParticle,1,TMath::Abs(pt));
1148 if(trackESD->IsOn(AliESDtrack::kTPCrefit))
1150 fParticlesCutmonitoring->Fill(typeParticle,2,TMath::Abs(pt));
1153 fParticlesCutmonitoring->Fill(typeParticle,3,TMath::Abs(pt));
1156 fParticlesCutmonitoring->Fill(typeParticle,4,TMath::Abs(pt));
1157 fPtESDminusPtMCvPtESDafterTPCcuts->Fill(TMath::Abs(pt)-particle2->Pt(),TMath::Abs(pt),typeParticle);
1158 if(trackESD->IsOn(AliESDtrack::kITSrefit))
1160 fParticlesCutmonitoring->Fill(typeParticle,5,TMath::Abs(pt));
1161 if(trackESD->HasPointOnITSLayer(0)||trackESD->HasPointOnITSLayer(1))
1163 fParticlesCutmonitoring->Fill(typeParticle,6,TMath::Abs(pt));
1173 fHistPhiPtBeforeCuts->Fill(phi,pt);//phi pt
1174 fHistEtaPtBeforeCuts->Fill(eta,pt);
1175 fHistDCABeforeCuts->Fill(dcaxy,dcaz);
1181 if(fCuts->AcceptTrack(trackESD)==kFALSE)
1183 fTracksCutmonitoring->Fill(2,TMath::Abs(pt));
1185 fParticlesCutmonitoring->Fill(typeParticle,7,TMath::Abs(pt));
1186 //Tpc pid cut for debug
1187 Double_t pinTPC=trackESD->GetTPCInnerParam()->GetP();//momentum in primary vertex taken from TPC tracking
1188 Double_t pinTPCglobal=trackESD->GetInnerParam()->GetP();//momentum at the inner wall of the TPC taken from global tracking
1189 Float_t sigKaon= fESDpid->GetTPCResponse().GetExpectedSignal(pinTPCglobal, AliPID::kKaon);
1190 Float_t sigProton= fESDpid->GetTPCResponse().GetExpectedSignal(pinTPCglobal, AliPID::kProton);
1191 Double_t tpcSignal =trackESD ->GetTPCsignal();
1195 if(fTPCPIDCUT->AcceptTrack(trackESD,fESD)==kFALSE)
1199 Bool_t cutDCA=SelectOnImpPar(trackESD);
1201 //fHistStats->Fill(4);
1202 Double_t tmpQESD[4]={-1.0,-1.0,-1.0,-1.0};
1203 trackESD->GetITSdEdxSamples(tmpQESD);
1204 if(fCorrectSDD&&fMC)
1205 CorrectSDD(tmpQESD);
1206 if(fCorrectSSD&&fMC)
1207 CorrectSSD(tmpQESD);
1213 if(TMath::Abs(yforpion)<fYCut&&cutDCA)
1214 fHistNtrackwithstandardcuts->Fill(TMath::Abs(pt),0);
1215 if(TMath::Abs(yforkaon)<fYCut&&cutDCA)
1217 fHistNtrackwithstandardcuts->Fill(TMath::Abs(pt),1);
1219 fHistSignalinTPCKaonforstandardcuts->Fill(pt,(tpcSignal-sigKaon)/sigKaon);
1221 fHistSignalinTPCAntiKaonforstandardcuts->Fill(TMath::Abs(pt),(tpcSignal-sigKaon)/sigKaon);
1223 if(TMath::Abs(yforproton)<fYCut&&cutDCA)
1225 fHistNtrackwithstandardcuts->Fill(TMath::Abs(pt),2);
1227 fHistSignalinTPCProtonforstandardcuts->Fill(pt,(tpcSignal-sigProton)/sigProton);
1229 fHistSignalinTPCAntiProtonforstandardcuts->Fill(TMath::Abs(pt),(tpcSignal-sigProton)/sigProton);
1233 for (int iL=0;iL<4;iL++)
1235 if(tmpQESD[iL]>fchargeCut)
1241 fHistStats->Fill(4);
1245 // cout<<"BAD "<<stack->Particle(TMath::Abs(trackESD->GetLabel()))->GetPdgCode()<<endl;
1248 fTracksCutmonitoring->Fill(3,TMath::Abs(pt));
1250 fParticlesCutmonitoring->Fill(typeParticle,8,TMath::Abs(pt));
1253 fTracksCutmonitoring->Fill(4,TMath::Abs(pt));
1256 fParticlesCutmonitoring->Fill(typeParticle,9,TMath::Abs(pt));
1257 fPtESDminusPtMCvPtESDafterallcuts->Fill(TMath::Abs(pt)-particle2->Pt(),TMath::Abs(pt),typeParticle);
1260 if(TMath::Abs(yforpion)<fYCut&&cutDCA)
1262 fHistNtrackwithITSPIDcuts->Fill(TMath::Abs(pt),0);
1265 fPionNTPCClusters->Fill(pt,nTPCclusters);
1266 fPionchi2->Fill(pt,chi2);
1270 fAntiPionNTPCClusters->Fill(TMath::Abs(pt),nTPCclusters);
1271 fAntiPionchi2->Fill(TMath::Abs(pt),chi2);
1274 if(TMath::Abs(yforkaon)<fYCut&&cutDCA)
1276 fHistNtrackwithITSPIDcuts->Fill(TMath::Abs(pt),1);
1278 fHistSignalinTPCKaonforITSPIDcuts->Fill(pt,(tpcSignal-sigKaon)/sigKaon);
1280 fHistSignalinTPCAntiKaonforITSPIDcuts->Fill(TMath::Abs(pt),(tpcSignal-sigKaon)/sigKaon);
1282 if(TMath::Abs(yforproton)<fYCut&&cutDCA)
1284 fHistNtrackwithITSPIDcuts->Fill(TMath::Abs(pt),2);
1286 fHistSignalinTPCProtonforITSPIDcuts->Fill(pt,(tpcSignal-sigProton)/sigProton);
1288 fHistSignalinTPCAntiProtonforITSPIDcuts->Fill(TMath::Abs(pt),(tpcSignal-sigProton)/sigProton);
1290 fHistStats->Fill(5);
1291 fHistPhiPtAfterCuts->Fill(phi,pt);
1292 fHistEtaPtAfterCuts->Fill(eta,pt);
1293 fHistDCAAfterCuts->Fill(dcaxy,dcaz);
1294 fHistPminusTPCinPAfterCuts->Fill(pinTPC-p,pinTPC);
1295 fHistPminusTPCinPglobalAfterCuts->Fill(pinTPC-p,pinTPCglobal);
1296 if(tmpQESD[0]>fchargeCut)
1298 fHistL3dEP->Fill(p,tmpQESD[0]);
1299 fHistL3dETPCinP->Fill(pinTPC,tmpQESD[0]);
1301 if(tmpQESD[1]>fchargeCut)
1303 fHistL4dEP->Fill(p,tmpQESD[1]);
1304 fHistL4dETPCinP->Fill(pinTPC,tmpQESD[1]);
1306 if(tmpQESD[2]>fchargeCut)
1308 fHistL5dEP->Fill(p,tmpQESD[2]);
1309 fHistL5dETPCinP->Fill(pinTPC,tmpQESD[2]);
1311 if(tmpQESD[3]>fchargeCut)
1313 fHistL6dEP->Fill(p,tmpQESD[3]);
1314 fHistL6dETPCinP->Fill(pinTPC,tmpQESD[3]);
1316 Float_t myITSsignal=0.0;
1317 Float_t minITSsignal=0.0;
1322 Double_t tmp2QESD[3]={-1.0,-1.0,-1.0};
1324 for (int iL=0;iL<4;iL++)
1326 if(tmpQESD[iL]>fchargeCut)
1328 tmp2QESD[iLnotZero]=tmpQESD[iL];
1334 whichLmin=TMath::LocMin(3,tmp2QESD);
1335 if(nosignaL>-1&&nosignaL<=whichLmin)
1337 minITSsignal=TMath::MinElement(3,tmp2QESD);
1338 myITSsignal=MyITSsignalusing3points(tmp2QESD);
1342 myITSsignal=MyITSsignalusing4points(tmpQESD);
1343 whichLmin=TMath::LocMin(4,tmpQESD);
1344 minITSsignal=TMath::MinElement(4,tmpQESD);
1348 fHistwhichhasmin->Fill(0.0,tmpQESD[0]);
1350 fHistwhichhasmin->Fill(1.0,tmpQESD[1]);
1352 fHistwhichhasmin->Fill(2.0,tmpQESD[2]);
1354 fHistwhichhasmin->Fill(3.0,tmpQESD[3]);
1357 fHistMydEPpositive->Fill(p,myITSsignal);
1358 fHistMydETPCinPglobalpositive->Fill(pinTPCglobal,myITSsignal);
1359 fHistMydETPCinPpositive->Fill(pinTPC,myITSsignal);
1363 fHistMydEPnegative->Fill(p,myITSsignal);
1364 fHistMydETPCinPglobalnegative->Fill(pinTPCglobal,myITSsignal);
1365 fHistMydETPCinPnegative->Fill(pinTPC,myITSsignal);
1367 Float_t signaltouse=myITSsignal;
1370 Float_t itspidsignalforpions=TMath::Log(signaltouse)-TMath::Log(fESDpid->GetITSResponse().Bethe(p,pionmass,kFALSE));
1371 Float_t itspidsignalforkaons=TMath::Log(signaltouse)-TMath::Log(fESDpid->GetITSResponse().Bethe(p,kaonmass,kFALSE));
1372 Float_t itspidsignalforprotons=TMath::Log(signaltouse)-TMath::Log(fESDpid->GetITSResponse().Bethe(p,protonmass,kFALSE));
1377 fHistMysignalminusESD->Fill((signaltouse-trackESD->GetITSsignal())/signaltouse);
1379 //Printf("Select on clean \n");
1380 if(TMath::Abs(yforpion)<=fYCut)
1384 weight=GetWeight(label,stack);
1390 fHistminsignalifPionP->Fill(pt,itspidsignalforpions,weight);
1392 fHistminsignalifPionP->Fill(pt,itspidsignalforpions);
1393 if(itspidsignalforpions>-0.5&&itspidsignalforpions<0.2) //select on clean
1395 fDCAXYZforcleanPions->Fill(pt,dcaxy,dcaz);
1398 if(primary&&pdgcode==211)
1399 fDCAXYZforcleanPionsMCPrimary->Fill(pt,dcaxy,dcaz);
1400 else if(!primary&&pdgcode==211&&uniqueID==kPDecay)
1401 fDCAXYZforcleanPionsWD->Fill(pt,dcaxy,dcaz);
1402 else if(!primary&&pdgcode==211&&uniqueID==kPHadronic)
1403 fDCAXYZforcleanPionsHI->Fill(pt,dcaxy,dcaz);
1404 else if(primary&&(pdgcode==-11||pdgcode==-13))
1405 fDCAXYZforcleanPionsMEPrimary->Fill(pt,dcaxy,dcaz);
1406 else if(!primary&&(pdgcode==-11||pdgcode==-13))
1407 fDCAXYZforcleanPionsMESecondary->Fill(pt,dcaxy,dcaz);
1409 fDCAXYZforcleanPionsR->Fill(pt,dcaxy,dcaz);
1416 fHistminsignalifPionPPrimary->Fill(pt,itspidsignalforpions);
1421 fHistminsignalifPionPSecondary->Fill(pt,itspidsignalforpions,weight);
1422 //cout<<pdgcode<<" "<< uniqueID<<" "<<kPDecay<<" "<<kPHadronic<<endl;
1424 if(pdgcode==-11||pdgcode==-13)
1426 fHistminsignalifMuEPositiveP->Fill(pt,itspidsignalforpions);
1431 fHistStats->Fill(6);
1432 fAntiElectronsource->Fill(pt,uniqueID);
1434 else if(pdgcode==-13)
1436 fHistStats->Fill(7);
1437 fAntiMuonsource->Fill(pt,uniqueID);
1440 else if(primary&&pdgcode==-11)
1442 Printf("%d Mom",particle2->GetFirstMother());
1443 if(particle2->GetFirstMother()>-1)
1444 fPrimaryElectronsMother->Fill(TMath::Abs(stack->Particle(particle2->GetFirstMother())->GetPdgCode()));
1446 fPrimaryElectronsMother->Fill(-1);
1447 fAntiElectronsource->Fill(pt,0);
1449 else if(primary&&pdgcode==-13)
1450 fAntiMuonsource->Fill(pt,0);
1452 if(pdgcodefake==211)
1455 fHistminsignalifPionPrimaryfake->Fill(pt,itspidsignalforpions);
1457 fHistminsignalifPionSecondaryfake->Fill(pt,itspidsignalforpions);
1460 if(itspidsignalforpions>-0.5&&itspidsignalforpions<0.2) //select on clean
1462 fDCAXYZOpenforcleanPions->Fill(pt,dcaxy,dcaz);
1465 if(primary&&pdgcode==211)
1466 fDCAXYZOpenforcleanPionsMCPrimary->Fill(pt,dcaxy,dcaz);
1467 else if(!primary&&pdgcode==211&&uniqueID==kPDecay)
1468 fDCAXYZOpenforcleanPionsWD->Fill(pt,dcaxy,dcaz);
1469 else if(!primary&&pdgcode==211&&uniqueID==kPHadronic)
1470 fDCAXYZOpenforcleanPionsHI->Fill(pt,dcaxy,dcaz);
1471 else if(primary&&(pdgcode==-11||pdgcode==-13))
1472 fDCAXYZOpenforcleanPionsMEPrimary->Fill(pt,dcaxy,dcaz);
1473 else if(!primary&&(pdgcode==-11||pdgcode==-13))
1474 fDCAXYZOpenforcleanPionsMESecondary->Fill(pt,dcaxy,dcaz);
1476 fDCAXYZOpenforcleanPionsR->Fill(pt,dcaxy,dcaz);
1485 fHistminsignalifAntiPionP->Fill(TMath::Abs(pt),itspidsignalforpions,weight);
1487 fHistminsignalifAntiPionP->Fill(TMath::Abs(pt),itspidsignalforpions);
1488 if(itspidsignalforpions>-0.5&&itspidsignalforpions<0.2)//select on clean
1490 fDCAXYZforcleanAntiPions->Fill(TMath::Abs(pt),dcaxy,dcaz);
1493 if(primary&&pdgcode==-211)
1494 fDCAXYZforcleanAntiPionsMCPrimary->Fill(TMath::Abs(pt),dcaxy,dcaz);
1495 else if(!primary&&pdgcode==-211&&uniqueID==kPDecay)
1496 fDCAXYZforcleanAntiPionsWD->Fill(TMath::Abs(pt),dcaxy,dcaz);
1497 else if(!primary&&pdgcode==-211&&uniqueID==kPHadronic)
1498 fDCAXYZforcleanAntiPionsHI->Fill(TMath::Abs(pt),dcaxy,dcaz);
1499 else if(primary&&(pdgcode==11||pdgcode==13))
1500 fDCAXYZforcleanAntiPionsMEPrimary->Fill(TMath::Abs(pt),dcaxy,dcaz);
1501 else if(!primary&&(pdgcode==11||pdgcode==13))
1502 fDCAXYZforcleanAntiPionsMESecondary->Fill(TMath::Abs(pt),dcaxy,dcaz);
1504 fDCAXYZforcleanAntiPionsR->Fill(TMath::Abs(pt),dcaxy,dcaz);
1510 fHistminsignalifAntiPionPPrimary->Fill(TMath::Abs(pt),itspidsignalforpions);
1515 fHistminsignalifAntiPionPSecondary->Fill(TMath::Abs(pt),itspidsignalforpions,weight);
1516 //cout<<pdgcode<<" "<< uniqueID<<" "<<kPDecay<<" "<<kPHadronic<<endl;
1518 if(pdgcode==11||pdgcode==13)
1520 fHistminsignalifMuENegativeP->Fill(TMath::Abs(pt),itspidsignalforpions);
1525 fHistStats->Fill(6);
1526 fElectronsource->Fill(TMath::Abs(pt),uniqueID);
1528 else if(pdgcode==13)
1530 fHistStats->Fill(7);
1531 fMuonsource->Fill(TMath::Abs(pt),uniqueID);
1534 else if(primary&&pdgcode==11)
1536 Printf("%d Mom",particle2->GetFirstMother());
1537 if(particle2->GetFirstMother()>-1)
1538 fPrimaryElectronsMother->Fill(TMath::Abs(stack->Particle(particle2->GetFirstMother())->GetPdgCode()));
1540 fPrimaryElectronsMother->Fill(-1);
1541 fElectronsource->Fill(TMath::Abs(pt),0);
1543 else if(primary&&pdgcode==13)
1544 fMuonsource->Fill(TMath::Abs(pt),0);
1546 if(pdgcodefake==-211)
1549 fHistminsignalifAntiPionPrimaryfake->Fill(TMath::Abs(pt),itspidsignalforpions);
1551 fHistminsignalifAntiPionSecondaryfake->Fill(TMath::Abs(pt),itspidsignalforpions);
1554 if(itspidsignalforpions>-0.5&&itspidsignalforpions<0.2)//select on clean
1556 fDCAXYZOpenforcleanAntiPions->Fill(TMath::Abs(pt),dcaxy,dcaz);
1559 if(primary&&pdgcode==-211)
1560 fDCAXYZOpenforcleanAntiPionsMCPrimary->Fill(TMath::Abs(pt),dcaxy,dcaz);
1561 else if(!primary&&pdgcode==-211&&uniqueID==kPDecay)
1562 fDCAXYZOpenforcleanAntiPionsWD->Fill(TMath::Abs(pt),dcaxy,dcaz);
1563 else if(!primary&&pdgcode==-211&&uniqueID==kPHadronic)
1564 fDCAXYZOpenforcleanAntiPionsHI->Fill(TMath::Abs(pt),dcaxy,dcaz);
1565 else if(primary&&(pdgcode==11||pdgcode==13))
1566 fDCAXYZOpenforcleanAntiPionsMEPrimary->Fill(TMath::Abs(pt),dcaxy,dcaz);
1567 else if(!primary&&(pdgcode==11||pdgcode==13))
1568 fDCAXYZOpenforcleanAntiPionsMESecondary->Fill(TMath::Abs(pt),dcaxy,dcaz);
1570 fDCAXYZOpenforcleanAntiPionsR->Fill(TMath::Abs(pt),dcaxy,dcaz);
1575 if(TMath::Abs(yforkaon)<=fYCut&&cutDCA)
1579 fHistminsignalifKaonP->Fill(pt,itspidsignalforkaons);
1580 if((itspidsignalforkaons>-0.2)&&(itspidsignalforkaons<0.2))
1582 fKaonNTPCClusters->Fill(pt,nTPCclusters);
1583 fKaonchi2->Fill(pt,chi2);
1588 fHistminsignalifKaonPPrimary->Fill(pt,itspidsignalforkaons);
1593 fHistminsignalifKaonPSecondary->Fill(pt,itspidsignalforkaons);
1595 if(pdgcodefake==321)
1598 fHistminsignalifKaonPrimaryfake->Fill(pt,itspidsignalforkaons);
1600 fHistminsignalifKaonSecondaryfake->Fill(pt,itspidsignalforkaons);
1607 fHistminsignalifAntiKaonP->Fill(TMath::Abs(pt),itspidsignalforkaons);
1608 if((itspidsignalforkaons>-0.2)&&(itspidsignalforkaons<0.2))
1610 fAntiKaonNTPCClusters->Fill(TMath::Abs(pt),nTPCclusters);
1611 fAntiKaonchi2->Fill(TMath::Abs(pt),chi2);
1616 fHistminsignalifAntiKaonPPrimary->Fill(TMath::Abs(pt),itspidsignalforkaons);
1621 fHistminsignalifAntiKaonPSecondary->Fill(TMath::Abs(pt),itspidsignalforkaons);
1623 if(pdgcodefake==-321)
1626 fHistminsignalifAntiKaonPrimaryfake->Fill(TMath::Abs(pt),itspidsignalforkaons);
1628 fHistminsignalifAntiKaonSecondaryfake->Fill(TMath::Abs(pt),itspidsignalforkaons);
1633 if(TMath::Abs(yforproton)<=fYCut)
1637 weight=GetWeight(label,stack);
1643 fHistminsignalifProtonP->Fill(pt,itspidsignalforprotons,weight);
1645 fHistminsignalifProtonP->Fill(pt,itspidsignalforprotons);
1647 //if(((itspidsignalforprotons))>(TMath::Abs(pt)<0.45?-0.2:0.0))&&(itspidsignalforprotons))<0.2)//select on
1649 if((itspidsignalforprotons>-0.2)&&(itspidsignalforprotons<0.5))
1651 fDCAXYZforcleanProtons->Fill(pt,dcaxy,dcaz);
1652 fProtonNTPCClusters->Fill(pt,nTPCclusters);
1653 fProtonchi2->Fill(pt,chi2);
1656 if(primary&&pdgcode==2212)
1657 fDCAXYZforcleanProtonsMCPrimary->Fill(pt,dcaxy,dcaz);
1658 else if(!primary&&!primaryfake&&(pdgcode==2212||pdgcodefake==2212)&&uniqueID==kPDecay)
1659 fDCAXYZforcleanProtonsWD->Fill(pt,dcaxy,dcaz);
1660 else if(!primary&&!primaryfake&&(pdgcode==2212||pdgcodefake==2212)&&uniqueID==kPHadronic)
1661 fDCAXYZforcleanProtonsHI->Fill(pt,dcaxy,dcaz);
1663 fDCAXYZforcleanProtonsR->Fill(pt,dcaxy,dcaz);
1669 fHistminsignalifProtonPPrimary->Fill(pt,itspidsignalforprotons);
1671 else if(primaryfake)
1673 if(pdgcodefake==2212)
1674 fHistminsignalifProtonPPrimaryfake->Fill(pt,itspidsignalforprotons);
1678 if(pdgcode==2212&&uniqueID==kPDecay)
1679 fHistminsignalifProtonPSecondaryWD->Fill(pt,itspidsignalforprotons,weight);
1680 else if(pdgcode==2212&&uniqueID==kPHadronic)
1681 fHistminsignalifProtonPSecondaryHI->Fill(pt,itspidsignalforprotons);
1682 else if(pdgcodefake==2212&&uniqueID==kPDecay)
1683 fHistminsignalifProtonPSecondaryWDfake->Fill(pt,itspidsignalforprotons,weight);
1684 else if(pdgcodefake==2212&&uniqueID==kPHadronic)
1685 fHistminsignalifProtonPSecondaryHIfake->Fill(pt,itspidsignalforprotons);
1687 fHistminsignalifProtonPSecondaryRest->Fill(pt,itspidsignalforprotons);
1691 if((itspidsignalforprotons>-0.2)&&(itspidsignalforprotons<0.5))
1693 fDCAXYZOpenforcleanProtons->Fill(pt,dcaxy,dcaz);
1696 if(primary&&pdgcode==2212)
1697 fDCAXYZOpenforcleanProtonsMCPrimary->Fill(pt,dcaxy,dcaz);
1698 else if(!primary&&!primaryfake&&(pdgcode==2212||pdgcodefake==2212)&&uniqueID==kPDecay)
1699 fDCAXYZOpenforcleanProtonsWD->Fill(pt,dcaxy,dcaz);
1700 else if(!primary&&!primaryfake&&(pdgcode==2212||pdgcodefake==2212)&&uniqueID==kPHadronic)
1701 fDCAXYZOpenforcleanProtonsHI->Fill(pt,dcaxy,dcaz);
1703 fDCAXYZOpenforcleanProtonsR->Fill(pt,dcaxy,dcaz);
1713 fHistminsignalifAntiProtonP->Fill(TMath::Abs(pt),itspidsignalforprotons,weight);
1715 fHistminsignalifAntiProtonP->Fill(TMath::Abs(pt),itspidsignalforprotons);
1716 if((itspidsignalforprotons>-0.2)&&(itspidsignalforprotons<0.5))
1718 fDCAXYZforcleanAntiProtons->Fill(TMath::Abs(pt),dcaxy,dcaz);
1722 if(primary&&pdgcode==-2212)
1723 fDCAXYZforcleanAntiProtonsMCPrimary->Fill(TMath::Abs(pt),dcaxy,dcaz);
1724 else if(!primary&&!primaryfake&&(pdgcode==-2212||pdgcodefake==-2212)&&uniqueID==kPDecay)
1725 fDCAXYZforcleanAntiProtonsWD->Fill(TMath::Abs(pt),dcaxy,dcaz);
1726 else if(!primary&&!primaryfake&&(pdgcode==-2212||pdgcodefake==-2212)&&uniqueID==kPHadronic)
1727 fDCAXYZforcleanAntiProtonsHI->Fill(TMath::Abs(pt),dcaxy,dcaz);
1729 fDCAXYZforcleanAntiProtonsR->Fill(TMath::Abs(pt),dcaxy,dcaz);
1735 fHistminsignalifAntiProtonPPrimary->Fill(TMath::Abs(pt),itspidsignalforprotons);
1737 else if(primaryfake)
1739 if(pdgcodefake==-2212)
1740 fHistminsignalifAntiProtonPPrimaryfake->Fill(TMath::Abs(pt),itspidsignalforprotons);
1744 if(pdgcode==-2212&&uniqueID==kPDecay)
1745 fHistminsignalifAntiProtonPSecondaryWD->Fill(TMath::Abs(pt),itspidsignalforprotons,weight);
1746 else if(pdgcode==-2212&&uniqueID==kPHadronic)
1747 fHistminsignalifAntiProtonPSecondaryHI->Fill(TMath::Abs(pt),itspidsignalforprotons);
1748 else if(pdgcodefake==-2212&&uniqueID==kPDecay)
1749 fHistminsignalifAntiProtonPSecondaryWDfake->Fill(TMath::Abs(pt),itspidsignalforprotons,weight);
1750 else if(pdgcodefake==-2212&&uniqueID==kPHadronic)
1751 fHistminsignalifAntiProtonPSecondaryHIfake->Fill(TMath::Abs(pt),itspidsignalforprotons);
1753 fHistminsignalifAntiProtonPSecondaryRest->Fill(TMath::Abs(pt),itspidsignalforprotons);
1756 if((itspidsignalforprotons>-0.2)&&(itspidsignalforprotons<0.5))
1758 fDCAXYZOpenforcleanAntiProtons->Fill(TMath::Abs(pt),dcaxy,dcaz);
1759 fAntiProtonNTPCClusters->Fill(TMath::Abs(pt),nTPCclusters);
1760 fAntiProtonchi2->Fill(TMath::Abs(pt),chi2);
1763 if(primary&&pdgcode==-2212)
1764 fDCAXYZOpenforcleanAntiProtonsMCPrimary->Fill(TMath::Abs(pt),dcaxy,dcaz);
1765 else if(!primary&&!primaryfake&&(pdgcode==-2212||pdgcodefake==-2212)&&uniqueID==kPDecay)
1766 fDCAXYZOpenforcleanAntiProtonsWD->Fill(TMath::Abs(pt),dcaxy,dcaz);
1767 else if(!primary&&!primaryfake&&(pdgcode==-2212||pdgcodefake==-2212)&&uniqueID==kPHadronic)
1768 fDCAXYZOpenforcleanAntiProtonsHI->Fill(TMath::Abs(pt),dcaxy,dcaz);
1770 fDCAXYZOpenforcleanAntiProtonsR->Fill(TMath::Abs(pt),dcaxy,dcaz);
1776 fHistStandartMul->Fill(refmultiplicity);
1777 fHistMytrackMul->Fill(mynumberoftracks);
1780 // Post output data.
1781 Printf("Done..........\n");
1783 //Printf("....................Done!\n");
1784 //Printf("end of Exec");
1787 //________________________________________________________________________
1788 void AliAnalysisChargedHadronSpectraITSTruncatedMeanTask::Terminate(Option_t *)
1793 Printf("YCut=%f",fYCut);
1794 Printf("nsigma=%f",fsigmacut);
1795 Printf("DCA cut xy sigma =%f zsigma=%f", fnsigmaxy, fnsigmaz);
1796 Printf("ChargeCut=%f ", fchargeCut);
1797 Printf("DCAxy parameters %f %f %f",fdcaxypar[0],fdcaxypar[1],fdcaxypar[2]);
1798 Printf("DCAz parameters %f %f %f %f",fdcazpar[0],fdcazpar[1],fdcazpar[2],fdcazpar[3]);
1804 Printf("correct SDD On\n");
1806 Printf("correct SSD On\n");
1809 Printf("weigth for pions");
1810 fK0weight->Print("All");
1814 Printf("weigth for protons");
1815 flambdaweight->Print("All");
1817 if(fAntilambdaweight)
1819 Printf("weigth for antiprotons");
1820 fAntilambdaweight->Print("All");
1822 Printf("Mul low %d Mul up %d",fLowMultiplicity, fUpMultiplicity);
1823 Printf("cent low %f cent up %f",fLowCentrality,fUpCentrality);
1824 if(fdovertexrescuts)
1825 Printf("Veretx resolution cut");
1826 Printf("end of Terminate");
1828 //___________________________________________________
1829 Float_t AliAnalysisChargedHadronSpectraITSTruncatedMeanTask::MyITSsignalusing4points(Double_t* tmpQESD) const
1831 //dE signal in case of 4 points in ITS
1832 Int_t indexes[4]={-1,-1,-1,-1};
1833 TMath::Sort(4,tmpQESD,indexes,0);
1834 return 0.5*(tmpQESD[indexes[0]]+tmpQESD[indexes[1]]);
1836 //________________________________________________________
1837 Float_t AliAnalysisChargedHadronSpectraITSTruncatedMeanTask::MyITSsignalusing3points( Double_t* tmpQESD) const
1839 //dE signal in case of 3 points in ITS
1840 Int_t indexes[3]={-1,-1,-1};
1841 TMath::Sort(3,tmpQESD,indexes,0);
1842 //cout<<tmpQESD[indexes[0]]<<" "<<tmpQESD[indexes[1]]<<" "<<tmpQESD[indexes[2]]<<endl;
1843 return (tmpQESD[indexes[0]]+tmpQESD[indexes[1]]*0.5)/1.5;
1845 //____________________________________________________________________________________________________
1846 void AliAnalysisChargedHadronSpectraITSTruncatedMeanTask::SetFunctionParam( Double_t * const par)
1848 fESDpid->GetITSResponse().SetBetheBlochParamsITSTPC(par);
1850 //_____________________________________________________________________________________________________
1851 void AliAnalysisChargedHadronSpectraITSTruncatedMeanTask::CorrectSDD(Double_t *tmpQESD) const
1853 //correction of SDD signal
1856 tmpQESD[0]=tmpQESD[0]*3.34/5.43;
1862 tmpQESD[1]=tmpQESD[1]*3.34/5.43;
1867 //_____________________________________________________________________________________________________
1868 void AliAnalysisChargedHadronSpectraITSTruncatedMeanTask::CorrectSSD(Double_t *tmpQESD) const
1870 //Correction of SSD signal
1871 tmpQESD[2]=(85.0/77.0)*tmpQESD[2];
1872 tmpQESD[3]=(85.0/77.0)*tmpQESD[3];
1874 //_______________________________________________________________________________________________________
1875 Bool_t AliAnalysisChargedHadronSpectraITSTruncatedMeanTask::SelectOnImpPar(AliESDtrack* t) const
1878 // cut on transverse impact parameter
1880 Float_t d0z0[2],covd0z0[3];
1881 t->GetImpactParameters(d0z0,covd0z0);
1882 Float_t sigma= fdcaxypar[0]+fdcaxypar[1]/TMath::Power(t->Pt(),fdcaxypar[2]);
1883 Float_t d0max = fnsigmaxy*sigma;
1885 Float_t sigmaZ = fdcazpar[0]+fdcazpar[1]/TMath::Power(t->Pt(),fdcazpar[2]);
1887 sigmaZ = fdcazpar[3];
1888 Float_t d0maxZ = fnsigmaz*sigmaZ;
1890 if(TMath::Abs(d0z0[0]) < d0max && TMath::Abs(d0z0[1]) < d0maxZ) //error
1894 //__________________________________________________________________________________________________
1895 Float_t AliAnalysisChargedHadronSpectraITSTruncatedMeanTask::GetWeight(Int_t t,AliStack* const stack) const
1898 //Get weigth for pions protons and antiprotons
1899 if(stack->IsPhysicalPrimary(TMath::Abs(t)))
1901 TParticle *particleMC = stack->Particle(TMath::Abs(t));
1902 Int_t pdgcodeMC = particleMC->GetPdgCode();
1903 if(TMath::Abs(pdgcodeMC)!=211&&TMath::Abs(pdgcodeMC)!=2212)
1905 if(!stack->IsPhysicalPrimary(TMath::Abs(particleMC->GetFirstMother())))
1907 TParticle *particleMother=stack->Particle(TMath::Abs(particleMC->GetFirstMother()));
1908 Int_t pdgcodeMother = particleMother->GetPdgCode();
1909 Float_t motherpt=particleMother-> Pt();
1910 if(TMath::Abs(pdgcodeMC)==211&&pdgcodeMother==310&&fK0weight)
1911 return fK0weight->Eval(motherpt);
1912 else if (pdgcodeMother==3122&&flambdaweight)
1913 return flambdaweight->Eval(motherpt);
1914 else if(pdgcodeMother==-3122&&fAntilambdaweight)
1915 return fAntilambdaweight->Eval(motherpt);
1918 //________________________________________________________________________________________________
1919 void AliAnalysisChargedHadronSpectraITSTruncatedMeanTask::SetDCA2010()
1921 //setting the DCA for 2010
1922 fdcaxypar[0]=0.0026;
1926 fdcazpar[0]=1000000.0;
1929 fdcazpar[3]=1000000.0;
1931 //______________________________________________________________________________________________________________
1932 void AliAnalysisChargedHadronSpectraITSTruncatedMeanTask::SetCentralityCut(Float_t low, Float_t up)
1934 //centrality cut setter
1935 if((up>low)&&(!(low<0.0))&&(!(up>100.0)))
1942 //_____________________________________________________________________________________________________________
1943 void AliAnalysisChargedHadronSpectraITSTruncatedMeanTask::SetMultiplicityCut(Int_t low, Int_t up)
1945 //mulyiplicty cut setter
1946 if((!(up>low))&&low>=0&&up>=0)
1948 fLowMultiplicity=-1;
1953 fLowMultiplicity=low;