]>
Commit | Line | Data |
---|---|---|
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 | ||
16 | //#include "Riostream.h" | |
17 | #include "AliInputEventHandler.h" | |
18 | #include "AliStack.h" | |
19 | //#include "AliMCEventHandler.h" | |
20 | #include "AliMCEvent.h" | |
21 | ||
22 | ||
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" | |
33 | ||
34 | class AliMCEventHandler; | |
35 | class Riostream; | |
36 | ||
37 | using namespace std; | |
38 | ClassImp(AliAnalysisChargedHadronSpectraITSTruncatedMeanTask) | |
39 | ||
40 | //________________________________________________________________________ | |
41 | AliAnalysisChargedHadronSpectraITSTruncatedMeanTask::AliAnalysisChargedHadronSpectraITSTruncatedMeanTask(const char *name) | |
42 | :AliAnalysisTaskSE(name),fESD(0),fCuts(0),fMC(0),fYCut(100.0),fsigmacut(3.0),fnsigmaxy(7.0),fnsigmaz(5.0),fchargeCut(0.0), | |
43 | fCorrectSDD(0),fCorrectSSD(0), | |
44 | fHistStats(0),fHistPhiPtBeforeCuts(0),fHistPhiPtAfterCuts(0),fHistEtaPtBeforeCuts(0),fHistEtaPtAfterCuts(0),fHistDCABeforeCuts(0),fHistDCAAfterCuts(0), | |
45 | fHistPminusTPCinPAfterCuts(0),fHistPminusTPCinPglobalAfterCuts(0), | |
46 | fHistMydEPpositive(0),fHistMydETPCinPpositive(0),fHistMydETPCinPglobalpositive(0), | |
47 | fHistMydEPnegative(0),fHistMydETPCinPnegative(0),fHistMydETPCinPglobalnegative(0), | |
48 | fHistL3dEP(0),fHistL4dEP(0),fHistL5dEP(0),fHistL6dEP(0),fHistL3dETPCinP(0), | |
49 | fHistL4dETPCinP(0),fHistL5dETPCinP(0),fHistL6dETPCinP(0),fHistEtaPtPions(0), fHistEtaPtKaons(0),fHistEtaPtProtons(0),fHistwhichhasmin(0), | |
50 | fHistminsignalforPionP(0),fHistminsignalforKaonP(0),fHistminsignalforProtonP(0), | |
51 | fHistminsignalifPionP(0),fHistminsignalifKaonP(0),fHistminsignalifProtonP(0),fHistminsignalifAntiPionP(0),fHistminsignalifAntiKaonP(0),fHistminsignalifAntiProtonP(0), | |
52 | fDCAXYZforcleanPions(0),fDCAXYZforcleanAntiPions(0),fDCAXYZforcleanProtons(0),fDCAXYZforcleanAntiProtons(0), | |
53 | fDCAXYZOpenforcleanPions(0),fDCAXYZOpenforcleanAntiPions(0),fDCAXYZOpenforcleanProtons(0),fDCAXYZOpenforcleanAntiProtons(0), | |
54 | fHistNtrackwithstandardcuts(0),fHistNtrackwithITSPIDcuts(0), | |
55 | fHistSignalinTPCKaonforstandardcuts(0),fHistSignalinTPCKaonforITSPIDcuts(0),fHistSignalinTPCAntiKaonforstandardcuts(0),fHistSignalinTPCAntiKaonforITSPIDcuts(0), | |
56 | fHistSignalinTPCProtonforstandardcuts(0),fHistSignalinTPCProtonforITSPIDcuts(0),fHistSignalinTPCAntiProtonforstandardcuts(0),fHistSignalinTPCAntiProtonforITSPIDcuts(0), | |
57 | fHistStandartMul(0),fHistMytrackMul(0), | |
58 | fHistEtaPtPionsMC(0),fHistEtaPtKaonsMC(0),fHistEtaPtProtonsMC(0), | |
59 | fHistEtaPtPionsMCDET(0),fHistEtaPtKaonsMCDET(0),fHistEtaPtProtonsMCDET(0), | |
60 | fHistEtaPtPionsCon(0),fHistEtaPtKaonsCon(0),fHistEtaPtProtonsCon(0), | |
61 | fHistEtaPtPionsConPID(0),fHistEtaPtKaonsConPID(0),fHistEtaPtProtonsConPID(0), | |
62 | fHistminsignalifPionPPrimary(0),fHistminsignalifKaonPPrimary(0),fHistminsignalifProtonPPrimary(0),fHistminsignalifProtonPPrimaryfake(0), | |
63 | fHistminsignalifAntiPionPPrimary(0),fHistminsignalifAntiKaonPPrimary(0),fHistminsignalifAntiProtonPPrimary(0),fHistminsignalifAntiProtonPPrimaryfake(0), | |
64 | fHistminsignalifPionPSecondary(0),fHistminsignalifKaonPSecondary(0), | |
65 | fHistminsignalifProtonPSecondaryWD(0),fHistminsignalifProtonPSecondaryHI(0),fHistminsignalifProtonPSecondaryRest(0), | |
66 | fHistminsignalifProtonPSecondaryWDfake(0),fHistminsignalifProtonPSecondaryHIfake(0), | |
67 | fHistminsignalifAntiPionPSecondary(0),fHistminsignalifAntiKaonPSecondary(0), | |
68 | fHistminsignalifAntiProtonPSecondaryWD(0),fHistminsignalifAntiProtonPSecondaryHI(0), fHistminsignalifAntiProtonPSecondaryRest(0), | |
69 | fHistminsignalifAntiProtonPSecondaryWDfake(0),fHistminsignalifAntiProtonPSecondaryHIfake(0), | |
70 | fHistminsignalifMuEPositiveP(0),fHistminsignalifMuENegativeP(0), | |
71 | fHistminsignalifPionPrimaryfake(0),fHistminsignalifKaonPrimaryfake(0),fHistminsignalifAntiPionPrimaryfake(0),fHistminsignalifAntiKaonPrimaryfake(0), | |
72 | fHistminsignalifPionSecondaryfake(0),fHistminsignalifKaonSecondaryfake(0),fHistminsignalifAntiPionSecondaryfake(0),fHistminsignalifAntiKaonSecondaryfake(0), | |
73 | fHistminsignalifPionPMCPrimary(0),fHistminsignalifKaonPMCPrimary(0),fHistminsignalifProtonPMCPrimary(0), | |
74 | fHistminsignalifAntiPionPMCPrimary(0),fHistminsignalifAntiKaonPMCPrimary(0),fHistminsignalifAntiProtonPMCPrimary(0), | |
75 | fHistminsignalifPionPMCPrimaryBeforeEventCuts(0),fHistminsignalifKaonPMCPrimaryBeforeEventCuts(0),fHistminsignalifProtonPMCPrimaryBeforeEventCuts(0), | |
76 | fHistminsignalifAntiPionPMCPrimaryBeforeEventCuts(0),fHistminsignalifAntiKaonPMCPrimaryBeforeEventCuts(0),fHistminsignalifAntiProtonPMCPrimaryBeforeEventCuts(0), | |
77 | fHistminsignalifPionPMCPrimaryBeforeEventCutswithgoodZvertex(0),fHistminsignalifKaonPMCPrimaryBeforeEventCutswithgoodZvertex(0),fHistminsignalifProtonPMCPrimaryBeforeEventCutswithgoodZvertex(0), | |
78 | fHistminsignalifAntiPionPMCPrimaryBeforeEventCutswithgoodZvertex(0),fHistminsignalifAntiKaonPMCPrimaryBeforeEventCutswithgoodZvertex(0),fHistminsignalifAntiProtonPMCPrimaryBeforeEventCutswithgoodZvertex(0), | |
79 | fHistminsignalifPionPMCPrimaryAfterEventCutsBeforeVertexZ(0),fHistminsignalifKaonPMCPrimaryAfterEventCutsBeforeVertexZ(0),fHistminsignalifProtonPMCPrimaryAfterEventCutsBeforeVertexZ(0), | |
80 | fHistminsignalifAntiPionPMCPrimaryAfterEventCutsBeforeVertexZ(0),fHistminsignalifAntiKaonPMCPrimaryAfterEventCutsBeforeVertexZ(0),fHistminsignalifAntiProtonPMCPrimaryAfterEventCutsBeforeVertexZ(0), | |
81 | fDCAXYZforcleanPionsMCPrimary(0),fDCAXYZforcleanAntiPionsMCPrimary(0),fDCAXYZforcleanProtonsMCPrimary(0),fDCAXYZforcleanAntiProtonsMCPrimary(0), | |
82 | fDCAXYZforcleanPionsWD(0),fDCAXYZforcleanAntiPionsWD(0),fDCAXYZforcleanProtonsWD(0), fDCAXYZforcleanAntiProtonsWD(0),fDCAXYZforcleanPionsHI(0),fDCAXYZforcleanAntiPionsHI(0), | |
83 | fDCAXYZforcleanProtonsHI(0),fDCAXYZforcleanAntiProtonsHI(0),fDCAXYZforcleanPionsME(0),fDCAXYZforcleanAntiPionsME(0),fDCAXYZforcleanPionsR(0),fDCAXYZforcleanAntiPionsR(0),fDCAXYZforcleanProtonsR(0),fDCAXYZforcleanAntiProtonsR(0), | |
84 | fDCAXYZOpenforcleanPionsMCPrimary(0),fDCAXYZOpenforcleanAntiPionsMCPrimary(0),fDCAXYZOpenforcleanProtonsMCPrimary(0),fDCAXYZOpenforcleanAntiProtonsMCPrimary(0), | |
85 | fDCAXYZOpenforcleanPionsWD(0),fDCAXYZOpenforcleanAntiPionsWD(0),fDCAXYZOpenforcleanProtonsWD(0), fDCAXYZOpenforcleanAntiProtonsWD(0),fDCAXYZOpenforcleanPionsHI(0),fDCAXYZOpenforcleanAntiPionsHI(0), | |
86 | fDCAXYZOpenforcleanProtonsHI(0),fDCAXYZOpenforcleanAntiProtonsHI(0),fDCAXYZOpenforcleanPionsME(0),fDCAXYZOpenforcleanAntiPionsME(0),fDCAXYZOpenforcleanPionsR(0),fDCAXYZOpenforcleanAntiPionsR(0),fDCAXYZOpenforcleanProtonsR(0),fDCAXYZOpenforcleanAntiProtonsR(0), | |
87 | fElectronsource(0),fAntiElectronsource(0), | |
88 | fMuonsource(0),fAntiMuonsource(0), | |
89 | fPionNTPCClusters(0),fAntiPionNTPCClusters(0), | |
90 | fTPCPIDCUT(0), fESDpid(0),fPrimaryElectronsMother(0), | |
91 | flist(0) | |
92 | { | |
93 | //Constructor | |
94 | fESDpid=new AliESDpid(); | |
95 | fESDpid->GetTPCResponse().SetBetheBlochParameters(0.0283086,2.63394e+01,5.04114e-11,2.12543e+00,4.88663e+00); | |
96 | ||
97 | ||
98 | ||
99 | ||
100 | for(int i=0;i<2;i++){ flinearpar[i]=0.0;} | |
101 | for(int i=0;i<5;i++){ fpar[i]=0.0;} | |
102 | Printf("end of AliAnalysisChargedHadronSpectraITSTruncatedMeanTask"); | |
103 | DefineOutput(1, TList::Class()); | |
104 | } | |
105 | ||
106 | ||
107 | //________________________________________________________________________ | |
108 | void AliAnalysisChargedHadronSpectraITSTruncatedMeanTask::UserCreateOutputObjects() | |
109 | { | |
110 | //UserCreateOutputObject | |
111 | Printf("AliAnalysisChargedHadronSpectraITSTruncatedMeanTask UserCreateOutputObjects"); | |
112 | flist=new TList(); | |
113 | Float_t ptmax=2.0; | |
114 | Float_t etamax=1.0; | |
115 | ||
116 | Int_t netabins=100; | |
117 | Int_t nptbins=40; | |
118 | Double_t dcamax=3.7; | |
119 | const Int_t ndec=2; | |
120 | Int_t startvalue=-1; | |
121 | const Int_t npredec=50; | |
122 | Double_t tabx[ndec*npredec+1]; | |
123 | for (Int_t i=0;i<ndec;i++) | |
124 | { | |
125 | for (Int_t j=0;j<npredec;j++) | |
126 | { | |
127 | tabx[npredec*i+j]=TMath::Power(10,((Double_t)i)+((Double_t)startvalue)+((Double_t)j)/((Double_t)npredec)); | |
128 | } | |
129 | } | |
130 | tabx[ndec*npredec]=TMath::Power(10,ndec+startvalue); | |
131 | ||
132 | const Int_t ny=600; | |
133 | const Double_t jump=1.5; | |
134 | const Double_t starty=0.0; | |
135 | ||
136 | ||
137 | Int_t kPtBins=30; | |
138 | Double_t binsPtDummy[kPtBins+1]; | |
139 | binsPtDummy[0]=0.0; | |
140 | for(int i=1;i<=kPtBins+1;i++) | |
141 | { | |
142 | if(binsPtDummy[i-1]+0.05<1.01) | |
143 | binsPtDummy[i]=binsPtDummy[i-1]+0.05; | |
144 | else | |
145 | binsPtDummy[i]=binsPtDummy[i-1]+0.1; | |
146 | } | |
147 | //{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}; | |
148 | ||
149 | ||
150 | fHistStats=new TH1F("StatsHist","StatsHist",10,-0.5,9.5); | |
151 | fHistStats->GetXaxis()->SetBinLabel(1,"Nevents"); | |
152 | fHistStats->GetXaxis()->SetBinLabel(2,"Nevents_physics"); | |
153 | fHistStats->GetXaxis()->SetBinLabel(3,"Nevents_physics_with_good_SPD_vertex"); | |
154 | fHistStats->GetXaxis()->SetBinLabel(4,"Nevents_physics_with_good_SPD_vertex_and_|z|<10.0"); | |
155 | fHistStats->GetXaxis()->SetBinLabel(5,"N_tracks_with_3_or_4_in_SSD_SDD"); | |
156 | fHistStats->GetXaxis()->SetBinLabel(6,"N_tracks_with_3_or_4_with_goodq_in_SSD_SDD"); | |
157 | fHistStats->GetXaxis()->SetBinLabel(7,"e_in_pi"); | |
158 | fHistStats->GetXaxis()->SetBinLabel(8,"mu_in_pi"); | |
159 | fHistStats->GetXaxis()->SetBinLabel(9,"MC_event"); | |
160 | fHistStats->GetXaxis()->SetBinLabel(10,"MC_event_with_z<10.0"); | |
161 | flist->Add(fHistStats); | |
162 | ||
163 | ||
164 | ||
165 | fHistPhiPtBeforeCuts=new TH2F("HistPhiPtBeforeCuts",";#phi;pt[GeV/c]",70,0,2.0*TMath::Pi(),nptbins,-1.0*ptmax,ptmax); | |
166 | flist->Add(fHistPhiPtBeforeCuts); | |
167 | ||
168 | fHistPhiPtAfterCuts=new TH2F("HistPhiPtAfterCuts",";#phi;pt[GeV/c]",70,0,2.0*TMath::Pi(),nptbins,-1.0*ptmax,ptmax); | |
169 | flist->Add(fHistPhiPtAfterCuts); | |
170 | ||
171 | fHistEtaPtBeforeCuts=new TH2F("HistEtaPtBeforeCuts",";#eta;pt[GeV/c]",netabins,-1.0*etamax,etamax,nptbins,-1.0*ptmax,ptmax);//eta pt | |
172 | flist->Add(fHistEtaPtBeforeCuts); | |
173 | ||
174 | fHistEtaPtAfterCuts=new TH2F("HistEtaPtAfterCuts",";#eta;pt[GeV/c]",netabins,-1.0*etamax,etamax,nptbins,-1.0*ptmax,ptmax);//eta pt | |
175 | flist->Add(fHistEtaPtAfterCuts); | |
176 | ||
177 | fHistDCABeforeCuts=new TH2F("HistDCABeforeCut",";dcaxy[cm];dcaz[cm]",100,-1.0*dcamax,dcamax,100,-1.0*dcamax,1.0*dcamax); | |
178 | flist->Add(fHistDCABeforeCuts); | |
179 | ||
180 | fHistDCAAfterCuts=new TH2F("HistDCAAfterCut",";dcaxy[cm];dcaz[cm]",100,-1.0*dcamax,dcamax,100,-1.0*dcamax,1.0*dcamax); | |
181 | flist->Add(fHistDCAAfterCuts); | |
182 | ||
183 | ||
184 | fHistPminusTPCinPAfterCuts= new TH2F("HistPminusTPCinPVPTPCinAfterCuts",";P-PTPCin [GeV/c];PTPCin",100,-0.5,0.5,ndec*npredec,tabx); | |
185 | flist->Add(fHistPminusTPCinPAfterCuts); | |
186 | ||
187 | fHistPminusTPCinPglobalAfterCuts= new TH2F("HistPminusTPCinPVPTPCinglobalAfterCuts",";P-PTPCinglobal [GeV/c];PTPCin",100,-0.5,0.5,ndec*npredec,tabx); | |
188 | flist->Add(fHistPminusTPCinPglobalAfterCuts); | |
189 | ||
190 | fHistMydEPpositive=new TH2F("HistMydEPpositive",";P[GeV/c];dE[in 300#mum]",ndec*npredec,tabx,ny,starty,ny*jump+starty); | |
191 | flist->Add(fHistMydEPpositive); | |
192 | ||
193 | fHistMydETPCinPpositive=new TH2F("HistMydETPCinPpositive",";P[GeV/c];dE[in 300#mum]",ndec*npredec,tabx,ny,starty,ny*jump+starty); | |
194 | flist->Add(fHistMydETPCinPpositive); | |
195 | ||
196 | fHistMydETPCinPglobalpositive=new TH2F("HistMydETPCinPglobalpositive",";P[GeV/c];dE[in 300#mum]",ndec*npredec,tabx,ny,starty,ny*jump+starty); | |
197 | flist->Add(fHistMydETPCinPglobalpositive); | |
198 | ||
199 | fHistMydEPnegative=new TH2F("HistMydEPnegative",";P[GeV/c];dE[in 300#mum]",ndec*npredec,tabx,ny,starty,ny*jump+starty); | |
200 | flist->Add(fHistMydEPnegative); | |
201 | ||
202 | fHistMydETPCinPnegative=new TH2F("HistMydETPCinPnegative",";P[GeV/c];dE[in 300#mum]",ndec*npredec,tabx,ny,starty,ny*jump+starty); | |
203 | flist->Add(fHistMydETPCinPnegative); | |
204 | ||
205 | fHistMydETPCinPglobalnegative=new TH2F("HistMydETPCinPglobalnegative",";P[GeV/c];dE[in 300#mum]",ndec*npredec,tabx,ny,starty,ny*jump+starty); | |
206 | flist->Add(fHistMydETPCinPglobalnegative); | |
207 | ||
208 | ||
209 | fHistL3dEP=new TH2F("HistL3dEP",";P[GeV/c];dE[in 300#mum]",ndec*npredec,tabx,ny,starty,ny*jump+starty); | |
210 | flist->Add(fHistL3dEP); | |
211 | ||
212 | fHistL4dEP=new TH2F("HistL4dEP",";P[GeV/c];dE[in 300#mum]",ndec*npredec,tabx,ny,starty,ny*jump+starty); | |
213 | flist->Add(fHistL4dEP); | |
214 | ||
215 | fHistL5dEP=new TH2F("HistL5dEP",";P[GeV/c];dE[in 300#mum]",ndec*npredec,tabx,ny,starty,ny*jump+starty); | |
216 | flist->Add(fHistL5dEP); | |
217 | ||
218 | fHistL6dEP=new TH2F("HistL6dEP",";P[GeV/c];dE[in 300#mum]",ndec*npredec,tabx,ny,starty,ny*jump+starty); | |
219 | flist->Add(fHistL6dEP); | |
220 | ||
221 | fHistL3dETPCinP=new TH2F("HistL3dETPCinP",";P[GeV/c];dE[in 300#mum]",ndec*npredec,tabx,ny,starty,ny*jump+starty); | |
222 | flist->Add(fHistL3dETPCinP); | |
223 | ||
224 | fHistL4dETPCinP=new TH2F("HistL4dETPCinP",";P[GeV/c];dE[in 300#mum]",ndec*npredec,tabx,ny,starty,ny*jump+starty); | |
225 | flist->Add(fHistL4dETPCinP); | |
226 | ||
227 | fHistL5dETPCinP=new TH2F("HistL5dETPCinP",";P[GeV/c];dE[in 300#mum]",ndec*npredec,tabx,ny,starty,ny*jump+starty); | |
228 | flist->Add(fHistL5dETPCinP); | |
229 | ||
230 | fHistL6dETPCinP=new TH2F("HistL6dETPCinP",";P[GeV/c];dE[in 300#mum]",ndec*npredec,tabx,ny,starty,ny*jump+starty); | |
231 | flist->Add(fHistL6dETPCinP); | |
232 | ||
233 | fHistEtaPtPions=new TH2F("HistEtaPtPions",";#eta;pt[GeV/c]",netabins,-1.0*etamax,etamax,nptbins,-1.0*ptmax,ptmax);//eta pt | |
234 | flist->Add(fHistEtaPtPions); | |
235 | fHistEtaPtKaons=new TH2F("HistEtaPtKaons",";#eta;pt[GeV/c]",netabins,-1.0*etamax,etamax,nptbins,-1.0*ptmax,ptmax);//eta pt | |
236 | flist->Add(fHistEtaPtKaons); | |
237 | fHistEtaPtProtons=new TH2F("HistEtaPtProtons",";#eta;pt[GeV/c]",netabins,-1.0*etamax,etamax,nptbins,-1.0*ptmax,ptmax);//eta pt | |
238 | flist->Add(fHistEtaPtProtons); | |
239 | ||
240 | fHistwhichhasmin=new TH1F("Histwhichhasmin","Histwhichhasmin",4,-0.5,3.5); | |
241 | fHistwhichhasmin->GetXaxis()->SetBinLabel(1,"SDD1"); | |
242 | fHistwhichhasmin->GetXaxis()->SetBinLabel(2,"SDD2"); | |
243 | fHistwhichhasmin->GetXaxis()->SetBinLabel(3,"SSD1"); | |
244 | fHistwhichhasmin->GetXaxis()->SetBinLabel(4,"SSD2"); | |
245 | flist->Add(fHistwhichhasmin); | |
246 | ||
247 | ||
248 | ||
249 | fHistminsignalforPionP=new TH2F("HistminsignalforPionP",";P[GeV/c];dE[in 300#mum]",kPtBins,binsPtDummy,ny,starty,ny*jump+starty); | |
250 | flist->Add(fHistminsignalforPionP); | |
251 | fHistminsignalforKaonP=new TH2F("HistminsignalforKaonP",";P[GeV/c];dE[in 300#mum]",kPtBins,binsPtDummy,ny,starty,ny*jump+starty); | |
252 | flist->Add(fHistminsignalforKaonP); | |
253 | fHistminsignalforProtonP=new TH2F("HistminsignalforProtonP",";P[GeV/c];dE[in 300#mum]",kPtBins,binsPtDummy,ny,starty,ny*jump+starty); | |
254 | flist->Add(fHistminsignalforProtonP); | |
255 | ||
256 | fHistminsignalifPionP=new TH2F("HistminsignalifPionP",";Pt[GeV/c];log(dE_real)-log(dE_fit)",kPtBins,binsPtDummy,ny,-4,4); | |
257 | flist->Add(fHistminsignalifPionP); | |
258 | fHistminsignalifKaonP=new TH2F("HistminsignalifKaonP",";Pt[GeV/c];log(dE_real)-log(dE_fit)",kPtBins,binsPtDummy,ny,-4,4); | |
259 | flist->Add(fHistminsignalifKaonP); | |
260 | fHistminsignalifProtonP=new TH2F("HistminsignalifProtonP",";Pt[GeV/c];log(dE_real)-log(dE_fit)",kPtBins,binsPtDummy,ny,-4,4); | |
261 | flist->Add(fHistminsignalifProtonP); | |
262 | ||
263 | ||
264 | fHistminsignalifAntiPionP=new TH2F("HistminsignalifAntiPionP",";Pt[GeV/c];log(dE_real)-log(dE_fit)",kPtBins,binsPtDummy,ny,-4,4); | |
265 | flist->Add(fHistminsignalifAntiPionP); | |
266 | fHistminsignalifAntiKaonP=new TH2F("HistminsignalifAntiKaonP",";Pt[GeV/c];log(dE_real)-log(dE_fit)",kPtBins,binsPtDummy,ny,-4,4); | |
267 | flist->Add(fHistminsignalifAntiKaonP); | |
268 | fHistminsignalifAntiProtonP=new TH2F("HistminsignalifAntiProtonP",";Pt[GeV/c];log(dE_real)-log(dE_fit)",kPtBins,binsPtDummy,ny,-4,4); | |
269 | flist->Add(fHistminsignalifAntiProtonP); | |
270 | ||
271 | Int_t kDCABins=20+2+40; | |
272 | 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}; | |
273 | ||
274 | ||
275 | ||
276 | ||
277 | fDCAXYZforcleanPions=new TH3F("fDCAXYZforcleanPions",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy); | |
278 | flist->Add(fDCAXYZforcleanPions); | |
279 | fDCAXYZforcleanAntiPions=new TH3F("fDCAXYZforcleanAntiPions",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy); | |
280 | flist->Add(fDCAXYZforcleanAntiPions); | |
281 | fDCAXYZforcleanProtons=new TH3F("fDCAXYZforcleanProtons",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy); | |
282 | flist->Add(fDCAXYZforcleanProtons); | |
283 | fDCAXYZforcleanAntiProtons=new TH3F("fDCAXYZforcleanAntiProtons",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy); | |
284 | flist->Add(fDCAXYZforcleanAntiProtons); | |
285 | ||
286 | ||
287 | fDCAXYZOpenforcleanPions=new TH3F("fDCAXYZOpenforcleanPions",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy); | |
288 | flist->Add(fDCAXYZOpenforcleanPions); | |
289 | fDCAXYZOpenforcleanAntiPions=new TH3F("fDCAXYZOpenforcleanAntiPions",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy); | |
290 | flist->Add(fDCAXYZOpenforcleanAntiPions); | |
291 | fDCAXYZOpenforcleanProtons=new TH3F("fDCAXYZOpenforcleanProtons",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy); | |
292 | flist->Add(fDCAXYZOpenforcleanProtons); | |
293 | fDCAXYZOpenforcleanAntiProtons=new TH3F("fDCAXYZOpenforcleanAntiProtons",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy); | |
294 | flist->Add(fDCAXYZOpenforcleanAntiProtons); | |
295 | ||
296 | fHistNtrackwithstandardcuts=new TH2F ("fHistNtrackwithstandardcuts",";Pt[GeV/c];type;counts",kPtBins,binsPtDummy,3,-0.5,2.5); | |
297 | flist->Add(fHistNtrackwithstandardcuts); | |
298 | fHistNtrackwithITSPIDcuts=new TH2F ("fHistNtrackwithITSPIDcuts",";Pt[GeV/c];type;counts",kPtBins,binsPtDummy,3,-0.5,2.5); | |
299 | flist->Add(fHistNtrackwithITSPIDcuts); | |
300 | ||
301 | ||
302 | fHistSignalinTPCKaonforstandardcuts= new TH2F("fHistSignalinTPCKaonforstandardcuts",";Pt[GeV/c];signal",kPtBins,binsPtDummy,100,-1.0,1.0) ; | |
303 | flist->Add(fHistSignalinTPCKaonforstandardcuts); | |
304 | fHistSignalinTPCKaonforITSPIDcuts= new TH2F("fHistSignalinTPCKaonforITSPIDcuts",";Pt[GeV/c];signal",kPtBins,binsPtDummy,100,-1.0,1.0) ; | |
305 | flist->Add(fHistSignalinTPCKaonforITSPIDcuts); | |
306 | ||
307 | fHistSignalinTPCAntiKaonforstandardcuts= new TH2F("fHistSignalinTPCAntiKaonforstandardcuts",";Pt[GeV/c];signal",kPtBins,binsPtDummy,100,-1.0,1.0) ; | |
308 | flist->Add(fHistSignalinTPCAntiKaonforstandardcuts); | |
309 | fHistSignalinTPCAntiKaonforITSPIDcuts= new TH2F("fHistSignalinTPCAntiKaonforITSPIDcuts",";Pt[GeV/c];signal",kPtBins,binsPtDummy,100,-1.0,1.0) ; | |
310 | flist->Add(fHistSignalinTPCAntiKaonforITSPIDcuts); | |
311 | ||
312 | fHistSignalinTPCProtonforstandardcuts= new TH2F("fHistSignalinTPCProtonforstandardcuts",";Pt[GeV/c];signal",kPtBins,binsPtDummy,100,-1.0,1.0) ; | |
313 | flist->Add(fHistSignalinTPCProtonforstandardcuts); | |
314 | fHistSignalinTPCProtonforITSPIDcuts= new TH2F("fHistSignalinTPCProtonforITSPIDcuts",";Pt[GeV/c];signal",kPtBins,binsPtDummy,100,-1.0,1.0) ; | |
315 | flist->Add(fHistSignalinTPCProtonforITSPIDcuts); | |
316 | ||
317 | ||
318 | fHistSignalinTPCAntiProtonforstandardcuts= new TH2F("fHistSignalinTPCAntiProtonforstandardcuts",";Pt[GeV/c];signal",kPtBins,binsPtDummy,100,-1.0,1.0) ; | |
319 | flist->Add(fHistSignalinTPCAntiProtonforstandardcuts); | |
320 | fHistSignalinTPCAntiProtonforITSPIDcuts= new TH2F("fHistSignalinTPCAntiProtonforITSPIDcuts",";Pt[GeV/c];signal",kPtBins,binsPtDummy,100,-1.0,1.0) ; | |
321 | flist->Add(fHistSignalinTPCAntiProtonforITSPIDcuts); | |
322 | ||
323 | fPionNTPCClusters=new TH2F("fPionNTPCClusters","fPionNTPCClusters;Pt [GeV/c];NClusters",kPtBins,binsPtDummy,20,60,160); | |
324 | flist->Add(fPionNTPCClusters); | |
325 | fAntiPionNTPCClusters=new TH2F("fAntiPionNTPCClusters","fAntiPionNTPCClusters;Pt [GeV/c];NClusters",kPtBins,binsPtDummy,20,60,160); | |
326 | flist->Add(fAntiPionNTPCClusters); | |
327 | ||
328 | fHistStandartMul=new TH1F("fHistStandartMul",";counts;Ntracks",300,0,300); | |
329 | flist->Add(fHistStandartMul); | |
330 | fHistMytrackMul=new TH1F("fHistMytrackMul",";counts;Ntracks",300,0,300); | |
331 | flist->Add(fHistMytrackMul); | |
332 | ||
333 | if(!fMC) | |
334 | { | |
335 | ||
336 | Printf("end of CreateOutputObjects no MC"); | |
337 | PostData(1,flist); | |
338 | return; | |
339 | } | |
340 | ||
341 | ||
342 | fHistEtaPtPionsMC=new TH2F("HistEtaPtPionsMC",";#eta;pt[GeV/c]",netabins,-1.0*etamax,etamax,nptbins,-1.0*ptmax,ptmax);//eta pt | |
343 | flist->Add(fHistEtaPtPionsMC); | |
344 | fHistEtaPtKaonsMC=new TH2F("HistEtaPtKaonsMC",";#eta;pt[GeV/c]",netabins,-1.0*etamax,etamax,nptbins,-1.0*ptmax,ptmax);//eta pt | |
345 | flist->Add(fHistEtaPtKaonsMC); | |
346 | fHistEtaPtProtonsMC=new TH2F("HistEtaPtProtonsMC",";#eta;pt[GeV/c]",netabins,-1.0*etamax,etamax,nptbins,-1.0*ptmax,ptmax);//eta pt | |
347 | flist->Add(fHistEtaPtProtonsMC); | |
348 | ||
349 | fHistEtaPtPionsMCDET=new TH2F("HistEtaPtPionsMCDET",";#eta;pt[GeV/c]",netabins,-1.0*etamax,etamax,nptbins,-1.0*ptmax,ptmax);//eta pt | |
350 | flist->Add(fHistEtaPtPionsMCDET); | |
351 | fHistEtaPtKaonsMCDET=new TH2F("HistEtaPtKaonsMCDET",";#eta;pt[GeV/c]",netabins,-1.0*etamax,etamax,nptbins,-1.0*ptmax,ptmax);//eta pt | |
352 | flist->Add(fHistEtaPtKaonsMCDET); | |
353 | fHistEtaPtProtonsMCDET=new TH2F("HistEtaPtProtonsMCDET",";#eta;pt[GeV/c]",netabins,-1.0*etamax,etamax,nptbins,-1.0*ptmax,ptmax);//eta pt | |
354 | flist->Add(fHistEtaPtProtonsMCDET); | |
355 | ||
356 | fHistEtaPtPionsCon=new TH2F("HistEtaPtPionsCon",";#eta;pt[GeV/c]",netabins,-1.0*etamax,etamax,nptbins,-1.0*ptmax,ptmax);//eta pt | |
357 | flist->Add(fHistEtaPtPionsCon); | |
358 | fHistEtaPtKaonsCon=new TH2F("HistEtaPtKaonsCon",";#eta;pt[GeV/c]",netabins,-1.0*etamax,etamax,nptbins,-1.0*ptmax,ptmax);//eta pt | |
359 | flist->Add(fHistEtaPtKaonsCon); | |
360 | fHistEtaPtProtonsCon=new TH2F("HistEtaPtProtonsCon",";#eta;pt[GeV/c]",netabins,-1.0*etamax,etamax,nptbins,-1.0*ptmax,ptmax);//eta pt | |
361 | flist->Add(fHistEtaPtProtonsCon); | |
362 | ||
363 | fHistEtaPtPionsConPID=new TH2F("HistEtaPtPionsConPID",";#eta;pt[GeV/c]",netabins,-1.0*etamax,etamax,nptbins,-1.0*ptmax,ptmax);//eta pt | |
364 | flist->Add(fHistEtaPtPionsConPID); | |
365 | fHistEtaPtKaonsConPID=new TH2F("HistEtaPtKaonsConPID",";#eta;pt[GeV/c]",netabins,-1.0*etamax,etamax,nptbins,-1.0*ptmax,ptmax);//eta pt | |
366 | flist->Add(fHistEtaPtKaonsConPID); | |
367 | fHistEtaPtProtonsConPID=new TH2F("HistEtaPtProtonsConPID",";#eta;pt[GeV/c]",netabins,-1.0*etamax,etamax,nptbins,-1.0*ptmax,ptmax);//eta pt | |
368 | flist->Add(fHistEtaPtProtonsConPID); | |
369 | ||
370 | fHistminsignalifPionPPrimary=new TH2F("HistminsignalifPionPPrimary",";Pt[GeV/c];log(dE_real)-log(dE_fit)",kPtBins,binsPtDummy,ny,-4,4); | |
371 | flist->Add(fHistminsignalifPionPPrimary); | |
372 | fHistminsignalifKaonPPrimary=new TH2F("HistminsignalifKaonPPrimary",";Pt[GeV/c];log(dE_real)-log(dE_fit)",kPtBins,binsPtDummy,ny,-4,4); | |
373 | flist->Add(fHistminsignalifKaonPPrimary); | |
374 | fHistminsignalifProtonPPrimary=new TH2F("HistminsignalifProtonPPrimary",";Pt[GeV/c];log(dE_real)-log(dE_fit)",kPtBins,binsPtDummy,ny,-4,4); | |
375 | flist->Add(fHistminsignalifProtonPPrimary); | |
376 | fHistminsignalifProtonPPrimaryfake=new TH2F("HistminsignalifProtonPPrimaryfake",";Pt[GeV/c];log(dE_real)-log(dE_fit)",kPtBins,binsPtDummy,ny,-4,4); | |
377 | flist->Add(fHistminsignalifProtonPPrimaryfake); | |
378 | ||
379 | fHistminsignalifAntiPionPPrimary=new TH2F("HistminsignalifAntiPionPPrimary",";Pt[GeV/c];log(dE_real)-log(dE_fit)",kPtBins,binsPtDummy,ny,-4,4); | |
380 | flist->Add(fHistminsignalifAntiPionPPrimary); | |
381 | fHistminsignalifAntiKaonPPrimary=new TH2F("HistminsignalifAntiKaonPPrimary",";Pt[GeV/c];log(dE_real)-log(dE_fit)",kPtBins,binsPtDummy,ny,-4,4); | |
382 | flist->Add(fHistminsignalifAntiKaonPPrimary); | |
383 | fHistminsignalifAntiProtonPPrimary=new TH2F("HistminsignalifAntiProtonPPrimary",";Pt[GeV/c];log(dE_real)-log(dE_fit)",kPtBins,binsPtDummy,ny,-4,4); | |
384 | flist->Add(fHistminsignalifAntiProtonPPrimary); | |
385 | fHistminsignalifAntiProtonPPrimaryfake=new TH2F("HistminsignalifAntiProtonPPrimaryfake",";Pt[GeV/c];log(dE_real)-log(dE_fit)",kPtBins,binsPtDummy,ny,-4,4); | |
386 | flist->Add(fHistminsignalifAntiProtonPPrimaryfake); | |
387 | ||
388 | fHistminsignalifPionPSecondary=new TH2F("HistminsignalifPionPSecondary",";Pt[GeV/c];log(dE_real)-log(dE_fit)",kPtBins,binsPtDummy,ny,-4,4); | |
389 | flist->Add(fHistminsignalifPionPSecondary); | |
390 | fHistminsignalifKaonPSecondary=new TH2F("HistminsignalifKaonPSecondary",";Pt[GeV/c];log(dE_real)-log(dE_fit)",kPtBins,binsPtDummy,ny,-4,4); | |
391 | flist->Add(fHistminsignalifKaonPSecondary); | |
392 | fHistminsignalifProtonPSecondaryWD=new TH2F("HistminsignalifProtonPSecondaryWD",";Pt[GeV/c];log(dE_real)-log(dE_fit)",kPtBins,binsPtDummy,ny,-4,4); | |
393 | flist->Add(fHistminsignalifProtonPSecondaryWD); | |
394 | fHistminsignalifProtonPSecondaryHI=new TH2F("HistminsignalifProtonPSecondaryHI",";Pt[GeV/c];log(dE_real)-log(dE_fit)",kPtBins,binsPtDummy,ny,-4,4); | |
395 | flist->Add(fHistminsignalifProtonPSecondaryHI); | |
396 | fHistminsignalifProtonPSecondaryRest=new TH2F("HistminsignalifProtonPSecondaryRest",";Pt[GeV/c];log(dE_real)-log(dE_fit)",kPtBins,binsPtDummy,ny,-4,4); | |
397 | flist->Add(fHistminsignalifProtonPSecondaryRest); | |
398 | fHistminsignalifProtonPSecondaryWDfake=new TH2F("HistminsignalifProtonPSecondaryWDfake",";Pt[GeV/c];log(dE_real)-log(dE_fit)",kPtBins,binsPtDummy,ny,-4,4); | |
399 | flist->Add(fHistminsignalifProtonPSecondaryWDfake); | |
400 | fHistminsignalifProtonPSecondaryHIfake=new TH2F("HistminsignalifProtonPSecondaryHIfake",";Pt[GeV/c];log(dE_real)-log(dE_fit)",kPtBins,binsPtDummy,ny,-4,4); | |
401 | flist->Add(fHistminsignalifProtonPSecondaryHIfake); | |
402 | ||
403 | ||
404 | fHistminsignalifAntiPionPSecondary=new TH2F("HistminsignalifAntiPionPSecondary",";Pt[GeV/c];log(dE_real)-log(dE_fit)",kPtBins,binsPtDummy,ny,-4,4); | |
405 | flist->Add(fHistminsignalifAntiPionPSecondary); | |
406 | fHistminsignalifAntiKaonPSecondary=new TH2F("HistminsignalifAntiKaonPSecondary",";Pt[GeV/c];log(dE_real)-log(dE_fit)",kPtBins,binsPtDummy,ny,-4,4); | |
407 | flist->Add(fHistminsignalifAntiKaonPSecondary); | |
408 | fHistminsignalifAntiProtonPSecondaryWD=new TH2F("HistminsignalifAntiProtonPSecondaryWD",";Pt[GeV/c];log(dE_real)-log(dE_fit)",kPtBins,binsPtDummy,ny,-4,4); | |
409 | flist->Add(fHistminsignalifAntiProtonPSecondaryWD); | |
410 | fHistminsignalifAntiProtonPSecondaryHI=new TH2F("HistminsignalifAntiProtonPSecondaryHI",";Pt[GeV/c];log(dE_real)-log(dE_fit)",kPtBins,binsPtDummy,ny,-4,4); | |
411 | flist->Add(fHistminsignalifAntiProtonPSecondaryHI); | |
412 | fHistminsignalifAntiProtonPSecondaryRest=new TH2F("HistminsignalifAntiProtonPSecondaryRest",";Pt[GeV/c];log(dE_real)-log(dE_fit)",kPtBins,binsPtDummy,ny,-4,4); | |
413 | flist->Add(fHistminsignalifAntiProtonPSecondaryRest); | |
414 | fHistminsignalifAntiProtonPSecondaryWDfake=new TH2F("HistminsignalifAntiProtonPSecondaryWDfake",";Pt[GeV/c];log(dE_real)-log(dE_fit)",kPtBins,binsPtDummy,ny,-4,4); | |
415 | flist->Add(fHistminsignalifAntiProtonPSecondaryWDfake); | |
416 | fHistminsignalifAntiProtonPSecondaryHIfake=new TH2F("HistminsignalifAntiProtonPSecondaryHIfake",";Pt[GeV/c];log(dE_real)-log(dE_fit)",kPtBins,binsPtDummy,ny,-4,4); | |
417 | flist->Add(fHistminsignalifAntiProtonPSecondaryHIfake); | |
418 | ||
419 | fHistminsignalifMuEPositiveP=new TH2F("HistminsignalifMuEPositiveP",";Pt[GeV/c];log(dE_real)-log(dE_fit)",kPtBins,binsPtDummy,ny,-4,4); | |
420 | flist->Add(fHistminsignalifMuEPositiveP); | |
421 | fHistminsignalifMuENegativeP=new TH2F("HistminsignalifMuENegativeP",";Pt[GeV/c];log(dE_real)-log(dE_fit)",kPtBins,binsPtDummy,ny,-4,4); | |
422 | flist->Add(fHistminsignalifMuENegativeP); | |
423 | ||
424 | ||
425 | fHistminsignalifPionPrimaryfake=new TH2F("HistminsignalifPionPrimaryfake",";Pt[GeV/c];log(dE_real)-log(dE_fit)",kPtBins,binsPtDummy,ny,-4,4); | |
426 | flist->Add(fHistminsignalifPionPrimaryfake); | |
427 | fHistminsignalifKaonPrimaryfake=new TH2F("HistminsignalifKaonPrimaryfake",";Pt[GeV/c];log(dE_real)-log(dE_fit)",kPtBins,binsPtDummy,ny,-4,4); | |
428 | flist->Add(fHistminsignalifKaonPrimaryfake); | |
429 | ||
430 | fHistminsignalifAntiPionPrimaryfake=new TH2F("HistminsignalifAntiPionPrimaryfake",";Pt[GeV/c];log(dE_real)-log(dE_fit)",kPtBins,binsPtDummy,ny,-4,4); | |
431 | flist->Add(fHistminsignalifAntiPionPrimaryfake); | |
432 | fHistminsignalifAntiKaonPrimaryfake=new TH2F("HistminsignalifAntiKaonPrimaryfake",";Pt[GeV/c];log(dE_real)-log(dE_fit)",kPtBins,binsPtDummy,ny,-4,4); | |
433 | flist->Add(fHistminsignalifAntiKaonPrimaryfake); | |
434 | ||
435 | ||
436 | fHistminsignalifPionSecondaryfake=new TH2F("HistminsignalifPionSecondaryfake",";Pt[GeV/c];log(dE_real)-log(dE_fit)",kPtBins,binsPtDummy,ny,-4,4); | |
437 | flist->Add(fHistminsignalifPionSecondaryfake); | |
438 | fHistminsignalifKaonSecondaryfake=new TH2F("HistminsignalifKaonSecondaryfake",";Pt[GeV/c];log(dE_real)-log(dE_fit)",kPtBins,binsPtDummy,ny,-4,4); | |
439 | flist->Add(fHistminsignalifKaonSecondaryfake); | |
440 | ||
441 | fHistminsignalifAntiPionSecondaryfake=new TH2F("HistminsignalifAntiPionSecondaryfake",";Pt[GeV/c];log(dE_real)-log(dE_fit)",kPtBins,binsPtDummy,ny,-4,4); | |
442 | flist->Add(fHistminsignalifAntiPionSecondaryfake); | |
443 | fHistminsignalifAntiKaonSecondaryfake=new TH2F("HistminsignalifAntiKaonSecondaryfake",";Pt[GeV/c];log(dE_real)-log(dE_fit)",kPtBins,binsPtDummy,ny,-4,4); | |
444 | flist->Add(fHistminsignalifAntiKaonSecondaryfake); | |
445 | ||
446 | ||
447 | fHistminsignalifPionPMCPrimary=new TH1F("HistminsignalifPionPMCPrimary",";Pt[GeV/c]",kPtBins,binsPtDummy); | |
448 | flist->Add(fHistminsignalifPionPMCPrimary); | |
449 | fHistminsignalifKaonPMCPrimary=new TH1F("HistminsignalifKaonPMCPrimary",";Pt[GeV/c]",kPtBins,binsPtDummy); | |
450 | flist->Add(fHistminsignalifKaonPMCPrimary); | |
451 | fHistminsignalifProtonPMCPrimary=new TH1F("HistminsignalifProtonPMCPrimary",";Pt[GeV/c]",kPtBins,binsPtDummy); | |
452 | flist->Add(fHistminsignalifProtonPMCPrimary); | |
453 | ||
454 | fHistminsignalifAntiPionPMCPrimary=new TH1F("HistminsignalifAntiPionPMCPrimary",";Pt[GeV/c]",kPtBins,binsPtDummy); | |
455 | flist->Add(fHistminsignalifAntiPionPMCPrimary); | |
456 | fHistminsignalifAntiKaonPMCPrimary=new TH1F("HistminsignalifAntiKaonPMCPrimary",";Pt[GeV/c]",kPtBins,binsPtDummy); | |
457 | flist->Add(fHistminsignalifAntiKaonPMCPrimary); | |
458 | fHistminsignalifAntiProtonPMCPrimary=new TH1F("HistminsignalifAntiProtonPMCPrimary",";Pt[GeV/c]",kPtBins,binsPtDummy); | |
459 | flist->Add(fHistminsignalifAntiProtonPMCPrimary); | |
460 | ||
461 | ||
462 | fHistminsignalifPionPMCPrimaryBeforeEventCuts=new TH1F("HistminsignalifPionPMCPrimaryBeforeEventCuts",";Pt[GeV/c]",kPtBins,binsPtDummy); | |
463 | flist->Add(fHistminsignalifPionPMCPrimaryBeforeEventCuts); | |
464 | fHistminsignalifKaonPMCPrimaryBeforeEventCuts=new TH1F("HistminsignalifKaonPMCPrimaryBeforeEventCuts",";Pt[GeV/c]",kPtBins,binsPtDummy); | |
465 | flist->Add(fHistminsignalifKaonPMCPrimaryBeforeEventCuts); | |
466 | fHistminsignalifProtonPMCPrimaryBeforeEventCuts=new TH1F("HistminsignalifProtonPMCPrimaryBeforeEventCuts",";Pt[GeV/c]",kPtBins,binsPtDummy); | |
467 | flist->Add(fHistminsignalifProtonPMCPrimaryBeforeEventCuts); | |
468 | ||
469 | fHistminsignalifAntiPionPMCPrimaryBeforeEventCuts=new TH1F("HistminsignalifAntiPionPMCPrimaryBeforeEventCuts",";Pt[GeV/c]",kPtBins,binsPtDummy); | |
470 | flist->Add(fHistminsignalifAntiPionPMCPrimaryBeforeEventCuts); | |
471 | fHistminsignalifAntiKaonPMCPrimaryBeforeEventCuts=new TH1F("HistminsignalifAntiKaonPMCPrimaryBeforeEventCuts",";Pt[GeV/c]",kPtBins,binsPtDummy); | |
472 | flist->Add(fHistminsignalifAntiKaonPMCPrimaryBeforeEventCuts); | |
473 | fHistminsignalifAntiProtonPMCPrimaryBeforeEventCuts=new TH1F("HistminsignalifAntiProtonPMCPrimaryBeforeEventCuts",";Pt[GeV/c]",kPtBins,binsPtDummy); | |
474 | flist->Add(fHistminsignalifAntiProtonPMCPrimaryBeforeEventCuts); | |
475 | ||
476 | fHistminsignalifPionPMCPrimaryBeforeEventCutswithgoodZvertex=new TH1F("HistminsignalifPionPMCPrimaryBeforeEventCutswithgoodZvertex",";Pt[GeV/c]",kPtBins,binsPtDummy); | |
477 | flist->Add(fHistminsignalifPionPMCPrimaryBeforeEventCutswithgoodZvertex); | |
478 | fHistminsignalifKaonPMCPrimaryBeforeEventCutswithgoodZvertex=new TH1F("HistminsignalifKaonPMCPrimaryBeforeEventCutswithgoodZvertex",";Pt[GeV/c]",kPtBins,binsPtDummy); | |
479 | flist->Add(fHistminsignalifKaonPMCPrimaryBeforeEventCutswithgoodZvertex); | |
480 | fHistminsignalifProtonPMCPrimaryBeforeEventCutswithgoodZvertex=new TH1F("HistminsignalifProtonPMCPrimaryBeforeEventCutswithgoodZvertex",";Pt[GeV/c]",kPtBins,binsPtDummy); | |
481 | flist->Add(fHistminsignalifProtonPMCPrimaryBeforeEventCutswithgoodZvertex); | |
482 | ||
483 | fHistminsignalifAntiPionPMCPrimaryBeforeEventCutswithgoodZvertex=new TH1F("HistminsignalifAntiPionPMCPrimaryBeforeEventCutswithgoodZvertex",";Pt[GeV/c]",kPtBins,binsPtDummy); | |
484 | flist->Add(fHistminsignalifAntiPionPMCPrimaryBeforeEventCutswithgoodZvertex); | |
485 | fHistminsignalifAntiKaonPMCPrimaryBeforeEventCutswithgoodZvertex=new TH1F("HistminsignalifAntiKaonPMCPrimaryBeforeEventCutswithgoodZvertex",";Pt[GeV/c]",kPtBins,binsPtDummy); | |
486 | flist->Add(fHistminsignalifAntiKaonPMCPrimaryBeforeEventCutswithgoodZvertex); | |
487 | fHistminsignalifAntiProtonPMCPrimaryBeforeEventCutswithgoodZvertex=new TH1F("HistminsignalifAntiProtonPMCPrimaryBeforeEventCutswithgoodZvertex",";Pt[GeV/c]",kPtBins,binsPtDummy); | |
488 | flist->Add(fHistminsignalifAntiProtonPMCPrimaryBeforeEventCutswithgoodZvertex); | |
489 | ||
490 | fHistminsignalifPionPMCPrimaryAfterEventCutsBeforeVertexZ=new TH1F("HistminsignalifPionPMCPrimaryAfterEventCutsBeforeVertexZ",";Pt[GeV/c]",kPtBins,binsPtDummy); | |
491 | flist->Add(fHistminsignalifPionPMCPrimaryAfterEventCutsBeforeVertexZ); | |
492 | fHistminsignalifKaonPMCPrimaryAfterEventCutsBeforeVertexZ=new TH1F("HistminsignalifKaonPMCPrimaryAfterEventCutsBeforeVertexZ",";Pt[GeV/c]",kPtBins,binsPtDummy); | |
493 | flist->Add(fHistminsignalifKaonPMCPrimaryAfterEventCutsBeforeVertexZ); | |
494 | fHistminsignalifProtonPMCPrimaryAfterEventCutsBeforeVertexZ=new TH1F("HistminsignalifProtonPMCPrimaryAfterEventCutsBeforeVertexZ",";Pt[GeV/c]",kPtBins,binsPtDummy); | |
495 | flist->Add(fHistminsignalifProtonPMCPrimaryAfterEventCutsBeforeVertexZ); | |
496 | ||
497 | fHistminsignalifAntiPionPMCPrimaryAfterEventCutsBeforeVertexZ=new TH1F("HistminsignalifAntiPionPMCPrimaryAfterEventCutsBeforeVertexZ",";Pt[GeV/c]",kPtBins,binsPtDummy); | |
498 | flist->Add(fHistminsignalifAntiPionPMCPrimaryAfterEventCutsBeforeVertexZ); | |
499 | fHistminsignalifAntiKaonPMCPrimaryAfterEventCutsBeforeVertexZ=new TH1F("HistminsignalifAntiKaonPMCPrimaryAfterEventCutsBeforeVertexZ",";Pt[GeV/c]",kPtBins,binsPtDummy); | |
500 | flist->Add(fHistminsignalifAntiKaonPMCPrimaryAfterEventCutsBeforeVertexZ); | |
501 | fHistminsignalifAntiProtonPMCPrimaryAfterEventCutsBeforeVertexZ=new TH1F("HistminsignalifAntiProtonPMCPrimaryAfterEventCutsBeforeVertexZ",";Pt[GeV/c]",kPtBins,binsPtDummy); | |
502 | flist->Add(fHistminsignalifAntiProtonPMCPrimaryAfterEventCutsBeforeVertexZ); | |
503 | ||
504 | ||
505 | ||
506 | fDCAXYZforcleanPionsMCPrimary=new TH3F("fDCAXYZforcleanPionsMCPrimary",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy); | |
507 | flist->Add(fDCAXYZforcleanPionsMCPrimary); | |
508 | fDCAXYZforcleanAntiPionsMCPrimary=new TH3F("fDCAXYZforcleanAntiPionsMCPrimary",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy); | |
509 | flist->Add(fDCAXYZforcleanAntiPionsMCPrimary); | |
510 | fDCAXYZforcleanProtonsMCPrimary=new TH3F("fDCAXYZforcleanProtonsMCPrimary",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy); | |
511 | flist->Add(fDCAXYZforcleanProtonsMCPrimary); | |
512 | fDCAXYZforcleanAntiProtonsMCPrimary=new TH3F("fDCAXYZforcleanAntiProtonsMCPrimary",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy); | |
513 | flist->Add(fDCAXYZforcleanAntiProtonsMCPrimary); | |
514 | ||
515 | fDCAXYZforcleanPionsWD=new TH3F("fDCAXYZforcleanPionsWD",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy); | |
516 | flist->Add(fDCAXYZforcleanPionsWD); | |
517 | fDCAXYZforcleanAntiPionsWD=new TH3F("fDCAXYZforcleanAntiPionsWD",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy); | |
518 | flist->Add(fDCAXYZforcleanAntiPionsWD); | |
519 | //Secondrary Protons weak deacy | |
520 | ||
521 | fDCAXYZforcleanProtonsWD=new TH3F("fDCAXYZforcleanProtonsWD",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy); | |
522 | flist->Add(fDCAXYZforcleanProtonsWD); | |
523 | fDCAXYZforcleanAntiProtonsWD=new TH3F("fDCAXYZforcleanAntiProtonsWD",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy); | |
524 | flist->Add(fDCAXYZforcleanAntiProtonsWD); | |
525 | ||
526 | fDCAXYZforcleanPionsHI=new TH3F("fDCAXYZforcleanPionsHI",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy); | |
527 | flist->Add(fDCAXYZforcleanPionsHI); | |
528 | fDCAXYZforcleanAntiPionsHI=new TH3F("fDCAXYZforcleanAntiPionsHI",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy); | |
529 | flist->Add(fDCAXYZforcleanAntiPionsHI); | |
530 | //Secondrary Protons Hadronic | |
531 | fDCAXYZforcleanProtonsHI=new TH3F("fDCAXYZforcleanProtonsHI",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy); | |
532 | flist->Add(fDCAXYZforcleanProtonsHI); | |
533 | fDCAXYZforcleanAntiProtonsHI=new TH3F("fDCAXYZforcleanAntiProtonsHI",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy); | |
534 | flist->Add(fDCAXYZforcleanAntiProtonsHI); | |
535 | //Secondrary Pions mu el | |
536 | fDCAXYZforcleanPionsME=new TH3F("fDCAXYZforcleanPionsME",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy); | |
537 | flist->Add(fDCAXYZforcleanPionsME); | |
538 | fDCAXYZforcleanAntiPionsME=new TH3F("fDCAXYZforcleanAntiPionsME",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy); | |
539 | flist->Add(fDCAXYZforcleanAntiPionsME); | |
540 | ||
541 | fDCAXYZforcleanPionsR=new TH3F("fDCAXYZforcleanPionsR",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy); | |
542 | flist->Add(fDCAXYZforcleanPionsR); | |
543 | fDCAXYZforcleanAntiPionsR=new TH3F("fDCAXYZforcleanAntiPionsR",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy); | |
544 | flist->Add(fDCAXYZforcleanAntiPionsR); | |
545 | //Secondrary Protons Hadronic | |
546 | fDCAXYZforcleanProtonsR=new TH3F("fDCAXYZforcleanProtonsR",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy); | |
547 | flist->Add(fDCAXYZforcleanProtonsR); | |
548 | fDCAXYZforcleanAntiProtonsR=new TH3F("fDCAXYZforcleanAntiProtonsR",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy); | |
549 | flist->Add(fDCAXYZforcleanAntiProtonsR); | |
550 | ||
551 | ||
552 | ||
553 | fDCAXYZOpenforcleanPionsMCPrimary=new TH3F("fDCAXYZOpenforcleanPionsMCPrimary",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy); | |
554 | flist->Add(fDCAXYZOpenforcleanPionsMCPrimary); | |
555 | fDCAXYZOpenforcleanAntiPionsMCPrimary=new TH3F("fDCAXYZOpenforcleanAntiPionsMCPrimary",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy); | |
556 | flist->Add(fDCAXYZOpenforcleanAntiPionsMCPrimary); | |
557 | fDCAXYZOpenforcleanProtonsMCPrimary=new TH3F("fDCAXYZOpenforcleanProtonsMCPrimary",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy); | |
558 | flist->Add(fDCAXYZOpenforcleanProtonsMCPrimary); | |
559 | fDCAXYZOpenforcleanAntiProtonsMCPrimary=new TH3F("fDCAXYZOpenforcleanAntiProtonsMCPrimary",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy); | |
560 | flist->Add(fDCAXYZOpenforcleanAntiProtonsMCPrimary); | |
561 | ||
562 | fDCAXYZOpenforcleanPionsWD=new TH3F("fDCAXYZOpenforcleanPionsWD",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy); | |
563 | flist->Add(fDCAXYZOpenforcleanPionsWD); | |
564 | fDCAXYZOpenforcleanAntiPionsWD=new TH3F("fDCAXYZOpenforcleanAntiPionsWD",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy); | |
565 | flist->Add(fDCAXYZOpenforcleanAntiPionsWD); | |
566 | //Secondrary Protons weak deacy | |
567 | ||
568 | fDCAXYZOpenforcleanProtonsWD=new TH3F("fDCAXYZOpenforcleanProtonsWD",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy); | |
569 | flist->Add(fDCAXYZOpenforcleanProtonsWD); | |
570 | fDCAXYZOpenforcleanAntiProtonsWD=new TH3F("fDCAXYZOpenforcleanAntiProtonsWD",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy); | |
571 | flist->Add(fDCAXYZOpenforcleanAntiProtonsWD); | |
572 | ||
573 | fDCAXYZOpenforcleanPionsHI=new TH3F("fDCAXYZOpenforcleanPionsHI",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy); | |
574 | flist->Add(fDCAXYZOpenforcleanPionsHI); | |
575 | fDCAXYZOpenforcleanAntiPionsHI=new TH3F("fDCAXYZOpenforcleanAntiPionsHI",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy); | |
576 | flist->Add(fDCAXYZOpenforcleanAntiPionsHI); | |
577 | //Secondrary Protons Hadronic | |
578 | fDCAXYZOpenforcleanProtonsHI=new TH3F("fDCAXYZOpenforcleanProtonsHI",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy); | |
579 | flist->Add(fDCAXYZOpenforcleanProtonsHI); | |
580 | fDCAXYZOpenforcleanAntiProtonsHI=new TH3F("fDCAXYZOpenforcleanAntiProtonsHI",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy); | |
581 | flist->Add(fDCAXYZOpenforcleanAntiProtonsHI); | |
582 | //Secondrary Pions mu el | |
583 | fDCAXYZOpenforcleanPionsME=new TH3F("fDCAXYZOpenforcleanPionsME",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy); | |
584 | flist->Add(fDCAXYZOpenforcleanPionsME); | |
585 | fDCAXYZOpenforcleanAntiPionsME=new TH3F("fDCAXYZOpenforcleanAntiPionsME",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy); | |
586 | flist->Add(fDCAXYZOpenforcleanAntiPionsME); | |
587 | ||
588 | fDCAXYZOpenforcleanPionsR=new TH3F("fDCAXYZOpenforcleanPionsR",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy); | |
589 | flist->Add(fDCAXYZOpenforcleanPionsR); | |
590 | fDCAXYZOpenforcleanAntiPionsR=new TH3F("fDCAXYZOpenforcleanAntiPionsR",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy); | |
591 | flist->Add(fDCAXYZOpenforcleanAntiPionsR); | |
592 | //Secondrary Protons Hadronic | |
593 | fDCAXYZOpenforcleanProtonsR=new TH3F("fDCAXYZOpenforcleanProtonsR",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy); | |
594 | flist->Add(fDCAXYZOpenforcleanProtonsR); | |
595 | fDCAXYZOpenforcleanAntiProtonsR=new TH3F("fDCAXYZOpenforcleanAntiProtonsR",";Pt[GeV/c];dcaxy[cm];dcaz[cm]",kPtBins,binsPtDummy,kDCABins,binsDCADummy,kDCABins,binsDCADummy); | |
596 | flist->Add(fDCAXYZOpenforcleanAntiProtonsR); | |
597 | ||
598 | ||
599 | ||
600 | fElectronsource=new TH2F("fElectronsource","electrons;Pt [GeV/c];Process",kPtBins,binsPtDummy, kMaxMCProcess,0,kMaxMCProcess); | |
601 | flist->Add(fElectronsource); | |
602 | fAntiElectronsource=new TH2F("fAntiElectronsource","positrons;Pt [GeV/c];Process",kPtBins,binsPtDummy, kMaxMCProcess,0,kMaxMCProcess); | |
603 | flist->Add(fAntiElectronsource); | |
604 | fMuonsource=new TH2F("fMuonsource","electrons;Pt [GeV/c];Process",kPtBins,binsPtDummy, kMaxMCProcess,0,kMaxMCProcess); | |
605 | flist->Add(fMuonsource); | |
606 | fAntiMuonsource=new TH2F("fAntiMuonsource","positrons;Pt [GeV/c];Process",kPtBins,binsPtDummy, kMaxMCProcess,0,kMaxMCProcess); | |
607 | flist->Add(fAntiMuonsource); | |
608 | ||
609 | fPrimaryElectronsMother=new TH1F("fPrimaryElectronsMother",";pdg code",4990,10.5,5000.5); | |
610 | flist->Add(fPrimaryElectronsMother); | |
611 | ||
612 | ||
613 | PostData(1, flist); | |
614 | Printf("end of CreateOutputObjects with MC"); | |
615 | } | |
616 | //________________________________________________________________________ | |
617 | void AliAnalysisChargedHadronSpectraITSTruncatedMeanTask::LocalInit() | |
618 | { | |
619 | //LocalInit | |
620 | Printf("end of LocalInit"); | |
621 | } | |
622 | ||
623 | //________________________________________________________________________ | |
624 | ||
625 | void AliAnalysisChargedHadronSpectraITSTruncatedMeanTask::UserExec(Option_t *) | |
626 | { | |
627 | //UserExec | |
628 | fESD = dynamic_cast<AliESDEvent*> (InputEvent()); | |
629 | if (!fESD) | |
630 | { | |
631 | Printf("ERROR: fESD not available"); | |
632 | return; | |
633 | } | |
634 | AliStack* stack=0x0; | |
635 | Double_t mcZvertex=0.0; | |
636 | if(fMC) | |
637 | { | |
638 | AliMCEvent* mcEvent = (AliMCEvent*) MCEvent(); | |
639 | Printf("MC particles: %d", mcEvent->GetNumberOfTracks()); | |
640 | stack = mcEvent->Stack(); | |
641 | mcZvertex=mcEvent->GetPrimaryVertex()->GetZ(); | |
642 | } | |
643 | ||
644 | if(stack)//Looping over MC information of all events | |
645 | { | |
646 | fHistStats->Fill(8); | |
647 | if(TMath::Abs(mcZvertex)<10.0) | |
648 | fHistStats->Fill(9); | |
649 | for (int imc=0;imc<stack->GetNtrack();imc++) | |
650 | { | |
651 | if(!(stack->IsPhysicalPrimary(imc))) | |
652 | continue; | |
653 | TParticle *particleMC = stack->Particle(imc); | |
654 | if(!particleMC) | |
655 | continue; | |
656 | Int_t pdgcodeMC = particleMC->GetPdgCode(); | |
657 | if (TMath::Abs(particleMC->Y())>fYCut) | |
658 | continue; | |
659 | if (particleMC->Pt()>2.0) | |
660 | continue; | |
661 | if(pdgcodeMC==211) | |
662 | fHistminsignalifPionPMCPrimaryBeforeEventCuts->Fill(particleMC->Pt()); | |
663 | if(pdgcodeMC==-211) | |
664 | fHistminsignalifAntiPionPMCPrimaryBeforeEventCuts->Fill(particleMC->Pt()); | |
665 | if(pdgcodeMC==321) | |
666 | fHistminsignalifKaonPMCPrimaryBeforeEventCuts->Fill(particleMC->Pt()); | |
667 | if(pdgcodeMC==-321) | |
668 | fHistminsignalifAntiKaonPMCPrimaryBeforeEventCuts->Fill(particleMC->Pt()); | |
669 | if(pdgcodeMC==2212) | |
670 | fHistminsignalifProtonPMCPrimaryBeforeEventCuts->Fill(particleMC->Pt()); | |
671 | if(pdgcodeMC==-2212) | |
672 | fHistminsignalifAntiProtonPMCPrimaryBeforeEventCuts->Fill(particleMC->Pt()); | |
673 | ||
674 | if(TMath::Abs(mcZvertex)>10.0) | |
675 | continue; | |
676 | ||
677 | if(pdgcodeMC==211) | |
678 | fHistminsignalifPionPMCPrimaryBeforeEventCutswithgoodZvertex->Fill(particleMC->Pt()); | |
679 | if(pdgcodeMC==-211) | |
680 | fHistminsignalifAntiPionPMCPrimaryBeforeEventCutswithgoodZvertex->Fill(particleMC->Pt()); | |
681 | if(pdgcodeMC==321) | |
682 | fHistminsignalifKaonPMCPrimaryBeforeEventCutswithgoodZvertex->Fill(particleMC->Pt()); | |
683 | if(pdgcodeMC==-321) | |
684 | fHistminsignalifAntiKaonPMCPrimaryBeforeEventCutswithgoodZvertex->Fill(particleMC->Pt()); | |
685 | if(pdgcodeMC==2212) | |
686 | fHistminsignalifProtonPMCPrimaryBeforeEventCutswithgoodZvertex->Fill(particleMC->Pt()); | |
687 | if(pdgcodeMC==-2212) | |
688 | fHistminsignalifAntiProtonPMCPrimaryBeforeEventCutswithgoodZvertex->Fill(particleMC->Pt()); | |
689 | } | |
690 | } | |
691 | fHistStats->Fill(0); | |
692 | //Event selection | |
693 | //if( ((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected()==0) | |
694 | UInt_t isSelected = 0; | |
695 | if(((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))) | |
696 | isSelected=((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected(); | |
697 | Printf("Mask_selection %d", isSelected); | |
698 | if(!(isSelected&AliVEvent::kMB)) | |
699 | { | |
700 | Printf("Not Physics event.........\n"); | |
701 | PostData(1, flist); | |
702 | Printf("end of Exec"); | |
703 | return; | |
704 | } | |
705 | fHistStats->Fill(1); | |
706 | //Good vertex | |
707 | const AliESDVertex *vertex = fESD->GetPrimaryVertexTracks(); | |
708 | if(vertex->GetNContributors()<1) | |
709 | { | |
710 | // SPD vertex | |
711 | vertex = fESD->GetPrimaryVertexSPD(); | |
712 | if(vertex->GetNContributors()<1) | |
713 | { | |
714 | Printf("No good Vertex.........\n"); | |
715 | PostData(1, flist); | |
716 | Printf("end of Exec"); | |
717 | return; | |
718 | } | |
719 | } | |
720 | if(stack) | |
721 | { | |
722 | for (int imc=0;imc<stack->GetNtrack();imc++) | |
723 | { | |
724 | if(!(stack->IsPhysicalPrimary(imc))) | |
725 | continue; | |
726 | TParticle *particleMC = stack->Particle(imc); | |
727 | if(!particleMC) | |
728 | continue; | |
729 | Int_t pdgcodeMC = particleMC->GetPdgCode(); | |
730 | if (TMath::Abs(particleMC->Y())>fYCut) | |
731 | continue; | |
732 | if (particleMC->Pt()>2.0) | |
733 | continue; | |
734 | if(pdgcodeMC==211) | |
735 | fHistminsignalifPionPMCPrimaryAfterEventCutsBeforeVertexZ->Fill(particleMC->Pt()); | |
736 | if(pdgcodeMC==-211) | |
737 | fHistminsignalifAntiPionPMCPrimaryAfterEventCutsBeforeVertexZ->Fill(particleMC->Pt()); | |
738 | if(pdgcodeMC==321) | |
739 | fHistminsignalifKaonPMCPrimaryAfterEventCutsBeforeVertexZ->Fill(particleMC->Pt()); | |
740 | if(pdgcodeMC==-321) | |
741 | fHistminsignalifAntiKaonPMCPrimaryAfterEventCutsBeforeVertexZ->Fill(particleMC->Pt()); | |
742 | if(pdgcodeMC==2212) | |
743 | fHistminsignalifProtonPMCPrimaryAfterEventCutsBeforeVertexZ->Fill(particleMC->Pt()); | |
744 | if(pdgcodeMC==-2212) | |
745 | fHistminsignalifAntiProtonPMCPrimaryAfterEventCutsBeforeVertexZ->Fill(particleMC->Pt()); | |
746 | } | |
747 | } | |
748 | fHistStats->Fill(2); | |
749 | if(TMath::Abs(vertex ->GetZ())>10.0) | |
750 | { | |
751 | Printf("No good Z of Vertex.........\n"); | |
752 | PostData(1, flist); | |
753 | Printf("end of Exec"); | |
754 | return; | |
755 | } | |
756 | fHistStats->Fill(3); | |
757 | ||
758 | if(fCuts==0) | |
759 | { | |
760 | Printf("No CUTS Defined.........\n"); | |
761 | PostData(1, flist); | |
762 | Printf("end of Exec"); | |
763 | return; | |
764 | } | |
765 | ||
766 | Printf("There are %d tracks in this event", fESD->GetNumberOfTracks()); | |
767 | Int_t nTracks=fESD->GetNumberOfTracks(); | |
768 | ||
769 | Int_t mynumberoftracks=0; | |
770 | AliESDtrack *trackESD=0; | |
771 | ||
772 | const Float_t pionmass=0.13957; | |
773 | const Float_t kaonmass=0.493677; | |
774 | const Float_t protonmass=0.938272; | |
775 | ||
776 | for(int tr1=0;tr1<nTracks;tr1++) | |
777 | { | |
778 | ||
779 | trackESD=fESD->GetTrack(tr1); | |
780 | //fHistStats->Fill(2); | |
781 | ||
782 | Double_t pt=trackESD->Pt()*trackESD->GetSign(); | |
783 | Double_t p=trackESD->P(); | |
784 | Double_t eta=trackESD->Eta(); | |
785 | Double_t phi=trackESD->Phi(); | |
786 | Float_t dcaxy, dcaz; | |
787 | Double_t pz=trackESD->Pz(); | |
788 | UShort_t nTPCclusters=trackESD->GetTPCNcls(); | |
789 | fHistPhiPtBeforeCuts->Fill(phi,pt);//phi pt | |
790 | fHistEtaPtBeforeCuts->Fill(eta,pt); | |
791 | fHistDCABeforeCuts->Fill(dcaxy,dcaz); | |
792 | //standart cuts | |
793 | if(fCuts->AcceptTrack(trackESD)==kFALSE) | |
794 | continue; | |
795 | //Tpc pid cut for debug | |
796 | Double_t pinTPC=trackESD->GetTPCInnerParam()->GetP();//momentum in primary vertex taken from TPC tracking | |
797 | Double_t pinTPCglobal=trackESD->GetInnerParam()->GetP();//momentum at the inner wall of the TPC taken from global tracking | |
798 | Float_t sigKaon = fESDpid->GetTPCResponse().GetExpectedSignal(pinTPCglobal, AliPID::kKaon); | |
799 | Float_t sigProton = fESDpid->GetTPCResponse().GetExpectedSignal(pinTPCglobal, AliPID::kProton); | |
800 | Double_t tpcSignal =trackESD ->GetTPCsignal(); | |
801 | trackESD->GetImpactParameters(dcaxy,dcaz); | |
802 | if(fTPCPIDCUT) | |
803 | { | |
804 | if(fTPCPIDCUT->AcceptTrack(trackESD,fESD)==kFALSE) | |
805 | continue; | |
806 | } | |
807 | Bool_t cutDCA=SelectOnImpPar(trackESD); | |
808 | ||
809 | //fHistStats->Fill(4); | |
810 | Double_t tmpQESD[4]={-1.0,-1.0,-1.0,-1.0}; | |
811 | trackESD->GetITSdEdxSamples(tmpQESD); | |
812 | if(fCorrectSDD&&fMC) | |
813 | CorrectSDD(tmpQESD ); | |
814 | if(fCorrectSSD&&fMC) | |
815 | CorrectSSD(tmpQESD ); | |
816 | Int_t nSSDSDD=0; | |
817 | Int_t nSSDSDDall=0; | |
818 | ||
819 | //Y assumtion | |
820 | Float_t yforpion=0.5*TMath::Log((TMath::Sqrt(pionmass*pionmass+p*p)+pz)/(TMath::Sqrt(pionmass*pionmass+p*p)-pz)); | |
821 | Float_t yforkaon=0.5*TMath::Log((TMath::Sqrt(kaonmass*kaonmass+p*p)+pz)/(TMath::Sqrt(kaonmass*kaonmass+p*p)-pz)); | |
822 | Float_t yforproton=0.5*TMath::Log((TMath::Sqrt(protonmass*protonmass+p*p)+pz)/(TMath::Sqrt(protonmass*protonmass+p*p)-pz)); | |
823 | ||
824 | if(TMath::Abs(yforpion)>fYCut&&TMath::Abs(yforkaon)>fYCut&&TMath::Abs(yforproton)>fYCut) //go trought one y cut | |
825 | continue; | |
826 | ||
827 | if(TMath::Abs(yforpion)<fYCut&&cutDCA) | |
828 | fHistNtrackwithstandardcuts->Fill(TMath::Abs(pt),0); | |
829 | if(TMath::Abs(yforkaon)<fYCut&&cutDCA) | |
830 | { | |
831 | fHistNtrackwithstandardcuts->Fill(TMath::Abs(pt),1); | |
832 | if(pt>0.0) | |
833 | fHistSignalinTPCKaonforstandardcuts->Fill(pt,(tpcSignal-sigKaon)/sigKaon); | |
834 | else | |
835 | fHistSignalinTPCAntiKaonforstandardcuts->Fill(TMath::Abs(pt),(tpcSignal-sigKaon)/sigKaon); | |
836 | } | |
837 | if(TMath::Abs(yforproton)<fYCut&&cutDCA) | |
838 | { | |
839 | fHistNtrackwithstandardcuts->Fill(TMath::Abs(pt),2); | |
840 | if(pt>0.0) | |
841 | fHistSignalinTPCProtonforstandardcuts->Fill(pt,(tpcSignal-sigProton)/sigProton); | |
842 | else | |
843 | fHistSignalinTPCAntiProtonforstandardcuts->Fill(TMath::Abs(pt),(tpcSignal-sigProton)/sigProton); | |
844 | } | |
845 | ||
846 | ||
847 | for (int iL=0;iL<4;iL++) | |
848 | { | |
849 | if(tmpQESD[iL]>fchargeCut) | |
850 | nSSDSDD++; | |
851 | if(tmpQESD[iL]>0.0) | |
852 | nSSDSDDall++; | |
853 | } | |
854 | if(nSSDSDDall>=3) | |
855 | fHistStats->Fill(4); | |
856 | //ITS PId cut | |
857 | if(nSSDSDD<3) | |
858 | { | |
859 | // cout<<"BAD "<<stack->Particle(TMath::Abs(trackESD->GetLabel()))->GetPdgCode()<<endl; | |
860 | continue; | |
861 | } | |
862 | if(TMath::Abs(yforpion)<fYCut&&cutDCA) | |
863 | { | |
864 | fHistNtrackwithITSPIDcuts->Fill(TMath::Abs(pt),0); | |
865 | if(pt>0.0) | |
866 | fPionNTPCClusters->Fill(pt,nTPCclusters); | |
867 | else | |
868 | fAntiPionNTPCClusters->Fill(TMath::Abs(pt),nTPCclusters); | |
869 | } | |
870 | if(TMath::Abs(yforkaon)<fYCut&&cutDCA) | |
871 | { | |
872 | fHistNtrackwithITSPIDcuts->Fill(TMath::Abs(pt),1); | |
873 | if(pt>0.0) | |
874 | fHistSignalinTPCKaonforITSPIDcuts->Fill(pt,(tpcSignal-sigKaon)/sigKaon); | |
875 | else | |
876 | fHistSignalinTPCAntiKaonforITSPIDcuts->Fill(TMath::Abs(pt),(tpcSignal-sigKaon)/sigKaon); | |
877 | } | |
878 | if(TMath::Abs(yforproton)<fYCut&&cutDCA) | |
879 | { | |
880 | fHistNtrackwithITSPIDcuts->Fill(TMath::Abs(pt),2); | |
881 | if(pt>0.0) | |
882 | fHistSignalinTPCProtonforITSPIDcuts->Fill(pt,(tpcSignal-sigProton)/sigProton); | |
883 | else | |
884 | fHistSignalinTPCAntiProtonforITSPIDcuts->Fill(TMath::Abs(pt),(tpcSignal-sigProton)/sigProton); | |
885 | } | |
886 | fHistStats->Fill(5); | |
887 | fHistPhiPtAfterCuts->Fill(phi,pt); | |
888 | fHistEtaPtAfterCuts->Fill(eta,pt); | |
889 | fHistDCAAfterCuts->Fill(dcaxy,dcaz); | |
890 | fHistPminusTPCinPAfterCuts->Fill(pinTPC-p,pinTPC); | |
891 | fHistPminusTPCinPglobalAfterCuts->Fill(pinTPC-p,pinTPCglobal); | |
892 | if(tmpQESD[0]>fchargeCut) | |
893 | { | |
894 | fHistL3dEP->Fill(p,tmpQESD[0]); | |
895 | fHistL3dETPCinP->Fill(pinTPC,tmpQESD[0]); | |
896 | } | |
897 | if(tmpQESD[1]>fchargeCut) | |
898 | { | |
899 | fHistL4dEP->Fill(p,tmpQESD[1]); | |
900 | fHistL4dETPCinP->Fill(pinTPC,tmpQESD[1]); | |
901 | } | |
902 | if(tmpQESD[2]>fchargeCut) | |
903 | { | |
904 | fHistL5dEP->Fill(p,tmpQESD[2]); | |
905 | fHistL5dETPCinP->Fill(pinTPC,tmpQESD[2]); | |
906 | } | |
907 | if(tmpQESD[3]>fchargeCut) | |
908 | { | |
909 | fHistL6dEP->Fill(p,tmpQESD[3]); | |
910 | fHistL6dETPCinP->Fill(pinTPC,tmpQESD[3]); | |
911 | } | |
912 | Float_t myITSsignal=0.0; | |
913 | Float_t minITSsignal=0.0; | |
914 | Int_t whichLmin=-1; | |
915 | Int_t nosignaL=-1; | |
916 | if(nSSDSDD==3) | |
917 | { | |
918 | Double_t tmp2QESD[3]; | |
919 | Int_t iLnotZero=0; | |
920 | for (int iL=0;iL<4;iL++) | |
921 | { | |
922 | if(tmpQESD[iL]>fchargeCut) | |
923 | { | |
924 | tmp2QESD[iLnotZero]=tmpQESD[iL]; | |
925 | iLnotZero++; | |
926 | } | |
927 | else | |
928 | nosignaL=iL; | |
929 | } | |
930 | whichLmin=TMath::LocMin(3,tmp2QESD); | |
931 | if(nosignaL>-1&&nosignaL<=whichLmin) | |
932 | whichLmin++; | |
933 | minITSsignal=TMath::MinElement(3,tmp2QESD); | |
934 | myITSsignal=MyITSsignalusing3points(tmp2QESD); | |
935 | } | |
936 | if(nSSDSDD==4) | |
937 | { | |
938 | myITSsignal=MyITSsignalusing4points(tmpQESD); | |
939 | whichLmin=TMath::LocMin(4,tmpQESD); | |
940 | minITSsignal=TMath::MinElement(4,tmpQESD); | |
941 | } | |
942 | ||
943 | if(whichLmin==0) | |
944 | fHistwhichhasmin->Fill(0); | |
945 | if(whichLmin==1) | |
946 | fHistwhichhasmin->Fill(1); | |
947 | if(whichLmin==2) | |
948 | fHistwhichhasmin->Fill(2); | |
949 | if(whichLmin==3) | |
950 | fHistwhichhasmin->Fill(3); | |
951 | if(pt>0.0) | |
952 | { | |
953 | fHistMydEPpositive->Fill(p,myITSsignal); | |
954 | fHistMydETPCinPglobalpositive->Fill(pinTPCglobal,myITSsignal); | |
955 | fHistMydETPCinPpositive->Fill(pinTPC,myITSsignal); | |
956 | } | |
957 | else | |
958 | { | |
959 | fHistMydEPnegative->Fill(p,myITSsignal); | |
960 | fHistMydETPCinPglobalnegative->Fill(pinTPCglobal,myITSsignal); | |
961 | fHistMydETPCinPnegative->Fill(pinTPC,myITSsignal); | |
962 | } | |
963 | Float_t signaltouse=myITSsignal; | |
964 | ||
965 | ||
966 | Float_t itspidsignalforpions=TMath::Log(signaltouse)-TMath::Log(BBparametrization(p/pionmass,fpar)); | |
967 | Float_t itspidsignalforkaons=TMath::Log(signaltouse)-TMath::Log(BBparametrization(p/kaonmass,fpar)); | |
968 | Float_t itspidsignalforprotons=TMath::Log(signaltouse)-TMath::Log(BBparametrization(p/protonmass,fpar)); | |
969 | if(cutDCA) | |
970 | mynumberoftracks++; | |
971 | ||
972 | Int_t pa= TypeofParticle(pinTPC,signaltouse); | |
973 | Int_t label=-1; | |
974 | if(fMC) | |
975 | label=trackESD->GetLabel(); | |
976 | Int_t pdgcode=0; | |
977 | Int_t primary=0; | |
978 | Double_t chargeMC=1.0; | |
979 | Float_t etaMC=10.0; | |
980 | Float_t ptMC=10.0; | |
981 | Int_t uniqueID=-1; | |
982 | Int_t pdgcodefake=0; | |
983 | Int_t primaryfake=0; | |
984 | ||
985 | ||
986 | TParticle *particle2=0x0; | |
987 | ||
988 | if(label>0&&stack&&fMC) | |
989 | { | |
990 | primary=stack->IsPhysicalPrimary(TMath::Abs(label)); | |
991 | particle2 = stack->Particle(TMath::Abs(label)); | |
992 | pdgcode=particle2->GetPdgCode(); | |
993 | chargeMC=particle2->GetPDG(0)->Charge()/3.0; | |
994 | etaMC=particle2->Eta(); | |
995 | ptMC=particle2->Pt(); | |
996 | uniqueID=particle2->GetUniqueID(); | |
997 | } | |
998 | if(label<0&&stack&&fMC) | |
999 | { | |
1000 | primaryfake=stack->IsPhysicalPrimary(TMath::Abs(label)); | |
1001 | particle2 = stack->Particle(TMath::Abs(label)); | |
1002 | pdgcodefake=particle2->GetPdgCode(); | |
1003 | uniqueID=particle2->GetUniqueID(); | |
1004 | ||
1005 | } | |
1006 | if(pa==0&&TMath::Abs(yforpion)<=fYCut&&cutDCA) | |
1007 | { | |
1008 | fHistEtaPtPions->Fill(eta,pt); | |
1009 | fHistminsignalforPionP->Fill(pinTPC,signaltouse); | |
1010 | if(stack&&fMC) | |
1011 | { | |
1012 | if(!primary) | |
1013 | fHistEtaPtPionsCon->Fill(etaMC,chargeMC*ptMC); | |
1014 | if(primary&&TMath::Abs(pdgcode)!=211) | |
1015 | fHistEtaPtPionsConPID->Fill(etaMC,chargeMC*ptMC); | |
1016 | if(primary&&TMath::Abs(pdgcode)==211) | |
1017 | fHistEtaPtPionsMCDET->Fill(eta,pt); | |
1018 | } | |
1019 | } | |
1020 | if(pa==1&&TMath::Abs(yforkaon)<=fYCut&&cutDCA) | |
1021 | { | |
1022 | fHistEtaPtKaons->Fill(eta,pt); | |
1023 | fHistminsignalforKaonP->Fill(pinTPC,signaltouse); | |
1024 | if(stack&&fMC) | |
1025 | { | |
1026 | if(!primary) | |
1027 | fHistEtaPtKaonsCon->Fill(etaMC,chargeMC*ptMC); | |
1028 | if(primary&&TMath::Abs(pdgcode)!=321) | |
1029 | fHistEtaPtKaonsConPID->Fill(etaMC,chargeMC*ptMC); | |
1030 | if(primary&&TMath::Abs(pdgcode)==321) | |
1031 | fHistEtaPtKaonsMCDET->Fill(eta,pt); | |
1032 | } | |
1033 | } | |
1034 | if(pa==2&&TMath::Abs(yforproton)<=fYCut&&cutDCA) | |
1035 | { | |
1036 | fHistEtaPtProtons->Fill(eta,pt); | |
1037 | fHistminsignalforProtonP->Fill(pinTPC,signaltouse); | |
1038 | if(stack&&fMC) | |
1039 | { | |
1040 | if(!primary) | |
1041 | fHistEtaPtProtonsCon->Fill(etaMC,chargeMC*ptMC); | |
1042 | if(primary&&TMath::Abs(pdgcode)!=2212) | |
1043 | fHistEtaPtProtonsConPID->Fill(etaMC,chargeMC*ptMC); | |
1044 | if(primary&&TMath::Abs(pdgcode)==2212) | |
1045 | fHistEtaPtProtonsMCDET->Fill(eta,pt); | |
1046 | } | |
1047 | } | |
1048 | if(TMath::Abs(yforpion)<=fYCut) | |
1049 | { | |
1050 | if(pt>0.0) | |
1051 | { | |
1052 | if(cutDCA) | |
1053 | { | |
1054 | fHistminsignalifPionP->Fill(pt,itspidsignalforpions); | |
1055 | if(TMath::Abs(itspidsignalforpions)<0.2) //select on clean | |
1056 | { | |
1057 | fDCAXYZforcleanPions->Fill(pt,dcaxy,dcaz); | |
1058 | if(fMC) | |
1059 | { | |
1060 | if(primary&&pdgcode==211) | |
1061 | fDCAXYZforcleanPionsMCPrimary->Fill(pt,dcaxy,dcaz); | |
1062 | else if(!primary&&pdgcode==211&&uniqueID==kPDecay) | |
1063 | fDCAXYZforcleanPionsWD->Fill(pt,dcaxy,dcaz); | |
1064 | else if(!primary&&pdgcode==211&&uniqueID==kPHadronic) | |
1065 | fDCAXYZforcleanPionsHI->Fill(pt,dcaxy,dcaz); | |
1066 | else if(!primary&&(pdgcode==-11||pdgcode==-13)) | |
1067 | fDCAXYZforcleanPionsME->Fill(pt,dcaxy,dcaz); | |
1068 | else | |
1069 | fDCAXYZforcleanPionsR->Fill(pt,dcaxy,dcaz); | |
1070 | ||
1071 | } | |
1072 | } //select on clean | |
1073 | if(primary) | |
1074 | { | |
1075 | if(pdgcode==211) | |
1076 | fHistminsignalifPionPPrimary->Fill(pt,itspidsignalforpions); | |
1077 | } | |
1078 | else | |
1079 | { | |
1080 | if(pdgcode==211) | |
1081 | fHistminsignalifPionPSecondary->Fill(pt,itspidsignalforpions); | |
1082 | //cout<<pdgcode<<" "<< uniqueID<<" "<<kPDecay<<" "<<kPHadronic<<endl; | |
1083 | } | |
1084 | if(pdgcode==-11||pdgcode==-13) | |
1085 | { | |
1086 | fHistminsignalifMuEPositiveP->Fill(pt,itspidsignalforpions); | |
1087 | if(pdgcode==-11) | |
1088 | { | |
1089 | fHistStats->Fill(6); | |
1090 | fAntiElectronsource->Fill(pt,uniqueID); | |
1091 | } | |
1092 | else if(pdgcode==-13) | |
1093 | { | |
1094 | fHistStats->Fill(7); | |
1095 | fAntiMuonsource->Fill(pt,uniqueID); | |
1096 | } | |
1097 | if(primary&&pdgcode==-11) | |
1098 | fPrimaryElectronsMother->Fill(stack->Particle(particle2->GetFirstMother())->GetPdgCode()); | |
1099 | } | |
1100 | if(pdgcodefake==211) | |
1101 | { | |
1102 | if(primaryfake) | |
1103 | fHistminsignalifPionPrimaryfake->Fill(pt,itspidsignalforpions); | |
1104 | else | |
1105 | fHistminsignalifPionSecondaryfake->Fill(pt,itspidsignalforpions); | |
1106 | } | |
1107 | } | |
1108 | if(TMath::Abs(itspidsignalforpions)<0.2) //select on clean | |
1109 | { | |
1110 | fDCAXYZOpenforcleanPions->Fill(pt,dcaxy,dcaz); | |
1111 | if(fMC) | |
1112 | { | |
1113 | if(primary&&pdgcode==211) | |
1114 | fDCAXYZOpenforcleanPionsMCPrimary->Fill(pt,dcaxy,dcaz); | |
1115 | else if(!primary&&pdgcode==211&&uniqueID==kPDecay) | |
1116 | fDCAXYZOpenforcleanPionsWD->Fill(pt,dcaxy,dcaz); | |
1117 | else if(!primary&&pdgcode==211&&uniqueID==kPHadronic) | |
1118 | fDCAXYZOpenforcleanPionsHI->Fill(pt,dcaxy,dcaz); | |
1119 | else if(!primary&&(pdgcode==-11||pdgcode==-13)) | |
1120 | fDCAXYZOpenforcleanPionsME->Fill(pt,dcaxy,dcaz); | |
1121 | else | |
1122 | fDCAXYZOpenforcleanPionsR->Fill(pt,dcaxy,dcaz); | |
1123 | } | |
1124 | } | |
1125 | } | |
1126 | else | |
1127 | { | |
1128 | if(cutDCA) | |
1129 | { | |
1130 | fHistminsignalifAntiPionP->Fill(TMath::Abs(pt),itspidsignalforpions); | |
1131 | if(TMath::Abs(itspidsignalforpions)<0.2)//select on clean | |
1132 | { | |
1133 | fDCAXYZforcleanAntiPions->Fill(TMath::Abs(pt),dcaxy,dcaz); | |
1134 | if(fMC) | |
1135 | { | |
1136 | if(primary&&pdgcode==-211) | |
1137 | fDCAXYZforcleanAntiPionsMCPrimary->Fill(TMath::Abs(pt),dcaxy,dcaz); | |
1138 | else if(!primary&&pdgcode==-211&&uniqueID==kPDecay) | |
1139 | fDCAXYZforcleanAntiPionsWD->Fill(TMath::Abs(pt),dcaxy,dcaz); | |
1140 | else if(!primary&&pdgcode==-211&&uniqueID==kPHadronic) | |
1141 | fDCAXYZforcleanAntiPionsHI->Fill(TMath::Abs(pt),dcaxy,dcaz); | |
1142 | else if(!primary&&(pdgcode==11||pdgcode==13)) | |
1143 | fDCAXYZforcleanAntiPionsME->Fill(TMath::Abs(pt),dcaxy,dcaz); | |
1144 | else | |
1145 | fDCAXYZforcleanAntiPionsR->Fill(TMath::Abs(pt),dcaxy,dcaz); | |
1146 | } | |
1147 | } //select on clean | |
1148 | if(primary) | |
1149 | { | |
1150 | if(pdgcode==-211) | |
1151 | fHistminsignalifAntiPionPPrimary->Fill(TMath::Abs(pt),itspidsignalforpions); | |
1152 | } | |
1153 | else | |
1154 | { | |
1155 | if(pdgcode==-211) | |
1156 | fHistminsignalifAntiPionPSecondary->Fill(TMath::Abs(pt),itspidsignalforpions); | |
1157 | //cout<<pdgcode<<" "<< uniqueID<<" "<<kPDecay<<" "<<kPHadronic<<endl; | |
1158 | } | |
1159 | if(pdgcode==11||pdgcode==13) | |
1160 | { | |
1161 | fHistminsignalifMuENegativeP->Fill(TMath::Abs(pt),itspidsignalforpions); | |
1162 | if(pdgcode==11) | |
1163 | { | |
1164 | fHistStats->Fill(6); | |
1165 | fElectronsource->Fill(TMath::Abs(pt),uniqueID); | |
1166 | } | |
1167 | else if(pdgcode==13) | |
1168 | { | |
1169 | fHistStats->Fill(7); | |
1170 | fMuonsource->Fill(TMath::Abs(pt),uniqueID); | |
1171 | } | |
1172 | if(primary&&pdgcode==11) | |
1173 | fPrimaryElectronsMother->Fill(stack->Particle(particle2->GetFirstMother())->GetPdgCode()); | |
1174 | } | |
1175 | if(pdgcodefake==-211) | |
1176 | { | |
1177 | if(primaryfake) | |
1178 | fHistminsignalifAntiPionPrimaryfake->Fill(TMath::Abs(pt),itspidsignalforpions); | |
1179 | else | |
1180 | fHistminsignalifAntiPionSecondaryfake->Fill(TMath::Abs(pt),itspidsignalforpions); | |
1181 | } | |
1182 | } | |
1183 | if(TMath::Abs(itspidsignalforpions)<0.2)//select on clean | |
1184 | { | |
1185 | fDCAXYZOpenforcleanAntiPions->Fill(TMath::Abs(pt),dcaxy,dcaz); | |
1186 | if(fMC) | |
1187 | { | |
1188 | if(primary&&pdgcode==-211) | |
1189 | fDCAXYZOpenforcleanAntiPionsMCPrimary->Fill(TMath::Abs(pt),dcaxy,dcaz); | |
1190 | else if(!primary&&pdgcode==-211&&uniqueID==kPDecay) | |
1191 | fDCAXYZOpenforcleanAntiPionsWD->Fill(TMath::Abs(pt),dcaxy,dcaz); | |
1192 | else if(!primary&&pdgcode==-211&&uniqueID==kPHadronic) | |
1193 | fDCAXYZOpenforcleanAntiPionsHI->Fill(TMath::Abs(pt),dcaxy,dcaz); | |
1194 | else if(!primary&&(pdgcode==11||pdgcode==13)) | |
1195 | fDCAXYZOpenforcleanAntiPionsME->Fill(TMath::Abs(pt),dcaxy,dcaz); | |
1196 | else | |
1197 | fDCAXYZOpenforcleanAntiPionsR->Fill(TMath::Abs(pt),dcaxy,dcaz); | |
1198 | } | |
1199 | } //sel | |
1200 | } | |
1201 | } | |
1202 | if(TMath::Abs(yforkaon)<=fYCut&&cutDCA) | |
1203 | { | |
1204 | if(pt>0.0) | |
1205 | { | |
1206 | fHistminsignalifKaonP->Fill(pt,itspidsignalforkaons); | |
1207 | if(primary) | |
1208 | { | |
1209 | if(pdgcode==321) | |
1210 | fHistminsignalifKaonPPrimary->Fill(pt,itspidsignalforkaons); | |
1211 | } | |
1212 | else | |
1213 | { | |
1214 | if(pdgcode==321) | |
1215 | fHistminsignalifKaonPSecondary->Fill(pt,itspidsignalforkaons); | |
1216 | } | |
1217 | if(pdgcodefake==321) | |
1218 | { | |
1219 | if(primaryfake) | |
1220 | fHistminsignalifKaonPrimaryfake->Fill(pt,itspidsignalforkaons); | |
1221 | else | |
1222 | fHistminsignalifKaonSecondaryfake->Fill(pt,itspidsignalforkaons); | |
1223 | } | |
1224 | } | |
1225 | else | |
1226 | { | |
1227 | fHistminsignalifAntiKaonP->Fill(TMath::Abs(pt),itspidsignalforkaons); | |
1228 | if(primary) | |
1229 | { | |
1230 | if(pdgcode==-321) | |
1231 | fHistminsignalifAntiKaonPPrimary->Fill(TMath::Abs(pt),itspidsignalforkaons); | |
1232 | } | |
1233 | else | |
1234 | { | |
1235 | if(pdgcode==-321) | |
1236 | fHistminsignalifAntiKaonPSecondary->Fill(TMath::Abs(pt),itspidsignalforkaons); | |
1237 | } | |
1238 | if(pdgcodefake==-321) | |
1239 | { | |
1240 | if(primaryfake) | |
1241 | fHistminsignalifAntiKaonPrimaryfake->Fill(TMath::Abs(pt),itspidsignalforkaons); | |
1242 | else | |
1243 | fHistminsignalifAntiKaonSecondaryfake->Fill(TMath::Abs(pt),itspidsignalforkaons); | |
1244 | ||
1245 | } | |
1246 | } | |
1247 | } | |
1248 | if(TMath::Abs(yforproton)<=fYCut) | |
1249 | { | |
1250 | if(pt>0.0) | |
1251 | { | |
1252 | if(cutDCA) | |
1253 | { | |
1254 | fHistminsignalifProtonP->Fill(pt,itspidsignalforprotons); | |
1255 | ||
1256 | //if(((itspidsignalforprotons))>(TMath::Abs(pt)<0.45?-0.2:0.0))&&(itspidsignalforprotons))<0.2)//select on | |
1257 | // clean | |
1258 | if((itspidsignalforprotons>-0.2)&&(itspidsignalforprotons<0.5)) | |
1259 | { | |
1260 | fDCAXYZforcleanProtons->Fill(pt,dcaxy,dcaz); | |
1261 | if(fMC) | |
1262 | { | |
1263 | if(primary&&pdgcode==2212) | |
1264 | fDCAXYZforcleanProtonsMCPrimary->Fill(pt,dcaxy,dcaz); | |
1265 | else if(!primary&&!primaryfake&&(pdgcode==2212||pdgcodefake==2212)&&uniqueID==kPDecay) | |
1266 | fDCAXYZforcleanProtonsWD->Fill(pt,dcaxy,dcaz); | |
1267 | else if(!primary&&!primaryfake&&(pdgcode==2212||pdgcodefake==2212)&&uniqueID==kPHadronic) | |
1268 | fDCAXYZforcleanProtonsHI->Fill(pt,dcaxy,dcaz); | |
1269 | else | |
1270 | fDCAXYZforcleanProtonsR->Fill(pt,dcaxy,dcaz); | |
1271 | } | |
1272 | }//select on clean | |
1273 | if(primary) | |
1274 | { | |
1275 | if(pdgcode==2212) | |
1276 | fHistminsignalifProtonPPrimary->Fill(pt,itspidsignalforprotons); | |
1277 | } | |
1278 | else if(primaryfake) | |
1279 | { | |
1280 | if(pdgcodefake==2212) | |
1281 | fHistminsignalifProtonPPrimaryfake->Fill(pt,itspidsignalforprotons); | |
1282 | } | |
1283 | else | |
1284 | { | |
1285 | if(pdgcode==2212&&uniqueID==kPDecay) | |
1286 | fHistminsignalifProtonPSecondaryWD->Fill(pt,itspidsignalforprotons); | |
1287 | else if(pdgcode==2212&&uniqueID==kPHadronic) | |
1288 | fHistminsignalifProtonPSecondaryHI->Fill(pt,itspidsignalforprotons); | |
1289 | else if(pdgcodefake==2212&&uniqueID==kPDecay) | |
1290 | fHistminsignalifProtonPSecondaryWDfake->Fill(pt,itspidsignalforprotons); | |
1291 | else if(pdgcodefake==2212&&uniqueID==kPHadronic) | |
1292 | fHistminsignalifProtonPSecondaryHIfake->Fill(pt,itspidsignalforprotons); | |
1293 | else if(fMC) | |
1294 | fHistminsignalifProtonPSecondaryRest->Fill(pt,itspidsignalforprotons); | |
1295 | } | |
1296 | } | |
1297 | ||
1298 | if((itspidsignalforprotons>-0.2)&&(itspidsignalforprotons<0.5)) | |
1299 | { | |
1300 | fDCAXYZOpenforcleanProtons->Fill(pt,dcaxy,dcaz); | |
1301 | if(fMC) | |
1302 | { | |
1303 | if(primary&&pdgcode==2212) | |
1304 | fDCAXYZOpenforcleanProtonsMCPrimary->Fill(pt,dcaxy,dcaz); | |
1305 | else if(!primary&&!primaryfake&&(pdgcode==2212||pdgcodefake==2212)&&uniqueID==kPDecay) | |
1306 | fDCAXYZOpenforcleanProtonsWD->Fill(pt,dcaxy,dcaz); | |
1307 | else if(!primary&&!primaryfake&&(pdgcode==2212||pdgcodefake==2212)&&uniqueID==kPHadronic) | |
1308 | fDCAXYZOpenforcleanProtonsHI->Fill(pt,dcaxy,dcaz); | |
1309 | else | |
1310 | fDCAXYZOpenforcleanProtonsR->Fill(pt,dcaxy,dcaz); | |
1311 | } | |
1312 | }//select on clean | |
1313 | ||
1314 | } | |
1315 | else | |
1316 | { | |
1317 | if(cutDCA) | |
1318 | { | |
1319 | fHistminsignalifAntiProtonP->Fill(TMath::Abs(pt),itspidsignalforprotons); | |
1320 | if((itspidsignalforprotons>-0.2)&&(itspidsignalforprotons<0.5)) | |
1321 | {//select on clean | |
1322 | fDCAXYZforcleanAntiProtons->Fill(TMath::Abs(pt),dcaxy,dcaz); | |
1323 | if(fMC) | |
1324 | { | |
1325 | if(primary&&pdgcode==-2212) | |
1326 | fDCAXYZforcleanAntiProtonsMCPrimary->Fill(TMath::Abs(pt),dcaxy,dcaz); | |
1327 | else if(!primary&&!primaryfake&&(pdgcode==-2212||pdgcodefake==-2212)&&uniqueID==kPDecay) | |
1328 | fDCAXYZforcleanAntiProtonsWD->Fill(TMath::Abs(pt),dcaxy,dcaz); | |
1329 | else if(!primary&&!primaryfake&&(pdgcode==-2212||pdgcodefake==-2212)&&uniqueID==kPHadronic) | |
1330 | fDCAXYZforcleanAntiProtonsHI->Fill(TMath::Abs(pt),dcaxy,dcaz); | |
1331 | else if(fMC) | |
1332 | fDCAXYZforcleanAntiProtonsR->Fill(TMath::Abs(pt),dcaxy,dcaz); | |
1333 | } | |
1334 | }//select on clean | |
1335 | if(primary) | |
1336 | { | |
1337 | if(pdgcode==-2212) | |
1338 | fHistminsignalifAntiProtonPPrimary->Fill(TMath::Abs(pt),itspidsignalforprotons); | |
1339 | } | |
1340 | else if(primaryfake) | |
1341 | { | |
1342 | if(pdgcodefake==-2212) | |
1343 | fHistminsignalifAntiProtonPPrimaryfake->Fill(TMath::Abs(pt),itspidsignalforprotons); | |
1344 | } | |
1345 | else | |
1346 | { | |
1347 | if(pdgcode==-2212&&uniqueID==kPDecay) | |
1348 | fHistminsignalifAntiProtonPSecondaryWD->Fill(TMath::Abs(pt),itspidsignalforprotons); | |
1349 | else if(pdgcode==-2212&&uniqueID==kPHadronic) | |
1350 | fHistminsignalifAntiProtonPSecondaryHI->Fill(TMath::Abs(pt),itspidsignalforprotons); | |
1351 | else if(pdgcodefake==-2212&&uniqueID==kPDecay) | |
1352 | fHistminsignalifAntiProtonPSecondaryWDfake->Fill(TMath::Abs(pt),itspidsignalforprotons); | |
1353 | else if(pdgcodefake==-2212&&uniqueID==kPHadronic) | |
1354 | fHistminsignalifAntiProtonPSecondaryHIfake->Fill(TMath::Abs(pt),itspidsignalforprotons); | |
1355 | else if(fMC) | |
1356 | fHistminsignalifAntiProtonPSecondaryRest->Fill(TMath::Abs(pt),itspidsignalforprotons); | |
1357 | } | |
1358 | } | |
1359 | if((itspidsignalforprotons>-0.2)&&(itspidsignalforprotons<0.5)) | |
1360 | {//select on clean | |
1361 | fDCAXYZOpenforcleanAntiProtons->Fill(TMath::Abs(pt),dcaxy,dcaz); | |
1362 | if(fMC) | |
1363 | { | |
1364 | if(primary&&pdgcode==-2212) | |
1365 | fDCAXYZOpenforcleanAntiProtonsMCPrimary->Fill(TMath::Abs(pt),dcaxy,dcaz); | |
1366 | else if(!primary&&!primaryfake&&(pdgcode==-2212||pdgcodefake==-2212)&&uniqueID==kPDecay) | |
1367 | fDCAXYZOpenforcleanAntiProtonsWD->Fill(TMath::Abs(pt),dcaxy,dcaz); | |
1368 | else if(!primary&&!primaryfake&&(pdgcode==-2212||pdgcodefake==-2212)&&uniqueID==kPHadronic) | |
1369 | fDCAXYZOpenforcleanAntiProtonsHI->Fill(TMath::Abs(pt),dcaxy,dcaz); | |
1370 | else if(fMC) | |
1371 | fDCAXYZOpenforcleanAntiProtonsR->Fill(TMath::Abs(pt),dcaxy,dcaz); | |
1372 | } | |
1373 | } | |
1374 | } | |
1375 | } | |
1376 | } | |
1377 | fHistStandartMul->Fill(AliESDtrackCuts::GetReferenceMultiplicity(fESD,1)); | |
1378 | fHistMytrackMul->Fill(mynumberoftracks); | |
1379 | ||
1380 | ||
1381 | if(stack)//Looping over MC information of all events which passed ESD cuts | |
1382 | { | |
1383 | for (int imc=0;imc<stack->GetNtrack();imc++) | |
1384 | { | |
1385 | if(!(stack->IsPhysicalPrimary(imc))) | |
1386 | continue; | |
1387 | TParticle *particleMC = stack->Particle(imc); | |
1388 | if(!particleMC) | |
1389 | continue; | |
1390 | Int_t pdgcodeMC = particleMC->GetPdgCode(); | |
1391 | if (TMath::Abs(particleMC->Y())>fYCut) | |
1392 | continue; | |
1393 | if (particleMC->Pt()>2.0) | |
1394 | continue; | |
1395 | if(pdgcodeMC==211) | |
1396 | { | |
1397 | fHistEtaPtPionsMC->Fill(particleMC->Eta(),particleMC->Pt()); | |
1398 | fHistminsignalifPionPMCPrimary->Fill(particleMC->Pt()); | |
1399 | } | |
1400 | if(pdgcodeMC==-211) | |
1401 | { | |
1402 | fHistEtaPtPionsMC->Fill(particleMC->Eta(),-1.0*particleMC->Pt()); | |
1403 | fHistminsignalifAntiPionPMCPrimary->Fill(particleMC->Pt()); | |
1404 | } | |
1405 | if(pdgcodeMC==321) | |
1406 | { | |
1407 | fHistEtaPtKaonsMC->Fill(particleMC->Eta(),particleMC->Pt()); | |
1408 | fHistminsignalifKaonPMCPrimary->Fill(particleMC->Pt()); | |
1409 | } | |
1410 | if(pdgcodeMC==-321) | |
1411 | { | |
1412 | fHistEtaPtKaonsMC->Fill(particleMC->Eta(),-1.0*particleMC->Pt()); | |
1413 | fHistminsignalifAntiKaonPMCPrimary->Fill(particleMC->Pt()); | |
1414 | } | |
1415 | if(pdgcodeMC==2212) | |
1416 | { | |
1417 | fHistEtaPtProtonsMC->Fill(particleMC->Eta(),particleMC->Pt()); | |
1418 | fHistminsignalifProtonPMCPrimary->Fill(particleMC->Pt()); | |
1419 | } | |
1420 | if(pdgcodeMC==-2212) | |
1421 | { | |
1422 | fHistEtaPtProtonsMC->Fill(particleMC->Eta(),-1.0*particleMC->Pt()); | |
1423 | fHistminsignalifAntiProtonPMCPrimary->Fill(particleMC->Pt()); | |
1424 | } | |
1425 | ||
1426 | } | |
1427 | } | |
1428 | // Post output data. | |
1429 | Printf("Done..........\n"); | |
1430 | PostData(1, flist); | |
1431 | Printf("....................Done!\n"); | |
1432 | Printf("end of Exec"); | |
1433 | } | |
1434 | ||
1435 | //________________________________________________________________________ | |
1436 | void AliAnalysisChargedHadronSpectraITSTruncatedMeanTask::Terminate(Option_t *) | |
1437 | { | |
1438 | //Terminate | |
1439 | if(fCuts) | |
1440 | fCuts->Dump(); | |
1441 | Printf("BB parameters %f %f %f %f %f",fpar[0],fpar[1],fpar[2],fpar[3],fpar[4]); | |
1442 | Printf("linear parameters a=%f b=%f ",flinearpar[0],flinearpar[1]); | |
1443 | Printf("YCut=%f",fYCut); | |
1444 | Printf("nsigma=%f",fsigmacut); | |
1445 | Printf("DCA cut xy sigma =%f zsigma=%f", fnsigmaxy, fnsigmaz); | |
1446 | Printf("ChargeCut=%f ", fchargeCut); | |
1447 | ||
1448 | if(fTPCPIDCUT) | |
1449 | fTPCPIDCUT->Dump(); | |
1450 | if(fMC) | |
1451 | Printf("MC On\n"); | |
1452 | if(fCorrectSDD) | |
1453 | Printf("correct SDD On\n"); | |
1454 | if(fCorrectSSD) | |
1455 | Printf("correct SSD On\n"); | |
1456 | ||
1457 | ||
1458 | Printf("end of Terminate"); | |
1459 | } | |
1460 | //___________________________________________________ | |
1461 | Float_t AliAnalysisChargedHadronSpectraITSTruncatedMeanTask::MyITSsignalusing4points(Double_t* tmpQESD) const | |
1462 | { | |
1463 | //dE signal in case of 4 points in ITS | |
1464 | Int_t indexes[4]={-1,-1,-1,-1}; | |
1465 | TMath::Sort(4,tmpQESD,indexes,0); | |
1466 | return 0.5*(tmpQESD[indexes[0]]+tmpQESD[indexes[1]]); | |
1467 | } | |
1468 | //________________________________________________________ | |
1469 | Float_t AliAnalysisChargedHadronSpectraITSTruncatedMeanTask::MyITSsignalusing3points( Double_t* tmpQESD) const | |
1470 | { | |
1471 | //dE signal in case of 3 points in ITS | |
1472 | Int_t indexes[3]={-1,-1,-1}; | |
1473 | TMath::Sort(3,tmpQESD,indexes,0); | |
1474 | //cout<<tmpQESD[indexes[0]]<<" "<<tmpQESD[indexes[1]]<<" "<<tmpQESD[indexes[2]]<<endl; | |
1475 | return (tmpQESD[indexes[0]]+tmpQESD[indexes[1]]*0.5)/1.5; | |
1476 | } | |
1477 | //______________________________________________________________ | |
1478 | Int_t AliAnalysisChargedHadronSpectraITSTruncatedMeanTask::TypeofParticle(Float_t mom,Float_t signal) const | |
1479 | { | |
1480 | //nsigma cut show which type | |
1481 | const Float_t pionmass=0.13957; | |
1482 | const Float_t kaonmass=0.493677; | |
1483 | const Float_t protonmass=0.938272; | |
1484 | if(mom<0.15||mom>1.1) | |
1485 | return -1; | |
1486 | Float_t bg[3]={mom/pionmass,mom/kaonmass,mom/protonmass}; | |
1487 | Float_t nsigma[3]={4.0,4.0,4.0}; | |
1488 | for(int i=0;i<3;i++) | |
1489 | { | |
1490 | Float_t peak=BBparametrization(bg[i],fpar); | |
1491 | Float_t rms= flinearpar[0]*peak+flinearpar[1]; | |
1492 | nsigma[i]=TMath::Abs((peak-signal)/rms); | |
1493 | } | |
1494 | Int_t pa=TMath::LocMin(3,nsigma); | |
1495 | if(nsigma[pa]<fsigmacut) | |
1496 | { | |
1497 | return pa; | |
1498 | } | |
1499 | else | |
1500 | return -1; | |
1501 | } | |
1502 | //______________________________________________________________________________________ | |
1503 | Float_t AliAnalysisChargedHadronSpectraITSTruncatedMeanTask::BBparametrization(Float_t x,const Float_t* par) const | |
1504 | { | |
1505 | //BBparametrization | |
1506 | ||
1507 | Float_t bg=x; | |
1508 | // cout<<"bg "<<x[0]<<endl; | |
1509 | // cout<<par[0]<<" "<<par[1]<<" "<<par[2]<<" "<<par[3]<<" "<<par[4]<<" "<<endl; | |
1510 | Float_t beta = bg/TMath::Sqrt(1.+ bg*bg); | |
1511 | Float_t gamma=bg/beta; | |
1512 | ||
1513 | Float_t eff=1.0; | |
1514 | if(bg<par[2]) | |
1515 | eff=(bg-par[3])*(bg-par[3])+par[4]; | |
1516 | else | |
1517 | eff=(par[2]-par[3])*(par[2]-par[3])+par[4]; | |
1518 | return (par[1]+2.0*TMath::Log(gamma)-beta*beta)*(par[0]/(beta*beta))*eff; | |
1519 | ||
1520 | } | |
1521 | //____________________________________________________________________________________________________ | |
1522 | void AliAnalysisChargedHadronSpectraITSTruncatedMeanTask::SetFunctionParam( Float_t * const par) | |
1523 | { | |
1524 | //setter for BB parameters | |
1525 | for(int i=0;i<5;i++) | |
1526 | fpar[i]=par[i]; | |
1527 | } | |
1528 | //_____________________________________________________________________________________________________ | |
1529 | void AliAnalysisChargedHadronSpectraITSTruncatedMeanTask::CorrectSDD(Double_t *tmpQESD) const | |
1530 | { | |
1531 | //correction of SDD signal | |
1532 | if(tmpQESD[0]>0.0) | |
1533 | { | |
1534 | tmpQESD[0]=tmpQESD[0]*3.34/5.43; | |
1535 | if(tmpQESD[0]<30.0) | |
1536 | tmpQESD[0]=-1.0; | |
1537 | } | |
1538 | if(tmpQESD[1]>0.0) | |
1539 | { | |
1540 | tmpQESD[1]=tmpQESD[1]*3.34/5.43; | |
1541 | if(tmpQESD[1]<30.0) | |
1542 | tmpQESD[1]=-1.0; | |
1543 | } | |
1544 | } | |
1545 | //_____________________________________________________________________________________________________ | |
1546 | void AliAnalysisChargedHadronSpectraITSTruncatedMeanTask::CorrectSSD(Double_t *tmpQESD) const | |
1547 | { | |
1548 | //Correction of SSD signal | |
1549 | tmpQESD[2]=(85.0/77.0)*tmpQESD[2]; | |
1550 | tmpQESD[3]=(85.0/77.0)*tmpQESD[3]; | |
1551 | } | |
1552 | //_______________________________________________________________________________________________________ | |
1553 | Bool_t AliAnalysisChargedHadronSpectraITSTruncatedMeanTask::SelectOnImpPar(AliESDtrack* t) const | |
1554 | { | |
1555 | // | |
1556 | // cut on transverse impact parameter | |
1557 | // | |
1558 | Float_t d0z0[2],covd0z0[3]; | |
1559 | t->GetImpactParameters(d0z0,covd0z0); | |
1560 | Float_t sigma= 0.0050+0.0060/TMath::Power(t->Pt(),0.9); | |
1561 | Float_t d0max = fnsigmaxy*sigma; | |
1562 | // | |
1563 | Float_t sigmaZ = 0.0146+0.0070/TMath::Power(t->Pt(),1.114758); | |
1564 | if (t->Pt() > 1) | |
1565 | sigmaZ = 0.0216; | |
1566 | Float_t d0maxZ = fnsigmaz*sigmaZ; | |
1567 | // | |
1568 | if(TMath::Abs(d0z0[0]) < d0max && TMath::Abs(d0z0[1]) < d0maxZ) //error | |
1569 | return kTRUE; | |
1570 | return kFALSE; | |
1571 | } |