]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGLF/SPECTRA/PiKaPr/ITSTPC/AliAnalysisChargedHadronSpectraITSTruncatedMeanTask.cxx
Merge branch 'feature-movesplit'
[u/mrichter/AliRoot.git] / PWGLF / SPECTRA / PiKaPr / ITSTPC / 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 {
4bda63cc 873 if(vertex)
874 {
875 cout<<TMath::Abs(vertex->GetX()-mcXvertex)<<" "<<TMath::Abs(vertex->GetY()-mcYvertex)<<" "<<TMath::Abs(vertex->GetZ()-mcZvertex)<<endl;
876 if(TMath::Abs(vertex->GetX()-mcXvertex)>0.015||TMath::Abs(vertex->GetY()-mcYvertex)>0.015||TMath::Abs(vertex->GetZ()-mcZvertex)>0.15)
877 isvxerteinZ=0;
878 }
4637dfa3 879 }
e1b3d73c 880 Float_t spdCorr=-1.0;
881 if(isgoodvertex)
882 {
883 const AliMultiplicity *mult = fESD->GetMultiplicity();
884 Float_t nClusters[6]={0.0,0.0,0.0,0.0,0.0,0.0};
885 for(Int_t ilay=0; ilay<6; ilay++)
886 {
887 nClusters[ilay] = (Float_t)mult->GetNumberOfITSClusters(ilay);
888 }
889 spdCorr = AliESDUtils::GetCorrSPD2(nClusters[1],vertex->GetZ());
890 if(fSPD)
891 {
892 if(fLowMultiplicity>-1)
893 {
894 if(((Int_t)spdCorr)<fLowMultiplicity)
895 {
896 PostData(1, flist);
897 return;
898 }
899 }
900 if(fUpMultiplicity>-1)
901 {
902 if(((Int_t)spdCorr)>fUpMultiplicity)
903 {
904 PostData(1, flist);
905 return;
906 }
907 }
908 }
909 fHistStats->Fill(2);
910 }
911
388bf048 912 //Printf("MC 2");
2b52537d 913 Int_t fMCmult=0;
388bf048 914 if(stack&&fMC)//Looping over MC information of all events
3a448a01 915 {
2b52537d 916 Float_t minpt=0.0;
917 Float_t maxpt=0.0;
918 Float_t mineta=0.0;
919 Float_t maxeta=0.0;
388bf048 920 //Printf("MC 12");
2b52537d 921 fCutsMul->GetPtRange(minpt,maxpt);
922 fCutsMul->GetEtaRange(mineta,maxeta);
3a448a01 923 fHistStats->Fill(8);
924 if(TMath::Abs(mcZvertex)<10.0)
925 fHistStats->Fill(9);
926 for (int imc=0;imc<stack->GetNtrack();imc++)
927 {
928 if(!(stack->IsPhysicalPrimary(imc)))
929 continue;
930 TParticle *particleMC = stack->Particle(imc);
931 if(!particleMC)
932 continue;
933 Int_t pdgcodeMC = particleMC->GetPdgCode();
2b52537d 934 if(!(pdgcodeMC==211||pdgcodeMC==-211||pdgcodeMC==321||pdgcodeMC==-321||pdgcodeMC==2212||pdgcodeMC==-2212))
935 continue;
936 if(particleMC->Pt()>minpt&&particleMC->Pt()<maxpt&&particleMC->Eta()>mineta&&particleMC->Eta()<maxeta)
937 fMCmult++;
3a448a01 938 if (TMath::Abs(particleMC->Y())>fYCut)
939 continue;
940 if (particleMC->Pt()>2.0)
4637dfa3 941 continue;
942 //Printf("%d aa",imc);
388bf048 943 // Printf("MC 22");
3a448a01 944 if(pdgcodeMC==211)
945 fHistminsignalifPionPMCPrimaryBeforeEventCuts->Fill(particleMC->Pt());
946 if(pdgcodeMC==-211)
947 fHistminsignalifAntiPionPMCPrimaryBeforeEventCuts->Fill(particleMC->Pt());
948 if(pdgcodeMC==321)
949 fHistminsignalifKaonPMCPrimaryBeforeEventCuts->Fill(particleMC->Pt());
950 if(pdgcodeMC==-321)
951 fHistminsignalifAntiKaonPMCPrimaryBeforeEventCuts->Fill(particleMC->Pt());
952 if(pdgcodeMC==2212)
953 fHistminsignalifProtonPMCPrimaryBeforeEventCuts->Fill(particleMC->Pt());
954 if(pdgcodeMC==-2212)
955 fHistminsignalifAntiProtonPMCPrimaryBeforeEventCuts->Fill(particleMC->Pt());
956
4637dfa3 957 if(TMath::Abs(mcZvertex)<10.0)
958 {
959 if(pdgcodeMC==211)
960 fHistminsignalifPionPMCPrimaryBeforeEventCutswithgoodZvertex->Fill(particleMC->Pt());
961 if(pdgcodeMC==-211)
962 fHistminsignalifAntiPionPMCPrimaryBeforeEventCutswithgoodZvertex->Fill(particleMC->Pt());
963 if(pdgcodeMC==321)
964 fHistminsignalifKaonPMCPrimaryBeforeEventCutswithgoodZvertex->Fill(particleMC->Pt());
965 if(pdgcodeMC==-321)
966 fHistminsignalifAntiKaonPMCPrimaryBeforeEventCutswithgoodZvertex->Fill(particleMC->Pt());
967 if(pdgcodeMC==2212)
968 fHistminsignalifProtonPMCPrimaryBeforeEventCutswithgoodZvertex->Fill(particleMC->Pt());
969 if(pdgcodeMC==-2212)
970 fHistminsignalifAntiProtonPMCPrimaryBeforeEventCutswithgoodZvertex->Fill(particleMC->Pt());
971 }
972 if(!isphysevent)
3a448a01 973 continue;
4637dfa3 974 if(!isgoodvertex)
975 continue;
3a448a01 976 if(pdgcodeMC==211)
4637dfa3 977 fHistminsignalifPionPMCPrimaryAfterEventCutsBeforeVertexZ->Fill(particleMC->Pt());
3a448a01 978 if(pdgcodeMC==-211)
4637dfa3 979 fHistminsignalifAntiPionPMCPrimaryAfterEventCutsBeforeVertexZ->Fill(particleMC->Pt());
3a448a01 980 if(pdgcodeMC==321)
4637dfa3 981 fHistminsignalifKaonPMCPrimaryAfterEventCutsBeforeVertexZ->Fill(particleMC->Pt());
3a448a01 982 if(pdgcodeMC==-321)
4637dfa3 983 fHistminsignalifAntiKaonPMCPrimaryAfterEventCutsBeforeVertexZ->Fill(particleMC->Pt());
3a448a01 984 if(pdgcodeMC==2212)
4637dfa3 985 fHistminsignalifProtonPMCPrimaryAfterEventCutsBeforeVertexZ->Fill(particleMC->Pt());
3a448a01 986 if(pdgcodeMC==-2212)
4637dfa3 987 fHistminsignalifAntiProtonPMCPrimaryAfterEventCutsBeforeVertexZ->Fill(particleMC->Pt());
988 if(!isvxerteinZ)
3a448a01 989 continue;
990 if(pdgcodeMC==211)
4637dfa3 991 {
992 fHistminsignalifPionPMCPrimary->Fill(particleMC->Pt());
993 }
994 if(pdgcodeMC==-211)
995 {
996 fHistminsignalifAntiPionPMCPrimary->Fill(particleMC->Pt());
997 }
3a448a01 998 if(pdgcodeMC==321)
4637dfa3 999 {
1000 fHistminsignalifKaonPMCPrimary->Fill(particleMC->Pt());
1001 }
3a448a01 1002 if(pdgcodeMC==-321)
4637dfa3 1003 {
1004 fHistminsignalifAntiKaonPMCPrimary->Fill(particleMC->Pt());
1005 }
3a448a01 1006 if(pdgcodeMC==2212)
4637dfa3 1007 {
1008 fHistminsignalifProtonPMCPrimary->Fill(particleMC->Pt());
1009 }
3a448a01 1010 if(pdgcodeMC==-2212)
4637dfa3 1011 {
1012 fHistminsignalifAntiProtonPMCPrimary->Fill(particleMC->Pt());
1013 }
1014
3a448a01 1015 }
388bf048 1016 }
1017 else if(fMC)
1018 return;
1019 else
1020 Printf("Data mode \n");
1021
4637dfa3 1022 if(!(isphysevent&&isgoodvertex&&isvxerteinZ))
3a448a01 1023 {
2b52537d 1024 //Printf("No Good event.........\n");
3a448a01 1025 PostData(1, flist);
2b52537d 1026 //Printf("end of Exec");
3a448a01 1027 return;
1028 }
4637dfa3 1029
e1b3d73c 1030
1031
1032 fHistStandartMulvSPD2->Fill(refmultiplicity,spdCorr);
3a448a01 1033 fHistStats->Fill(3);
4637dfa3 1034
1035 fHistZVertexAfterCut->Fill(vertex ->GetZ());
1036 fHistXYVertexAfterCut->Fill(vertex ->GetX(),vertex ->GetY());
3a448a01 1037
4637dfa3 1038 if(fMC)
2b52537d 1039 {
1040 fVertexshift->Fill(vertex->GetX()-mcXvertex,vertex->GetY()-mcYvertex,vertex->GetZ()-mcZvertex);
1041 fMulESDMulMCVz->Fill(refmultiplicity,fMCmult,vertex->GetZ());
1042 }
3a448a01 1043 if(fCuts==0)
1044 {
2b52537d 1045 //Printf("No CUTS Defined.........\n");
3a448a01 1046 PostData(1, flist);
2b52537d 1047 //Printf("end of Exec");
3a448a01 1048 return;
1049 }
1050
2b52537d 1051 //Printf("There are %d tracks in this event", fESD->GetNumberOfTracks());
3a448a01 1052 Int_t nTracks=fESD->GetNumberOfTracks();
1053
1054 Int_t mynumberoftracks=0;
1055 AliESDtrack *trackESD=0;
1056
4637dfa3 1057 const Float_t pionmass=AliPID::ParticleMass(2);
1058 const Float_t kaonmass=AliPID::ParticleMass(3);
1059 const Float_t protonmass=AliPID::ParticleMass(4);
3a448a01 1060
1061 for(int tr1=0;tr1<nTracks;tr1++)
1062 {
1063
1064 trackESD=fESD->GetTrack(tr1);
1065 //fHistStats->Fill(2);
1066
1067 Double_t pt=trackESD->Pt()*trackESD->GetSign();
1068 Double_t p=trackESD->P();
1069 Double_t eta=trackESD->Eta();
1070 Double_t phi=trackESD->Phi();
4637dfa3 1071 Float_t dcaxy=0.0;
1072 Float_t dcaz=0.0;
99a804d9 1073 trackESD->GetImpactParameters(dcaxy,dcaz);
3a448a01 1074 Double_t pz=trackESD->Pz();
4637dfa3 1075 UShort_t nTPCclusters=trackESD->GetTPCNcls();
1076 Float_t chi2=trackESD->GetTPCchi2();
1077 if(nTPCclusters>0)
1078 chi2=chi2/((Float_t)nTPCclusters);
1079 else
1080 chi2=-1.0;
1081 if(!trackESD->IsOn(AliESDtrack::kTPCin))
1082 continue;
1083 //Y assumtion
1084 Float_t yforpion=0.5*TMath::Log((TMath::Sqrt(pionmass*pionmass+p*p)+pz)/(TMath::Sqrt(pionmass*pionmass+p*p)-pz));
1085 Float_t yforkaon=0.5*TMath::Log((TMath::Sqrt(kaonmass*kaonmass+p*p)+pz)/(TMath::Sqrt(kaonmass*kaonmass+p*p)-pz));
1086 Float_t yforproton=0.5*TMath::Log((TMath::Sqrt(protonmass*protonmass+p*p)+pz)/(TMath::Sqrt(protonmass*protonmass+p*p)-pz));
1087
1088 if(TMath::Abs(yforpion)>fYCut&&TMath::Abs(yforkaon)>fYCut&&TMath::Abs(yforproton)>fYCut) //go trought one y cut
1089 continue;
1090 Int_t label=-1;
1091 if(fMC)
1092 label=trackESD->GetLabel();
1093 //if(label<0)
388bf048 1094 // Printf("label %d %f %f %f %f %d %f %f\n",label,p,pt,eta,chi2,nTPCclusters,dcaxy,dcaz);
4637dfa3 1095 Int_t pdgcode=0;
1096 Int_t primary=0;
1097 Double_t chargeMC=1.0;
1098 Float_t etaMC=10.0;
1099 Float_t ptMC=10.0;
1100 Int_t uniqueID=-1;
1101 Int_t pdgcodefake=0;
1102 Int_t primaryfake=0;
e1b3d73c 1103 TParticle *particle2=0x0;
4637dfa3 1104 if(label>=0&&stack&&fMC)
1105 {
1106 primary=stack->IsPhysicalPrimary(TMath::Abs(label));
e1b3d73c 1107 particle2 = stack->Particle(TMath::Abs(label));
4637dfa3 1108 pdgcode=particle2->GetPdgCode();
1109 chargeMC=particle2->GetPDG(0)->Charge()/3.0;
1110 etaMC=particle2->Eta();
1111 ptMC=particle2->Pt();
1112 uniqueID=particle2->GetUniqueID();
1113 }
e1b3d73c 1114 if(label<0&&stack&&fMC)
4637dfa3 1115 {
1116 primaryfake=stack->IsPhysicalPrimary(TMath::Abs(label));
e1b3d73c 1117 particle2 = stack->Particle(TMath::Abs(label));
4637dfa3 1118 pdgcodefake=particle2->GetPdgCode();
1119 uniqueID=particle2->GetUniqueID();
1120
1121 }
1122
1123 Int_t typeParticle=-10;
1124 if((primaryfake||primary))
1125 {
1126
1127 if((pdgcodefake==211||pdgcode==211)&&TMath::Abs(yforpion)<fYCut)
1128 typeParticle=0;
1129 if((pdgcodefake==321||pdgcode==321)&&TMath::Abs(yforkaon)<fYCut)
1130 typeParticle=1;
1131 if((pdgcodefake==2212||pdgcode==2212)&&TMath::Abs(yforproton)<fYCut)
1132 typeParticle=2;
1133 if((pdgcodefake==-211||pdgcode==-211)&&TMath::Abs(yforpion)<fYCut)
1134 typeParticle=3;
1135 if((pdgcodefake==-321||pdgcode==-321)&&TMath::Abs(yforkaon)<fYCut)
1136 typeParticle=4;
1137 if((pdgcodefake==-2212||pdgcode==-2212)&&TMath::Abs(yforproton)<fYCut)
1138 typeParticle=5;
1139
1140 if(primaryfake)
1141 typeParticle+=6;
1142 }
1143
1144 fTracksCutmonitoring->Fill(1,TMath::Abs(pt));
1145 if(fMC)
1146 {
1147 fParticlesCutmonitoring->Fill(typeParticle,1,TMath::Abs(pt));
1148 if(trackESD->IsOn(AliESDtrack::kTPCrefit))
1149 {
1150 fParticlesCutmonitoring->Fill(typeParticle,2,TMath::Abs(pt));
1151 if(nTPCclusters>70)
1152 {
1153 fParticlesCutmonitoring->Fill(typeParticle,3,TMath::Abs(pt));
1154 if(chi2<4.0)
1155 {
1156 fParticlesCutmonitoring->Fill(typeParticle,4,TMath::Abs(pt));
1157 fPtESDminusPtMCvPtESDafterTPCcuts->Fill(TMath::Abs(pt)-particle2->Pt(),TMath::Abs(pt),typeParticle);
1158 if(trackESD->IsOn(AliESDtrack::kITSrefit))
1159 {
1160 fParticlesCutmonitoring->Fill(typeParticle,5,TMath::Abs(pt));
1161 if(trackESD->HasPointOnITSLayer(0)||trackESD->HasPointOnITSLayer(1))
1162 {
1163 fParticlesCutmonitoring->Fill(typeParticle,6,TMath::Abs(pt));
1164 }
1165 }
1166 }
1167
1168 }
1169 }
1170 }
1171
1172
3a448a01 1173 fHistPhiPtBeforeCuts->Fill(phi,pt);//phi pt
1174 fHistEtaPtBeforeCuts->Fill(eta,pt);
4637dfa3 1175 fHistDCABeforeCuts->Fill(dcaxy,dcaz);
1176
1177
1178
1179
3a448a01 1180 //standart cuts
1181 if(fCuts->AcceptTrack(trackESD)==kFALSE)
1182 continue;
4637dfa3 1183 fTracksCutmonitoring->Fill(2,TMath::Abs(pt));
1184 if(fMC)
1185 fParticlesCutmonitoring->Fill(typeParticle,7,TMath::Abs(pt));
3a448a01 1186 //Tpc pid cut for debug
1187 Double_t pinTPC=trackESD->GetTPCInnerParam()->GetP();//momentum in primary vertex taken from TPC tracking
1188 Double_t pinTPCglobal=trackESD->GetInnerParam()->GetP();//momentum at the inner wall of the TPC taken from global tracking
4637dfa3 1189 Float_t sigKaon= fESDpid->GetTPCResponse().GetExpectedSignal(pinTPCglobal, AliPID::kKaon);
1190 Float_t sigProton= fESDpid->GetTPCResponse().GetExpectedSignal(pinTPCglobal, AliPID::kProton);
3a448a01 1191 Double_t tpcSignal =trackESD ->GetTPCsignal();
4637dfa3 1192
3a448a01 1193 if(fTPCPIDCUT)
1194 {
1195 if(fTPCPIDCUT->AcceptTrack(trackESD,fESD)==kFALSE)
1196 continue;
4637dfa3 1197 }
1198
3a448a01 1199 Bool_t cutDCA=SelectOnImpPar(trackESD);
1200
1201 //fHistStats->Fill(4);
1202 Double_t tmpQESD[4]={-1.0,-1.0,-1.0,-1.0};
1203 trackESD->GetITSdEdxSamples(tmpQESD);
1204 if(fCorrectSDD&&fMC)
4637dfa3 1205 CorrectSDD(tmpQESD);
3a448a01 1206 if(fCorrectSSD&&fMC)
4637dfa3 1207 CorrectSSD(tmpQESD);
3a448a01 1208 Int_t nSSDSDD=0;
1209 Int_t nSSDSDDall=0;
1210
3a448a01 1211
3a448a01 1212
1213 if(TMath::Abs(yforpion)<fYCut&&cutDCA)
1214 fHistNtrackwithstandardcuts->Fill(TMath::Abs(pt),0);
1215 if(TMath::Abs(yforkaon)<fYCut&&cutDCA)
1216 {
1217 fHistNtrackwithstandardcuts->Fill(TMath::Abs(pt),1);
1218 if(pt>0.0)
1219 fHistSignalinTPCKaonforstandardcuts->Fill(pt,(tpcSignal-sigKaon)/sigKaon);
1220 else
1221 fHistSignalinTPCAntiKaonforstandardcuts->Fill(TMath::Abs(pt),(tpcSignal-sigKaon)/sigKaon);
1222 }
1223 if(TMath::Abs(yforproton)<fYCut&&cutDCA)
1224 {
1225 fHistNtrackwithstandardcuts->Fill(TMath::Abs(pt),2);
1226 if(pt>0.0)
1227 fHistSignalinTPCProtonforstandardcuts->Fill(pt,(tpcSignal-sigProton)/sigProton);
1228 else
1229 fHistSignalinTPCAntiProtonforstandardcuts->Fill(TMath::Abs(pt),(tpcSignal-sigProton)/sigProton);
1230 }
1231
1232
1233 for (int iL=0;iL<4;iL++)
1234 {
1235 if(tmpQESD[iL]>fchargeCut)
1236 nSSDSDD++;
1237 if(tmpQESD[iL]>0.0)
1238 nSSDSDDall++;
1239 }
1240 if(nSSDSDDall>=3)
1241 fHistStats->Fill(4);
1242 //ITS PId cut
1243 if(nSSDSDD<3)
1244 {
1245 // cout<<"BAD "<<stack->Particle(TMath::Abs(trackESD->GetLabel()))->GetPdgCode()<<endl;
1246 continue;
1247 }
4637dfa3 1248 fTracksCutmonitoring->Fill(3,TMath::Abs(pt));
1249 if(fMC)
1250 fParticlesCutmonitoring->Fill(typeParticle,8,TMath::Abs(pt));
1251 if(cutDCA)
1252 {
1253 fTracksCutmonitoring->Fill(4,TMath::Abs(pt));
1254 if(fMC)
1255 {
1256 fParticlesCutmonitoring->Fill(typeParticle,9,TMath::Abs(pt));
1257 fPtESDminusPtMCvPtESDafterallcuts->Fill(TMath::Abs(pt)-particle2->Pt(),TMath::Abs(pt),typeParticle);
1258 }
1259 }
3a448a01 1260 if(TMath::Abs(yforpion)<fYCut&&cutDCA)
1261 {
1262 fHistNtrackwithITSPIDcuts->Fill(TMath::Abs(pt),0);
1263 if(pt>0.0)
4637dfa3 1264 {
3a448a01 1265 fPionNTPCClusters->Fill(pt,nTPCclusters);
4637dfa3 1266 fPionchi2->Fill(pt,chi2);
1267 }
3a448a01 1268 else
4637dfa3 1269 {
1270 fAntiPionNTPCClusters->Fill(TMath::Abs(pt),nTPCclusters);
1271 fAntiPionchi2->Fill(TMath::Abs(pt),chi2);
1272 }
3a448a01 1273 }
1274 if(TMath::Abs(yforkaon)<fYCut&&cutDCA)
1275 {
1276 fHistNtrackwithITSPIDcuts->Fill(TMath::Abs(pt),1);
1277 if(pt>0.0)
1278 fHistSignalinTPCKaonforITSPIDcuts->Fill(pt,(tpcSignal-sigKaon)/sigKaon);
1279 else
1280 fHistSignalinTPCAntiKaonforITSPIDcuts->Fill(TMath::Abs(pt),(tpcSignal-sigKaon)/sigKaon);
1281 }
1282 if(TMath::Abs(yforproton)<fYCut&&cutDCA)
1283 {
1284 fHistNtrackwithITSPIDcuts->Fill(TMath::Abs(pt),2);
1285 if(pt>0.0)
1286 fHistSignalinTPCProtonforITSPIDcuts->Fill(pt,(tpcSignal-sigProton)/sigProton);
1287 else
1288 fHistSignalinTPCAntiProtonforITSPIDcuts->Fill(TMath::Abs(pt),(tpcSignal-sigProton)/sigProton);
1289 }
1290 fHistStats->Fill(5);
1291 fHistPhiPtAfterCuts->Fill(phi,pt);
1292 fHistEtaPtAfterCuts->Fill(eta,pt);
1293 fHistDCAAfterCuts->Fill(dcaxy,dcaz);
1294 fHistPminusTPCinPAfterCuts->Fill(pinTPC-p,pinTPC);
1295 fHistPminusTPCinPglobalAfterCuts->Fill(pinTPC-p,pinTPCglobal);
1296 if(tmpQESD[0]>fchargeCut)
1297 {
1298 fHistL3dEP->Fill(p,tmpQESD[0]);
1299 fHistL3dETPCinP->Fill(pinTPC,tmpQESD[0]);
1300 }
1301 if(tmpQESD[1]>fchargeCut)
1302 {
1303 fHistL4dEP->Fill(p,tmpQESD[1]);
1304 fHistL4dETPCinP->Fill(pinTPC,tmpQESD[1]);
1305 }
1306 if(tmpQESD[2]>fchargeCut)
1307 {
1308 fHistL5dEP->Fill(p,tmpQESD[2]);
1309 fHistL5dETPCinP->Fill(pinTPC,tmpQESD[2]);
1310 }
1311 if(tmpQESD[3]>fchargeCut)
1312 {
1313 fHistL6dEP->Fill(p,tmpQESD[3]);
1314 fHistL6dETPCinP->Fill(pinTPC,tmpQESD[3]);
1315 }
1316 Float_t myITSsignal=0.0;
1317 Float_t minITSsignal=0.0;
1318 Int_t whichLmin=-1;
1319 Int_t nosignaL=-1;
1320 if(nSSDSDD==3)
1321 {
e1b3d73c 1322 Double_t tmp2QESD[3]={-1.0,-1.0,-1.0};
3a448a01 1323 Int_t iLnotZero=0;
1324 for (int iL=0;iL<4;iL++)
1325 {
1326 if(tmpQESD[iL]>fchargeCut)
1327 {
1328 tmp2QESD[iLnotZero]=tmpQESD[iL];
1329 iLnotZero++;
1330 }
1331 else
1332 nosignaL=iL;
1333 }
1334 whichLmin=TMath::LocMin(3,tmp2QESD);
1335 if(nosignaL>-1&&nosignaL<=whichLmin)
1336 whichLmin++;
1337 minITSsignal=TMath::MinElement(3,tmp2QESD);
1338 myITSsignal=MyITSsignalusing3points(tmp2QESD);
1339 }
1340 if(nSSDSDD==4)
1341 {
1342 myITSsignal=MyITSsignalusing4points(tmpQESD);
1343 whichLmin=TMath::LocMin(4,tmpQESD);
1344 minITSsignal=TMath::MinElement(4,tmpQESD);
1345 }
1346
1347 if(whichLmin==0)
4637dfa3 1348 fHistwhichhasmin->Fill(0.0,tmpQESD[0]);
3a448a01 1349 if(whichLmin==1)
4637dfa3 1350 fHistwhichhasmin->Fill(1.0,tmpQESD[1]);
3a448a01 1351 if(whichLmin==2)
4637dfa3 1352 fHistwhichhasmin->Fill(2.0,tmpQESD[2]);
3a448a01 1353 if(whichLmin==3)
4637dfa3 1354 fHistwhichhasmin->Fill(3.0,tmpQESD[3]);
3a448a01 1355 if(pt>0.0)
1356 {
1357 fHistMydEPpositive->Fill(p,myITSsignal);
1358 fHistMydETPCinPglobalpositive->Fill(pinTPCglobal,myITSsignal);
1359 fHistMydETPCinPpositive->Fill(pinTPC,myITSsignal);
1360 }
1361 else
1362 {
1363 fHistMydEPnegative->Fill(p,myITSsignal);
1364 fHistMydETPCinPglobalnegative->Fill(pinTPCglobal,myITSsignal);
1365 fHistMydETPCinPnegative->Fill(pinTPC,myITSsignal);
1366 }
1367 Float_t signaltouse=myITSsignal;
1368
1369
4637dfa3 1370 Float_t itspidsignalforpions=TMath::Log(signaltouse)-TMath::Log(fESDpid->GetITSResponse().Bethe(p,pionmass,kFALSE));
1371 Float_t itspidsignalforkaons=TMath::Log(signaltouse)-TMath::Log(fESDpid->GetITSResponse().Bethe(p,kaonmass,kFALSE));
1372 Float_t itspidsignalforprotons=TMath::Log(signaltouse)-TMath::Log(fESDpid->GetITSResponse().Bethe(p,protonmass,kFALSE));
3a448a01 1373 if(cutDCA)
3a448a01 1374 {
4637dfa3 1375 mynumberoftracks++;
1376 if(nSSDSDD==4)
1377 fHistMysignalminusESD->Fill((signaltouse-trackESD->GetITSsignal())/signaltouse);
3a448a01 1378 }
388bf048 1379 //Printf("Select on clean \n");
3a448a01 1380 if(TMath::Abs(yforpion)<=fYCut)
1381 {
1ea543bb 1382 Float_t weight=1.0;
1383 if(fMC)
1384 weight=GetWeight(label,stack);
3a448a01 1385 if(pt>0.0)
1386 {
1387 if(cutDCA)
1388 {
1ea543bb 1389 if(fMC)
1390 fHistminsignalifPionP->Fill(pt,itspidsignalforpions,weight);
1391 else
1392 fHistminsignalifPionP->Fill(pt,itspidsignalforpions);
1393 if(itspidsignalforpions>-0.5&&itspidsignalforpions<0.2) //select on clean
3a448a01 1394 {
1395 fDCAXYZforcleanPions->Fill(pt,dcaxy,dcaz);
1396 if(fMC)
1397 {
1398 if(primary&&pdgcode==211)
1399 fDCAXYZforcleanPionsMCPrimary->Fill(pt,dcaxy,dcaz);
1ea543bb 1400 else if(!primary&&pdgcode==211&&uniqueID==kPDecay)
3a448a01 1401 fDCAXYZforcleanPionsWD->Fill(pt,dcaxy,dcaz);
1402 else if(!primary&&pdgcode==211&&uniqueID==kPHadronic)
1403 fDCAXYZforcleanPionsHI->Fill(pt,dcaxy,dcaz);
1ea543bb 1404 else if(primary&&(pdgcode==-11||pdgcode==-13))
1405 fDCAXYZforcleanPionsMEPrimary->Fill(pt,dcaxy,dcaz);
1406 else if(!primary&&(pdgcode==-11||pdgcode==-13))
1407 fDCAXYZforcleanPionsMESecondary->Fill(pt,dcaxy,dcaz);
3a448a01 1408 else
1409 fDCAXYZforcleanPionsR->Fill(pt,dcaxy,dcaz);
1410
1411 }
1412 } //select on clean
1413 if(primary)
1414 {
1415 if(pdgcode==211)
1416 fHistminsignalifPionPPrimary->Fill(pt,itspidsignalforpions);
1417 }
1418 else
1419 {
1ea543bb 1420 if(pdgcode==211)
1421 fHistminsignalifPionPSecondary->Fill(pt,itspidsignalforpions,weight);
3a448a01 1422 //cout<<pdgcode<<" "<< uniqueID<<" "<<kPDecay<<" "<<kPHadronic<<endl;
1423 }
1424 if(pdgcode==-11||pdgcode==-13)
1425 {
1426 fHistminsignalifMuEPositiveP->Fill(pt,itspidsignalforpions);
4637dfa3 1427 if(!primary)
3a448a01 1428 {
4637dfa3 1429 if(pdgcode==-11)
1430 {
1431 fHistStats->Fill(6);
1432 fAntiElectronsource->Fill(pt,uniqueID);
1433 }
1434 else if(pdgcode==-13)
1435 {
1436 fHistStats->Fill(7);
1437 fAntiMuonsource->Fill(pt,uniqueID);
1438 }
3a448a01 1439 }
4637dfa3 1440 else if(primary&&pdgcode==-11)
1441 {
388bf048 1442 Printf("%d Mom",particle2->GetFirstMother());
1443 if(particle2->GetFirstMother()>-1)
1444 fPrimaryElectronsMother->Fill(TMath::Abs(stack->Particle(particle2->GetFirstMother())->GetPdgCode()));
1445 else
1446 fPrimaryElectronsMother->Fill(-1);
4637dfa3 1447 fAntiElectronsource->Fill(pt,0);
1448 }
1449 else if(primary&&pdgcode==-13)
1450 fAntiMuonsource->Fill(pt,0);
3a448a01 1451 }
1452 if(pdgcodefake==211)
1453 {
1454 if(primaryfake)
1455 fHistminsignalifPionPrimaryfake->Fill(pt,itspidsignalforpions);
1456 else
1457 fHistminsignalifPionSecondaryfake->Fill(pt,itspidsignalforpions);
1458 }
1459 }
1ea543bb 1460 if(itspidsignalforpions>-0.5&&itspidsignalforpions<0.2) //select on clean
3a448a01 1461 {
1462 fDCAXYZOpenforcleanPions->Fill(pt,dcaxy,dcaz);
1463 if(fMC)
1464 {
1465 if(primary&&pdgcode==211)
1466 fDCAXYZOpenforcleanPionsMCPrimary->Fill(pt,dcaxy,dcaz);
1467 else if(!primary&&pdgcode==211&&uniqueID==kPDecay)
1468 fDCAXYZOpenforcleanPionsWD->Fill(pt,dcaxy,dcaz);
1469 else if(!primary&&pdgcode==211&&uniqueID==kPHadronic)
1470 fDCAXYZOpenforcleanPionsHI->Fill(pt,dcaxy,dcaz);
1ea543bb 1471 else if(primary&&(pdgcode==-11||pdgcode==-13))
1472 fDCAXYZOpenforcleanPionsMEPrimary->Fill(pt,dcaxy,dcaz);
3a448a01 1473 else if(!primary&&(pdgcode==-11||pdgcode==-13))
1ea543bb 1474 fDCAXYZOpenforcleanPionsMESecondary->Fill(pt,dcaxy,dcaz);
3a448a01 1475 else
1476 fDCAXYZOpenforcleanPionsR->Fill(pt,dcaxy,dcaz);
1477 }
1478 }
1479 }
1480 else
1481 {
1482 if(cutDCA)
1483 {
1ea543bb 1484 if(fMC)
1485 fHistminsignalifAntiPionP->Fill(TMath::Abs(pt),itspidsignalforpions,weight);
1486 else
1487 fHistminsignalifAntiPionP->Fill(TMath::Abs(pt),itspidsignalforpions);
1488 if(itspidsignalforpions>-0.5&&itspidsignalforpions<0.2)//select on clean
3a448a01 1489 {
1490 fDCAXYZforcleanAntiPions->Fill(TMath::Abs(pt),dcaxy,dcaz);
1491 if(fMC)
1492 {
1493 if(primary&&pdgcode==-211)
1494 fDCAXYZforcleanAntiPionsMCPrimary->Fill(TMath::Abs(pt),dcaxy,dcaz);
1495 else if(!primary&&pdgcode==-211&&uniqueID==kPDecay)
1496 fDCAXYZforcleanAntiPionsWD->Fill(TMath::Abs(pt),dcaxy,dcaz);
1497 else if(!primary&&pdgcode==-211&&uniqueID==kPHadronic)
1498 fDCAXYZforcleanAntiPionsHI->Fill(TMath::Abs(pt),dcaxy,dcaz);
1ea543bb 1499 else if(primary&&(pdgcode==11||pdgcode==13))
1500 fDCAXYZforcleanAntiPionsMEPrimary->Fill(TMath::Abs(pt),dcaxy,dcaz);
3a448a01 1501 else if(!primary&&(pdgcode==11||pdgcode==13))
1ea543bb 1502 fDCAXYZforcleanAntiPionsMESecondary->Fill(TMath::Abs(pt),dcaxy,dcaz);
3a448a01 1503 else
1504 fDCAXYZforcleanAntiPionsR->Fill(TMath::Abs(pt),dcaxy,dcaz);
1505 }
1506 } //select on clean
1507 if(primary)
1508 {
1509 if(pdgcode==-211)
1510 fHistminsignalifAntiPionPPrimary->Fill(TMath::Abs(pt),itspidsignalforpions);
1511 }
1512 else
1513 {
1514 if(pdgcode==-211)
1ea543bb 1515 fHistminsignalifAntiPionPSecondary->Fill(TMath::Abs(pt),itspidsignalforpions,weight);
3a448a01 1516 //cout<<pdgcode<<" "<< uniqueID<<" "<<kPDecay<<" "<<kPHadronic<<endl;
1517 }
1518 if(pdgcode==11||pdgcode==13)
1519 {
1520 fHistminsignalifMuENegativeP->Fill(TMath::Abs(pt),itspidsignalforpions);
4637dfa3 1521 if(!primary)
3a448a01 1522 {
4637dfa3 1523 if(pdgcode==11)
1524 {
1525 fHistStats->Fill(6);
1526 fElectronsource->Fill(TMath::Abs(pt),uniqueID);
1527 }
1528 else if(pdgcode==13)
1529 {
1530 fHistStats->Fill(7);
1531 fMuonsource->Fill(TMath::Abs(pt),uniqueID);
1532 }
3a448a01 1533 }
4637dfa3 1534 else if(primary&&pdgcode==11)
1535 {
388bf048 1536 Printf("%d Mom",particle2->GetFirstMother());
1537 if(particle2->GetFirstMother()>-1)
1538 fPrimaryElectronsMother->Fill(TMath::Abs(stack->Particle(particle2->GetFirstMother())->GetPdgCode()));
1539 else
1540 fPrimaryElectronsMother->Fill(-1);
4637dfa3 1541 fElectronsource->Fill(TMath::Abs(pt),0);
1542 }
1543 else if(primary&&pdgcode==13)
1544 fMuonsource->Fill(TMath::Abs(pt),0);
3a448a01 1545 }
1546 if(pdgcodefake==-211)
1547 {
1548 if(primaryfake)
1549 fHistminsignalifAntiPionPrimaryfake->Fill(TMath::Abs(pt),itspidsignalforpions);
1550 else
1551 fHistminsignalifAntiPionSecondaryfake->Fill(TMath::Abs(pt),itspidsignalforpions);
1552 }
1553 }
1ea543bb 1554 if(itspidsignalforpions>-0.5&&itspidsignalforpions<0.2)//select on clean
3a448a01 1555 {
1556 fDCAXYZOpenforcleanAntiPions->Fill(TMath::Abs(pt),dcaxy,dcaz);
1557 if(fMC)
1558 {
1ea543bb 1559 if(primary&&pdgcode==-211)
3a448a01 1560 fDCAXYZOpenforcleanAntiPionsMCPrimary->Fill(TMath::Abs(pt),dcaxy,dcaz);
1561 else if(!primary&&pdgcode==-211&&uniqueID==kPDecay)
1562 fDCAXYZOpenforcleanAntiPionsWD->Fill(TMath::Abs(pt),dcaxy,dcaz);
1563 else if(!primary&&pdgcode==-211&&uniqueID==kPHadronic)
1564 fDCAXYZOpenforcleanAntiPionsHI->Fill(TMath::Abs(pt),dcaxy,dcaz);
1ea543bb 1565 else if(primary&&(pdgcode==11||pdgcode==13))
1566 fDCAXYZOpenforcleanAntiPionsMEPrimary->Fill(TMath::Abs(pt),dcaxy,dcaz);
3a448a01 1567 else if(!primary&&(pdgcode==11||pdgcode==13))
1ea543bb 1568 fDCAXYZOpenforcleanAntiPionsMESecondary->Fill(TMath::Abs(pt),dcaxy,dcaz);
3a448a01 1569 else
1570 fDCAXYZOpenforcleanAntiPionsR->Fill(TMath::Abs(pt),dcaxy,dcaz);
1571 }
1572 } //sel
1573 }
1574 }
1575 if(TMath::Abs(yforkaon)<=fYCut&&cutDCA)
1576 {
1577 if(pt>0.0)
1578 {
1579 fHistminsignalifKaonP->Fill(pt,itspidsignalforkaons);
4637dfa3 1580 if((itspidsignalforkaons>-0.2)&&(itspidsignalforkaons<0.2))
1581 {
1582 fKaonNTPCClusters->Fill(pt,nTPCclusters);
1583 fKaonchi2->Fill(pt,chi2);
1584 }
3a448a01 1585 if(primary)
1586 {
1587 if(pdgcode==321)
1588 fHistminsignalifKaonPPrimary->Fill(pt,itspidsignalforkaons);
1589 }
1590 else
1591 {
1592 if(pdgcode==321)
1593 fHistminsignalifKaonPSecondary->Fill(pt,itspidsignalforkaons);
1594 }
1595 if(pdgcodefake==321)
1596 {
1597 if(primaryfake)
1598 fHistminsignalifKaonPrimaryfake->Fill(pt,itspidsignalforkaons);
1599 else
1600 fHistminsignalifKaonSecondaryfake->Fill(pt,itspidsignalforkaons);
1601 }
4637dfa3 1602
1603
3a448a01 1604 }
1605 else
1606 {
1607 fHistminsignalifAntiKaonP->Fill(TMath::Abs(pt),itspidsignalforkaons);
4637dfa3 1608 if((itspidsignalforkaons>-0.2)&&(itspidsignalforkaons<0.2))
1609 {
1610 fAntiKaonNTPCClusters->Fill(TMath::Abs(pt),nTPCclusters);
1611 fAntiKaonchi2->Fill(TMath::Abs(pt),chi2);
1612 }
3a448a01 1613 if(primary)
1614 {
1615 if(pdgcode==-321)
1616 fHistminsignalifAntiKaonPPrimary->Fill(TMath::Abs(pt),itspidsignalforkaons);
1617 }
1618 else
1619 {
1620 if(pdgcode==-321)
1621 fHistminsignalifAntiKaonPSecondary->Fill(TMath::Abs(pt),itspidsignalforkaons);
1622 }
1623 if(pdgcodefake==-321)
1624 {
1625 if(primaryfake)
1626 fHistminsignalifAntiKaonPrimaryfake->Fill(TMath::Abs(pt),itspidsignalforkaons);
1627 else
1628 fHistminsignalifAntiKaonSecondaryfake->Fill(TMath::Abs(pt),itspidsignalforkaons);
1629
1630 }
1631 }
1632 }
1633 if(TMath::Abs(yforproton)<=fYCut)
1634 {
1ea543bb 1635 Float_t weight=1.0;
1636 if(fMC)
1637 weight=GetWeight(label,stack);
3a448a01 1638 if(pt>0.0)
1639 {
1640 if(cutDCA)
1641 {
1ea543bb 1642 if(fMC)
1643 fHistminsignalifProtonP->Fill(pt,itspidsignalforprotons,weight);
1644 else
1645 fHistminsignalifProtonP->Fill(pt,itspidsignalforprotons);
3a448a01 1646
1647 //if(((itspidsignalforprotons))>(TMath::Abs(pt)<0.45?-0.2:0.0))&&(itspidsignalforprotons))<0.2)//select on
1648 // clean
1649 if((itspidsignalforprotons>-0.2)&&(itspidsignalforprotons<0.5))
1650 {
1651 fDCAXYZforcleanProtons->Fill(pt,dcaxy,dcaz);
4637dfa3 1652 fProtonNTPCClusters->Fill(pt,nTPCclusters);
1653 fProtonchi2->Fill(pt,chi2);
3a448a01 1654 if(fMC)
1655 {
1656 if(primary&&pdgcode==2212)
1657 fDCAXYZforcleanProtonsMCPrimary->Fill(pt,dcaxy,dcaz);
1658 else if(!primary&&!primaryfake&&(pdgcode==2212||pdgcodefake==2212)&&uniqueID==kPDecay)
1659 fDCAXYZforcleanProtonsWD->Fill(pt,dcaxy,dcaz);
1660 else if(!primary&&!primaryfake&&(pdgcode==2212||pdgcodefake==2212)&&uniqueID==kPHadronic)
1661 fDCAXYZforcleanProtonsHI->Fill(pt,dcaxy,dcaz);
1662 else
1663 fDCAXYZforcleanProtonsR->Fill(pt,dcaxy,dcaz);
1664 }
1665 }//select on clean
1666 if(primary)
1667 {
1668 if(pdgcode==2212)
1669 fHistminsignalifProtonPPrimary->Fill(pt,itspidsignalforprotons);
1670 }
1671 else if(primaryfake)
1672 {
1673 if(pdgcodefake==2212)
1674 fHistminsignalifProtonPPrimaryfake->Fill(pt,itspidsignalforprotons);
1675 }
1676 else
1677 {
1ea543bb 1678 if(pdgcode==2212&&uniqueID==kPDecay)
1679 fHistminsignalifProtonPSecondaryWD->Fill(pt,itspidsignalforprotons,weight);
3a448a01 1680 else if(pdgcode==2212&&uniqueID==kPHadronic)
1681 fHistminsignalifProtonPSecondaryHI->Fill(pt,itspidsignalforprotons);
1682 else if(pdgcodefake==2212&&uniqueID==kPDecay)
1ea543bb 1683 fHistminsignalifProtonPSecondaryWDfake->Fill(pt,itspidsignalforprotons,weight);
3a448a01 1684 else if(pdgcodefake==2212&&uniqueID==kPHadronic)
1685 fHistminsignalifProtonPSecondaryHIfake->Fill(pt,itspidsignalforprotons);
1686 else if(fMC)
1687 fHistminsignalifProtonPSecondaryRest->Fill(pt,itspidsignalforprotons);
1688 }
1689 }
1690
1691 if((itspidsignalforprotons>-0.2)&&(itspidsignalforprotons<0.5))
1692 {
1693 fDCAXYZOpenforcleanProtons->Fill(pt,dcaxy,dcaz);
1694 if(fMC)
1695 {
1696 if(primary&&pdgcode==2212)
1697 fDCAXYZOpenforcleanProtonsMCPrimary->Fill(pt,dcaxy,dcaz);
1698 else if(!primary&&!primaryfake&&(pdgcode==2212||pdgcodefake==2212)&&uniqueID==kPDecay)
1699 fDCAXYZOpenforcleanProtonsWD->Fill(pt,dcaxy,dcaz);
1700 else if(!primary&&!primaryfake&&(pdgcode==2212||pdgcodefake==2212)&&uniqueID==kPHadronic)
1701 fDCAXYZOpenforcleanProtonsHI->Fill(pt,dcaxy,dcaz);
1702 else
1703 fDCAXYZOpenforcleanProtonsR->Fill(pt,dcaxy,dcaz);
1704 }
1705 }//select on clean
1706
1707 }
1708 else
1709 {
1710 if(cutDCA)
1711 {
1ea543bb 1712 if(fMC)
1713 fHistminsignalifAntiProtonP->Fill(TMath::Abs(pt),itspidsignalforprotons,weight);
1714 else
1715 fHistminsignalifAntiProtonP->Fill(TMath::Abs(pt),itspidsignalforprotons);
3a448a01 1716 if((itspidsignalforprotons>-0.2)&&(itspidsignalforprotons<0.5))
1717 {//select on clean
1718 fDCAXYZforcleanAntiProtons->Fill(TMath::Abs(pt),dcaxy,dcaz);
4637dfa3 1719
3a448a01 1720 if(fMC)
1721 {
1722 if(primary&&pdgcode==-2212)
1723 fDCAXYZforcleanAntiProtonsMCPrimary->Fill(TMath::Abs(pt),dcaxy,dcaz);
1724 else if(!primary&&!primaryfake&&(pdgcode==-2212||pdgcodefake==-2212)&&uniqueID==kPDecay)
1725 fDCAXYZforcleanAntiProtonsWD->Fill(TMath::Abs(pt),dcaxy,dcaz);
1726 else if(!primary&&!primaryfake&&(pdgcode==-2212||pdgcodefake==-2212)&&uniqueID==kPHadronic)
1727 fDCAXYZforcleanAntiProtonsHI->Fill(TMath::Abs(pt),dcaxy,dcaz);
1728 else if(fMC)
1729 fDCAXYZforcleanAntiProtonsR->Fill(TMath::Abs(pt),dcaxy,dcaz);
1730 }
1731 }//select on clean
1732 if(primary)
1733 {
1734 if(pdgcode==-2212)
1735 fHistminsignalifAntiProtonPPrimary->Fill(TMath::Abs(pt),itspidsignalforprotons);
1736 }
1737 else if(primaryfake)
1738 {
1739 if(pdgcodefake==-2212)
1740 fHistminsignalifAntiProtonPPrimaryfake->Fill(TMath::Abs(pt),itspidsignalforprotons);
1741 }
1742 else
1743 {
1744 if(pdgcode==-2212&&uniqueID==kPDecay)
1ea543bb 1745 fHistminsignalifAntiProtonPSecondaryWD->Fill(TMath::Abs(pt),itspidsignalforprotons,weight);
3a448a01 1746 else if(pdgcode==-2212&&uniqueID==kPHadronic)
1747 fHistminsignalifAntiProtonPSecondaryHI->Fill(TMath::Abs(pt),itspidsignalforprotons);
1748 else if(pdgcodefake==-2212&&uniqueID==kPDecay)
1ea543bb 1749 fHistminsignalifAntiProtonPSecondaryWDfake->Fill(TMath::Abs(pt),itspidsignalforprotons,weight);
3a448a01 1750 else if(pdgcodefake==-2212&&uniqueID==kPHadronic)
1751 fHistminsignalifAntiProtonPSecondaryHIfake->Fill(TMath::Abs(pt),itspidsignalforprotons);
1752 else if(fMC)
1753 fHistminsignalifAntiProtonPSecondaryRest->Fill(TMath::Abs(pt),itspidsignalforprotons);
1754 }
1755 }
1756 if((itspidsignalforprotons>-0.2)&&(itspidsignalforprotons<0.5))
1757 {//select on clean
1758 fDCAXYZOpenforcleanAntiProtons->Fill(TMath::Abs(pt),dcaxy,dcaz);
4637dfa3 1759 fAntiProtonNTPCClusters->Fill(TMath::Abs(pt),nTPCclusters);
1760 fAntiProtonchi2->Fill(TMath::Abs(pt),chi2);
3a448a01 1761 if(fMC)
1762 {
1763 if(primary&&pdgcode==-2212)
1764 fDCAXYZOpenforcleanAntiProtonsMCPrimary->Fill(TMath::Abs(pt),dcaxy,dcaz);
1765 else if(!primary&&!primaryfake&&(pdgcode==-2212||pdgcodefake==-2212)&&uniqueID==kPDecay)
1766 fDCAXYZOpenforcleanAntiProtonsWD->Fill(TMath::Abs(pt),dcaxy,dcaz);
1767 else if(!primary&&!primaryfake&&(pdgcode==-2212||pdgcodefake==-2212)&&uniqueID==kPHadronic)
1768 fDCAXYZOpenforcleanAntiProtonsHI->Fill(TMath::Abs(pt),dcaxy,dcaz);
1769 else if(fMC)
1770 fDCAXYZOpenforcleanAntiProtonsR->Fill(TMath::Abs(pt),dcaxy,dcaz);
1771 }
1772 }
1773 }
1774 }
1775 }
1ea543bb 1776 fHistStandartMul->Fill(refmultiplicity);
3a448a01 1777 fHistMytrackMul->Fill(mynumberoftracks);
1778
1779
3a448a01 1780 // Post output data.
1781 Printf("Done..........\n");
1782 PostData(1, flist);
2b52537d 1783 //Printf("....................Done!\n");
1784 //Printf("end of Exec");
3a448a01 1785}
1786
1787//________________________________________________________________________
1788void AliAnalysisChargedHadronSpectraITSTruncatedMeanTask::Terminate(Option_t *)
1789{
1790 //Terminate
1791 if(fCuts)
1792 fCuts->Dump();
3a448a01 1793 Printf("YCut=%f",fYCut);
1794 Printf("nsigma=%f",fsigmacut);
1795 Printf("DCA cut xy sigma =%f zsigma=%f", fnsigmaxy, fnsigmaz);
1796 Printf("ChargeCut=%f ", fchargeCut);
4637dfa3 1797 Printf("DCAxy parameters %f %f %f",fdcaxypar[0],fdcaxypar[1],fdcaxypar[2]);
1798 Printf("DCAz parameters %f %f %f %f",fdcazpar[0],fdcazpar[1],fdcazpar[2],fdcazpar[3]);
3a448a01 1799 if(fTPCPIDCUT)
1800 fTPCPIDCUT->Dump();
1801 if(fMC)
1802 Printf("MC On\n");
1803 if(fCorrectSDD)
1804 Printf("correct SDD On\n");
1805 if(fCorrectSSD)
1806 Printf("correct SSD On\n");
1ea543bb 1807 if(fK0weight)
1808 {
1809 Printf("weigth for pions");
1810 fK0weight->Print("All");
1811 }
1812 if(flambdaweight)
1813 {
1814 Printf("weigth for protons");
1815 flambdaweight->Print("All");
1816 }
1817 if(fAntilambdaweight)
1818 {
1819 Printf("weigth for antiprotons");
1820 fAntilambdaweight->Print("All");
1821 }
1822 Printf("Mul low %d Mul up %d",fLowMultiplicity, fUpMultiplicity);
4637dfa3 1823 Printf("cent low %f cent up %f",fLowCentrality,fUpCentrality);
1824 if(fdovertexrescuts)
1825 Printf("Veretx resolution cut");
3a448a01 1826 Printf("end of Terminate");
1827}
1828//___________________________________________________
1829Float_t AliAnalysisChargedHadronSpectraITSTruncatedMeanTask::MyITSsignalusing4points(Double_t* tmpQESD) const
1830{
1831 //dE signal in case of 4 points in ITS
1832 Int_t indexes[4]={-1,-1,-1,-1};
1833 TMath::Sort(4,tmpQESD,indexes,0);
1834 return 0.5*(tmpQESD[indexes[0]]+tmpQESD[indexes[1]]);
1835}
1836//________________________________________________________
1837Float_t AliAnalysisChargedHadronSpectraITSTruncatedMeanTask::MyITSsignalusing3points( Double_t* tmpQESD) const
1838{
1839 //dE signal in case of 3 points in ITS
1840 Int_t indexes[3]={-1,-1,-1};
1841 TMath::Sort(3,tmpQESD,indexes,0);
1842 //cout<<tmpQESD[indexes[0]]<<" "<<tmpQESD[indexes[1]]<<" "<<tmpQESD[indexes[2]]<<endl;
1843 return (tmpQESD[indexes[0]]+tmpQESD[indexes[1]]*0.5)/1.5;
3a448a01 1844}
3a448a01 1845//____________________________________________________________________________________________________
4637dfa3 1846 void AliAnalysisChargedHadronSpectraITSTruncatedMeanTask::SetFunctionParam( Double_t * const par)
3a448a01 1847 {
4637dfa3 1848 fESDpid->GetITSResponse().SetBetheBlochParamsITSTPC(par);
3a448a01 1849 }
1850 //_____________________________________________________________________________________________________
1851 void AliAnalysisChargedHadronSpectraITSTruncatedMeanTask::CorrectSDD(Double_t *tmpQESD) const
1852 {
1853 //correction of SDD signal
1854 if(tmpQESD[0]>0.0)
1855 {
1856 tmpQESD[0]=tmpQESD[0]*3.34/5.43;
1857 if(tmpQESD[0]<30.0)
1858 tmpQESD[0]=-1.0;
1859 }
1860 if(tmpQESD[1]>0.0)
1861 {
1862 tmpQESD[1]=tmpQESD[1]*3.34/5.43;
1863 if(tmpQESD[1]<30.0)
1864 tmpQESD[1]=-1.0;
1865 }
1866 }
1867 //_____________________________________________________________________________________________________
1868 void AliAnalysisChargedHadronSpectraITSTruncatedMeanTask::CorrectSSD(Double_t *tmpQESD) const
1869 {
1870 //Correction of SSD signal
1871 tmpQESD[2]=(85.0/77.0)*tmpQESD[2];
1872 tmpQESD[3]=(85.0/77.0)*tmpQESD[3];
1873 }
1874 //_______________________________________________________________________________________________________
1875 Bool_t AliAnalysisChargedHadronSpectraITSTruncatedMeanTask::SelectOnImpPar(AliESDtrack* t) const
1876 {
1877 //
1878 // cut on transverse impact parameter
1879 //
1880 Float_t d0z0[2],covd0z0[3];
1881 t->GetImpactParameters(d0z0,covd0z0);
4637dfa3 1882 Float_t sigma= fdcaxypar[0]+fdcaxypar[1]/TMath::Power(t->Pt(),fdcaxypar[2]);
3a448a01 1883 Float_t d0max = fnsigmaxy*sigma;
1884 //
4637dfa3 1885 Float_t sigmaZ = fdcazpar[0]+fdcazpar[1]/TMath::Power(t->Pt(),fdcazpar[2]);
3a448a01 1886 if (t->Pt() > 1)
4637dfa3 1887 sigmaZ = fdcazpar[3];
3a448a01 1888 Float_t d0maxZ = fnsigmaz*sigmaZ;
1889 //
1890 if(TMath::Abs(d0z0[0]) < d0max && TMath::Abs(d0z0[1]) < d0maxZ) //error
1891 return kTRUE;
1892 return kFALSE;
1893}
1ea543bb 1894//__________________________________________________________________________________________________
1895 Float_t AliAnalysisChargedHadronSpectraITSTruncatedMeanTask::GetWeight(Int_t t,AliStack* const stack) const
1896 {
1897
1898 //Get weigth for pions protons and antiprotons
1899 if(stack->IsPhysicalPrimary(TMath::Abs(t)))
1900 return 1.0;
1901 TParticle *particleMC = stack->Particle(TMath::Abs(t));
1902 Int_t pdgcodeMC = particleMC->GetPdgCode();
1903 if(TMath::Abs(pdgcodeMC)!=211&&TMath::Abs(pdgcodeMC)!=2212)
1904 return 1.0;
1905 if(!stack->IsPhysicalPrimary(TMath::Abs(particleMC->GetFirstMother())))
1906 return 1.0;
1907 TParticle *particleMother=stack->Particle(TMath::Abs(particleMC->GetFirstMother()));
1908 Int_t pdgcodeMother = particleMother->GetPdgCode();
1909 Float_t motherpt=particleMother-> Pt();
1910 if(TMath::Abs(pdgcodeMC)==211&&pdgcodeMother==310&&fK0weight)
1911 return fK0weight->Eval(motherpt);
1912 else if (pdgcodeMother==3122&&flambdaweight)
1913 return flambdaweight->Eval(motherpt);
1914 else if(pdgcodeMother==-3122&&fAntilambdaweight)
1915 return fAntilambdaweight->Eval(motherpt);
1916 return 1.0;
1917 }
4637dfa3 1918 //________________________________________________________________________________________________
1919void AliAnalysisChargedHadronSpectraITSTruncatedMeanTask::SetDCA2010()
1920{
1921 //setting the DCA for 2010
1922 fdcaxypar[0]=0.0026;
1923 fdcaxypar[1]=0.005;
1924 fdcaxypar[2]=1.01;
1925
1926 fdcazpar[0]=1000000.0;
1927 fdcazpar[1]=0.0;
1928 fdcazpar[2]=1.0;
1929 fdcazpar[3]=1000000.0;
1930}
1931//______________________________________________________________________________________________________________
1932void AliAnalysisChargedHadronSpectraITSTruncatedMeanTask::SetCentralityCut(Float_t low, Float_t up)
1933{
1934 //centrality cut setter
1935 if((up>low)&&(!(low<0.0))&&(!(up>100.0)))
1936 {
1937 SetHImode();
1938 fLowCentrality=low;
1939 fUpCentrality=up;
1940 }
1b4f5688 1941}
2b52537d 1942//_____________________________________________________________________________________________________________
1943void AliAnalysisChargedHadronSpectraITSTruncatedMeanTask::SetMultiplicityCut(Int_t low, Int_t up)
1944{
1945 //mulyiplicty cut setter
1946 if((!(up>low))&&low>=0&&up>=0)
1947 {
1948 fLowMultiplicity=-1;
1949 fUpMultiplicity=-1;
1950 }
1951 else
1952 {
1953 fLowMultiplicity=low;
1954 fUpMultiplicity=up;
1955 }
971499a2 1956}