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