]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG2/SPECTRA/AliAnalysisChargedHadronSpectraITSTruncatedMeanTask.cxx
Coverity fix
[u/mrichter/AliRoot.git] / PWG2 / SPECTRA / AliAnalysisChargedHadronSpectraITSTruncatedMeanTask.cxx
CommitLineData
3a448a01 1//Class to extract data to do ITS+TPC global Spectra
2//Autor Marek Chojnacki
3//emali Marek.Chojnacki@cern.ch
4//Used on 2009 data
5//last line of comments
6
7
8#include "AliAnalysisChargedHadronSpectraITSTruncatedMeanTask.h"
9#include "AliAnalysisManager.h"
10
11#include "AliESDEvent.h"
12
13
14//#include "AliESDtrack.h"
15
4637dfa3 16#include "Riostream.h"
3a448a01 17#include "AliInputEventHandler.h"
18#include "AliStack.h"
19//#include "AliMCEventHandler.h"
20#include "AliMCEvent.h"
21
1ea543bb 22#include "TGraph.h"
3a448a01 23#include "TH1F.h"
24#include "TH2F.h"
25#include "TMath.h"
26#include "TH3F.h"
27//#include "TMCProcess.h"
28#include "AliVEvent.h"
29
30#include "AliESDtrackCuts.h"
31//#include "AliESDpidCuts.h"
32//#include "AliESDpid.h"
4637dfa3 33#include "AliCentrality.h"
3a448a01 34
35 class AliMCEventHandler;
36 class Riostream;
37
38using namespace std;
39ClassImp(AliAnalysisChargedHadronSpectraITSTruncatedMeanTask)
40
41//________________________________________________________________________
42AliAnalysisChargedHadronSpectraITSTruncatedMeanTask::AliAnalysisChargedHadronSpectraITSTruncatedMeanTask(const char *name)
4637dfa3 43:AliAnalysisTaskSE(name),fESD(0),fCuts(0),fCutsMul(0),fMC(0),
44fLowMultiplicity(-1),fUpMultiplicity(-1),fLowCentrality(-10.0),fUpCentrality(-10.0),
1ea543bb 45fYCut(100.0),fsigmacut(3.0),fnsigmaxy(7.0),fnsigmaz(5.0),fchargeCut(0.0),
4637dfa3 46fCorrectSDD(0),fCorrectSSD(0),fHIsettings(0),fdovertexrescuts(0),
1ea543bb 47 fK0weight(0),flambdaweight(0),fAntilambdaweight(0),
4637dfa3 48fHistStats(0),fHistZVertexBeforeCut(0),fHistZVertexAfterCut(0),fHistXYVertexBeforeCut(0),fHistXYVertexAfterCut(0),
49fHistPhiPtBeforeCuts(0),fHistPhiPtAfterCuts(0),fHistEtaPtBeforeCuts(0),fHistEtaPtAfterCuts(0),fHistDCABeforeCuts(0),fHistDCAAfterCuts(0),
3a448a01 50fHistPminusTPCinPAfterCuts(0),fHistPminusTPCinPglobalAfterCuts(0),
51fHistMydEPpositive(0),fHistMydETPCinPpositive(0),fHistMydETPCinPglobalpositive(0),
52fHistMydEPnegative(0),fHistMydETPCinPnegative(0),fHistMydETPCinPglobalnegative(0),
53fHistL3dEP(0),fHistL4dEP(0),fHistL5dEP(0),fHistL6dEP(0),fHistL3dETPCinP(0),
4637dfa3 54 fHistL4dETPCinP(0),fHistL5dETPCinP(0),fHistL6dETPCinP(0),fHistwhichhasmin(0),fHistMysignalminusESD(0),
3a448a01 55fHistminsignalifPionP(0),fHistminsignalifKaonP(0),fHistminsignalifProtonP(0),fHistminsignalifAntiPionP(0),fHistminsignalifAntiKaonP(0),fHistminsignalifAntiProtonP(0),
56fDCAXYZforcleanPions(0),fDCAXYZforcleanAntiPions(0),fDCAXYZforcleanProtons(0),fDCAXYZforcleanAntiProtons(0),
57fDCAXYZOpenforcleanPions(0),fDCAXYZOpenforcleanAntiPions(0),fDCAXYZOpenforcleanProtons(0),fDCAXYZOpenforcleanAntiProtons(0),
58fHistNtrackwithstandardcuts(0),fHistNtrackwithITSPIDcuts(0),
59fHistSignalinTPCKaonforstandardcuts(0),fHistSignalinTPCKaonforITSPIDcuts(0),fHistSignalinTPCAntiKaonforstandardcuts(0),fHistSignalinTPCAntiKaonforITSPIDcuts(0),
60fHistSignalinTPCProtonforstandardcuts(0),fHistSignalinTPCProtonforITSPIDcuts(0),fHistSignalinTPCAntiProtonforstandardcuts(0),fHistSignalinTPCAntiProtonforITSPIDcuts(0),
61fHistStandartMul(0),fHistMytrackMul(0),
3a448a01 62fHistminsignalifPionPPrimary(0),fHistminsignalifKaonPPrimary(0),fHistminsignalifProtonPPrimary(0),fHistminsignalifProtonPPrimaryfake(0),
63fHistminsignalifAntiPionPPrimary(0),fHistminsignalifAntiKaonPPrimary(0),fHistminsignalifAntiProtonPPrimary(0),fHistminsignalifAntiProtonPPrimaryfake(0),
64fHistminsignalifPionPSecondary(0),fHistminsignalifKaonPSecondary(0),
65fHistminsignalifProtonPSecondaryWD(0),fHistminsignalifProtonPSecondaryHI(0),fHistminsignalifProtonPSecondaryRest(0),
66fHistminsignalifProtonPSecondaryWDfake(0),fHistminsignalifProtonPSecondaryHIfake(0),
67fHistminsignalifAntiPionPSecondary(0),fHistminsignalifAntiKaonPSecondary(0),
68fHistminsignalifAntiProtonPSecondaryWD(0),fHistminsignalifAntiProtonPSecondaryHI(0), fHistminsignalifAntiProtonPSecondaryRest(0),
69fHistminsignalifAntiProtonPSecondaryWDfake(0),fHistminsignalifAntiProtonPSecondaryHIfake(0),
70fHistminsignalifMuEPositiveP(0),fHistminsignalifMuENegativeP(0),
71fHistminsignalifPionPrimaryfake(0),fHistminsignalifKaonPrimaryfake(0),fHistminsignalifAntiPionPrimaryfake(0),fHistminsignalifAntiKaonPrimaryfake(0),
72fHistminsignalifPionSecondaryfake(0),fHistminsignalifKaonSecondaryfake(0),fHistminsignalifAntiPionSecondaryfake(0),fHistminsignalifAntiKaonSecondaryfake(0),
73fHistminsignalifPionPMCPrimary(0),fHistminsignalifKaonPMCPrimary(0),fHistminsignalifProtonPMCPrimary(0),
74fHistminsignalifAntiPionPMCPrimary(0),fHistminsignalifAntiKaonPMCPrimary(0),fHistminsignalifAntiProtonPMCPrimary(0),
75fHistminsignalifPionPMCPrimaryBeforeEventCuts(0),fHistminsignalifKaonPMCPrimaryBeforeEventCuts(0),fHistminsignalifProtonPMCPrimaryBeforeEventCuts(0),
76fHistminsignalifAntiPionPMCPrimaryBeforeEventCuts(0),fHistminsignalifAntiKaonPMCPrimaryBeforeEventCuts(0),fHistminsignalifAntiProtonPMCPrimaryBeforeEventCuts(0),
77fHistminsignalifPionPMCPrimaryBeforeEventCutswithgoodZvertex(0),fHistminsignalifKaonPMCPrimaryBeforeEventCutswithgoodZvertex(0),fHistminsignalifProtonPMCPrimaryBeforeEventCutswithgoodZvertex(0),
78fHistminsignalifAntiPionPMCPrimaryBeforeEventCutswithgoodZvertex(0),fHistminsignalifAntiKaonPMCPrimaryBeforeEventCutswithgoodZvertex(0),fHistminsignalifAntiProtonPMCPrimaryBeforeEventCutswithgoodZvertex(0),
79fHistminsignalifPionPMCPrimaryAfterEventCutsBeforeVertexZ(0),fHistminsignalifKaonPMCPrimaryAfterEventCutsBeforeVertexZ(0),fHistminsignalifProtonPMCPrimaryAfterEventCutsBeforeVertexZ(0),
80fHistminsignalifAntiPionPMCPrimaryAfterEventCutsBeforeVertexZ(0),fHistminsignalifAntiKaonPMCPrimaryAfterEventCutsBeforeVertexZ(0),fHistminsignalifAntiProtonPMCPrimaryAfterEventCutsBeforeVertexZ(0),
81fDCAXYZforcleanPionsMCPrimary(0),fDCAXYZforcleanAntiPionsMCPrimary(0),fDCAXYZforcleanProtonsMCPrimary(0),fDCAXYZforcleanAntiProtonsMCPrimary(0),
82 fDCAXYZforcleanPionsWD(0),fDCAXYZforcleanAntiPionsWD(0),fDCAXYZforcleanProtonsWD(0), fDCAXYZforcleanAntiProtonsWD(0),fDCAXYZforcleanPionsHI(0),fDCAXYZforcleanAntiPionsHI(0),
1ea543bb 83fDCAXYZforcleanProtonsHI(0),fDCAXYZforcleanAntiProtonsHI(0),fDCAXYZforcleanPionsMEPrimary(0),fDCAXYZforcleanAntiPionsMEPrimary(0),fDCAXYZforcleanPionsMESecondary(0),fDCAXYZforcleanAntiPionsMESecondary(0),fDCAXYZforcleanPionsR(0),fDCAXYZforcleanAntiPionsR(0),fDCAXYZforcleanProtonsR(0),fDCAXYZforcleanAntiProtonsR(0),
3a448a01 84fDCAXYZOpenforcleanPionsMCPrimary(0),fDCAXYZOpenforcleanAntiPionsMCPrimary(0),fDCAXYZOpenforcleanProtonsMCPrimary(0),fDCAXYZOpenforcleanAntiProtonsMCPrimary(0),
85 fDCAXYZOpenforcleanPionsWD(0),fDCAXYZOpenforcleanAntiPionsWD(0),fDCAXYZOpenforcleanProtonsWD(0), fDCAXYZOpenforcleanAntiProtonsWD(0),fDCAXYZOpenforcleanPionsHI(0),fDCAXYZOpenforcleanAntiPionsHI(0),
1ea543bb 86fDCAXYZOpenforcleanProtonsHI(0),fDCAXYZOpenforcleanAntiProtonsHI(0),fDCAXYZOpenforcleanPionsMEPrimary(0),fDCAXYZOpenforcleanAntiPionsMEPrimary(0),fDCAXYZOpenforcleanPionsMESecondary(0),fDCAXYZOpenforcleanAntiPionsMESecondary(0),fDCAXYZOpenforcleanPionsR(0),fDCAXYZOpenforcleanAntiPionsR(0),fDCAXYZOpenforcleanProtonsR(0),fDCAXYZOpenforcleanAntiProtonsR(0),
3a448a01 87fElectronsource(0),fAntiElectronsource(0),
88fMuonsource(0),fAntiMuonsource(0),
4637dfa3 89fPionNTPCClusters(0),fAntiPionNTPCClusters(0),fKaonNTPCClusters(0),fAntiKaonNTPCClusters(0),fProtonNTPCClusters(0),fAntiProtonNTPCClusters(0),
90fPionchi2(0),fAntiPionchi2(0),fKaonchi2(0),fAntiKaonchi2(0),fProtonchi2(0),fAntiProtonchi2(0),
2b52537d 91fTracksCutmonitoring(0),fParticlesCutmonitoring(0),fVertexshift(0),fPtESDminusPtMCvPtESDafterallcuts(0),fPtESDminusPtMCvPtESDafterTPCcuts(0),fMulESDMulMCVz(0),
3a448a01 92fTPCPIDCUT(0), fESDpid(0),fPrimaryElectronsMother(0),
93flist(0)
94{
95 //Constructor
96 fESDpid=new AliESDpid();
4637dfa3 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);
3a448a01 99
100
101
4637dfa3 102 fCutsMul=new AliESDtrackCuts("Mul","Mul");
103 fCutsMul->SetMinNClustersTPC(70);
104 fCutsMul->SetMaxChi2PerClusterTPC(4);
105 fCutsMul->SetAcceptKinkDaughters(kFALSE);
106 fCutsMul->SetRequireTPCRefit(kTRUE);
107 // ITS
108 fCutsMul->SetRequireITSRefit(kTRUE);
109 fCutsMul->SetClusterRequirementITS(AliESDtrackCuts::kSPD,
110 AliESDtrackCuts::kAny);
111 fCutsMul->SetMaxDCAToVertexXYPtDep("0.0182+0.0350/pt^1.01");
112
113 fCutsMul->SetMaxDCAToVertexZ(2);
114 fCutsMul->SetDCAToVertex2D(kFALSE);
115 fCutsMul->SetRequireSigmaToVertex(kFALSE);
116
117 fCutsMul->SetEtaRange(-0.8,+0.8);
118 fCutsMul->SetPtRange(0.15, 1e10);
119
120 fdcaxypar[0]=0.0050;
121 fdcaxypar[1]=0.0060;
122 fdcaxypar[2]=0.9;
123
124 fdcazpar[0]=0.0146;
125 fdcazpar[1]=0.0070;
126 fdcazpar[2]=1.114758;
127 fdcazpar[3]=0.0216;
128
129
130
131
3a448a01 132 Printf("end of AliAnalysisChargedHadronSpectraITSTruncatedMeanTask");
133 DefineOutput(1, TList::Class());
134}
135
136
137//________________________________________________________________________
138void AliAnalysisChargedHadronSpectraITSTruncatedMeanTask::UserCreateOutputObjects()
139{
140 //UserCreateOutputObject
141 Printf("AliAnalysisChargedHadronSpectraITSTruncatedMeanTask UserCreateOutputObjects");
142 flist=new TList();
143 Float_t ptmax=2.0;
144 Float_t etamax=1.0;
145
146 Int_t netabins=100;
147 Int_t nptbins=40;
148 Double_t dcamax=3.7;
149 const Int_t ndec=2;
150 Int_t startvalue=-1;
151 const Int_t npredec=50;
152 Double_t tabx[ndec*npredec+1];
153 for (Int_t i=0;i<ndec;i++)
154 {
155 for (Int_t j=0;j<npredec;j++)
156 {
157 tabx[npredec*i+j]=TMath::Power(10,((Double_t)i)+((Double_t)startvalue)+((Double_t)j)/((Double_t)npredec));
158 }
159 }
160 tabx[ndec*npredec]=TMath::Power(10,ndec+startvalue);
161
162 const Int_t ny=600;
163 const Double_t jump=1.5;
164 const Double_t starty=0.0;
165
166
167 Int_t kPtBins=30;
168 Double_t binsPtDummy[kPtBins+1];
169 binsPtDummy[0]=0.0;
170 for(int i=1;i<=kPtBins+1;i++)
171 {
172 if(binsPtDummy[i-1]+0.05<1.01)
173 binsPtDummy[i]=binsPtDummy[i-1]+0.05;
174 else
175 binsPtDummy[i]=binsPtDummy[i-1]+0.1;
176 }
177 //{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};
178
179
180 fHistStats=new TH1F("StatsHist","StatsHist",10,-0.5,9.5);
181 fHistStats->GetXaxis()->SetBinLabel(1,"Nevents");
182 fHistStats->GetXaxis()->SetBinLabel(2,"Nevents_physics");
183 fHistStats->GetXaxis()->SetBinLabel(3,"Nevents_physics_with_good_SPD_vertex");
184 fHistStats->GetXaxis()->SetBinLabel(4,"Nevents_physics_with_good_SPD_vertex_and_|z|<10.0");
185 fHistStats->GetXaxis()->SetBinLabel(5,"N_tracks_with_3_or_4_in_SSD_SDD");
186 fHistStats->GetXaxis()->SetBinLabel(6,"N_tracks_with_3_or_4_with_goodq_in_SSD_SDD");
187 fHistStats->GetXaxis()->SetBinLabel(7,"e_in_pi");
188 fHistStats->GetXaxis()->SetBinLabel(8,"mu_in_pi");
189 fHistStats->GetXaxis()->SetBinLabel(9,"MC_event");
190 fHistStats->GetXaxis()->SetBinLabel(10,"MC_event_with_z<10.0");
191 flist->Add(fHistStats);
192
4637dfa3 193 fHistZVertexBeforeCut=new TH1F("HistZVertexBeforeCut","ZVertex;z[cm];N_{counts}",400,-20,20);
194 flist->Add(fHistZVertexBeforeCut);
195 fHistZVertexAfterCut=new TH1F("HistZVertexAfterCut","ZVertex;z[cm];N_{counts}",400,-20,20);
196 flist->Add(fHistZVertexAfterCut);
197 fHistXYVertexBeforeCut=new TH2F("HistXYVertexBeforeCut","XYVertex;x[cm];y[cm];N_{conuts}",100,-0.4,0.4,100,-0.4,0.4);
198 flist->Add(fHistXYVertexBeforeCut);
199 fHistXYVertexAfterCut=new TH2F("HistXYVertexAfterCut","XYVertex;x[cm];y[cm];N_{conuts}",100,-0.4,0.4,100,-0.4,0.4);
200 flist->Add(fHistXYVertexAfterCut);
3a448a01 201
202 fHistPhiPtBeforeCuts=new TH2F("HistPhiPtBeforeCuts",";#phi;pt[GeV/c]",70,0,2.0*TMath::Pi(),nptbins,-1.0*ptmax,ptmax);
203 flist->Add(fHistPhiPtBeforeCuts);
204
205 fHistPhiPtAfterCuts=new TH2F("HistPhiPtAfterCuts",";#phi;pt[GeV/c]",70,0,2.0*TMath::Pi(),nptbins,-1.0*ptmax,ptmax);
206 flist->Add(fHistPhiPtAfterCuts);
207
208 fHistEtaPtBeforeCuts=new TH2F("HistEtaPtBeforeCuts",";#eta;pt[GeV/c]",netabins,-1.0*etamax,etamax,nptbins,-1.0*ptmax,ptmax);//eta pt
209 flist->Add(fHistEtaPtBeforeCuts);
210
211 fHistEtaPtAfterCuts=new TH2F("HistEtaPtAfterCuts",";#eta;pt[GeV/c]",netabins,-1.0*etamax,etamax,nptbins,-1.0*ptmax,ptmax);//eta pt
212 flist->Add(fHistEtaPtAfterCuts);
213
214 fHistDCABeforeCuts=new TH2F("HistDCABeforeCut",";dcaxy[cm];dcaz[cm]",100,-1.0*dcamax,dcamax,100,-1.0*dcamax,1.0*dcamax);
215 flist->Add(fHistDCABeforeCuts);
216
217 fHistDCAAfterCuts=new TH2F("HistDCAAfterCut",";dcaxy[cm];dcaz[cm]",100,-1.0*dcamax,dcamax,100,-1.0*dcamax,1.0*dcamax);
218 flist->Add(fHistDCAAfterCuts);
219
220
221 fHistPminusTPCinPAfterCuts= new TH2F("HistPminusTPCinPVPTPCinAfterCuts",";P-PTPCin [GeV/c];PTPCin",100,-0.5,0.5,ndec*npredec,tabx);
222 flist->Add(fHistPminusTPCinPAfterCuts);
223
224 fHistPminusTPCinPglobalAfterCuts= new TH2F("HistPminusTPCinPVPTPCinglobalAfterCuts",";P-PTPCinglobal [GeV/c];PTPCin",100,-0.5,0.5,ndec*npredec,tabx);
225 flist->Add(fHistPminusTPCinPglobalAfterCuts);
226
227 fHistMydEPpositive=new TH2F("HistMydEPpositive",";P[GeV/c];dE[in 300#mum]",ndec*npredec,tabx,ny,starty,ny*jump+starty);
228 flist->Add(fHistMydEPpositive);
229
230 fHistMydETPCinPpositive=new TH2F("HistMydETPCinPpositive",";P[GeV/c];dE[in 300#mum]",ndec*npredec,tabx,ny,starty,ny*jump+starty);
231 flist->Add(fHistMydETPCinPpositive);
232
233 fHistMydETPCinPglobalpositive=new TH2F("HistMydETPCinPglobalpositive",";P[GeV/c];dE[in 300#mum]",ndec*npredec,tabx,ny,starty,ny*jump+starty);
234 flist->Add(fHistMydETPCinPglobalpositive);
235
236 fHistMydEPnegative=new TH2F("HistMydEPnegative",";P[GeV/c];dE[in 300#mum]",ndec*npredec,tabx,ny,starty,ny*jump+starty);
237 flist->Add(fHistMydEPnegative);
238
239 fHistMydETPCinPnegative=new TH2F("HistMydETPCinPnegative",";P[GeV/c];dE[in 300#mum]",ndec*npredec,tabx,ny,starty,ny*jump+starty);
240 flist->Add(fHistMydETPCinPnegative);
241
242 fHistMydETPCinPglobalnegative=new TH2F("HistMydETPCinPglobalnegative",";P[GeV/c];dE[in 300#mum]",ndec*npredec,tabx,ny,starty,ny*jump+starty);
243 flist->Add(fHistMydETPCinPglobalnegative);
244
245
246 fHistL3dEP=new TH2F("HistL3dEP",";P[GeV/c];dE[in 300#mum]",ndec*npredec,tabx,ny,starty,ny*jump+starty);
247 flist->Add(fHistL3dEP);
248
249 fHistL4dEP=new TH2F("HistL4dEP",";P[GeV/c];dE[in 300#mum]",ndec*npredec,tabx,ny,starty,ny*jump+starty);
250 flist->Add(fHistL4dEP);
251
252 fHistL5dEP=new TH2F("HistL5dEP",";P[GeV/c];dE[in 300#mum]",ndec*npredec,tabx,ny,starty,ny*jump+starty);
253 flist->Add(fHistL5dEP);
254
255 fHistL6dEP=new TH2F("HistL6dEP",";P[GeV/c];dE[in 300#mum]",ndec*npredec,tabx,ny,starty,ny*jump+starty);
256 flist->Add(fHistL6dEP);
257
258 fHistL3dETPCinP=new TH2F("HistL3dETPCinP",";P[GeV/c];dE[in 300#mum]",ndec*npredec,tabx,ny,starty,ny*jump+starty);
259 flist->Add(fHistL3dETPCinP);
260
261 fHistL4dETPCinP=new TH2F("HistL4dETPCinP",";P[GeV/c];dE[in 300#mum]",ndec*npredec,tabx,ny,starty,ny*jump+starty);
262 flist->Add(fHistL4dETPCinP);
263
264 fHistL5dETPCinP=new TH2F("HistL5dETPCinP",";P[GeV/c];dE[in 300#mum]",ndec*npredec,tabx,ny,starty,ny*jump+starty);
265 flist->Add(fHistL5dETPCinP);
266
267 fHistL6dETPCinP=new TH2F("HistL6dETPCinP",";P[GeV/c];dE[in 300#mum]",ndec*npredec,tabx,ny,starty,ny*jump+starty);
268 flist->Add(fHistL6dETPCinP);
269
3a448a01 270
4637dfa3 271
272 fHistwhichhasmin=new TH2F("Histwhichhasmin","Histwhichhasmin;L;Q",4,-0.5,3.5,100,0,1000);
3a448a01 273 fHistwhichhasmin->GetXaxis()->SetBinLabel(1,"SDD1");
274 fHistwhichhasmin->GetXaxis()->SetBinLabel(2,"SDD2");
275 fHistwhichhasmin->GetXaxis()->SetBinLabel(3,"SSD1");
276 fHistwhichhasmin->GetXaxis()->SetBinLabel(4,"SSD2");
277 flist->Add(fHistwhichhasmin);
4637dfa3 278 fHistMysignalminusESD=new TH1F("HistMysignalminus","HistMysignalminus;my-ESD;N",100,-0.2,0.2);
279 flist->Add(fHistMysignalminusESD);
3a448a01 280
3a448a01 281
282 fHistminsignalifPionP=new TH2F("HistminsignalifPionP",";Pt[GeV/c];log(dE_real)-log(dE_fit)",kPtBins,binsPtDummy,ny,-4,4);
283 flist->Add(fHistminsignalifPionP);
284 fHistminsignalifKaonP=new TH2F("HistminsignalifKaonP",";Pt[GeV/c];log(dE_real)-log(dE_fit)",kPtBins,binsPtDummy,ny,-4,4);
285 flist->Add(fHistminsignalifKaonP);
286 fHistminsignalifProtonP=new TH2F("HistminsignalifProtonP",";Pt[GeV/c];log(dE_real)-log(dE_fit)",kPtBins,binsPtDummy,ny,-4,4);
287 flist->Add(fHistminsignalifProtonP);
288
289
290 fHistminsignalifAntiPionP=new TH2F("HistminsignalifAntiPionP",";Pt[GeV/c];log(dE_real)-log(dE_fit)",kPtBins,binsPtDummy,ny,-4,4);
291 flist->Add(fHistminsignalifAntiPionP);
292 fHistminsignalifAntiKaonP=new TH2F("HistminsignalifAntiKaonP",";Pt[GeV/c];log(dE_real)-log(dE_fit)",kPtBins,binsPtDummy,ny,-4,4);
293 flist->Add(fHistminsignalifAntiKaonP);
294 fHistminsignalifAntiProtonP=new TH2F("HistminsignalifAntiProtonP",";Pt[GeV/c];log(dE_real)-log(dE_fit)",kPtBins,binsPtDummy,ny,-4,4);
295 flist->Add(fHistminsignalifAntiProtonP);
296
297 Int_t kDCABins=20+2+40;
298 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};
299
300
301
302
303 fDCAXYZforcleanPions=new TH3F("fDCAXYZforcleanPions",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy);
304 flist->Add(fDCAXYZforcleanPions);
305 fDCAXYZforcleanAntiPions=new TH3F("fDCAXYZforcleanAntiPions",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy);
306 flist->Add(fDCAXYZforcleanAntiPions);
307 fDCAXYZforcleanProtons=new TH3F("fDCAXYZforcleanProtons",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy);
308 flist->Add(fDCAXYZforcleanProtons);
309 fDCAXYZforcleanAntiProtons=new TH3F("fDCAXYZforcleanAntiProtons",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy);
310 flist->Add(fDCAXYZforcleanAntiProtons);
311
312
313 fDCAXYZOpenforcleanPions=new TH3F("fDCAXYZOpenforcleanPions",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy);
314 flist->Add(fDCAXYZOpenforcleanPions);
315 fDCAXYZOpenforcleanAntiPions=new TH3F("fDCAXYZOpenforcleanAntiPions",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy);
316 flist->Add(fDCAXYZOpenforcleanAntiPions);
317 fDCAXYZOpenforcleanProtons=new TH3F("fDCAXYZOpenforcleanProtons",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy);
318 flist->Add(fDCAXYZOpenforcleanProtons);
319 fDCAXYZOpenforcleanAntiProtons=new TH3F("fDCAXYZOpenforcleanAntiProtons",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy);
320 flist->Add(fDCAXYZOpenforcleanAntiProtons);
321
322 fHistNtrackwithstandardcuts=new TH2F ("fHistNtrackwithstandardcuts",";Pt[GeV/c];type;counts",kPtBins,binsPtDummy,3,-0.5,2.5);
323 flist->Add(fHistNtrackwithstandardcuts);
324 fHistNtrackwithITSPIDcuts=new TH2F ("fHistNtrackwithITSPIDcuts",";Pt[GeV/c];type;counts",kPtBins,binsPtDummy,3,-0.5,2.5);
325 flist->Add(fHistNtrackwithITSPIDcuts);
326
327
328 fHistSignalinTPCKaonforstandardcuts= new TH2F("fHistSignalinTPCKaonforstandardcuts",";Pt[GeV/c];signal",kPtBins,binsPtDummy,100,-1.0,1.0) ;
329 flist->Add(fHistSignalinTPCKaonforstandardcuts);
330 fHistSignalinTPCKaonforITSPIDcuts= new TH2F("fHistSignalinTPCKaonforITSPIDcuts",";Pt[GeV/c];signal",kPtBins,binsPtDummy,100,-1.0,1.0) ;
331 flist->Add(fHistSignalinTPCKaonforITSPIDcuts);
332
333 fHistSignalinTPCAntiKaonforstandardcuts= new TH2F("fHistSignalinTPCAntiKaonforstandardcuts",";Pt[GeV/c];signal",kPtBins,binsPtDummy,100,-1.0,1.0) ;
334 flist->Add(fHistSignalinTPCAntiKaonforstandardcuts);
335 fHistSignalinTPCAntiKaonforITSPIDcuts= new TH2F("fHistSignalinTPCAntiKaonforITSPIDcuts",";Pt[GeV/c];signal",kPtBins,binsPtDummy,100,-1.0,1.0) ;
336 flist->Add(fHistSignalinTPCAntiKaonforITSPIDcuts);
337
338 fHistSignalinTPCProtonforstandardcuts= new TH2F("fHistSignalinTPCProtonforstandardcuts",";Pt[GeV/c];signal",kPtBins,binsPtDummy,100,-1.0,1.0) ;
339 flist->Add(fHistSignalinTPCProtonforstandardcuts);
340 fHistSignalinTPCProtonforITSPIDcuts= new TH2F("fHistSignalinTPCProtonforITSPIDcuts",";Pt[GeV/c];signal",kPtBins,binsPtDummy,100,-1.0,1.0) ;
341 flist->Add(fHistSignalinTPCProtonforITSPIDcuts);
342
343
344 fHistSignalinTPCAntiProtonforstandardcuts= new TH2F("fHistSignalinTPCAntiProtonforstandardcuts",";Pt[GeV/c];signal",kPtBins,binsPtDummy,100,-1.0,1.0) ;
345 flist->Add(fHistSignalinTPCAntiProtonforstandardcuts);
346 fHistSignalinTPCAntiProtonforITSPIDcuts= new TH2F("fHistSignalinTPCAntiProtonforITSPIDcuts",";Pt[GeV/c];signal",kPtBins,binsPtDummy,100,-1.0,1.0) ;
347 flist->Add(fHistSignalinTPCAntiProtonforITSPIDcuts);
348
349 fPionNTPCClusters=new TH2F("fPionNTPCClusters","fPionNTPCClusters;Pt [GeV/c];NClusters",kPtBins,binsPtDummy,20,60,160);
350 flist->Add(fPionNTPCClusters);
351 fAntiPionNTPCClusters=new TH2F("fAntiPionNTPCClusters","fAntiPionNTPCClusters;Pt [GeV/c];NClusters",kPtBins,binsPtDummy,20,60,160);
352 flist->Add(fAntiPionNTPCClusters);
4637dfa3 353 fKaonNTPCClusters=new TH2F("fKaonNTPCClusters","fKaonNTPCClusters;Pt [GeV/c];NClusters",kPtBins,binsPtDummy,20,60,160);
354 flist->Add(fKaonNTPCClusters);
355 fAntiKaonNTPCClusters=new TH2F("fAntiKaonNTPCClusters","fAntiKaonNTPCClusters;Pt [GeV/c];NClusters",kPtBins,binsPtDummy,20,60,160);
356 flist->Add(fAntiKaonNTPCClusters);
357 fProtonNTPCClusters=new TH2F("fProtonNTPCClusters","fProtonNTPCClusters;Pt [GeV/c];NClusters",kPtBins,binsPtDummy,20,60,160);
358 flist->Add(fProtonNTPCClusters);
359 fAntiProtonNTPCClusters=new TH2F("fAntiProtonNTPCClusters","fAntiProtonNTPCClusters;Pt [GeV/c];NClusters",kPtBins,binsPtDummy,20,60,160);
360 flist->Add(fAntiProtonNTPCClusters);
361
362
363 fPionchi2=new TH2F("fPionchi2","fPionchi2;Pt [GeV/c];NClusters",kPtBins,binsPtDummy,20,0,6);
364 flist->Add(fPionchi2);
365 fAntiPionchi2=new TH2F("fAntiPionchi2","fAntiPionchi2;Pt [GeV/c];NClusters",kPtBins,binsPtDummy,20,0,6);
366 flist->Add(fAntiPionchi2);
367 fKaonchi2=new TH2F("fKaonchi2","fKaonchi2;Pt [GeV/c];NClusters",kPtBins,binsPtDummy,20,0,6);
368 flist->Add(fKaonchi2);
369 fAntiKaonchi2=new TH2F("fAntiKaonchi2","fAntiKaonchi2;Pt [GeV/c];NClusters",kPtBins,binsPtDummy,20,0,6);
370 flist->Add(fAntiKaonchi2);
371 fProtonchi2=new TH2F("fProtonchi2","fProtonchi2;Pt [GeV/c];NClusters",kPtBins,binsPtDummy,20,0,6);
372 flist->Add(fProtonchi2);
373 fAntiProtonchi2=new TH2F("fAntiProtonchi2","fAntiProtonchi2;Pt [GeV/c];NClusters",kPtBins,binsPtDummy,20,0,6);
374 flist->Add(fAntiProtonchi2);
375
376 if(fHIsettings)
377 {
378 fHistStandartMul=new TH1F("fHistStandartMul",";Ntracks;counts",300,0,3000);
379 flist->Add(fHistStandartMul);
380 fHistMytrackMul=new TH1F("fHistMytrackMul",";Ntracks;counts",300,0,3000);
381 flist->Add(fHistMytrackMul);
382 }
383 else
384 {
385 fHistStandartMul=new TH1F("fHistStandartMul",";Ntracks;counts",300,0,300);
386 flist->Add(fHistStandartMul);
387 fHistMytrackMul=new TH1F("fHistMytrackMul",";Ntracks;counts",300,0,300);
388 flist->Add(fHistMytrackMul);
389 }
390 fTracksCutmonitoring=new TH2F("fTracksCutmonitoring",";cut;pt[GeV/c];N_{entries}",4,0.5,4.5,kPtBins,binsPtDummy);
391 fTracksCutmonitoring->GetXaxis()->SetBinLabel(1,"TPCin");
392 fTracksCutmonitoring->GetXaxis()->SetBinLabel(2,"standard");
393 fTracksCutmonitoring->GetXaxis()->SetBinLabel(3,"ITSpid");
394 fTracksCutmonitoring->GetXaxis()->SetBinLabel(4,"DCA");
395 flist->Add(fTracksCutmonitoring);
3a448a01 396
397 if(!fMC)
398 {
399
400 Printf("end of CreateOutputObjects no MC");
401 PostData(1,flist);
402 return;
403 }
404
405
3a448a01 406
407 fHistminsignalifPionPPrimary=new TH2F("HistminsignalifPionPPrimary",";Pt[GeV/c];log(dE_real)-log(dE_fit)",kPtBins,binsPtDummy,ny,-4,4);
408 flist->Add(fHistminsignalifPionPPrimary);
409 fHistminsignalifKaonPPrimary=new TH2F("HistminsignalifKaonPPrimary",";Pt[GeV/c];log(dE_real)-log(dE_fit)",kPtBins,binsPtDummy,ny,-4,4);
410 flist->Add(fHistminsignalifKaonPPrimary);
411 fHistminsignalifProtonPPrimary=new TH2F("HistminsignalifProtonPPrimary",";Pt[GeV/c];log(dE_real)-log(dE_fit)",kPtBins,binsPtDummy,ny,-4,4);
412 flist->Add(fHistminsignalifProtonPPrimary);
413 fHistminsignalifProtonPPrimaryfake=new TH2F("HistminsignalifProtonPPrimaryfake",";Pt[GeV/c];log(dE_real)-log(dE_fit)",kPtBins,binsPtDummy,ny,-4,4);
414 flist->Add(fHistminsignalifProtonPPrimaryfake);
415
416 fHistminsignalifAntiPionPPrimary=new TH2F("HistminsignalifAntiPionPPrimary",";Pt[GeV/c];log(dE_real)-log(dE_fit)",kPtBins,binsPtDummy,ny,-4,4);
417 flist->Add(fHistminsignalifAntiPionPPrimary);
418 fHistminsignalifAntiKaonPPrimary=new TH2F("HistminsignalifAntiKaonPPrimary",";Pt[GeV/c];log(dE_real)-log(dE_fit)",kPtBins,binsPtDummy,ny,-4,4);
419 flist->Add(fHistminsignalifAntiKaonPPrimary);
420 fHistminsignalifAntiProtonPPrimary=new TH2F("HistminsignalifAntiProtonPPrimary",";Pt[GeV/c];log(dE_real)-log(dE_fit)",kPtBins,binsPtDummy,ny,-4,4);
421 flist->Add(fHistminsignalifAntiProtonPPrimary);
422 fHistminsignalifAntiProtonPPrimaryfake=new TH2F("HistminsignalifAntiProtonPPrimaryfake",";Pt[GeV/c];log(dE_real)-log(dE_fit)",kPtBins,binsPtDummy,ny,-4,4);
423 flist->Add(fHistminsignalifAntiProtonPPrimaryfake);
424
425 fHistminsignalifPionPSecondary=new TH2F("HistminsignalifPionPSecondary",";Pt[GeV/c];log(dE_real)-log(dE_fit)",kPtBins,binsPtDummy,ny,-4,4);
426 flist->Add(fHistminsignalifPionPSecondary);
427 fHistminsignalifKaonPSecondary=new TH2F("HistminsignalifKaonPSecondary",";Pt[GeV/c];log(dE_real)-log(dE_fit)",kPtBins,binsPtDummy,ny,-4,4);
428 flist->Add(fHistminsignalifKaonPSecondary);
429 fHistminsignalifProtonPSecondaryWD=new TH2F("HistminsignalifProtonPSecondaryWD",";Pt[GeV/c];log(dE_real)-log(dE_fit)",kPtBins,binsPtDummy,ny,-4,4);
430 flist->Add(fHistminsignalifProtonPSecondaryWD);
431 fHistminsignalifProtonPSecondaryHI=new TH2F("HistminsignalifProtonPSecondaryHI",";Pt[GeV/c];log(dE_real)-log(dE_fit)",kPtBins,binsPtDummy,ny,-4,4);
432 flist->Add(fHistminsignalifProtonPSecondaryHI);
433 fHistminsignalifProtonPSecondaryRest=new TH2F("HistminsignalifProtonPSecondaryRest",";Pt[GeV/c];log(dE_real)-log(dE_fit)",kPtBins,binsPtDummy,ny,-4,4);
434 flist->Add(fHistminsignalifProtonPSecondaryRest);
435 fHistminsignalifProtonPSecondaryWDfake=new TH2F("HistminsignalifProtonPSecondaryWDfake",";Pt[GeV/c];log(dE_real)-log(dE_fit)",kPtBins,binsPtDummy,ny,-4,4);
436 flist->Add(fHistminsignalifProtonPSecondaryWDfake);
437 fHistminsignalifProtonPSecondaryHIfake=new TH2F("HistminsignalifProtonPSecondaryHIfake",";Pt[GeV/c];log(dE_real)-log(dE_fit)",kPtBins,binsPtDummy,ny,-4,4);
438 flist->Add(fHistminsignalifProtonPSecondaryHIfake);
439
440
441 fHistminsignalifAntiPionPSecondary=new TH2F("HistminsignalifAntiPionPSecondary",";Pt[GeV/c];log(dE_real)-log(dE_fit)",kPtBins,binsPtDummy,ny,-4,4);
442 flist->Add(fHistminsignalifAntiPionPSecondary);
443 fHistminsignalifAntiKaonPSecondary=new TH2F("HistminsignalifAntiKaonPSecondary",";Pt[GeV/c];log(dE_real)-log(dE_fit)",kPtBins,binsPtDummy,ny,-4,4);
444 flist->Add(fHistminsignalifAntiKaonPSecondary);
445 fHistminsignalifAntiProtonPSecondaryWD=new TH2F("HistminsignalifAntiProtonPSecondaryWD",";Pt[GeV/c];log(dE_real)-log(dE_fit)",kPtBins,binsPtDummy,ny,-4,4);
446 flist->Add(fHistminsignalifAntiProtonPSecondaryWD);
447 fHistminsignalifAntiProtonPSecondaryHI=new TH2F("HistminsignalifAntiProtonPSecondaryHI",";Pt[GeV/c];log(dE_real)-log(dE_fit)",kPtBins,binsPtDummy,ny,-4,4);
448 flist->Add(fHistminsignalifAntiProtonPSecondaryHI);
449 fHistminsignalifAntiProtonPSecondaryRest=new TH2F("HistminsignalifAntiProtonPSecondaryRest",";Pt[GeV/c];log(dE_real)-log(dE_fit)",kPtBins,binsPtDummy,ny,-4,4);
450 flist->Add(fHistminsignalifAntiProtonPSecondaryRest);
451 fHistminsignalifAntiProtonPSecondaryWDfake=new TH2F("HistminsignalifAntiProtonPSecondaryWDfake",";Pt[GeV/c];log(dE_real)-log(dE_fit)",kPtBins,binsPtDummy,ny,-4,4);
452 flist->Add(fHistminsignalifAntiProtonPSecondaryWDfake);
453 fHistminsignalifAntiProtonPSecondaryHIfake=new TH2F("HistminsignalifAntiProtonPSecondaryHIfake",";Pt[GeV/c];log(dE_real)-log(dE_fit)",kPtBins,binsPtDummy,ny,-4,4);
454 flist->Add(fHistminsignalifAntiProtonPSecondaryHIfake);
455
456 fHistminsignalifMuEPositiveP=new TH2F("HistminsignalifMuEPositiveP",";Pt[GeV/c];log(dE_real)-log(dE_fit)",kPtBins,binsPtDummy,ny,-4,4);
457 flist->Add(fHistminsignalifMuEPositiveP);
458 fHistminsignalifMuENegativeP=new TH2F("HistminsignalifMuENegativeP",";Pt[GeV/c];log(dE_real)-log(dE_fit)",kPtBins,binsPtDummy,ny,-4,4);
459 flist->Add(fHistminsignalifMuENegativeP);
460
461
462 fHistminsignalifPionPrimaryfake=new TH2F("HistminsignalifPionPrimaryfake",";Pt[GeV/c];log(dE_real)-log(dE_fit)",kPtBins,binsPtDummy,ny,-4,4);
463 flist->Add(fHistminsignalifPionPrimaryfake);
464 fHistminsignalifKaonPrimaryfake=new TH2F("HistminsignalifKaonPrimaryfake",";Pt[GeV/c];log(dE_real)-log(dE_fit)",kPtBins,binsPtDummy,ny,-4,4);
465 flist->Add(fHistminsignalifKaonPrimaryfake);
466
467 fHistminsignalifAntiPionPrimaryfake=new TH2F("HistminsignalifAntiPionPrimaryfake",";Pt[GeV/c];log(dE_real)-log(dE_fit)",kPtBins,binsPtDummy,ny,-4,4);
468 flist->Add(fHistminsignalifAntiPionPrimaryfake);
469 fHistminsignalifAntiKaonPrimaryfake=new TH2F("HistminsignalifAntiKaonPrimaryfake",";Pt[GeV/c];log(dE_real)-log(dE_fit)",kPtBins,binsPtDummy,ny,-4,4);
470 flist->Add(fHistminsignalifAntiKaonPrimaryfake);
471
472
473 fHistminsignalifPionSecondaryfake=new TH2F("HistminsignalifPionSecondaryfake",";Pt[GeV/c];log(dE_real)-log(dE_fit)",kPtBins,binsPtDummy,ny,-4,4);
474 flist->Add(fHistminsignalifPionSecondaryfake);
475 fHistminsignalifKaonSecondaryfake=new TH2F("HistminsignalifKaonSecondaryfake",";Pt[GeV/c];log(dE_real)-log(dE_fit)",kPtBins,binsPtDummy,ny,-4,4);
476 flist->Add(fHistminsignalifKaonSecondaryfake);
477
478 fHistminsignalifAntiPionSecondaryfake=new TH2F("HistminsignalifAntiPionSecondaryfake",";Pt[GeV/c];log(dE_real)-log(dE_fit)",kPtBins,binsPtDummy,ny,-4,4);
479 flist->Add(fHistminsignalifAntiPionSecondaryfake);
480 fHistminsignalifAntiKaonSecondaryfake=new TH2F("HistminsignalifAntiKaonSecondaryfake",";Pt[GeV/c];log(dE_real)-log(dE_fit)",kPtBins,binsPtDummy,ny,-4,4);
481 flist->Add(fHistminsignalifAntiKaonSecondaryfake);
482
483
484 fHistminsignalifPionPMCPrimary=new TH1F("HistminsignalifPionPMCPrimary",";Pt[GeV/c]",kPtBins,binsPtDummy);
485 flist->Add(fHistminsignalifPionPMCPrimary);
486 fHistminsignalifKaonPMCPrimary=new TH1F("HistminsignalifKaonPMCPrimary",";Pt[GeV/c]",kPtBins,binsPtDummy);
487 flist->Add(fHistminsignalifKaonPMCPrimary);
488 fHistminsignalifProtonPMCPrimary=new TH1F("HistminsignalifProtonPMCPrimary",";Pt[GeV/c]",kPtBins,binsPtDummy);
489 flist->Add(fHistminsignalifProtonPMCPrimary);
490
491 fHistminsignalifAntiPionPMCPrimary=new TH1F("HistminsignalifAntiPionPMCPrimary",";Pt[GeV/c]",kPtBins,binsPtDummy);
492 flist->Add(fHistminsignalifAntiPionPMCPrimary);
493 fHistminsignalifAntiKaonPMCPrimary=new TH1F("HistminsignalifAntiKaonPMCPrimary",";Pt[GeV/c]",kPtBins,binsPtDummy);
494 flist->Add(fHistminsignalifAntiKaonPMCPrimary);
495 fHistminsignalifAntiProtonPMCPrimary=new TH1F("HistminsignalifAntiProtonPMCPrimary",";Pt[GeV/c]",kPtBins,binsPtDummy);
496 flist->Add(fHistminsignalifAntiProtonPMCPrimary);
497
498
499 fHistminsignalifPionPMCPrimaryBeforeEventCuts=new TH1F("HistminsignalifPionPMCPrimaryBeforeEventCuts",";Pt[GeV/c]",kPtBins,binsPtDummy);
500 flist->Add(fHistminsignalifPionPMCPrimaryBeforeEventCuts);
501 fHistminsignalifKaonPMCPrimaryBeforeEventCuts=new TH1F("HistminsignalifKaonPMCPrimaryBeforeEventCuts",";Pt[GeV/c]",kPtBins,binsPtDummy);
502 flist->Add(fHistminsignalifKaonPMCPrimaryBeforeEventCuts);
503 fHistminsignalifProtonPMCPrimaryBeforeEventCuts=new TH1F("HistminsignalifProtonPMCPrimaryBeforeEventCuts",";Pt[GeV/c]",kPtBins,binsPtDummy);
504 flist->Add(fHistminsignalifProtonPMCPrimaryBeforeEventCuts);
505
506 fHistminsignalifAntiPionPMCPrimaryBeforeEventCuts=new TH1F("HistminsignalifAntiPionPMCPrimaryBeforeEventCuts",";Pt[GeV/c]",kPtBins,binsPtDummy);
507 flist->Add(fHistminsignalifAntiPionPMCPrimaryBeforeEventCuts);
508 fHistminsignalifAntiKaonPMCPrimaryBeforeEventCuts=new TH1F("HistminsignalifAntiKaonPMCPrimaryBeforeEventCuts",";Pt[GeV/c]",kPtBins,binsPtDummy);
509 flist->Add(fHistminsignalifAntiKaonPMCPrimaryBeforeEventCuts);
510 fHistminsignalifAntiProtonPMCPrimaryBeforeEventCuts=new TH1F("HistminsignalifAntiProtonPMCPrimaryBeforeEventCuts",";Pt[GeV/c]",kPtBins,binsPtDummy);
511 flist->Add(fHistminsignalifAntiProtonPMCPrimaryBeforeEventCuts);
512
513 fHistminsignalifPionPMCPrimaryBeforeEventCutswithgoodZvertex=new TH1F("HistminsignalifPionPMCPrimaryBeforeEventCutswithgoodZvertex",";Pt[GeV/c]",kPtBins,binsPtDummy);
514 flist->Add(fHistminsignalifPionPMCPrimaryBeforeEventCutswithgoodZvertex);
515 fHistminsignalifKaonPMCPrimaryBeforeEventCutswithgoodZvertex=new TH1F("HistminsignalifKaonPMCPrimaryBeforeEventCutswithgoodZvertex",";Pt[GeV/c]",kPtBins,binsPtDummy);
516 flist->Add(fHistminsignalifKaonPMCPrimaryBeforeEventCutswithgoodZvertex);
517 fHistminsignalifProtonPMCPrimaryBeforeEventCutswithgoodZvertex=new TH1F("HistminsignalifProtonPMCPrimaryBeforeEventCutswithgoodZvertex",";Pt[GeV/c]",kPtBins,binsPtDummy);
518 flist->Add(fHistminsignalifProtonPMCPrimaryBeforeEventCutswithgoodZvertex);
519
520 fHistminsignalifAntiPionPMCPrimaryBeforeEventCutswithgoodZvertex=new TH1F("HistminsignalifAntiPionPMCPrimaryBeforeEventCutswithgoodZvertex",";Pt[GeV/c]",kPtBins,binsPtDummy);
521 flist->Add(fHistminsignalifAntiPionPMCPrimaryBeforeEventCutswithgoodZvertex);
522 fHistminsignalifAntiKaonPMCPrimaryBeforeEventCutswithgoodZvertex=new TH1F("HistminsignalifAntiKaonPMCPrimaryBeforeEventCutswithgoodZvertex",";Pt[GeV/c]",kPtBins,binsPtDummy);
523 flist->Add(fHistminsignalifAntiKaonPMCPrimaryBeforeEventCutswithgoodZvertex);
524 fHistminsignalifAntiProtonPMCPrimaryBeforeEventCutswithgoodZvertex=new TH1F("HistminsignalifAntiProtonPMCPrimaryBeforeEventCutswithgoodZvertex",";Pt[GeV/c]",kPtBins,binsPtDummy);
525 flist->Add(fHistminsignalifAntiProtonPMCPrimaryBeforeEventCutswithgoodZvertex);
526
527 fHistminsignalifPionPMCPrimaryAfterEventCutsBeforeVertexZ=new TH1F("HistminsignalifPionPMCPrimaryAfterEventCutsBeforeVertexZ",";Pt[GeV/c]",kPtBins,binsPtDummy);
528 flist->Add(fHistminsignalifPionPMCPrimaryAfterEventCutsBeforeVertexZ);
529 fHistminsignalifKaonPMCPrimaryAfterEventCutsBeforeVertexZ=new TH1F("HistminsignalifKaonPMCPrimaryAfterEventCutsBeforeVertexZ",";Pt[GeV/c]",kPtBins,binsPtDummy);
530 flist->Add(fHistminsignalifKaonPMCPrimaryAfterEventCutsBeforeVertexZ);
531 fHistminsignalifProtonPMCPrimaryAfterEventCutsBeforeVertexZ=new TH1F("HistminsignalifProtonPMCPrimaryAfterEventCutsBeforeVertexZ",";Pt[GeV/c]",kPtBins,binsPtDummy);
532 flist->Add(fHistminsignalifProtonPMCPrimaryAfterEventCutsBeforeVertexZ);
533
534 fHistminsignalifAntiPionPMCPrimaryAfterEventCutsBeforeVertexZ=new TH1F("HistminsignalifAntiPionPMCPrimaryAfterEventCutsBeforeVertexZ",";Pt[GeV/c]",kPtBins,binsPtDummy);
535 flist->Add(fHistminsignalifAntiPionPMCPrimaryAfterEventCutsBeforeVertexZ);
536 fHistminsignalifAntiKaonPMCPrimaryAfterEventCutsBeforeVertexZ=new TH1F("HistminsignalifAntiKaonPMCPrimaryAfterEventCutsBeforeVertexZ",";Pt[GeV/c]",kPtBins,binsPtDummy);
537 flist->Add(fHistminsignalifAntiKaonPMCPrimaryAfterEventCutsBeforeVertexZ);
538 fHistminsignalifAntiProtonPMCPrimaryAfterEventCutsBeforeVertexZ=new TH1F("HistminsignalifAntiProtonPMCPrimaryAfterEventCutsBeforeVertexZ",";Pt[GeV/c]",kPtBins,binsPtDummy);
539 flist->Add(fHistminsignalifAntiProtonPMCPrimaryAfterEventCutsBeforeVertexZ);
540
541
542
543 fDCAXYZforcleanPionsMCPrimary=new TH3F("fDCAXYZforcleanPionsMCPrimary",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy);
544 flist->Add(fDCAXYZforcleanPionsMCPrimary);
545 fDCAXYZforcleanAntiPionsMCPrimary=new TH3F("fDCAXYZforcleanAntiPionsMCPrimary",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy);
546 flist->Add(fDCAXYZforcleanAntiPionsMCPrimary);
547 fDCAXYZforcleanProtonsMCPrimary=new TH3F("fDCAXYZforcleanProtonsMCPrimary",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy);
548 flist->Add(fDCAXYZforcleanProtonsMCPrimary);
549 fDCAXYZforcleanAntiProtonsMCPrimary=new TH3F("fDCAXYZforcleanAntiProtonsMCPrimary",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy);
550 flist->Add(fDCAXYZforcleanAntiProtonsMCPrimary);
551
552 fDCAXYZforcleanPionsWD=new TH3F("fDCAXYZforcleanPionsWD",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy);
553 flist->Add(fDCAXYZforcleanPionsWD);
554 fDCAXYZforcleanAntiPionsWD=new TH3F("fDCAXYZforcleanAntiPionsWD",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy);
555 flist->Add(fDCAXYZforcleanAntiPionsWD);
556 //Secondrary Protons weak deacy
557
558 fDCAXYZforcleanProtonsWD=new TH3F("fDCAXYZforcleanProtonsWD",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy);
559 flist->Add(fDCAXYZforcleanProtonsWD);
560 fDCAXYZforcleanAntiProtonsWD=new TH3F("fDCAXYZforcleanAntiProtonsWD",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy);
561 flist->Add(fDCAXYZforcleanAntiProtonsWD);
562
563 fDCAXYZforcleanPionsHI=new TH3F("fDCAXYZforcleanPionsHI",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy);
564 flist->Add(fDCAXYZforcleanPionsHI);
565 fDCAXYZforcleanAntiPionsHI=new TH3F("fDCAXYZforcleanAntiPionsHI",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy);
566 flist->Add(fDCAXYZforcleanAntiPionsHI);
567 //Secondrary Protons Hadronic
568 fDCAXYZforcleanProtonsHI=new TH3F("fDCAXYZforcleanProtonsHI",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy);
569 flist->Add(fDCAXYZforcleanProtonsHI);
570 fDCAXYZforcleanAntiProtonsHI=new TH3F("fDCAXYZforcleanAntiProtonsHI",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy);
571 flist->Add(fDCAXYZforcleanAntiProtonsHI);
572 //Secondrary Pions mu el
1ea543bb 573 fDCAXYZforcleanPionsMEPrimary=new TH3F("fDCAXYZforcleanPionsMEPrimary",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy);
574 flist->Add(fDCAXYZforcleanPionsMEPrimary);
575 fDCAXYZforcleanAntiPionsMEPrimary=new TH3F("fDCAXYZforcleanAntiPionsMEPrimary",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy);
576 flist->Add(fDCAXYZforcleanAntiPionsMEPrimary);
577 fDCAXYZforcleanPionsMESecondary=new TH3F("fDCAXYZforcleanPionsMESecondary",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy);
578 flist->Add(fDCAXYZforcleanPionsMESecondary);
579 fDCAXYZforcleanAntiPionsMESecondary=new TH3F("fDCAXYZforcleanAntiPionsMESecondary",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy);
580 flist->Add(fDCAXYZforcleanAntiPionsMESecondary);
3a448a01 581
582 fDCAXYZforcleanPionsR=new TH3F("fDCAXYZforcleanPionsR",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy);
583 flist->Add(fDCAXYZforcleanPionsR);
584 fDCAXYZforcleanAntiPionsR=new TH3F("fDCAXYZforcleanAntiPionsR",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy);
585 flist->Add(fDCAXYZforcleanAntiPionsR);
586 //Secondrary Protons Hadronic
587 fDCAXYZforcleanProtonsR=new TH3F("fDCAXYZforcleanProtonsR",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy);
588 flist->Add(fDCAXYZforcleanProtonsR);
589 fDCAXYZforcleanAntiProtonsR=new TH3F("fDCAXYZforcleanAntiProtonsR",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy);
590 flist->Add(fDCAXYZforcleanAntiProtonsR);
591
592
593
594 fDCAXYZOpenforcleanPionsMCPrimary=new TH3F("fDCAXYZOpenforcleanPionsMCPrimary",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy);
595 flist->Add(fDCAXYZOpenforcleanPionsMCPrimary);
596 fDCAXYZOpenforcleanAntiPionsMCPrimary=new TH3F("fDCAXYZOpenforcleanAntiPionsMCPrimary",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy);
597 flist->Add(fDCAXYZOpenforcleanAntiPionsMCPrimary);
598 fDCAXYZOpenforcleanProtonsMCPrimary=new TH3F("fDCAXYZOpenforcleanProtonsMCPrimary",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy);
599 flist->Add(fDCAXYZOpenforcleanProtonsMCPrimary);
600 fDCAXYZOpenforcleanAntiProtonsMCPrimary=new TH3F("fDCAXYZOpenforcleanAntiProtonsMCPrimary",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy);
601 flist->Add(fDCAXYZOpenforcleanAntiProtonsMCPrimary);
602
603 fDCAXYZOpenforcleanPionsWD=new TH3F("fDCAXYZOpenforcleanPionsWD",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy);
604 flist->Add(fDCAXYZOpenforcleanPionsWD);
605 fDCAXYZOpenforcleanAntiPionsWD=new TH3F("fDCAXYZOpenforcleanAntiPionsWD",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy);
606 flist->Add(fDCAXYZOpenforcleanAntiPionsWD);
607 //Secondrary Protons weak deacy
608
609 fDCAXYZOpenforcleanProtonsWD=new TH3F("fDCAXYZOpenforcleanProtonsWD",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy);
610 flist->Add(fDCAXYZOpenforcleanProtonsWD);
611 fDCAXYZOpenforcleanAntiProtonsWD=new TH3F("fDCAXYZOpenforcleanAntiProtonsWD",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy);
612 flist->Add(fDCAXYZOpenforcleanAntiProtonsWD);
613
614 fDCAXYZOpenforcleanPionsHI=new TH3F("fDCAXYZOpenforcleanPionsHI",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy);
615 flist->Add(fDCAXYZOpenforcleanPionsHI);
616 fDCAXYZOpenforcleanAntiPionsHI=new TH3F("fDCAXYZOpenforcleanAntiPionsHI",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy);
617 flist->Add(fDCAXYZOpenforcleanAntiPionsHI);
618 //Secondrary Protons Hadronic
619 fDCAXYZOpenforcleanProtonsHI=new TH3F("fDCAXYZOpenforcleanProtonsHI",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy);
620 flist->Add(fDCAXYZOpenforcleanProtonsHI);
621 fDCAXYZOpenforcleanAntiProtonsHI=new TH3F("fDCAXYZOpenforcleanAntiProtonsHI",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy);
622 flist->Add(fDCAXYZOpenforcleanAntiProtonsHI);
623 //Secondrary Pions mu el
1ea543bb 624
625 fDCAXYZOpenforcleanPionsMEPrimary=new TH3F("fDCAXYZOpenforcleanPionsMEPrimary",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy);
626 flist->Add(fDCAXYZOpenforcleanPionsMEPrimary);
627 fDCAXYZOpenforcleanAntiPionsMEPrimary=new TH3F("fDCAXYZOpenforcleanAntiPionsMEPrimary",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy);
628 flist->Add(fDCAXYZOpenforcleanAntiPionsMEPrimary);
629 fDCAXYZOpenforcleanPionsMESecondary=new TH3F("fDCAXYZOpenforcleanPionsMESecondary",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy);
630 flist->Add(fDCAXYZOpenforcleanPionsMESecondary);
631 fDCAXYZOpenforcleanAntiPionsMESecondary=new TH3F("fDCAXYZOpenforcleanAntiPionsMESecondary",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy);
632 flist->Add(fDCAXYZOpenforcleanAntiPionsMESecondary);
3a448a01 633
634 fDCAXYZOpenforcleanPionsR=new TH3F("fDCAXYZOpenforcleanPionsR",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy);
635 flist->Add(fDCAXYZOpenforcleanPionsR);
636 fDCAXYZOpenforcleanAntiPionsR=new TH3F("fDCAXYZOpenforcleanAntiPionsR",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy);
637 flist->Add(fDCAXYZOpenforcleanAntiPionsR);
638 //Secondrary Protons Hadronic
639 fDCAXYZOpenforcleanProtonsR=new TH3F("fDCAXYZOpenforcleanProtonsR",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy);
640 flist->Add(fDCAXYZOpenforcleanProtonsR);
641 fDCAXYZOpenforcleanAntiProtonsR=new TH3F("fDCAXYZOpenforcleanAntiProtonsR",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy);
642 flist->Add(fDCAXYZOpenforcleanAntiProtonsR);
643
644
645
646 fElectronsource=new TH2F("fElectronsource","electrons;Pt [GeV/c];Process",kPtBins,binsPtDummy, kMaxMCProcess,0,kMaxMCProcess);
647 flist->Add(fElectronsource);
648 fAntiElectronsource=new TH2F("fAntiElectronsource","positrons;Pt [GeV/c];Process",kPtBins,binsPtDummy, kMaxMCProcess,0,kMaxMCProcess);
649 flist->Add(fAntiElectronsource);
650 fMuonsource=new TH2F("fMuonsource","electrons;Pt [GeV/c];Process",kPtBins,binsPtDummy, kMaxMCProcess,0,kMaxMCProcess);
651 flist->Add(fMuonsource);
652 fAntiMuonsource=new TH2F("fAntiMuonsource","positrons;Pt [GeV/c];Process",kPtBins,binsPtDummy, kMaxMCProcess,0,kMaxMCProcess);
653 flist->Add(fAntiMuonsource);
654
655 fPrimaryElectronsMother=new TH1F("fPrimaryElectronsMother",";pdg code",4990,10.5,5000.5);
656 flist->Add(fPrimaryElectronsMother);
657
4637dfa3 658 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};
659 Double_t cutlevel[10]={0.5,1.5,2.5,3.5,4.5,5.5,6.5,7.5,8.5,9.5};
3a448a01 660
4637dfa3 661 fParticlesCutmonitoring=new TH3F("fParticlesCutmonitoring",";particle;cut;Pt [GeV/c]",12,type,9,cutlevel,kPtBins,binsPtDummy);
662
663 fParticlesCutmonitoring->GetXaxis()->SetBinLabel(1,"pion");
664 fParticlesCutmonitoring->GetXaxis()->SetBinLabel(2,"kaon");
665 fParticlesCutmonitoring->GetXaxis()->SetBinLabel(3,"proton");
666 fParticlesCutmonitoring->GetXaxis()->SetBinLabel(4,"antipion");
667 fParticlesCutmonitoring->GetXaxis()->SetBinLabel(5,"antikaon");
668 fParticlesCutmonitoring->GetXaxis()->SetBinLabel(6,"antiproton");
669 fParticlesCutmonitoring->GetXaxis()->SetBinLabel(7,"pionfake");
670 fParticlesCutmonitoring->GetXaxis()->SetBinLabel(8,"kaonfake");
671 fParticlesCutmonitoring->GetXaxis()->SetBinLabel(9,"protonfake");
672 fParticlesCutmonitoring->GetXaxis()->SetBinLabel(10,"antipionfake");
673 fParticlesCutmonitoring->GetXaxis()->SetBinLabel(11,"antikaonfake");
674 fParticlesCutmonitoring->GetXaxis()->SetBinLabel(12,"antiprotonfake");
675
676 fParticlesCutmonitoring->GetYaxis()->SetBinLabel(1,"TPCin");
677 fParticlesCutmonitoring->GetYaxis()->SetBinLabel(2,"TPCrefit");
678 fParticlesCutmonitoring->GetYaxis()->SetBinLabel(3,"nTPCclu");
679 fParticlesCutmonitoring->GetYaxis()->SetBinLabel(4,"chi2");
680 fParticlesCutmonitoring->GetYaxis()->SetBinLabel(5,"ITSrefit");
681 fParticlesCutmonitoring->GetYaxis()->SetBinLabel(6,"SPDany");
682 fParticlesCutmonitoring->GetYaxis()->SetBinLabel(7,"standard");
683 fParticlesCutmonitoring->GetYaxis()->SetBinLabel(8,"ITSpid");
684 fParticlesCutmonitoring->GetYaxis()->SetBinLabel(9,"DCA");
685 flist->Add(fParticlesCutmonitoring);
686
687 fVertexshift=new TH3F("fVertexshift",";#delta_{x};#delta_{y};#delta_{z}",50,-0.06,0.06,50,-0.06,0.06,50,-2,2);
688 flist->Add(fVertexshift);
689
690 Double_t deltapttpc[41];
691 Double_t deltaptall[41];
692 for(int i=0;i<41;i++)
693 {
694 deltapttpc[i]=-0.8+i*(1.6/40);
695 deltaptall[i]=-0.2+i*(0.4/40);
696 }
697 fPtESDminusPtMCvPtESDafterallcuts= new TH3F("fPtESDminusPtMCvPtESDafterallcuts",";#delta_{PtESD-PtMC};PtESD;type",40,deltaptall,kPtBins,binsPtDummy,12,type);
698 flist->Add(fPtESDminusPtMCvPtESDafterallcuts);
699 fPtESDminusPtMCvPtESDafterallcuts->GetZaxis()->SetBinLabel(1,"pion");
700 fPtESDminusPtMCvPtESDafterallcuts->GetZaxis()->SetBinLabel(2,"kaon");
701 fPtESDminusPtMCvPtESDafterallcuts->GetZaxis()->SetBinLabel(3,"proton");
702 fPtESDminusPtMCvPtESDafterallcuts->GetZaxis()->SetBinLabel(4,"antipion");
703 fPtESDminusPtMCvPtESDafterallcuts->GetZaxis()->SetBinLabel(5,"antikaon");
704 fPtESDminusPtMCvPtESDafterallcuts->GetZaxis()->SetBinLabel(6,"antiproton");
705 fPtESDminusPtMCvPtESDafterallcuts->GetZaxis()->SetBinLabel(7,"pionfake");
706 fPtESDminusPtMCvPtESDafterallcuts->GetZaxis()->SetBinLabel(8,"kaonfake");
707 fPtESDminusPtMCvPtESDafterallcuts->GetZaxis()->SetBinLabel(9,"protonfake");
708 fPtESDminusPtMCvPtESDafterallcuts->GetZaxis()->SetBinLabel(10,"antipionfake");
709 fPtESDminusPtMCvPtESDafterallcuts->GetZaxis()->SetBinLabel(11,"antikaonfake");
710 fPtESDminusPtMCvPtESDafterallcuts->GetZaxis()->SetBinLabel(12,"antiprotonfake");
711
712 fPtESDminusPtMCvPtESDafterTPCcuts= new TH3F("fPtESDminusPtMCvPtESDafterTPCcuts",";#delta_{PtESD-PtMC};PtESD;type",40,deltapttpc,kPtBins,binsPtDummy,12,type);
713 flist->Add(fPtESDminusPtMCvPtESDafterTPCcuts);
714 fPtESDminusPtMCvPtESDafterTPCcuts->GetZaxis()->SetBinLabel(1,"pion");
715 fPtESDminusPtMCvPtESDafterTPCcuts->GetZaxis()->SetBinLabel(2,"kaon");
716 fPtESDminusPtMCvPtESDafterTPCcuts->GetZaxis()->SetBinLabel(3,"proton");
717 fPtESDminusPtMCvPtESDafterTPCcuts->GetZaxis()->SetBinLabel(4,"antipion");
718 fPtESDminusPtMCvPtESDafterTPCcuts->GetZaxis()->SetBinLabel(5,"antikaon");
719 fPtESDminusPtMCvPtESDafterTPCcuts->GetZaxis()->SetBinLabel(6,"antiproton");
720 fPtESDminusPtMCvPtESDafterTPCcuts->GetZaxis()->SetBinLabel(7,"pionfake");
721 fPtESDminusPtMCvPtESDafterTPCcuts->GetZaxis()->SetBinLabel(8,"kaonfake");
722 fPtESDminusPtMCvPtESDafterTPCcuts->GetZaxis()->SetBinLabel(9,"protonfake");
723 fPtESDminusPtMCvPtESDafterTPCcuts->GetZaxis()->SetBinLabel(10,"antipionfake");
724 fPtESDminusPtMCvPtESDafterTPCcuts->GetZaxis()->SetBinLabel(11,"antikaonfake");
725 fPtESDminusPtMCvPtESDafterTPCcuts->GetZaxis()->SetBinLabel(12,"antiprotonfake");
2b52537d 726
727
728 fMulESDMulMCVz=new TH3F("fMulESDMulMCVz",";NtracksESD;NparticlesMC;Vrt_z ",50,0,50,100,0,100,20,-10,10);
729 flist->Add(fMulESDMulMCVz);
3a448a01 730 PostData(1, flist);
731 Printf("end of CreateOutputObjects with MC");
732}
733//________________________________________________________________________
734void AliAnalysisChargedHadronSpectraITSTruncatedMeanTask::LocalInit()
735{
736 //LocalInit
737 Printf("end of LocalInit");
738}
739
740//________________________________________________________________________
3a448a01 741void AliAnalysisChargedHadronSpectraITSTruncatedMeanTask::UserExec(Option_t *)
742{
4637dfa3 743 //UserExec
744 Bool_t isphysevent=0;
745 Bool_t isgoodvertex=0;
746 Bool_t isvxerteinZ=0;
747
3a448a01 748 fESD = dynamic_cast<AliESDEvent*> (InputEvent());
749 if (!fESD)
750 {
751 Printf("ERROR: fESD not available");
752 return;
753 }
1ea543bb 754
4637dfa3 755 Float_t refmultiplicity=fCutsMul->CountAcceptedTracks(fESD);
1ea543bb 756 if(fLowMultiplicity>-1)
757 {
758 if(refmultiplicity<fLowMultiplicity)
759 return;
760 }
761 if(fUpMultiplicity>-1)
762 {
763 if(refmultiplicity>fUpMultiplicity)
764 return;
765 }
3a448a01 766 AliStack* stack=0x0;
4637dfa3 767 Double_t mcXvertex=0.0;
768 Double_t mcYvertex=0.0;
3a448a01 769 Double_t mcZvertex=0.0;
4637dfa3 770
3a448a01 771 if(fMC)
772 {
773 AliMCEvent* mcEvent = (AliMCEvent*) MCEvent();
2b52537d 774 //Printf("MC particles: %d", mcEvent->GetNumberOfTracks());
3a448a01 775 stack = mcEvent->Stack();
4637dfa3 776 mcXvertex=mcEvent->GetPrimaryVertex()->GetX();
777 mcYvertex=mcEvent->GetPrimaryVertex()->GetY();
3a448a01 778 mcZvertex=mcEvent->GetPrimaryVertex()->GetZ();
779 }
780
4637dfa3 781
782 fHistStats->Fill(0);
783 //Event selection
784 //if( ((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected()==0)
785 UInt_t isSelected = 0;
786 if(((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler())))
787 isSelected=((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected();
2b52537d 788 //Printf("Mask_selection %u %u", isSelected,AliVEvent::kMB);
4637dfa3 789 if(!(isSelected&AliVEvent::kMB))
790 {
791 isphysevent=0;
2b52537d 792 // Printf("No phys event.........\n");
4637dfa3 793 }
794 else
795 {
796 isphysevent=1;
797 if(!fHIsettings)
798 fHistStats->Fill(1);
799 }
800 if(isphysevent&&fHIsettings)
801 {
802 AliCentrality *centrality = fESD->GetCentrality();
803 if(!(fLowCentrality<0.0)&&fUpCentrality>0.0)
804 {
805 if(!centrality->IsEventInCentralityClass(fLowCentrality,fUpCentrality,"V0M"))
806 return;
807 else
808 fHistStats->Fill(1);
809 }
810 }
811
812 //Good vertex
813 const AliESDVertex *vertex = 0x0;
814 if(isphysevent)
815 {
816 vertex = fESD->GetPrimaryVertexTracks();
817 if(vertex->GetNContributors()<1)
818 {
819 // SPD vertex
820 vertex = fESD->GetPrimaryVertexSPD();
821 if(vertex->GetNContributors()<1)
822 {
2b52537d 823 //Printf("No good Vertex.........\n");
4637dfa3 824 isgoodvertex=0;
825 }
826 else
827 {
828 isgoodvertex=1;
829 fHistStats->Fill(2);
830 fHistZVertexBeforeCut->Fill(vertex ->GetZ());
831 fHistXYVertexBeforeCut->Fill(vertex ->GetX(),vertex ->GetY());
832 }
833 }
834 else
835 {
836 isgoodvertex=1;
837 fHistStats->Fill(2);
838 fHistZVertexBeforeCut->Fill(vertex ->GetZ());
839 fHistXYVertexBeforeCut->Fill(vertex ->GetX(),vertex ->GetY());
840 }
841 if(isgoodvertex)
842 {
843 if(TMath::Abs(vertex ->GetZ())>10.0)
844 {
2b52537d 845 //Printf("No good Z of Vertex.........\n");
4637dfa3 846 isvxerteinZ=0;
847 }
848 else
849 isvxerteinZ=1;
850 }
851 }
852 if(fdovertexrescuts&&fMC)
853 {
854 cout<<TMath::Abs(vertex->GetX()-mcXvertex)<<" "<<TMath::Abs(vertex->GetY()-mcYvertex)<<" "<<TMath::Abs(vertex->GetZ()-mcZvertex)<<endl;
855 if(TMath::Abs(vertex->GetX()-mcXvertex)>0.015||TMath::Abs(vertex->GetY()-mcYvertex)>0.015||TMath::Abs(vertex->GetZ()-mcZvertex)>0.15)
856 isvxerteinZ=0;
857 }
2b52537d 858 Int_t fMCmult=0;
3a448a01 859 if(stack)//Looping over MC information of all events
860 {
2b52537d 861 Float_t minpt=0.0;
862 Float_t maxpt=0.0;
863 Float_t mineta=0.0;
864 Float_t maxeta=0.0;
865
866 fCutsMul->GetPtRange(minpt,maxpt);
867 fCutsMul->GetEtaRange(mineta,maxeta);
3a448a01 868 fHistStats->Fill(8);
869 if(TMath::Abs(mcZvertex)<10.0)
870 fHistStats->Fill(9);
871 for (int imc=0;imc<stack->GetNtrack();imc++)
872 {
873 if(!(stack->IsPhysicalPrimary(imc)))
874 continue;
875 TParticle *particleMC = stack->Particle(imc);
876 if(!particleMC)
877 continue;
878 Int_t pdgcodeMC = particleMC->GetPdgCode();
2b52537d 879 if(!(pdgcodeMC==211||pdgcodeMC==-211||pdgcodeMC==321||pdgcodeMC==-321||pdgcodeMC==2212||pdgcodeMC==-2212))
880 continue;
881 if(particleMC->Pt()>minpt&&particleMC->Pt()<maxpt&&particleMC->Eta()>mineta&&particleMC->Eta()<maxeta)
882 fMCmult++;
3a448a01 883 if (TMath::Abs(particleMC->Y())>fYCut)
884 continue;
885 if (particleMC->Pt()>2.0)
4637dfa3 886 continue;
887 //Printf("%d aa",imc);
2b52537d 888
3a448a01 889 if(pdgcodeMC==211)
890 fHistminsignalifPionPMCPrimaryBeforeEventCuts->Fill(particleMC->Pt());
891 if(pdgcodeMC==-211)
892 fHistminsignalifAntiPionPMCPrimaryBeforeEventCuts->Fill(particleMC->Pt());
893 if(pdgcodeMC==321)
894 fHistminsignalifKaonPMCPrimaryBeforeEventCuts->Fill(particleMC->Pt());
895 if(pdgcodeMC==-321)
896 fHistminsignalifAntiKaonPMCPrimaryBeforeEventCuts->Fill(particleMC->Pt());
897 if(pdgcodeMC==2212)
898 fHistminsignalifProtonPMCPrimaryBeforeEventCuts->Fill(particleMC->Pt());
899 if(pdgcodeMC==-2212)
900 fHistminsignalifAntiProtonPMCPrimaryBeforeEventCuts->Fill(particleMC->Pt());
901
4637dfa3 902 if(TMath::Abs(mcZvertex)<10.0)
903 {
904 if(pdgcodeMC==211)
905 fHistminsignalifPionPMCPrimaryBeforeEventCutswithgoodZvertex->Fill(particleMC->Pt());
906 if(pdgcodeMC==-211)
907 fHistminsignalifAntiPionPMCPrimaryBeforeEventCutswithgoodZvertex->Fill(particleMC->Pt());
908 if(pdgcodeMC==321)
909 fHistminsignalifKaonPMCPrimaryBeforeEventCutswithgoodZvertex->Fill(particleMC->Pt());
910 if(pdgcodeMC==-321)
911 fHistminsignalifAntiKaonPMCPrimaryBeforeEventCutswithgoodZvertex->Fill(particleMC->Pt());
912 if(pdgcodeMC==2212)
913 fHistminsignalifProtonPMCPrimaryBeforeEventCutswithgoodZvertex->Fill(particleMC->Pt());
914 if(pdgcodeMC==-2212)
915 fHistminsignalifAntiProtonPMCPrimaryBeforeEventCutswithgoodZvertex->Fill(particleMC->Pt());
916 }
917 if(!isphysevent)
3a448a01 918 continue;
4637dfa3 919 if(!isgoodvertex)
920 continue;
3a448a01 921 if(pdgcodeMC==211)
4637dfa3 922 fHistminsignalifPionPMCPrimaryAfterEventCutsBeforeVertexZ->Fill(particleMC->Pt());
3a448a01 923 if(pdgcodeMC==-211)
4637dfa3 924 fHistminsignalifAntiPionPMCPrimaryAfterEventCutsBeforeVertexZ->Fill(particleMC->Pt());
3a448a01 925 if(pdgcodeMC==321)
4637dfa3 926 fHistminsignalifKaonPMCPrimaryAfterEventCutsBeforeVertexZ->Fill(particleMC->Pt());
3a448a01 927 if(pdgcodeMC==-321)
4637dfa3 928 fHistminsignalifAntiKaonPMCPrimaryAfterEventCutsBeforeVertexZ->Fill(particleMC->Pt());
3a448a01 929 if(pdgcodeMC==2212)
4637dfa3 930 fHistminsignalifProtonPMCPrimaryAfterEventCutsBeforeVertexZ->Fill(particleMC->Pt());
3a448a01 931 if(pdgcodeMC==-2212)
4637dfa3 932 fHistminsignalifAntiProtonPMCPrimaryAfterEventCutsBeforeVertexZ->Fill(particleMC->Pt());
933 if(!isvxerteinZ)
3a448a01 934 continue;
935 if(pdgcodeMC==211)
4637dfa3 936 {
937 fHistminsignalifPionPMCPrimary->Fill(particleMC->Pt());
938 }
939 if(pdgcodeMC==-211)
940 {
941 fHistminsignalifAntiPionPMCPrimary->Fill(particleMC->Pt());
942 }
3a448a01 943 if(pdgcodeMC==321)
4637dfa3 944 {
945 fHistminsignalifKaonPMCPrimary->Fill(particleMC->Pt());
946 }
3a448a01 947 if(pdgcodeMC==-321)
4637dfa3 948 {
949 fHistminsignalifAntiKaonPMCPrimary->Fill(particleMC->Pt());
950 }
3a448a01 951 if(pdgcodeMC==2212)
4637dfa3 952 {
953 fHistminsignalifProtonPMCPrimary->Fill(particleMC->Pt());
954 }
3a448a01 955 if(pdgcodeMC==-2212)
4637dfa3 956 {
957 fHistminsignalifAntiProtonPMCPrimary->Fill(particleMC->Pt());
958 }
959
3a448a01 960 }
4637dfa3 961 }
962
963 if(!(isphysevent&&isgoodvertex&&isvxerteinZ))
3a448a01 964 {
2b52537d 965 //Printf("No Good event.........\n");
3a448a01 966 PostData(1, flist);
2b52537d 967 //Printf("end of Exec");
3a448a01 968 return;
969 }
4637dfa3 970
3a448a01 971 fHistStats->Fill(3);
4637dfa3 972
973 fHistZVertexAfterCut->Fill(vertex ->GetZ());
974 fHistXYVertexAfterCut->Fill(vertex ->GetX(),vertex ->GetY());
3a448a01 975
4637dfa3 976 if(fMC)
2b52537d 977 {
978 fVertexshift->Fill(vertex->GetX()-mcXvertex,vertex->GetY()-mcYvertex,vertex->GetZ()-mcZvertex);
979 fMulESDMulMCVz->Fill(refmultiplicity,fMCmult,vertex->GetZ());
980 }
3a448a01 981 if(fCuts==0)
982 {
2b52537d 983 //Printf("No CUTS Defined.........\n");
3a448a01 984 PostData(1, flist);
2b52537d 985 //Printf("end of Exec");
3a448a01 986 return;
987 }
988
2b52537d 989 //Printf("There are %d tracks in this event", fESD->GetNumberOfTracks());
3a448a01 990 Int_t nTracks=fESD->GetNumberOfTracks();
991
992 Int_t mynumberoftracks=0;
993 AliESDtrack *trackESD=0;
994
4637dfa3 995 const Float_t pionmass=AliPID::ParticleMass(2);
996 const Float_t kaonmass=AliPID::ParticleMass(3);
997 const Float_t protonmass=AliPID::ParticleMass(4);
3a448a01 998
999 for(int tr1=0;tr1<nTracks;tr1++)
1000 {
1001
1002 trackESD=fESD->GetTrack(tr1);
1003 //fHistStats->Fill(2);
1004
1005 Double_t pt=trackESD->Pt()*trackESD->GetSign();
1006 Double_t p=trackESD->P();
1007 Double_t eta=trackESD->Eta();
1008 Double_t phi=trackESD->Phi();
4637dfa3 1009 Float_t dcaxy=0.0;
1010 Float_t dcaz=0.0;
99a804d9 1011 trackESD->GetImpactParameters(dcaxy,dcaz);
3a448a01 1012 Double_t pz=trackESD->Pz();
4637dfa3 1013 UShort_t nTPCclusters=trackESD->GetTPCNcls();
1014 Float_t chi2=trackESD->GetTPCchi2();
1015 if(nTPCclusters>0)
1016 chi2=chi2/((Float_t)nTPCclusters);
1017 else
1018 chi2=-1.0;
1019 if(!trackESD->IsOn(AliESDtrack::kTPCin))
1020 continue;
1021 //Y assumtion
1022 Float_t yforpion=0.5*TMath::Log((TMath::Sqrt(pionmass*pionmass+p*p)+pz)/(TMath::Sqrt(pionmass*pionmass+p*p)-pz));
1023 Float_t yforkaon=0.5*TMath::Log((TMath::Sqrt(kaonmass*kaonmass+p*p)+pz)/(TMath::Sqrt(kaonmass*kaonmass+p*p)-pz));
1024 Float_t yforproton=0.5*TMath::Log((TMath::Sqrt(protonmass*protonmass+p*p)+pz)/(TMath::Sqrt(protonmass*protonmass+p*p)-pz));
1025
1026 if(TMath::Abs(yforpion)>fYCut&&TMath::Abs(yforkaon)>fYCut&&TMath::Abs(yforproton)>fYCut) //go trought one y cut
1027 continue;
1028 Int_t label=-1;
1029 if(fMC)
1030 label=trackESD->GetLabel();
1031 //if(label<0)
1032 // Printf("label %d %f %f %f %f %d %f %f\n",label,p,pt,eta,chi2,nTPCclusters,dcaxy,dcaz);
1033 Int_t pdgcode=0;
1034 Int_t primary=0;
1035 Double_t chargeMC=1.0;
1036 Float_t etaMC=10.0;
1037 Float_t ptMC=10.0;
1038 Int_t uniqueID=-1;
1039 Int_t pdgcodefake=0;
1040 Int_t primaryfake=0;
1041 TParticle *particle2=0x0;
1042 if(label>=0&&stack&&fMC)
1043 {
1044 primary=stack->IsPhysicalPrimary(TMath::Abs(label));
1045 particle2 = stack->Particle(TMath::Abs(label));
1046 pdgcode=particle2->GetPdgCode();
1047 chargeMC=particle2->GetPDG(0)->Charge()/3.0;
1048 etaMC=particle2->Eta();
1049 ptMC=particle2->Pt();
1050 uniqueID=particle2->GetUniqueID();
1051 }
1052 if(label<0&&stack&&fMC)
1053 {
1054 primaryfake=stack->IsPhysicalPrimary(TMath::Abs(label));
1055 particle2 = stack->Particle(TMath::Abs(label));
1056 pdgcodefake=particle2->GetPdgCode();
1057 uniqueID=particle2->GetUniqueID();
1058
1059 }
1060
1061 Int_t typeParticle=-10;
1062 if((primaryfake||primary))
1063 {
1064
1065 if((pdgcodefake==211||pdgcode==211)&&TMath::Abs(yforpion)<fYCut)
1066 typeParticle=0;
1067 if((pdgcodefake==321||pdgcode==321)&&TMath::Abs(yforkaon)<fYCut)
1068 typeParticle=1;
1069 if((pdgcodefake==2212||pdgcode==2212)&&TMath::Abs(yforproton)<fYCut)
1070 typeParticle=2;
1071 if((pdgcodefake==-211||pdgcode==-211)&&TMath::Abs(yforpion)<fYCut)
1072 typeParticle=3;
1073 if((pdgcodefake==-321||pdgcode==-321)&&TMath::Abs(yforkaon)<fYCut)
1074 typeParticle=4;
1075 if((pdgcodefake==-2212||pdgcode==-2212)&&TMath::Abs(yforproton)<fYCut)
1076 typeParticle=5;
1077
1078 if(primaryfake)
1079 typeParticle+=6;
1080 }
1081
1082 fTracksCutmonitoring->Fill(1,TMath::Abs(pt));
1083 if(fMC)
1084 {
1085 fParticlesCutmonitoring->Fill(typeParticle,1,TMath::Abs(pt));
1086 if(trackESD->IsOn(AliESDtrack::kTPCrefit))
1087 {
1088 fParticlesCutmonitoring->Fill(typeParticle,2,TMath::Abs(pt));
1089 if(nTPCclusters>70)
1090 {
1091 fParticlesCutmonitoring->Fill(typeParticle,3,TMath::Abs(pt));
1092 if(chi2<4.0)
1093 {
1094 fParticlesCutmonitoring->Fill(typeParticle,4,TMath::Abs(pt));
1095 fPtESDminusPtMCvPtESDafterTPCcuts->Fill(TMath::Abs(pt)-particle2->Pt(),TMath::Abs(pt),typeParticle);
1096 if(trackESD->IsOn(AliESDtrack::kITSrefit))
1097 {
1098 fParticlesCutmonitoring->Fill(typeParticle,5,TMath::Abs(pt));
1099 if(trackESD->HasPointOnITSLayer(0)||trackESD->HasPointOnITSLayer(1))
1100 {
1101 fParticlesCutmonitoring->Fill(typeParticle,6,TMath::Abs(pt));
1102 }
1103 }
1104 }
1105
1106 }
1107 }
1108 }
1109
1110
3a448a01 1111 fHistPhiPtBeforeCuts->Fill(phi,pt);//phi pt
1112 fHistEtaPtBeforeCuts->Fill(eta,pt);
4637dfa3 1113 fHistDCABeforeCuts->Fill(dcaxy,dcaz);
1114
1115
1116
1117
3a448a01 1118 //standart cuts
1119 if(fCuts->AcceptTrack(trackESD)==kFALSE)
1120 continue;
4637dfa3 1121 fTracksCutmonitoring->Fill(2,TMath::Abs(pt));
1122 if(fMC)
1123 fParticlesCutmonitoring->Fill(typeParticle,7,TMath::Abs(pt));
3a448a01 1124 //Tpc pid cut for debug
1125 Double_t pinTPC=trackESD->GetTPCInnerParam()->GetP();//momentum in primary vertex taken from TPC tracking
1126 Double_t pinTPCglobal=trackESD->GetInnerParam()->GetP();//momentum at the inner wall of the TPC taken from global tracking
4637dfa3 1127 Float_t sigKaon= fESDpid->GetTPCResponse().GetExpectedSignal(pinTPCglobal, AliPID::kKaon);
1128 Float_t sigProton= fESDpid->GetTPCResponse().GetExpectedSignal(pinTPCglobal, AliPID::kProton);
3a448a01 1129 Double_t tpcSignal =trackESD ->GetTPCsignal();
4637dfa3 1130
3a448a01 1131 if(fTPCPIDCUT)
1132 {
1133 if(fTPCPIDCUT->AcceptTrack(trackESD,fESD)==kFALSE)
1134 continue;
4637dfa3 1135 }
1136
3a448a01 1137 Bool_t cutDCA=SelectOnImpPar(trackESD);
1138
1139 //fHistStats->Fill(4);
1140 Double_t tmpQESD[4]={-1.0,-1.0,-1.0,-1.0};
1141 trackESD->GetITSdEdxSamples(tmpQESD);
1142 if(fCorrectSDD&&fMC)
4637dfa3 1143 CorrectSDD(tmpQESD);
3a448a01 1144 if(fCorrectSSD&&fMC)
4637dfa3 1145 CorrectSSD(tmpQESD);
3a448a01 1146 Int_t nSSDSDD=0;
1147 Int_t nSSDSDDall=0;
1148
3a448a01 1149
3a448a01 1150
1151 if(TMath::Abs(yforpion)<fYCut&&cutDCA)
1152 fHistNtrackwithstandardcuts->Fill(TMath::Abs(pt),0);
1153 if(TMath::Abs(yforkaon)<fYCut&&cutDCA)
1154 {
1155 fHistNtrackwithstandardcuts->Fill(TMath::Abs(pt),1);
1156 if(pt>0.0)
1157 fHistSignalinTPCKaonforstandardcuts->Fill(pt,(tpcSignal-sigKaon)/sigKaon);
1158 else
1159 fHistSignalinTPCAntiKaonforstandardcuts->Fill(TMath::Abs(pt),(tpcSignal-sigKaon)/sigKaon);
1160 }
1161 if(TMath::Abs(yforproton)<fYCut&&cutDCA)
1162 {
1163 fHistNtrackwithstandardcuts->Fill(TMath::Abs(pt),2);
1164 if(pt>0.0)
1165 fHistSignalinTPCProtonforstandardcuts->Fill(pt,(tpcSignal-sigProton)/sigProton);
1166 else
1167 fHistSignalinTPCAntiProtonforstandardcuts->Fill(TMath::Abs(pt),(tpcSignal-sigProton)/sigProton);
1168 }
1169
1170
1171 for (int iL=0;iL<4;iL++)
1172 {
1173 if(tmpQESD[iL]>fchargeCut)
1174 nSSDSDD++;
1175 if(tmpQESD[iL]>0.0)
1176 nSSDSDDall++;
1177 }
1178 if(nSSDSDDall>=3)
1179 fHistStats->Fill(4);
1180 //ITS PId cut
1181 if(nSSDSDD<3)
1182 {
1183 // cout<<"BAD "<<stack->Particle(TMath::Abs(trackESD->GetLabel()))->GetPdgCode()<<endl;
1184 continue;
1185 }
4637dfa3 1186 fTracksCutmonitoring->Fill(3,TMath::Abs(pt));
1187 if(fMC)
1188 fParticlesCutmonitoring->Fill(typeParticle,8,TMath::Abs(pt));
1189 if(cutDCA)
1190 {
1191 fTracksCutmonitoring->Fill(4,TMath::Abs(pt));
1192 if(fMC)
1193 {
1194 fParticlesCutmonitoring->Fill(typeParticle,9,TMath::Abs(pt));
1195 fPtESDminusPtMCvPtESDafterallcuts->Fill(TMath::Abs(pt)-particle2->Pt(),TMath::Abs(pt),typeParticle);
1196 }
1197 }
3a448a01 1198 if(TMath::Abs(yforpion)<fYCut&&cutDCA)
1199 {
1200 fHistNtrackwithITSPIDcuts->Fill(TMath::Abs(pt),0);
1201 if(pt>0.0)
4637dfa3 1202 {
3a448a01 1203 fPionNTPCClusters->Fill(pt,nTPCclusters);
4637dfa3 1204 fPionchi2->Fill(pt,chi2);
1205 }
3a448a01 1206 else
4637dfa3 1207 {
1208 fAntiPionNTPCClusters->Fill(TMath::Abs(pt),nTPCclusters);
1209 fAntiPionchi2->Fill(TMath::Abs(pt),chi2);
1210 }
3a448a01 1211 }
1212 if(TMath::Abs(yforkaon)<fYCut&&cutDCA)
1213 {
1214 fHistNtrackwithITSPIDcuts->Fill(TMath::Abs(pt),1);
1215 if(pt>0.0)
1216 fHistSignalinTPCKaonforITSPIDcuts->Fill(pt,(tpcSignal-sigKaon)/sigKaon);
1217 else
1218 fHistSignalinTPCAntiKaonforITSPIDcuts->Fill(TMath::Abs(pt),(tpcSignal-sigKaon)/sigKaon);
1219 }
1220 if(TMath::Abs(yforproton)<fYCut&&cutDCA)
1221 {
1222 fHistNtrackwithITSPIDcuts->Fill(TMath::Abs(pt),2);
1223 if(pt>0.0)
1224 fHistSignalinTPCProtonforITSPIDcuts->Fill(pt,(tpcSignal-sigProton)/sigProton);
1225 else
1226 fHistSignalinTPCAntiProtonforITSPIDcuts->Fill(TMath::Abs(pt),(tpcSignal-sigProton)/sigProton);
1227 }
1228 fHistStats->Fill(5);
1229 fHistPhiPtAfterCuts->Fill(phi,pt);
1230 fHistEtaPtAfterCuts->Fill(eta,pt);
1231 fHistDCAAfterCuts->Fill(dcaxy,dcaz);
1232 fHistPminusTPCinPAfterCuts->Fill(pinTPC-p,pinTPC);
1233 fHistPminusTPCinPglobalAfterCuts->Fill(pinTPC-p,pinTPCglobal);
1234 if(tmpQESD[0]>fchargeCut)
1235 {
1236 fHistL3dEP->Fill(p,tmpQESD[0]);
1237 fHistL3dETPCinP->Fill(pinTPC,tmpQESD[0]);
1238 }
1239 if(tmpQESD[1]>fchargeCut)
1240 {
1241 fHistL4dEP->Fill(p,tmpQESD[1]);
1242 fHistL4dETPCinP->Fill(pinTPC,tmpQESD[1]);
1243 }
1244 if(tmpQESD[2]>fchargeCut)
1245 {
1246 fHistL5dEP->Fill(p,tmpQESD[2]);
1247 fHistL5dETPCinP->Fill(pinTPC,tmpQESD[2]);
1248 }
1249 if(tmpQESD[3]>fchargeCut)
1250 {
1251 fHistL6dEP->Fill(p,tmpQESD[3]);
1252 fHistL6dETPCinP->Fill(pinTPC,tmpQESD[3]);
1253 }
1254 Float_t myITSsignal=0.0;
1255 Float_t minITSsignal=0.0;
1256 Int_t whichLmin=-1;
1257 Int_t nosignaL=-1;
1258 if(nSSDSDD==3)
1259 {
1260 Double_t tmp2QESD[3];
1261 Int_t iLnotZero=0;
1262 for (int iL=0;iL<4;iL++)
1263 {
1264 if(tmpQESD[iL]>fchargeCut)
1265 {
1266 tmp2QESD[iLnotZero]=tmpQESD[iL];
1267 iLnotZero++;
1268 }
1269 else
1270 nosignaL=iL;
1271 }
1272 whichLmin=TMath::LocMin(3,tmp2QESD);
1273 if(nosignaL>-1&&nosignaL<=whichLmin)
1274 whichLmin++;
1275 minITSsignal=TMath::MinElement(3,tmp2QESD);
1276 myITSsignal=MyITSsignalusing3points(tmp2QESD);
1277 }
1278 if(nSSDSDD==4)
1279 {
1280 myITSsignal=MyITSsignalusing4points(tmpQESD);
1281 whichLmin=TMath::LocMin(4,tmpQESD);
1282 minITSsignal=TMath::MinElement(4,tmpQESD);
1283 }
1284
1285 if(whichLmin==0)
4637dfa3 1286 fHistwhichhasmin->Fill(0.0,tmpQESD[0]);
3a448a01 1287 if(whichLmin==1)
4637dfa3 1288 fHistwhichhasmin->Fill(1.0,tmpQESD[1]);
3a448a01 1289 if(whichLmin==2)
4637dfa3 1290 fHistwhichhasmin->Fill(2.0,tmpQESD[2]);
3a448a01 1291 if(whichLmin==3)
4637dfa3 1292 fHistwhichhasmin->Fill(3.0,tmpQESD[3]);
3a448a01 1293 if(pt>0.0)
1294 {
1295 fHistMydEPpositive->Fill(p,myITSsignal);
1296 fHistMydETPCinPglobalpositive->Fill(pinTPCglobal,myITSsignal);
1297 fHistMydETPCinPpositive->Fill(pinTPC,myITSsignal);
1298 }
1299 else
1300 {
1301 fHistMydEPnegative->Fill(p,myITSsignal);
1302 fHistMydETPCinPglobalnegative->Fill(pinTPCglobal,myITSsignal);
1303 fHistMydETPCinPnegative->Fill(pinTPC,myITSsignal);
1304 }
1305 Float_t signaltouse=myITSsignal;
1306
1307
4637dfa3 1308 Float_t itspidsignalforpions=TMath::Log(signaltouse)-TMath::Log(fESDpid->GetITSResponse().Bethe(p,pionmass,kFALSE));
1309 Float_t itspidsignalforkaons=TMath::Log(signaltouse)-TMath::Log(fESDpid->GetITSResponse().Bethe(p,kaonmass,kFALSE));
1310 Float_t itspidsignalforprotons=TMath::Log(signaltouse)-TMath::Log(fESDpid->GetITSResponse().Bethe(p,protonmass,kFALSE));
3a448a01 1311 if(cutDCA)
3a448a01 1312 {
4637dfa3 1313 mynumberoftracks++;
1314 if(nSSDSDD==4)
1315 fHistMysignalminusESD->Fill((signaltouse-trackESD->GetITSsignal())/signaltouse);
3a448a01 1316 }
1317 if(TMath::Abs(yforpion)<=fYCut)
1318 {
1ea543bb 1319 Float_t weight=1.0;
1320 if(fMC)
1321 weight=GetWeight(label,stack);
3a448a01 1322 if(pt>0.0)
1323 {
1324 if(cutDCA)
1325 {
1ea543bb 1326 if(fMC)
1327 fHistminsignalifPionP->Fill(pt,itspidsignalforpions,weight);
1328 else
1329 fHistminsignalifPionP->Fill(pt,itspidsignalforpions);
1330 if(itspidsignalforpions>-0.5&&itspidsignalforpions<0.2) //select on clean
3a448a01 1331 {
1332 fDCAXYZforcleanPions->Fill(pt,dcaxy,dcaz);
1333 if(fMC)
1334 {
1335 if(primary&&pdgcode==211)
1336 fDCAXYZforcleanPionsMCPrimary->Fill(pt,dcaxy,dcaz);
1ea543bb 1337 else if(!primary&&pdgcode==211&&uniqueID==kPDecay)
3a448a01 1338 fDCAXYZforcleanPionsWD->Fill(pt,dcaxy,dcaz);
1339 else if(!primary&&pdgcode==211&&uniqueID==kPHadronic)
1340 fDCAXYZforcleanPionsHI->Fill(pt,dcaxy,dcaz);
1ea543bb 1341 else if(primary&&(pdgcode==-11||pdgcode==-13))
1342 fDCAXYZforcleanPionsMEPrimary->Fill(pt,dcaxy,dcaz);
1343 else if(!primary&&(pdgcode==-11||pdgcode==-13))
1344 fDCAXYZforcleanPionsMESecondary->Fill(pt,dcaxy,dcaz);
3a448a01 1345 else
1346 fDCAXYZforcleanPionsR->Fill(pt,dcaxy,dcaz);
1347
1348 }
1349 } //select on clean
1350 if(primary)
1351 {
1352 if(pdgcode==211)
1353 fHistminsignalifPionPPrimary->Fill(pt,itspidsignalforpions);
1354 }
1355 else
1356 {
1ea543bb 1357 if(pdgcode==211)
1358 fHistminsignalifPionPSecondary->Fill(pt,itspidsignalforpions,weight);
3a448a01 1359 //cout<<pdgcode<<" "<< uniqueID<<" "<<kPDecay<<" "<<kPHadronic<<endl;
1360 }
1361 if(pdgcode==-11||pdgcode==-13)
1362 {
1363 fHistminsignalifMuEPositiveP->Fill(pt,itspidsignalforpions);
4637dfa3 1364 if(!primary)
3a448a01 1365 {
4637dfa3 1366 if(pdgcode==-11)
1367 {
1368 fHistStats->Fill(6);
1369 fAntiElectronsource->Fill(pt,uniqueID);
1370 }
1371 else if(pdgcode==-13)
1372 {
1373 fHistStats->Fill(7);
1374 fAntiMuonsource->Fill(pt,uniqueID);
1375 }
3a448a01 1376 }
4637dfa3 1377 else if(primary&&pdgcode==-11)
1378 {
3a448a01 1379 fPrimaryElectronsMother->Fill(stack->Particle(particle2->GetFirstMother())->GetPdgCode());
4637dfa3 1380 fAntiElectronsource->Fill(pt,0);
1381 }
1382 else if(primary&&pdgcode==-13)
1383 fAntiMuonsource->Fill(pt,0);
3a448a01 1384 }
1385 if(pdgcodefake==211)
1386 {
1387 if(primaryfake)
1388 fHistminsignalifPionPrimaryfake->Fill(pt,itspidsignalforpions);
1389 else
1390 fHistminsignalifPionSecondaryfake->Fill(pt,itspidsignalforpions);
1391 }
1392 }
1ea543bb 1393 if(itspidsignalforpions>-0.5&&itspidsignalforpions<0.2) //select on clean
3a448a01 1394 {
1395 fDCAXYZOpenforcleanPions->Fill(pt,dcaxy,dcaz);
1396 if(fMC)
1397 {
1398 if(primary&&pdgcode==211)
1399 fDCAXYZOpenforcleanPionsMCPrimary->Fill(pt,dcaxy,dcaz);
1400 else if(!primary&&pdgcode==211&&uniqueID==kPDecay)
1401 fDCAXYZOpenforcleanPionsWD->Fill(pt,dcaxy,dcaz);
1402 else if(!primary&&pdgcode==211&&uniqueID==kPHadronic)
1403 fDCAXYZOpenforcleanPionsHI->Fill(pt,dcaxy,dcaz);
1ea543bb 1404 else if(primary&&(pdgcode==-11||pdgcode==-13))
1405 fDCAXYZOpenforcleanPionsMEPrimary->Fill(pt,dcaxy,dcaz);
3a448a01 1406 else if(!primary&&(pdgcode==-11||pdgcode==-13))
1ea543bb 1407 fDCAXYZOpenforcleanPionsMESecondary->Fill(pt,dcaxy,dcaz);
3a448a01 1408 else
1409 fDCAXYZOpenforcleanPionsR->Fill(pt,dcaxy,dcaz);
1410 }
1411 }
1412 }
1413 else
1414 {
1415 if(cutDCA)
1416 {
1ea543bb 1417 if(fMC)
1418 fHistminsignalifAntiPionP->Fill(TMath::Abs(pt),itspidsignalforpions,weight);
1419 else
1420 fHistminsignalifAntiPionP->Fill(TMath::Abs(pt),itspidsignalforpions);
1421 if(itspidsignalforpions>-0.5&&itspidsignalforpions<0.2)//select on clean
3a448a01 1422 {
1423 fDCAXYZforcleanAntiPions->Fill(TMath::Abs(pt),dcaxy,dcaz);
1424 if(fMC)
1425 {
1426 if(primary&&pdgcode==-211)
1427 fDCAXYZforcleanAntiPionsMCPrimary->Fill(TMath::Abs(pt),dcaxy,dcaz);
1428 else if(!primary&&pdgcode==-211&&uniqueID==kPDecay)
1429 fDCAXYZforcleanAntiPionsWD->Fill(TMath::Abs(pt),dcaxy,dcaz);
1430 else if(!primary&&pdgcode==-211&&uniqueID==kPHadronic)
1431 fDCAXYZforcleanAntiPionsHI->Fill(TMath::Abs(pt),dcaxy,dcaz);
1ea543bb 1432 else if(primary&&(pdgcode==11||pdgcode==13))
1433 fDCAXYZforcleanAntiPionsMEPrimary->Fill(TMath::Abs(pt),dcaxy,dcaz);
3a448a01 1434 else if(!primary&&(pdgcode==11||pdgcode==13))
1ea543bb 1435 fDCAXYZforcleanAntiPionsMESecondary->Fill(TMath::Abs(pt),dcaxy,dcaz);
3a448a01 1436 else
1437 fDCAXYZforcleanAntiPionsR->Fill(TMath::Abs(pt),dcaxy,dcaz);
1438 }
1439 } //select on clean
1440 if(primary)
1441 {
1442 if(pdgcode==-211)
1443 fHistminsignalifAntiPionPPrimary->Fill(TMath::Abs(pt),itspidsignalforpions);
1444 }
1445 else
1446 {
1447 if(pdgcode==-211)
1ea543bb 1448 fHistminsignalifAntiPionPSecondary->Fill(TMath::Abs(pt),itspidsignalforpions,weight);
3a448a01 1449 //cout<<pdgcode<<" "<< uniqueID<<" "<<kPDecay<<" "<<kPHadronic<<endl;
1450 }
1451 if(pdgcode==11||pdgcode==13)
1452 {
1453 fHistminsignalifMuENegativeP->Fill(TMath::Abs(pt),itspidsignalforpions);
4637dfa3 1454 if(!primary)
3a448a01 1455 {
4637dfa3 1456 if(pdgcode==11)
1457 {
1458 fHistStats->Fill(6);
1459 fElectronsource->Fill(TMath::Abs(pt),uniqueID);
1460 }
1461 else if(pdgcode==13)
1462 {
1463 fHistStats->Fill(7);
1464 fMuonsource->Fill(TMath::Abs(pt),uniqueID);
1465 }
3a448a01 1466 }
4637dfa3 1467 else if(primary&&pdgcode==11)
1468 {
3a448a01 1469 fPrimaryElectronsMother->Fill(stack->Particle(particle2->GetFirstMother())->GetPdgCode());
4637dfa3 1470 fElectronsource->Fill(TMath::Abs(pt),0);
1471 }
1472 else if(primary&&pdgcode==13)
1473 fMuonsource->Fill(TMath::Abs(pt),0);
3a448a01 1474 }
1475 if(pdgcodefake==-211)
1476 {
1477 if(primaryfake)
1478 fHistminsignalifAntiPionPrimaryfake->Fill(TMath::Abs(pt),itspidsignalforpions);
1479 else
1480 fHistminsignalifAntiPionSecondaryfake->Fill(TMath::Abs(pt),itspidsignalforpions);
1481 }
1482 }
1ea543bb 1483 if(itspidsignalforpions>-0.5&&itspidsignalforpions<0.2)//select on clean
3a448a01 1484 {
1485 fDCAXYZOpenforcleanAntiPions->Fill(TMath::Abs(pt),dcaxy,dcaz);
1486 if(fMC)
1487 {
1ea543bb 1488 if(primary&&pdgcode==-211)
3a448a01 1489 fDCAXYZOpenforcleanAntiPionsMCPrimary->Fill(TMath::Abs(pt),dcaxy,dcaz);
1490 else if(!primary&&pdgcode==-211&&uniqueID==kPDecay)
1491 fDCAXYZOpenforcleanAntiPionsWD->Fill(TMath::Abs(pt),dcaxy,dcaz);
1492 else if(!primary&&pdgcode==-211&&uniqueID==kPHadronic)
1493 fDCAXYZOpenforcleanAntiPionsHI->Fill(TMath::Abs(pt),dcaxy,dcaz);
1ea543bb 1494 else if(primary&&(pdgcode==11||pdgcode==13))
1495 fDCAXYZOpenforcleanAntiPionsMEPrimary->Fill(TMath::Abs(pt),dcaxy,dcaz);
3a448a01 1496 else if(!primary&&(pdgcode==11||pdgcode==13))
1ea543bb 1497 fDCAXYZOpenforcleanAntiPionsMESecondary->Fill(TMath::Abs(pt),dcaxy,dcaz);
3a448a01 1498 else
1499 fDCAXYZOpenforcleanAntiPionsR->Fill(TMath::Abs(pt),dcaxy,dcaz);
1500 }
1501 } //sel
1502 }
1503 }
1504 if(TMath::Abs(yforkaon)<=fYCut&&cutDCA)
1505 {
1506 if(pt>0.0)
1507 {
1508 fHistminsignalifKaonP->Fill(pt,itspidsignalforkaons);
4637dfa3 1509 if((itspidsignalforkaons>-0.2)&&(itspidsignalforkaons<0.2))
1510 {
1511 fKaonNTPCClusters->Fill(pt,nTPCclusters);
1512 fKaonchi2->Fill(pt,chi2);
1513 }
3a448a01 1514 if(primary)
1515 {
1516 if(pdgcode==321)
1517 fHistminsignalifKaonPPrimary->Fill(pt,itspidsignalforkaons);
1518 }
1519 else
1520 {
1521 if(pdgcode==321)
1522 fHistminsignalifKaonPSecondary->Fill(pt,itspidsignalforkaons);
1523 }
1524 if(pdgcodefake==321)
1525 {
1526 if(primaryfake)
1527 fHistminsignalifKaonPrimaryfake->Fill(pt,itspidsignalforkaons);
1528 else
1529 fHistminsignalifKaonSecondaryfake->Fill(pt,itspidsignalforkaons);
1530 }
4637dfa3 1531
1532
3a448a01 1533 }
1534 else
1535 {
1536 fHistminsignalifAntiKaonP->Fill(TMath::Abs(pt),itspidsignalforkaons);
4637dfa3 1537 if((itspidsignalforkaons>-0.2)&&(itspidsignalforkaons<0.2))
1538 {
1539 fAntiKaonNTPCClusters->Fill(TMath::Abs(pt),nTPCclusters);
1540 fAntiKaonchi2->Fill(TMath::Abs(pt),chi2);
1541 }
3a448a01 1542 if(primary)
1543 {
1544 if(pdgcode==-321)
1545 fHistminsignalifAntiKaonPPrimary->Fill(TMath::Abs(pt),itspidsignalforkaons);
1546 }
1547 else
1548 {
1549 if(pdgcode==-321)
1550 fHistminsignalifAntiKaonPSecondary->Fill(TMath::Abs(pt),itspidsignalforkaons);
1551 }
1552 if(pdgcodefake==-321)
1553 {
1554 if(primaryfake)
1555 fHistminsignalifAntiKaonPrimaryfake->Fill(TMath::Abs(pt),itspidsignalforkaons);
1556 else
1557 fHistminsignalifAntiKaonSecondaryfake->Fill(TMath::Abs(pt),itspidsignalforkaons);
1558
1559 }
1560 }
1561 }
1562 if(TMath::Abs(yforproton)<=fYCut)
1563 {
1ea543bb 1564 Float_t weight=1.0;
1565 if(fMC)
1566 weight=GetWeight(label,stack);
3a448a01 1567 if(pt>0.0)
1568 {
1569 if(cutDCA)
1570 {
1ea543bb 1571 if(fMC)
1572 fHistminsignalifProtonP->Fill(pt,itspidsignalforprotons,weight);
1573 else
1574 fHistminsignalifProtonP->Fill(pt,itspidsignalforprotons);
3a448a01 1575
1576 //if(((itspidsignalforprotons))>(TMath::Abs(pt)<0.45?-0.2:0.0))&&(itspidsignalforprotons))<0.2)//select on
1577 // clean
1578 if((itspidsignalforprotons>-0.2)&&(itspidsignalforprotons<0.5))
1579 {
1580 fDCAXYZforcleanProtons->Fill(pt,dcaxy,dcaz);
4637dfa3 1581 fProtonNTPCClusters->Fill(pt,nTPCclusters);
1582 fProtonchi2->Fill(pt,chi2);
3a448a01 1583 if(fMC)
1584 {
1585 if(primary&&pdgcode==2212)
1586 fDCAXYZforcleanProtonsMCPrimary->Fill(pt,dcaxy,dcaz);
1587 else if(!primary&&!primaryfake&&(pdgcode==2212||pdgcodefake==2212)&&uniqueID==kPDecay)
1588 fDCAXYZforcleanProtonsWD->Fill(pt,dcaxy,dcaz);
1589 else if(!primary&&!primaryfake&&(pdgcode==2212||pdgcodefake==2212)&&uniqueID==kPHadronic)
1590 fDCAXYZforcleanProtonsHI->Fill(pt,dcaxy,dcaz);
1591 else
1592 fDCAXYZforcleanProtonsR->Fill(pt,dcaxy,dcaz);
1593 }
1594 }//select on clean
1595 if(primary)
1596 {
1597 if(pdgcode==2212)
1598 fHistminsignalifProtonPPrimary->Fill(pt,itspidsignalforprotons);
1599 }
1600 else if(primaryfake)
1601 {
1602 if(pdgcodefake==2212)
1603 fHistminsignalifProtonPPrimaryfake->Fill(pt,itspidsignalforprotons);
1604 }
1605 else
1606 {
1ea543bb 1607 if(pdgcode==2212&&uniqueID==kPDecay)
1608 fHistminsignalifProtonPSecondaryWD->Fill(pt,itspidsignalforprotons,weight);
3a448a01 1609 else if(pdgcode==2212&&uniqueID==kPHadronic)
1610 fHistminsignalifProtonPSecondaryHI->Fill(pt,itspidsignalforprotons);
1611 else if(pdgcodefake==2212&&uniqueID==kPDecay)
1ea543bb 1612 fHistminsignalifProtonPSecondaryWDfake->Fill(pt,itspidsignalforprotons,weight);
3a448a01 1613 else if(pdgcodefake==2212&&uniqueID==kPHadronic)
1614 fHistminsignalifProtonPSecondaryHIfake->Fill(pt,itspidsignalforprotons);
1615 else if(fMC)
1616 fHistminsignalifProtonPSecondaryRest->Fill(pt,itspidsignalforprotons);
1617 }
1618 }
1619
1620 if((itspidsignalforprotons>-0.2)&&(itspidsignalforprotons<0.5))
1621 {
1622 fDCAXYZOpenforcleanProtons->Fill(pt,dcaxy,dcaz);
1623 if(fMC)
1624 {
1625 if(primary&&pdgcode==2212)
1626 fDCAXYZOpenforcleanProtonsMCPrimary->Fill(pt,dcaxy,dcaz);
1627 else if(!primary&&!primaryfake&&(pdgcode==2212||pdgcodefake==2212)&&uniqueID==kPDecay)
1628 fDCAXYZOpenforcleanProtonsWD->Fill(pt,dcaxy,dcaz);
1629 else if(!primary&&!primaryfake&&(pdgcode==2212||pdgcodefake==2212)&&uniqueID==kPHadronic)
1630 fDCAXYZOpenforcleanProtonsHI->Fill(pt,dcaxy,dcaz);
1631 else
1632 fDCAXYZOpenforcleanProtonsR->Fill(pt,dcaxy,dcaz);
1633 }
1634 }//select on clean
1635
1636 }
1637 else
1638 {
1639 if(cutDCA)
1640 {
1ea543bb 1641 if(fMC)
1642 fHistminsignalifAntiProtonP->Fill(TMath::Abs(pt),itspidsignalforprotons,weight);
1643 else
1644 fHistminsignalifAntiProtonP->Fill(TMath::Abs(pt),itspidsignalforprotons);
3a448a01 1645 if((itspidsignalforprotons>-0.2)&&(itspidsignalforprotons<0.5))
1646 {//select on clean
1647 fDCAXYZforcleanAntiProtons->Fill(TMath::Abs(pt),dcaxy,dcaz);
4637dfa3 1648
3a448a01 1649 if(fMC)
1650 {
1651 if(primary&&pdgcode==-2212)
1652 fDCAXYZforcleanAntiProtonsMCPrimary->Fill(TMath::Abs(pt),dcaxy,dcaz);
1653 else if(!primary&&!primaryfake&&(pdgcode==-2212||pdgcodefake==-2212)&&uniqueID==kPDecay)
1654 fDCAXYZforcleanAntiProtonsWD->Fill(TMath::Abs(pt),dcaxy,dcaz);
1655 else if(!primary&&!primaryfake&&(pdgcode==-2212||pdgcodefake==-2212)&&uniqueID==kPHadronic)
1656 fDCAXYZforcleanAntiProtonsHI->Fill(TMath::Abs(pt),dcaxy,dcaz);
1657 else if(fMC)
1658 fDCAXYZforcleanAntiProtonsR->Fill(TMath::Abs(pt),dcaxy,dcaz);
1659 }
1660 }//select on clean
1661 if(primary)
1662 {
1663 if(pdgcode==-2212)
1664 fHistminsignalifAntiProtonPPrimary->Fill(TMath::Abs(pt),itspidsignalforprotons);
1665 }
1666 else if(primaryfake)
1667 {
1668 if(pdgcodefake==-2212)
1669 fHistminsignalifAntiProtonPPrimaryfake->Fill(TMath::Abs(pt),itspidsignalforprotons);
1670 }
1671 else
1672 {
1673 if(pdgcode==-2212&&uniqueID==kPDecay)
1ea543bb 1674 fHistminsignalifAntiProtonPSecondaryWD->Fill(TMath::Abs(pt),itspidsignalforprotons,weight);
3a448a01 1675 else if(pdgcode==-2212&&uniqueID==kPHadronic)
1676 fHistminsignalifAntiProtonPSecondaryHI->Fill(TMath::Abs(pt),itspidsignalforprotons);
1677 else if(pdgcodefake==-2212&&uniqueID==kPDecay)
1ea543bb 1678 fHistminsignalifAntiProtonPSecondaryWDfake->Fill(TMath::Abs(pt),itspidsignalforprotons,weight);
3a448a01 1679 else if(pdgcodefake==-2212&&uniqueID==kPHadronic)
1680 fHistminsignalifAntiProtonPSecondaryHIfake->Fill(TMath::Abs(pt),itspidsignalforprotons);
1681 else if(fMC)
1682 fHistminsignalifAntiProtonPSecondaryRest->Fill(TMath::Abs(pt),itspidsignalforprotons);
1683 }
1684 }
1685 if((itspidsignalforprotons>-0.2)&&(itspidsignalforprotons<0.5))
1686 {//select on clean
1687 fDCAXYZOpenforcleanAntiProtons->Fill(TMath::Abs(pt),dcaxy,dcaz);
4637dfa3 1688 fAntiProtonNTPCClusters->Fill(TMath::Abs(pt),nTPCclusters);
1689 fAntiProtonchi2->Fill(TMath::Abs(pt),chi2);
3a448a01 1690 if(fMC)
1691 {
1692 if(primary&&pdgcode==-2212)
1693 fDCAXYZOpenforcleanAntiProtonsMCPrimary->Fill(TMath::Abs(pt),dcaxy,dcaz);
1694 else if(!primary&&!primaryfake&&(pdgcode==-2212||pdgcodefake==-2212)&&uniqueID==kPDecay)
1695 fDCAXYZOpenforcleanAntiProtonsWD->Fill(TMath::Abs(pt),dcaxy,dcaz);
1696 else if(!primary&&!primaryfake&&(pdgcode==-2212||pdgcodefake==-2212)&&uniqueID==kPHadronic)
1697 fDCAXYZOpenforcleanAntiProtonsHI->Fill(TMath::Abs(pt),dcaxy,dcaz);
1698 else if(fMC)
1699 fDCAXYZOpenforcleanAntiProtonsR->Fill(TMath::Abs(pt),dcaxy,dcaz);
1700 }
1701 }
1702 }
1703 }
1704 }
1ea543bb 1705 fHistStandartMul->Fill(refmultiplicity);
3a448a01 1706 fHistMytrackMul->Fill(mynumberoftracks);
1707
1708
3a448a01 1709 // Post output data.
1710 Printf("Done..........\n");
1711 PostData(1, flist);
2b52537d 1712 //Printf("....................Done!\n");
1713 //Printf("end of Exec");
3a448a01 1714}
1715
1716//________________________________________________________________________
1717void AliAnalysisChargedHadronSpectraITSTruncatedMeanTask::Terminate(Option_t *)
1718{
1719 //Terminate
1720 if(fCuts)
1721 fCuts->Dump();
3a448a01 1722 Printf("YCut=%f",fYCut);
1723 Printf("nsigma=%f",fsigmacut);
1724 Printf("DCA cut xy sigma =%f zsigma=%f", fnsigmaxy, fnsigmaz);
1725 Printf("ChargeCut=%f ", fchargeCut);
4637dfa3 1726 Printf("DCAxy parameters %f %f %f",fdcaxypar[0],fdcaxypar[1],fdcaxypar[2]);
1727 Printf("DCAz parameters %f %f %f %f",fdcazpar[0],fdcazpar[1],fdcazpar[2],fdcazpar[3]);
3a448a01 1728 if(fTPCPIDCUT)
1729 fTPCPIDCUT->Dump();
1730 if(fMC)
1731 Printf("MC On\n");
1732 if(fCorrectSDD)
1733 Printf("correct SDD On\n");
1734 if(fCorrectSSD)
1735 Printf("correct SSD On\n");
1ea543bb 1736 if(fK0weight)
1737 {
1738 Printf("weigth for pions");
1739 fK0weight->Print("All");
1740 }
1741 if(flambdaweight)
1742 {
1743 Printf("weigth for protons");
1744 flambdaweight->Print("All");
1745 }
1746 if(fAntilambdaweight)
1747 {
1748 Printf("weigth for antiprotons");
1749 fAntilambdaweight->Print("All");
1750 }
1751 Printf("Mul low %d Mul up %d",fLowMultiplicity, fUpMultiplicity);
4637dfa3 1752 Printf("cent low %f cent up %f",fLowCentrality,fUpCentrality);
1753 if(fdovertexrescuts)
1754 Printf("Veretx resolution cut");
3a448a01 1755 Printf("end of Terminate");
1756}
1757//___________________________________________________
1758Float_t AliAnalysisChargedHadronSpectraITSTruncatedMeanTask::MyITSsignalusing4points(Double_t* tmpQESD) const
1759{
1760 //dE signal in case of 4 points in ITS
1761 Int_t indexes[4]={-1,-1,-1,-1};
1762 TMath::Sort(4,tmpQESD,indexes,0);
1763 return 0.5*(tmpQESD[indexes[0]]+tmpQESD[indexes[1]]);
1764}
1765//________________________________________________________
1766Float_t AliAnalysisChargedHadronSpectraITSTruncatedMeanTask::MyITSsignalusing3points( Double_t* tmpQESD) const
1767{
1768 //dE signal in case of 3 points in ITS
1769 Int_t indexes[3]={-1,-1,-1};
1770 TMath::Sort(3,tmpQESD,indexes,0);
1771 //cout<<tmpQESD[indexes[0]]<<" "<<tmpQESD[indexes[1]]<<" "<<tmpQESD[indexes[2]]<<endl;
1772 return (tmpQESD[indexes[0]]+tmpQESD[indexes[1]]*0.5)/1.5;
3a448a01 1773}
3a448a01 1774//____________________________________________________________________________________________________
4637dfa3 1775 void AliAnalysisChargedHadronSpectraITSTruncatedMeanTask::SetFunctionParam( Double_t * const par)
3a448a01 1776 {
4637dfa3 1777 fESDpid->GetITSResponse().SetBetheBlochParamsITSTPC(par);
3a448a01 1778 }
1779 //_____________________________________________________________________________________________________
1780 void AliAnalysisChargedHadronSpectraITSTruncatedMeanTask::CorrectSDD(Double_t *tmpQESD) const
1781 {
1782 //correction of SDD signal
1783 if(tmpQESD[0]>0.0)
1784 {
1785 tmpQESD[0]=tmpQESD[0]*3.34/5.43;
1786 if(tmpQESD[0]<30.0)
1787 tmpQESD[0]=-1.0;
1788 }
1789 if(tmpQESD[1]>0.0)
1790 {
1791 tmpQESD[1]=tmpQESD[1]*3.34/5.43;
1792 if(tmpQESD[1]<30.0)
1793 tmpQESD[1]=-1.0;
1794 }
1795 }
1796 //_____________________________________________________________________________________________________
1797 void AliAnalysisChargedHadronSpectraITSTruncatedMeanTask::CorrectSSD(Double_t *tmpQESD) const
1798 {
1799 //Correction of SSD signal
1800 tmpQESD[2]=(85.0/77.0)*tmpQESD[2];
1801 tmpQESD[3]=(85.0/77.0)*tmpQESD[3];
1802 }
1803 //_______________________________________________________________________________________________________
1804 Bool_t AliAnalysisChargedHadronSpectraITSTruncatedMeanTask::SelectOnImpPar(AliESDtrack* t) const
1805 {
1806 //
1807 // cut on transverse impact parameter
1808 //
1809 Float_t d0z0[2],covd0z0[3];
1810 t->GetImpactParameters(d0z0,covd0z0);
4637dfa3 1811 Float_t sigma= fdcaxypar[0]+fdcaxypar[1]/TMath::Power(t->Pt(),fdcaxypar[2]);
3a448a01 1812 Float_t d0max = fnsigmaxy*sigma;
1813 //
4637dfa3 1814 Float_t sigmaZ = fdcazpar[0]+fdcazpar[1]/TMath::Power(t->Pt(),fdcazpar[2]);
3a448a01 1815 if (t->Pt() > 1)
4637dfa3 1816 sigmaZ = fdcazpar[3];
3a448a01 1817 Float_t d0maxZ = fnsigmaz*sigmaZ;
1818 //
1819 if(TMath::Abs(d0z0[0]) < d0max && TMath::Abs(d0z0[1]) < d0maxZ) //error
1820 return kTRUE;
1821 return kFALSE;
1822}
1ea543bb 1823//__________________________________________________________________________________________________
1824 Float_t AliAnalysisChargedHadronSpectraITSTruncatedMeanTask::GetWeight(Int_t t,AliStack* const stack) const
1825 {
1826
1827 //Get weigth for pions protons and antiprotons
1828 if(stack->IsPhysicalPrimary(TMath::Abs(t)))
1829 return 1.0;
1830 TParticle *particleMC = stack->Particle(TMath::Abs(t));
1831 Int_t pdgcodeMC = particleMC->GetPdgCode();
1832 if(TMath::Abs(pdgcodeMC)!=211&&TMath::Abs(pdgcodeMC)!=2212)
1833 return 1.0;
1834 if(!stack->IsPhysicalPrimary(TMath::Abs(particleMC->GetFirstMother())))
1835 return 1.0;
1836 TParticle *particleMother=stack->Particle(TMath::Abs(particleMC->GetFirstMother()));
1837 Int_t pdgcodeMother = particleMother->GetPdgCode();
1838 Float_t motherpt=particleMother-> Pt();
1839 if(TMath::Abs(pdgcodeMC)==211&&pdgcodeMother==310&&fK0weight)
1840 return fK0weight->Eval(motherpt);
1841 else if (pdgcodeMother==3122&&flambdaweight)
1842 return flambdaweight->Eval(motherpt);
1843 else if(pdgcodeMother==-3122&&fAntilambdaweight)
1844 return fAntilambdaweight->Eval(motherpt);
1845 return 1.0;
1846 }
4637dfa3 1847 //________________________________________________________________________________________________
1848void AliAnalysisChargedHadronSpectraITSTruncatedMeanTask::SetDCA2010()
1849{
1850 //setting the DCA for 2010
1851 fdcaxypar[0]=0.0026;
1852 fdcaxypar[1]=0.005;
1853 fdcaxypar[2]=1.01;
1854
1855 fdcazpar[0]=1000000.0;
1856 fdcazpar[1]=0.0;
1857 fdcazpar[2]=1.0;
1858 fdcazpar[3]=1000000.0;
1859}
1860//______________________________________________________________________________________________________________
1861void AliAnalysisChargedHadronSpectraITSTruncatedMeanTask::SetCentralityCut(Float_t low, Float_t up)
1862{
1863 //centrality cut setter
1864 if((up>low)&&(!(low<0.0))&&(!(up>100.0)))
1865 {
1866 SetHImode();
1867 fLowCentrality=low;
1868 fUpCentrality=up;
1869 }
1b4f5688 1870}
2b52537d 1871//_____________________________________________________________________________________________________________
1872void AliAnalysisChargedHadronSpectraITSTruncatedMeanTask::SetMultiplicityCut(Int_t low, Int_t up)
1873{
1874 //mulyiplicty cut setter
1875 if((!(up>low))&&low>=0&&up>=0)
1876 {
1877 fLowMultiplicity=-1;
1878 fUpMultiplicity=-1;
1879 }
1880 else
1881 {
1882 fLowMultiplicity=low;
1883 fUpMultiplicity=up;
1884 }
cfa284f3 1885}