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