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