]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGLF/totEt/AliAnalysisHadEtMonteCarlo.cxx
Changes to enable trigger efficiency studies
[u/mrichter/AliRoot.git] / PWGLF / totEt / AliAnalysisHadEtMonteCarlo.cxx
CommitLineData
cf6522d1 1//_________________________________________________________________________
2// Utility Class for transverse energy studies, charged hadrons
3// Base class for MC analysis
4// - MC output
5// implementation file
6//
7//Created by Christine Nattrass, Rebecca Scott, Irakli Martashvili
641e1e0c 8//University of Tennessee at Knoxville
cf6522d1 9//_________________________________________________________________________
641e1e0c 10#include "AliAnalysisHadEtMonteCarlo.h"
11#include "AliAnalysisEtCuts.h"
12
13#include "AliStack.h"
14#include "AliMCEvent.h"
15#include "AliESDEvent.h"
16#include "AliESDtrackCuts.h"
17#include "AliESDpid.h"
4b40b2b1 18#include "AliPID.h"
19#include "AliESDtrack.h"
20#include "AliVParticle.h"
21#include "AliAnalysisTask.h"
22#include "AliAnalysisManager.h"
23#include "AliAnalysisHadEtReconstructed.h"
49b25059 24#include "AliAnalysisHadEtCorrections.h"
4b40b2b1 25#include "AliAnalysisEtCuts.h"
641e1e0c 26#include <iostream>
4b40b2b1 27#include "TRandom.h"
7d2d1773 28#include "AliAnalysisEtCommon.h"
52503ae7 29#include "AliCentrality.h"
0f6416f3 30#include "AliLog.h"
2c0680a5 31#include "AliPWG0Helper.h"
32//class AliPWG0Helper;
33//#include "$ALICE_ROOT/PWG0/AliPWG0Helper.h"
16abb579 34
641e1e0c 35using namespace std;
36
16abb579 37ClassImp(AliAnalysisHadEtMonteCarlo);
38
4b40b2b1 39
0e866ddc 40Int_t AliAnalysisHadEtMonteCarlo::fgNumSmearWidths = 4;
41Float_t AliAnalysisHadEtMonteCarlo::fgSmearWidths[4] = {0.005,0.006,0.007,0.008};
4b40b2b1 42
d6214a64 43AliAnalysisHadEtMonteCarlo::AliAnalysisHadEtMonteCarlo():AliAnalysisHadEt()
0e866ddc 44 ,fSimPiKPEt(0)
4b40b2b1 45 ,fSimHadEt(0)
46 ,fSimTotEt(0)
49b25059 47 ,fSimPiKPEtShouldBeReco(0)
48 ,fSimPiKPEtShouldBeRecoPi(0)
49 ,fSimPiKPEtShouldBeRecoK(0)
50 ,fSimPiKPEtShouldBeRecoP(0)
f6acf3ad 51 ,fRunLightweight(0)
7d2d1773 52 ,fInvestigateSmearing(0)
53 ,fInvestigateFull(0)
54 ,fInvestigateEMCal(0)
55 ,fInvestigatePHOS(0)
56 ,fInvestigatePiKP(0)
57 ,fRequireITSHits(0)
f43fc416 58 ,fBaryonEnhancement(0)
61e3f555 59 ,fUseRecoPt(0)
d35312c9 60 ,kIsOfflineV0AND(0)
61 ,kDoTriggerChecks(0)
62 ,kDoTriggerChecksOnly(0)
0e866ddc 63 ,fPtSmearer(0)
49b25059 64 ,fHadEtReco(0)
d6214a64 65{
4b40b2b1 66}
67AliAnalysisHadEtMonteCarlo::~AliAnalysisHadEtMonteCarlo(){//destructor
0e866ddc 68 if(fPtSmearer) delete fPtSmearer;
d6214a64 69}
4b40b2b1 70
71void AliAnalysisHadEtMonteCarlo::ResetEventValues(){//resetting event variables
d6214a64 72 AliAnalysisHadEt::ResetEventValues();
73 fSimHadEt=0.0;
74 fSimTotEt=0.0;
0e866ddc 75 fSimPiKPEt=0.0;
d6214a64 76}
cf6522d1 77Int_t AliAnalysisHadEtMonteCarlo::AnalyseEvent(AliVEvent* ev,AliVEvent* ev2)
78{ // analyse MC and real event info
641e1e0c 79 FillHisto1D("NEvents",0.5,1);
6a0df78a 80 if(!ev || !ev2){
0f6416f3 81 AliFatal("ERROR: Event does not exist");
6a0df78a 82 return 0;
83 }
641e1e0c 84 AliMCEvent *mcEvent = dynamic_cast<AliMCEvent*>(ev);
85 AliESDEvent *realEvent = dynamic_cast<AliESDEvent*>(ev2);
ec956c46 86 if(!mcEvent || !realEvent){
87 AliFatal("ERROR: mcEvent or realEvent does not exist");
88 return 0;
89 }
641e1e0c 90 AliStack *stack = mcEvent->Stack();
bf205f52 91 fCentBin= -1;
61e3f555 92 fGoodEvent = kTRUE;//for p+p collisions if we made it this far we have a good event
52503ae7 93 if(fDataSet==20100){//If this is Pb+Pb
94 AliCentrality *centrality = realEvent->GetCentrality();
61e3f555 95 if(fNCentBins<21) fCentBin= centrality->GetCentralityClass10(fCentralityMethod);
bf205f52 96 else{ fCentBin= centrality->GetCentralityClass5(fCentralityMethod);}
61e3f555 97 if(fCentBin ==-1) fGoodEvent = kFALSE;//but for Pb+Pb events we don't want to count events where we did not find a centrality
52503ae7 98 }
99 AnalyseEvent(ev);
d35312c9 100 if(kDoTriggerChecksOnly) return 1;//If we are only doing trigger checks, don't bother with all of the reconstructed stuff
641e1e0c 101 //for PID
d35312c9 102 if(kDoTriggerChecks && !kIsOfflineV0AND){return 1;}//In this case we are just after trigger efficiencies and don't care about the ET reconstructed.
ea331c5d 103 AliESDpid *pID = new AliESDpid();//This is identified as a memory leak in valgrind but I delete this object so I think it may be a problem with AliESDpid.
641e1e0c 104
641e1e0c 105 //=============================================
106
107 //Roughly following $ALICE_ROOT/PWG0/dNdEta/AlidNdEtaCorrectionTask
108
109 //=============================================TPC&&ITS=============================================
49b25059 110 //for investigating momentum smearing
111 Float_t pTtotalReco = 0.0;
112 Float_t pTtotalSim = 0.0;
113 Float_t eTtotalSimAll = 0.0;
114 Float_t eTtotalReco = 0.0;
115 Float_t eTtotalRecoEffCorr = 0.0;
116 Float_t eTtotalRecoEffBkgdCorr = 0.0;
117 Float_t eTtotalRecoBkgdCorr = 0.0;
118 Float_t eTtotalRecoUncorr = 0.0;
119 Float_t eTtotalRecoTotalUncorr = 0.0;
120 Float_t eTtotalRecoEffCorrPi = 0.0;
121 Float_t eTtotalRecoEffCorrK = 0.0;
122 Float_t eTtotalRecoEffCorrP = 0.0;
123 Float_t eTtotalRecoBkgd = 0.0;
124 Float_t eTtotalRecoPIDSmeared = 0.0;
125 Float_t eTtotalAsReconstructed = 0.0;
126 Float_t eTBkgdAsReconstructed = 0.0;
127 Float_t eTtotalAsReconstructedPi = 0.0;
128 Float_t eTtotalAsReconstructedP = 0.0;
129 Float_t eTtotalAsReconstructedK = 0.0;
130 Float_t eTtotalSim = 0.0;
131 Int_t nReco = 0;
cf6522d1 132 TString *strTPC = new TString("TPC");
133 TString *strITS = new TString("ITS");
134 TString *strTPCITS = new TString("TPCITS");
7d2d1773 135 Int_t lastcutset = 1;
136 if(fRequireITSHits) lastcutset = 2;
137 for(Int_t cutset=0;cutset<=lastcutset;cutset++){
ea331c5d 138 TString *cutName = NULL;
139 TObjArray* list = NULL;
641e1e0c 140 switch(cutset){
141 case 0:
cf6522d1 142 cutName = strTPC;
143 list = fEsdtrackCutsTPC->GetAcceptedTracks(realEvent);
641e1e0c 144 break;
145 case 1:
cf6522d1 146 cutName = strITS;
147 list = fEsdtrackCutsITS->GetAcceptedTracks(realEvent);
641e1e0c 148 break;
149 case 2:
cf6522d1 150 cutName = strTPCITS;
151 list = fEsdtrackCutsITSTPC->GetAcceptedTracks(realEvent);
641e1e0c 152 break;
153 default:
154 cerr<<"Error: cannot fill histograms!"<<endl;
155 return -1;
156 }
157 Int_t nGoodTracks = list->GetEntries();
158 for (Int_t iTrack = 0; iTrack < nGoodTracks; iTrack++)
159 {
160 AliESDtrack *track = dynamic_cast<AliESDtrack*> (list->At(iTrack));
161 if (!track)
162 {
163 Printf("ERROR: Could not get track %d", iTrack);
164 continue;
165 }
166 else{
641e1e0c 167 Float_t nSigmaPion,nSigmaProton,nSigmaKaon,nSigmaElectron;
7d2d1773 168 pID->MakeTPCPID(track);
169 pID->MakeITSPID(track);
641e1e0c 170 if(cutset!=1){
cf6522d1 171 nSigmaPion = TMath::Abs(pID->NumberOfSigmasTPC(track,AliPID::kPion));
172 nSigmaProton = TMath::Abs(pID->NumberOfSigmasTPC(track,AliPID::kProton));
173 nSigmaKaon = TMath::Abs(pID->NumberOfSigmasTPC(track,AliPID::kKaon));
174 nSigmaElectron = TMath::Abs(pID->NumberOfSigmasTPC(track,AliPID::kElectron));
641e1e0c 175 }
176 else{
cf6522d1 177 nSigmaPion = TMath::Abs(pID->NumberOfSigmasITS(track,AliPID::kPion));
178 nSigmaProton = TMath::Abs(pID->NumberOfSigmasITS(track,AliPID::kProton));
179 nSigmaKaon = TMath::Abs(pID->NumberOfSigmasITS(track,AliPID::kKaon));
180 nSigmaElectron = TMath::Abs(pID->NumberOfSigmasITS(track,AliPID::kElectron));
641e1e0c 181 }
6a0df78a 182// bool isPion = (nSigmaPion<3.0 && nSigmaProton>2.0 && nSigmaKaon>2.0);
183// bool isElectron = (nSigmaElectron<2.0 && nSigmaPion>4.0 && nSigmaProton>3.0 && nSigmaKaon>3.0);
184// bool isKaon = (nSigmaPion>3.0 && nSigmaProton>2.0 && nSigmaKaon<2.0);
185// bool isProton = (nSigmaPion>3.0 && nSigmaProton<2.0 && nSigmaKaon>2.0);
cf6522d1 186 bool isPion = (nSigmaPion<3.0 && nSigmaProton>2.0 && nSigmaKaon>2.0);
187 bool isElectron = (nSigmaElectron<2.0 && nSigmaPion>4.0 && nSigmaProton>3.0 && nSigmaKaon>3.0);
701b4621 188 bool isKaon = (nSigmaPion>3.0 && nSigmaProton>3.0 && nSigmaKaon<3.0 && track->Pt()<0.45);
189 bool isProton = (nSigmaPion>3.0 && nSigmaProton<3.0 && nSigmaKaon>3.0 && track->Pt()<0.9);
641e1e0c 190
49b25059 191 bool unidentified = (!isProton && !isKaon && !isElectron && !isPion);
192 if(cutset==1){//ITS dE/dx identification requires tighter cuts on the tracks and we don't gain much from that so we won't do it
193 unidentified = true;
194 isPion=false;
195 isElectron=false;
196 isKaon=false;
197 isProton=false;
198 }
641e1e0c 199 Float_t dEdx = track->GetTPCsignal();
200 if(cutset==1) dEdx = track->GetITSsignal();
201
cf6522d1 202 FillHisto2D(Form("dEdxAll%s",cutName->Data()),track->P(),dEdx,1.0);
641e1e0c 203
204 UInt_t label = (UInt_t)TMath::Abs(track->GetLabel());
205 TParticle *simPart = stack->Particle(label);
206 if(!simPart) {
207 Printf("no MC particle\n");
208 continue;
209 }
210 else{//analysis
49b25059 211 if(fInvestigateSmearing && cutset==2){
212 //calculates what we would measure for the pi/k/p et with background
213 eTtotalRecoTotalUncorr += Et(simPart);
214 if(isPion){
215 eTtotalRecoEffBkgdCorr += Et(simPart) *fHadEtReco->GetCorrections()->GetTPCEfficiencyCorrectionPion(track->Pt(),fCentBin) * fHadEtReco->GetCorrections()->GetBackgroundCorrectionTPC(track->Pt());
216 eTtotalRecoBkgdCorr += Et(simPart) * fHadEtReco->GetCorrections()->GetBackgroundCorrectionTPC(track->Pt());
217 eTtotalRecoTotalUncorr += Et(simPart);
218 }
219 if(isProton){
220 eTtotalRecoEffBkgdCorr += Et(simPart) *fHadEtReco->GetCorrections()->GetTPCEfficiencyCorrectionProton(track->Pt(),fCentBin) * fHadEtReco->GetCorrections()->GetBackgroundCorrectionTPC(track->Pt());
221 eTtotalRecoBkgdCorr += Et(simPart) * fHadEtReco->GetCorrections()->GetBackgroundCorrectionTPC(track->Pt());
222 }
223 if(isKaon){
224 eTtotalRecoEffBkgdCorr += Et(simPart) *fHadEtReco->GetCorrections()->GetTPCEfficiencyCorrectionKaon(track->Pt(),fCentBin) * fHadEtReco->GetCorrections()->GetBackgroundCorrectionTPC(track->Pt());
225 eTtotalRecoBkgdCorr += Et(simPart) * fHadEtReco->GetCorrections()->GetBackgroundCorrectionTPC(track->Pt());
226 }
227 if(unidentified){
228 eTtotalRecoEffBkgdCorr += Et(simPart) *fHadEtReco->GetCorrections()->GetTPCEfficiencyCorrectionHadron(track->Pt(),fCentBin) * fHadEtReco->GetCorrections()->GetBackgroundCorrectionTPC(track->Pt());
229 eTtotalRecoBkgdCorr += Et(simPart) * fHadEtReco->GetCorrections()->GetBackgroundCorrectionTPC(track->Pt());
230 }
231 //for calculating et as it's done in the reconstructed data
232 Float_t corrBkgd=0.0;
233 Float_t corrNotID=0.0;
234 Float_t corrNoID=0.0;// = fHadEtReco->GetCorrections()->GetNotIDCorrectionNoPID(track->Pt());
235 Float_t corrEff = 0.0;
236 Float_t corrEffNoID = 0.0;
237 Float_t et = 0.0;
238 if(cutset==2){//TPC
239 corrBkgd = fHadEtReco->GetCorrections()->GetBackgroundCorrectionTPC(track->Pt());
240 corrEffNoID = fHadEtReco->GetCorrections()->GetTPCEfficiencyCorrectionHadron(track->Pt(),fCentBin);
241 corrNotID = fHadEtReco->GetCorrections()->GetNotIDConstCorrectionTPC();
242 corrNoID = fHadEtReco->GetCorrections()->GetNotIDConstCorrectionTPCNoID();
243 }
244 if(cutset==1){//ITS
245 corrBkgd = fHadEtReco->GetCorrections()->GetBackgroundCorrectionITS(track->Pt());
246 corrEffNoID = fHadEtReco->GetCorrections()->GetITSEfficiencyCorrectionHadron(track->Pt(),fCentBin);
247 corrNotID = fHadEtReco->GetCorrections()->GetNotIDConstCorrectionITS();
248 corrNoID = fHadEtReco->GetCorrections()->GetNotIDConstCorrectionITSNoID();
249 }
250
251 bool isprimary = stack->IsPhysicalPrimary(label);
252 if (TMath::Abs(track->Eta()) < fHadEtReco->GetCorrections()->GetEtaCut()){
253 if(isPion){
254 et = Et(track->P(),track->Theta(),fgPiPlusCode,track->Charge());
255 corrEff = fHadEtReco->GetCorrections()->GetTPCEfficiencyCorrectionPion(track->Pt(),fCentBin);
256 if(isprimary){
257 eTtotalAsReconstructed += et*corrBkgd*corrEff*corrNotID;
258 }
259 else{
260 eTBkgdAsReconstructed += et*corrBkgd*corrEff*corrNotID;
261 }
262 }
263 if(isKaon){
264 et = Et(track->P(),track->Theta(),fgKPlusCode,track->Charge());
265 corrEff = fHadEtReco->GetCorrections()->GetTPCEfficiencyCorrectionKaon(track->Pt(),fCentBin);
266 if(isprimary){
267 eTtotalAsReconstructed += et*corrBkgd*corrEff*corrNotID;
268 }
269 else{
270 eTBkgdAsReconstructed += et*corrBkgd*corrEff*corrNotID;
271 }
272 }
273 if(isProton){
274 et = Et(track->P(),track->Theta(),fgProtonCode,track->Charge());
275 corrEff = fHadEtReco->GetCorrections()->GetTPCEfficiencyCorrectionProton(track->Pt(),fCentBin);
276 if(isprimary){
277 eTtotalAsReconstructed += et*corrBkgd*corrEff*corrNotID;
278 }
279 else{
280 eTBkgdAsReconstructed += et*corrBkgd*corrEff*corrNotID;
281 }
282 }
283 if(unidentified){
284 et = Et(track->P(),track->Theta(),fgPiPlusCode,track->Charge());
285 corrEff = fHadEtReco->GetCorrections()->GetTPCEfficiencyCorrectionHadron(track->Pt(),fCentBin);
286 if(isprimary){
287 eTtotalAsReconstructed += et*corrBkgd*corrEff*corrNotID;
288 }
289 else{
290 eTBkgdAsReconstructed += et*corrBkgd*corrEff*corrNotID;
291 }
292 }
293 if(!isPion && !isProton && !isKaon && !unidentified){
294 eTBkgdAsReconstructed += et*corrBkgd*corrEff*corrNotID;
295 }
296 Int_t pdgCode = simPart->GetPDG(0)->PdgCode();
297 if(pdgCode==fgPiPlusCode ||pdgCode==fgPiMinusCode){eTtotalAsReconstructedPi+=et*corrBkgd*corrEff*corrNotID;}
298 if(pdgCode==fgKPlusCode ||pdgCode==fgKMinusCode){eTtotalAsReconstructedK+=et*corrBkgd*corrEff*corrNotID;}
299 if(pdgCode==fgProtonCode ||pdgCode==fgAntiProtonCode){eTtotalAsReconstructedP+=et*corrBkgd*corrEff*corrNotID;}
300 }
301 }
302
303 if(cutset==2) eTtotalSimAll += Et(simPart);
641e1e0c 304 if(stack->IsPhysicalPrimary(label)){
49b25059 305 if (TMath::Abs(simPart->Eta()) < fHadEtReco->GetCorrections()->GetEtaCut()){
641e1e0c 306 Int_t pdgCode = simPart->GetPDG(0)->PdgCode();
307 Int_t mypid = 0;
7d2d1773 308 if(pdgCode==AliAnalysisHadEt::fgPiPlusCode) mypid = 1;
4b40b2b1 309 if(pdgCode==fgProtonCode) mypid = 2;
310 if(pdgCode==fgKPlusCode) mypid = 3;
311 if(pdgCode==fgEPlusCode) mypid = 4;
312 if(pdgCode==fgPiMinusCode) mypid = 1;
313 if(pdgCode==fgAntiProtonCode) mypid = 2;
314 if(pdgCode==fgKMinusCode) mypid = 3;
315 if(pdgCode==fgEMinusCode) mypid = 4;
641e1e0c 316 bool filled = false;
49b25059 317 //for smearing investigations
318 if(fInvestigateSmearing && cutset==2){
319 pTtotalReco += simPart->Pt();
320 pTtotalSim += track->Pt();
321 eTtotalReco += Et(track->P(),track->Theta(),pdgCode,track->Charge());
322 eTtotalSim += Et(simPart);
323 nReco++;
324 }
641e1e0c 325 //============Charged hadrons===================================
49b25059 326 float myefficiencyCorrEt = 0.0;
641e1e0c 327 //identified...
cf6522d1 328 if(isPion){
4b40b2b1 329 if(pdgCode!=fgPiPlusCode && pdgCode!=fgPiMinusCode){
cf6522d1 330 FillHisto2D(Form("MisidentifiedPIDs%s",cutName->Data()),1,mypid,1);
641e1e0c 331 }
332 float myEt = Et(simPart);
49b25059 333 if(fInvestigateSmearing && cutset==2){
334 eTtotalRecoPIDSmeared +=myEt;
335 eTtotalRecoEffCorr += myEt *fHadEtReco->GetCorrections()->GetTPCEfficiencyCorrectionPion(track->Pt(),fCentBin);
336 myefficiencyCorrEt = myEt * fHadEtReco->GetCorrections()->GetTPCEfficiencyCorrectionPion(track->Pt(),fCentBin) ;
337 }
f6acf3ad 338 if( !fRunLightweight){
339 if(track->Charge()>0){ FillHisto2D(Form("EtReconstructed%sIdentifiedPiPlus",cutName->Data()),track->Pt(),track->Eta(),myEt);}
340 else{ FillHisto2D(Form("EtReconstructed%sIdentifiedPiMinus",cutName->Data()),track->Pt(),track->Eta(),myEt);}
341 }
cf6522d1 342 FillHisto2D(Form("dEdxPion%s",cutName->Data()),track->P(),dEdx,1.0);
641e1e0c 343 }
cf6522d1 344 if(isProton){
4b40b2b1 345 if(pdgCode!=fgProtonCode && pdgCode!=fgAntiProtonCode){
cf6522d1 346 FillHisto2D(Form("MisidentifiedPIDs%s",cutName->Data()),2,mypid,1);
641e1e0c 347 }
348 float myEt = Et(simPart);
49b25059 349 if(fInvestigateSmearing && cutset==2){
350 eTtotalRecoPIDSmeared +=myEt;
351 eTtotalRecoEffCorr += myEt *fHadEtReco->GetCorrections()->GetTPCEfficiencyCorrectionProton(track->Pt(),fCentBin);
352 myefficiencyCorrEt = myEt * fHadEtReco->GetCorrections()->GetTPCEfficiencyCorrectionProton(track->Pt(),fCentBin);
353 }
f6acf3ad 354 if( !fRunLightweight){
355 if(track->Charge()>0){ FillHisto2D(Form("EtReconstructed%sIdentifiedProton",cutName->Data()),track->Pt(),track->Eta(),myEt);}
356 else{ FillHisto2D(Form("EtReconstructed%sIdentifiedAntiProton",cutName->Data()),track->Pt(),track->Eta(),myEt);}
357 if(fBaryonEnhancement){
358 myEt = myEt*ProtonBaryonEnhancement(track->Pt());
359 if(track->Charge()>0){ FillHisto2D(Form("EtReconstructed%sIdentifiedProtonEnhanced",cutName->Data()),track->Pt(),track->Eta(),myEt);}
360 else{ FillHisto2D(Form("EtReconstructed%sIdentifiedAntiProtonEnhanced",cutName->Data()),track->Pt(),track->Eta(),myEt);}
361 }
f43fc416 362 }
cf6522d1 363 FillHisto2D(Form("dEdxProton%s",cutName->Data()),track->P(),dEdx,1.0);
641e1e0c 364 }
cf6522d1 365 if(isKaon){
4b40b2b1 366 if(pdgCode!=fgKMinusCode && pdgCode!=fgKPlusCode){
cf6522d1 367 FillHisto2D(Form("MisidentifiedPIDs%s",cutName->Data()),3,mypid,1);
641e1e0c 368 }
369 float myEt = Et(simPart);
49b25059 370 if(fInvestigateSmearing && cutset==2){
371 eTtotalRecoPIDSmeared +=myEt;
372 eTtotalRecoEffCorr += myEt *fHadEtReco->GetCorrections()->GetTPCEfficiencyCorrectionKaon(track->Pt(),fCentBin);
373 myefficiencyCorrEt = myEt * fHadEtReco->GetCorrections()->GetTPCEfficiencyCorrectionKaon(track->Pt(),fCentBin);
374 }
f6acf3ad 375 if( !fRunLightweight){
376 if(track->Charge()>0){ FillHisto2D(Form("EtReconstructed%sIdentifiedKPlus",cutName->Data()),track->Pt(),track->Eta(),myEt);}
377 else{ FillHisto2D(Form("EtReconstructed%sIdentifiedKMinus",cutName->Data()),track->Pt(),track->Eta(),myEt);}
378 }
cf6522d1 379 FillHisto2D(Form("dEdxKaon%s",cutName->Data()),track->P(),dEdx,1.0);
641e1e0c 380 }
cf6522d1 381 if(isElectron){
4b40b2b1 382 if(pdgCode!=fgEMinusCode && pdgCode!=fgEPlusCode){
cf6522d1 383 FillHisto2D(Form("MisidentifiedPIDs%s",cutName->Data()),4,mypid,1);
641e1e0c 384 }
f6acf3ad 385 if( !fRunLightweight){
386 float myEt = Et(simPart);
387 if(track->Charge()>0){ FillHisto2D(Form("EtReconstructed%sIdentifiedEPlus",cutName->Data()),track->Pt(),track->Eta(),myEt);}
388 else{ FillHisto2D(Form("EtReconstructed%sIdentifiedEMinus",cutName->Data()),track->Pt(),track->Eta(),myEt);}
389 }
cf6522d1 390 FillHisto2D(Form("dEdxElectron%s",cutName->Data()),track->P(),dEdx,1.0);
641e1e0c 391 }
cf6522d1 392 if(unidentified){
4b40b2b1 393 if(pdgCode!=fgEMinusCode && pdgCode!=fgEPlusCode){
394 float myEtPi = Et(simPart,fgPionMass);
86d9d0dc 395 float myEtP = Et(simPart,fgProtonMass);
396 float myEtK = Et(simPart,fgKaonMass);
641e1e0c 397 float myEt = Et(simPart);
49b25059 398 if(fInvestigateSmearing && cutset==2){
399 eTtotalRecoPIDSmeared +=myEtPi;
400 eTtotalRecoEffCorr += myEt *fHadEtReco->GetCorrections()->GetTPCEfficiencyCorrectionHadron(track->Pt(),fCentBin);
401 myefficiencyCorrEt = myEt * fHadEtReco->GetCorrections()->GetTPCEfficiencyCorrectionHadron(track->Pt(),fCentBin);
402 }
f6acf3ad 403 if( !fRunLightweight){
404 FillHisto2D(Form("EtReconstructed%sUnidentifiedAssumingPion",cutName->Data()),track->Pt(),track->Eta(),myEtPi);
405 FillHisto2D(Form("EtReconstructed%sUnidentifiedAssumingProton",cutName->Data()),track->Pt(),track->Eta(),myEtP);
406 FillHisto2D(Form("EtReconstructed%sUnidentifiedAssumingKaon",cutName->Data()),track->Pt(),track->Eta(),myEtK);
407 FillHisto2D(Form("EtReconstructed%sUnidentified",cutName->Data()),track->Pt(),track->Eta(),myEt);
408 FillHisto2D(Form("EtNReconstructed%sUnidentified",cutName->Data()),track->Pt(),track->Eta(),1.0);
409 if(pdgCode == fgPiPlusCode||pdgCode == fgPiMinusCode){
410 FillHisto2D(Form("EtReconstructed%sUnidentifiedPionAssumingPion",cutName->Data()),track->Pt(),track->Eta(),myEtPi);
411 FillHisto2D(Form("EtReconstructed%sUnidentifiedPionAssumingProton",cutName->Data()),track->Pt(),track->Eta(),myEtP);
412 FillHisto2D(Form("EtReconstructed%sUnidentifiedPionAssumingKaon",cutName->Data()),track->Pt(),track->Eta(),myEtK);
413 FillHisto2D(Form("EtReconstructed%sUnidentifiedPion",cutName->Data()),track->Pt(),track->Eta(),myEt);
414 FillHisto2D(Form("EtNReconstructed%sUnidentifiedPion",cutName->Data()),track->Pt(),track->Eta(),1.0);
415 }
416 if(pdgCode == fgKPlusCode||pdgCode == fgKMinusCode){
417 FillHisto2D(Form("EtReconstructed%sUnidentifiedKaonAssumingPion",cutName->Data()),track->Pt(),track->Eta(),myEtPi);
418 FillHisto2D(Form("EtReconstructed%sUnidentifiedKaonAssumingProton",cutName->Data()),track->Pt(),track->Eta(),myEtP);
419 FillHisto2D(Form("EtReconstructed%sUnidentifiedKaonAssumingKaon",cutName->Data()),track->Pt(),track->Eta(),myEtK);
420 FillHisto2D(Form("EtReconstructed%sUnidentifiedKaon",cutName->Data()),track->Pt(),track->Eta(),myEt);
421 FillHisto2D(Form("EtNReconstructed%sUnidentifiedKaon",cutName->Data()),track->Pt(),track->Eta(),1.0);
422 }
423 if(pdgCode == fgProtonCode||pdgCode == fgAntiProtonCode){
424 FillHisto2D(Form("EtReconstructed%sUnidentifiedProtonAssumingPion",cutName->Data()),track->Pt(),track->Eta(),myEtPi);
425 FillHisto2D(Form("EtReconstructed%sUnidentifiedProtonAssumingProton",cutName->Data()),track->Pt(),track->Eta(),myEtP);
426 FillHisto2D(Form("EtReconstructed%sUnidentifiedProtonAssumingKaon",cutName->Data()),track->Pt(),track->Eta(),myEtK);
427 FillHisto2D(Form("EtReconstructed%sUnidentifiedProton",cutName->Data()),track->Pt(),track->Eta(),myEt);
428 FillHisto2D(Form("EtNReconstructed%sUnidentifiedProton",cutName->Data()),track->Pt(),track->Eta(),1.0);
429 if(fBaryonEnhancement){
430 myEt = myEt*ProtonBaryonEnhancement(track->Pt());
431 FillHisto2D(Form("EtReconstructed%sUnidentifiedProtonAssumingPionEnhanced",cutName->Data()),track->Pt(),track->Eta(),myEtPi);
432 FillHisto2D(Form("EtReconstructed%sUnidentifiedProtonEnhanced",cutName->Data()),track->Pt(),track->Eta(),myEt);
433 FillHisto2D(Form("EtNReconstructed%sUnidentifiedProtonEnhanced",cutName->Data()),track->Pt(),track->Eta(),1.0);
434 }
f43fc416 435 }
436 }
641e1e0c 437 }
cf6522d1 438 FillHisto2D(Form("dEdxUnidentified%s",cutName->Data()),track->P(),dEdx,1.0);
cf6522d1 439 FillHisto1D(Form("UnidentifiedPIDs%s",cutName->Data()),mypid,1);
641e1e0c 440 }
441 //...simulated
61e3f555 442 float myEtSim = Et(simPart);
443 float myEtReco = 0.0;
7d2d1773 444 if(pdgCode == fgPiPlusCode){
641e1e0c 445 float myEt = Et(simPart);
86d9d0dc 446 float myEtP = Et(simPart,fgProtonMass);
447 float myEtK = Et(simPart,fgKaonMass);
61e3f555 448 myEtReco = Et(track->P(),track->Theta(),fgPiPlusCode,track->Charge());
449 float pT = simPart->Pt();
450 float eta = simPart->Eta();
49b25059 451 if(fInvestigateSmearing && cutset==2){
452 eTtotalRecoEffCorrPi+=myefficiencyCorrEt;
453 eTtotalRecoUncorr +=myEt;
454 }
61e3f555 455 if(fUseRecoPt){//Then we switch the pT and the Et
456 myEt = myEtReco;
457 pT = track->Pt();
458 eta = track->Eta();
459 }
f6acf3ad 460 if( !fRunLightweight){
461 FillHisto2D(Form("EtReconstructed%sPiPlus",cutName->Data()),pT,eta,myEt);
462 FillHisto2D(Form("EtReconstructed%sChargedHadron",cutName->Data()),pT,eta,myEt);
463 FillHisto2D(Form("EtNReconstructed%sPiPlus",cutName->Data()),pT,eta,myEt);
464 FillHisto2D(Form("EtNReconstructed%sChargedHadron",cutName->Data()),pT,eta,myEt);
465 if(fCentBin>=0){//if a centrality bin was defined
466 FillHisto2D(Form("EtNReconstructed%sPiPlusCB%i",cutName->Data(),fCentBin),pT,eta,myEt);
467 FillHisto2D(Form("EtNReconstructed%sChargedHadronCB%i",cutName->Data(),fCentBin),pT,eta,myEt);
468 }
469 FillHisto2D(Form("EtReconstructed%sChargedHadronAssumingPion",cutName->Data()),pT,eta,myEt);
470 FillHisto2D(Form("EtReconstructed%sChargedHadronAssumingProton",cutName->Data()),pT,eta,myEtP);
471 FillHisto2D(Form("EtReconstructed%sChargedHadronAssumingKaon",cutName->Data()),pT,eta,myEtK);
472 FillHisto2D(Form("EtReconstructed%sPiPlusAssumingKaon",cutName->Data()),pT,eta,myEtK);
473 FillHisto2D(Form("EtReconstructed%sPiPlusAssumingProton",cutName->Data()),pT,eta,myEtP);
52503ae7 474 }
641e1e0c 475 filled = true;
476 }
4b40b2b1 477 if(pdgCode == fgPiMinusCode){
641e1e0c 478 float myEt = Et(simPart);
86d9d0dc 479 float myEtP = Et(simPart,fgProtonMass);
480 float myEtK = Et(simPart,fgKaonMass);
61e3f555 481 myEtReco = Et(track->P(),track->Theta(),fgPiMinusCode,track->Charge());
482 float pT = simPart->Pt();
483 float eta = simPart->Eta();
49b25059 484 if(fInvestigateSmearing && cutset==2){
485 eTtotalRecoEffCorrPi+=myefficiencyCorrEt;
486 eTtotalRecoUncorr +=myEt;
487 }
61e3f555 488 if(fUseRecoPt){//Then we switch the pT and the Et
489 myEt = myEtReco;
490 pT = track->Pt();
491 eta = track->Eta();
492 }
f6acf3ad 493 if( !fRunLightweight){
494 FillHisto2D(Form("EtReconstructed%sPiMinus",cutName->Data()),pT,eta,myEt);
495 FillHisto2D(Form("EtReconstructed%sChargedHadron",cutName->Data()),pT,eta,myEt);
496 FillHisto2D(Form("EtNReconstructed%sPiMinus",cutName->Data()),pT,eta,myEt);
497 FillHisto2D(Form("EtNReconstructed%sChargedHadron",cutName->Data()),pT,eta,myEt);
498 if(fCentBin>=0){//if a centrality bin was defined
499 FillHisto2D(Form("EtNReconstructed%sPiMinusCB%i",cutName->Data(),fCentBin),pT,eta,myEt);
500 FillHisto2D(Form("EtNReconstructed%sChargedHadronCB%i",cutName->Data(),fCentBin),pT,eta,myEt);
501 }
502 FillHisto2D(Form("EtReconstructed%sChargedHadronAssumingPion",cutName->Data()),pT,eta,myEt);
503 FillHisto2D(Form("EtReconstructed%sChargedHadronAssumingProton",cutName->Data()),pT,eta,myEtP);
504 FillHisto2D(Form("EtReconstructed%sChargedHadronAssumingKaon",cutName->Data()),pT,eta,myEtK);
505 FillHisto2D(Form("EtReconstructed%sPiMinusAssumingKaon",cutName->Data()),pT,eta,myEtK);
506 FillHisto2D(Form("EtReconstructed%sPiMinusAssumingProton",cutName->Data()),pT,eta,myEtP);
52503ae7 507 }
641e1e0c 508 filled = true;
509 }
4b40b2b1 510 if(pdgCode == fgKPlusCode){
641e1e0c 511 float myEt = Et(simPart);
4b40b2b1 512 float myEtPi = Et(simPart,fgPionMass);
86d9d0dc 513 float myEtP = Et(simPart,fgProtonMass);
61e3f555 514 myEtReco = Et(track->P(),track->Theta(),fgKPlusCode,track->Charge());
515 float pT = simPart->Pt();
516 float eta = simPart->Eta();
517 if(fUseRecoPt){//Then we switch the pT and the Et
518 myEt = myEtReco;
519 pT = track->Pt();
520 eta = track->Eta();
521 }
49b25059 522 if(fInvestigateSmearing && cutset==2){
523 eTtotalRecoEffCorrK+=myefficiencyCorrEt;
524 eTtotalRecoUncorr +=myEt;
525 }
f6acf3ad 526 if( !fRunLightweight){
527 FillHisto2D(Form("EtReconstructed%sKPlus",cutName->Data()),pT,eta,myEt);
528 FillHisto2D(Form("EtReconstructed%sChargedHadron",cutName->Data()),pT,eta,myEt);
529 FillHisto2D(Form("EtNReconstructed%sKPlus",cutName->Data()),pT,eta,myEt);
530 FillHisto2D(Form("EtNReconstructed%sChargedHadron",cutName->Data()),pT,eta,myEt);
531 if(fCentBin>=0){//if a centrality bin was defined
532 FillHisto2D(Form("EtNReconstructed%sKPlusCB%i",cutName->Data(),fCentBin),pT,eta,myEt);
533 FillHisto2D(Form("EtNReconstructed%sChargedHadronCB%i",cutName->Data(),fCentBin),pT,eta,myEt);
534 }
535 FillHisto2D(Form("EtReconstructed%sChargedHadronAssumingPion",cutName->Data()),pT,eta,myEtPi);
536 FillHisto2D(Form("EtReconstructed%sKPlusAssumingPion",cutName->Data()),pT,eta,myEtPi);
537 FillHisto2D(Form("EtReconstructed%sChargedHadronAssumingKaon",cutName->Data()),pT,eta,myEt);
538 FillHisto2D(Form("EtReconstructed%sKPlusAssumingKaon",cutName->Data()),pT,eta,myEt);
539 FillHisto2D(Form("EtReconstructed%sChargedHadronAssumingProton",cutName->Data()),pT,eta,myEtP);
540 FillHisto2D(Form("EtReconstructed%sKPlusAssumingProton",cutName->Data()),pT,eta,myEtP);
52503ae7 541 }
641e1e0c 542 filled = true;
543 }
4b40b2b1 544 if(pdgCode == fgKMinusCode){
641e1e0c 545 float myEt = Et(simPart);
4b40b2b1 546 float myEtPi = Et(simPart,fgPionMass);
86d9d0dc 547 float myEtP = Et(simPart,fgProtonMass);
61e3f555 548 myEtReco = Et(track->P(),track->Theta(),fgKMinusCode,track->Charge());
549 float pT = simPart->Pt();
550 float eta = simPart->Eta();
551 if(fUseRecoPt){//Then we switch the pT and the Et
552 myEt = myEtReco;
553 pT = track->Pt();
554 eta = track->Eta();
555 }
49b25059 556 if(fInvestigateSmearing && cutset==2){
557 eTtotalRecoEffCorrK+=myefficiencyCorrEt;
558 eTtotalRecoUncorr +=myEt;
559 }
f6acf3ad 560 if( !fRunLightweight){
561 FillHisto2D(Form("EtReconstructed%sKMinus",cutName->Data()),pT,eta,myEt);
562 FillHisto2D(Form("EtReconstructed%sChargedHadron",cutName->Data()),pT,eta,myEt);
563 FillHisto2D(Form("EtNReconstructed%sKMinus",cutName->Data()),pT,eta,myEt);
564 FillHisto2D(Form("EtNReconstructed%sChargedHadron",cutName->Data()),pT,eta,myEt);
565 if(fCentBin>=0){//if a centrality bin was defined
566 FillHisto2D(Form("EtNReconstructed%sKMinusCB%i",cutName->Data(),fCentBin),pT,eta,myEt);
567 FillHisto2D(Form("EtNReconstructed%sChargedHadronCB%i",cutName->Data(),fCentBin),pT,eta,myEt);
568 }
569 FillHisto2D(Form("EtReconstructed%sChargedHadronAssumingPion",cutName->Data()),pT,eta,myEtPi);
570 FillHisto2D(Form("EtReconstructed%sKMinusAssumingPion",cutName->Data()),pT,eta,myEtPi);
571 FillHisto2D(Form("EtReconstructed%sChargedHadronAssumingKaon",cutName->Data()),pT,eta,myEt);
572 FillHisto2D(Form("EtReconstructed%sKMinusAssumingKaon",cutName->Data()),pT,eta,myEt);
573 FillHisto2D(Form("EtReconstructed%sChargedHadronAssumingProton",cutName->Data()),pT,eta,myEtP);
574 FillHisto2D(Form("EtReconstructed%sKMinusAssumingProton",cutName->Data()),pT,eta,myEtP);
52503ae7 575 }
641e1e0c 576 filled = true;
577 }
4b40b2b1 578 if(pdgCode == fgProtonCode){
641e1e0c 579 float myEt = Et(simPart);
4b40b2b1 580 float myEtPi = Et(simPart,fgPionMass);
86d9d0dc 581 float myEtK = Et(simPart,fgKaonMass);
61e3f555 582 myEtReco = Et(track->P(),track->Theta(),fgProtonCode,track->Charge());
583 float pT = simPart->Pt();
584 float eta = simPart->Eta();
585 if(fUseRecoPt){//Then we switch the pT and the Et
586 myEt = myEtReco;
587 pT = track->Pt();
588 eta = track->Eta();
589 }
49b25059 590 if(fInvestigateSmearing && cutset==2){
591 eTtotalRecoEffCorrP+=myefficiencyCorrEt;
592 eTtotalRecoUncorr +=myEt;
593 }
f6acf3ad 594 if( !fRunLightweight){
595 FillHisto2D(Form("EtReconstructed%sProton",cutName->Data()),pT,eta,myEt);
596 FillHisto2D(Form("EtReconstructed%sChargedHadron",cutName->Data()),pT,eta,myEt);
597 FillHisto2D(Form("EtNReconstructed%sProton",cutName->Data()),pT,eta,myEt);
598 FillHisto2D(Form("EtNReconstructed%sChargedHadron",cutName->Data()),pT,eta,myEt);
599 if(fCentBin>=0){//if a centrality bin was defined
600 FillHisto2D(Form("EtNReconstructed%sProtonCB%i",cutName->Data(),fCentBin),pT,eta,myEt);
601 FillHisto2D(Form("EtNReconstructed%sChargedHadronCB%i",cutName->Data(),fCentBin),pT,eta,myEt);
602 }
603 FillHisto2D(Form("EtReconstructed%sChargedHadronAssumingPion",cutName->Data()),pT,eta,myEtPi);
604 FillHisto2D(Form("EtReconstructed%sProtonAssumingPion",cutName->Data()),pT,eta,myEtPi);
605 FillHisto2D(Form("EtReconstructed%sChargedHadronAssumingKaon",cutName->Data()),pT,eta,myEtK);
606 FillHisto2D(Form("EtReconstructed%sProtonAssumingKaon",cutName->Data()),pT,eta,myEtK);
607 FillHisto2D(Form("EtReconstructed%sChargedHadronAssumingProton",cutName->Data()),pT,eta,myEt);
608 FillHisto2D(Form("EtReconstructed%sProtonAssumingProton",cutName->Data()),pT,eta,myEt);
52503ae7 609 }
641e1e0c 610 filled = true;
f43fc416 611
f6acf3ad 612 if( !fRunLightweight){
613 if(fBaryonEnhancement){
614 float enhancement = ProtonBaryonEnhancement(track->Pt());
615 FillHisto2D(Form("EtReconstructed%sProtonEnhanced",cutName->Data()),pT,eta,myEt*enhancement);
616 FillHisto2D(Form("EtNReconstructed%sProtonEnhanced",cutName->Data()),pT,eta,myEt*enhancement);
617 FillHisto2D(Form("EtReconstructed%sProtonAssumingPionEnhanced",cutName->Data()),pT,eta,myEtPi*enhancement);
618 }
61e3f555 619 }
f43fc416 620
641e1e0c 621 }
4b40b2b1 622 if(pdgCode == fgAntiProtonCode){
641e1e0c 623 float myEt = Et(simPart);
4b40b2b1 624 float myEtPi = Et(simPart,fgPionMass);
86d9d0dc 625 float myEtK = Et(simPart,fgKaonMass);
61e3f555 626 myEtReco = Et(track->P(),track->Theta(),fgAntiProtonCode,track->Charge());
627 float pT = simPart->Pt();
628 float eta = simPart->Eta();
629 if(fUseRecoPt){//Then we switch the pT and the Et
630 myEt = myEtReco;
631 pT = track->Pt();
632 eta = track->Eta();
633 }
49b25059 634 if(fInvestigateSmearing && cutset==2){
635 eTtotalRecoEffCorrP+=myefficiencyCorrEt;
636 eTtotalRecoUncorr +=myEt;
637 }
f6acf3ad 638 if( !fRunLightweight){
639 FillHisto2D(Form("EtReconstructed%sAntiProton",cutName->Data()),pT,eta,myEt);
640 FillHisto2D(Form("EtReconstructed%sChargedHadron",cutName->Data()),pT,eta,myEt);
641 FillHisto2D(Form("EtNReconstructed%sAntiProton",cutName->Data()),pT,eta,myEt);
642 FillHisto2D(Form("EtNReconstructed%sChargedHadron",cutName->Data()),pT,eta,myEt);
643 if(fCentBin>=0){//if a centrality bin was defined
644 FillHisto2D(Form("EtNReconstructed%sAntiProtonCB%i",cutName->Data(),fCentBin),pT,eta,myEt);
645 FillHisto2D(Form("EtNReconstructed%sChargedHadronCB%i",cutName->Data(),fCentBin),pT,eta,myEt);
646 }
647 FillHisto2D(Form("EtReconstructed%sChargedHadronAssumingPion",cutName->Data()),pT,eta,myEtPi);
648 FillHisto2D(Form("EtReconstructed%sAntiProtonAssumingPion",cutName->Data()),pT,eta,myEtPi);
649 FillHisto2D(Form("EtReconstructed%sChargedHadronAssumingKaon",cutName->Data()),pT,eta,myEtK);
650 FillHisto2D(Form("EtReconstructed%sAntiProtonAssumingKaon",cutName->Data()),pT,eta,myEtK);
651 FillHisto2D(Form("EtReconstructed%sChargedHadronAssumingProton",cutName->Data()),pT,eta,myEt);
652 FillHisto2D(Form("EtReconstructed%sAntiProtonAssumingProton",cutName->Data()),pT,eta,myEt);
52503ae7 653 }
641e1e0c 654 filled = true;
f6acf3ad 655 if( !fRunLightweight){
656 if(fBaryonEnhancement){
657 float enhancement = ProtonBaryonEnhancement(track->Pt());
658 FillHisto2D(Form("EtReconstructed%sAntiProtonEnhanced",cutName->Data()),pT,eta,myEt*enhancement);
659 FillHisto2D(Form("EtNReconstructed%sAntiProtonEnhanced",cutName->Data()),pT,eta,myEt*enhancement);
660 FillHisto2D(Form("EtReconstructed%sAntiProtonAssumingPionEnhanced",cutName->Data()),pT,eta,myEtPi*enhancement);
661 }
f43fc416 662 }
641e1e0c 663 }
4b40b2b1 664 if(pdgCode == fgEPlusCode){
f6acf3ad 665 if( !fRunLightweight){
666 float myEt = Et(simPart);
667 FillHisto2D(Form("EtReconstructed%sEPlus",cutName->Data()),simPart->Pt(),simPart->Eta(),myEt);
668 if(!isElectron || unidentified){
669 float myEtPi = Et(simPart,fgPionMass);
670 FillHisto2D(Form("EtReconstructed%sMisidentifiedElectrons",cutName->Data()),track->Pt(),track->Eta(),myEtPi);
671 }
641e1e0c 672 }
673 filled = true;
674 }
4b40b2b1 675 if(pdgCode == fgEMinusCode){
f6acf3ad 676 if( !fRunLightweight){
677 if(!isElectron || unidentified){
678 float myEtPi = Et(simPart,fgPionMass);
679 FillHisto2D(Form("EtReconstructed%sMisidentifiedElectrons",cutName->Data()),track->Pt(),track->Eta(),myEtPi);
680 }
681 float myEt = Et(simPart);
682 FillHisto2D(Form("EtReconstructed%sEMinus",cutName->Data()),simPart->Pt(),simPart->Eta(),myEt);
641e1e0c 683 }
49b25059 684 filled = true;
641e1e0c 685 }
f6acf3ad 686 if( !fRunLightweight){
687 if(myEtReco>0.0){FillHisto2D(Form("ETresolution%s",cutName->Data()),myEtReco,(myEtSim-myEtReco)/myEtReco,1.0);}
688 if(track->Pt()>0.0){FillHisto2D(Form("pTresolution%s",cutName->Data()),track->Pt(),(simPart->Pt() - track->Pt())/track->Pt(),1.0);}
689 if(track->P()>0.0){FillHisto2D(Form("presolution%s",cutName->Data()),track->P(),(simPart->P() - track->P())/track->P(),1.0);}
690 FillHisto1D(Form("pTsim%s",cutName->Data()),simPart->Pt(),1.0);
691 FillHisto1D(Form("pTrec%s",cutName->Data()),track->Pt(),1.0);
692 if(fCentBin!=-1){
693 FillHisto1D(Form("pTsim%sCB%i",cutName->Data(),fCentBin),simPart->Pt(),1.0);
694 FillHisto1D(Form("pTrec%sCB%i",cutName->Data(),fCentBin),track->Pt(),1.0);
695 }
61e3f555 696 }
641e1e0c 697 }
641e1e0c 698 }
699 else{//not a primary - we're after V0 daughters!
49b25059 700 bool written = false;
701 //now, what is the et we would measure for this? Since this is the relevant et.
702 float myrecoEt = 0;
703 if(isPion || unidentified) myrecoEt = Et(track->P(),track->Theta(),fgPiPlusCode,track->Charge());
704 if(isProton) myrecoEt = Et(track->P(),track->Theta(),fgProtonCode,track->Charge());
705 if(isKaon) myrecoEt = Et(track->P(),track->Theta(),fgKPlusCode,track->Charge());
706 if (TMath::Abs(simPart->Eta()) < fHadEtReco->GetCorrections()->GetEtaCut()){
0e866ddc 707 TParticle *mom = stack->Particle(simPart->GetFirstMother());
708 if(mom){
709 TParticlePDG *pc = mom->GetPDG(0);
710 if(pc){
711 Int_t pdgCode = mom->GetPDG(0)->PdgCode();
712 if(pdgCode == fgLambdaCode){
49b25059 713 written = true;
0e866ddc 714 float myEt = Et(simPart);
61e3f555 715 float pT = simPart->Pt();
716 float eta = simPart->Eta();
49b25059 717 eTtotalRecoBkgd+=myEt;
61e3f555 718 if(fUseRecoPt){//Then we switch the pT and the Et
719 myEt = Et(track->P(),track->Theta(),simPart->GetPDG(0)->PdgCode(),track->Charge());
720 pT = track->Pt();
721 eta = track->Eta();
722 }
f6acf3ad 723 if( !fRunLightweight){
724 FillHisto2D(Form("EtReconstructed%sLambdaDaughters",cutName->Data()),pT,eta,myrecoEt);
725 Float_t weight = LambdaWeight(mom->Pt());
726 if(fBaryonEnhancement){
727 float enhancement = ProtonBaryonEnhancement(track->Pt());
728 weight = weight*enhancement;
729 }
730 FillHisto2D(Form("EtReconstructed%sLambdaDaughtersReweighted",cutName->Data()),pT,eta,myrecoEt*weight);
f43fc416 731 }
0e866ddc 732 }
733 if(pdgCode == fgAntiLambdaCode){
49b25059 734 written = true;
0e866ddc 735 float myEt = Et(simPart);
61e3f555 736 float pT = simPart->Pt();
737 float eta = simPart->Eta();
49b25059 738 eTtotalRecoBkgd+=myEt;
61e3f555 739 if(fUseRecoPt){//Then we switch the pT and the Et
740 myEt = Et(track->P(),track->Theta(),simPart->GetPDG(0)->PdgCode(),track->Charge());
741 pT = track->Pt();
742 eta = track->Eta();
743 }
f6acf3ad 744 if( !fRunLightweight){
745 FillHisto2D(Form("EtReconstructed%sAntiLambdaDaughters",cutName->Data()),pT,eta,myrecoEt);
746 Float_t weight = AntiLambdaWeight(mom->Pt());
747 if(fBaryonEnhancement){
748 float enhancement = ProtonBaryonEnhancement(track->Pt());
749 weight = weight*enhancement;
750 }
751 FillHisto2D(Form("EtReconstructed%sAntiLambdaDaughtersReweighted",cutName->Data()),pT,eta,myrecoEt*weight);
f43fc416 752 }
0e866ddc 753 }
49b25059 754 if(pdgCode == fgK0SCode || pdgCode == fgK0LCode || pdgCode == fgKPlusCode || pdgCode == fgKMinusCode){//actually get all kaon daughters
755 written = true;
0e866ddc 756 float myEt = Et(simPart);
61e3f555 757 float pT = simPart->Pt();
758 float eta = simPart->Eta();
49b25059 759 eTtotalRecoBkgd+=myEt;
61e3f555 760 if(fUseRecoPt){//Then we switch the pT and the Et
761 myEt = Et(track->P(),track->Theta(),simPart->GetPDG(0)->PdgCode(),track->Charge());
762 pT = track->Pt();
763 eta = track->Eta();
764 }
f6acf3ad 765 if( !fRunLightweight){
766 FillHisto2D(Form("EtReconstructed%sK0SDaughters",cutName->Data()),pT,eta,myEt);
767 Float_t weight = K0Weight(mom->Pt());
768 FillHisto2D(Form("EtReconstructed%sK0SDaughtersReweighted",cutName->Data()),pT,eta,myrecoEt*weight);
769 }
0e866ddc 770 }
771 if(pdgCode == fgXiCode){
49b25059 772 written = true;
0e866ddc 773 float myEt = Et(simPart);
61e3f555 774 float pT = simPart->Pt();
775 float eta = simPart->Eta();
49b25059 776 eTtotalRecoBkgd+=myEt;
61e3f555 777 if(fUseRecoPt){//Then we switch the pT and the Et
778 myEt = Et(track->P(),track->Theta(),simPart->GetPDG(0)->PdgCode(),track->Charge());
779 pT = track->Pt();
780 eta = track->Eta();
781 }
f6acf3ad 782 if( !fRunLightweight){
783 FillHisto2D(Form("EtReconstructed%sXiDaughters",cutName->Data()),pT,eta,myrecoEt);
784 }
0e866ddc 785 }
786 if(pdgCode == fgAntiXiCode){
49b25059 787 written = true;
0e866ddc 788 float myEt = Et(simPart);
61e3f555 789 float pT = simPart->Pt();
790 float eta = simPart->Eta();
49b25059 791 eTtotalRecoBkgd+=myEt;
61e3f555 792 if(fUseRecoPt){//Then we switch the pT and the Et
793 myEt = Et(track->P(),track->Theta(),simPart->GetPDG(0)->PdgCode(),track->Charge());
794 pT = track->Pt();
795 eta = track->Eta();
796 }
f6acf3ad 797 if( !fRunLightweight){
798 FillHisto2D(Form("EtReconstructed%sAntiXiDaughters",cutName->Data()),pT,eta,myrecoEt);
799 }
0e866ddc 800 }
801 if(pdgCode == fgOmegaCode){
49b25059 802 written = true;
0e866ddc 803 float myEt = Et(simPart);
61e3f555 804 float pT = simPart->Pt();
805 float eta = simPart->Eta();
49b25059 806 eTtotalRecoBkgd+=myEt;
61e3f555 807 if(fUseRecoPt){//Then we switch the pT and the Et
808 myEt = Et(track->P(),track->Theta(),simPart->GetPDG(0)->PdgCode(),track->Charge());
809 pT = track->Pt();
810 eta = track->Eta();
811 }
f6acf3ad 812 if( !fRunLightweight){
813 FillHisto2D(Form("EtReconstructed%sOmegaDaughters",cutName->Data()),pT,eta,myrecoEt);
814 }
0e866ddc 815 }
816 if(pdgCode == fgXiCode){
49b25059 817 written = true;
0e866ddc 818 float myEt = Et(simPart);
61e3f555 819 float pT = simPart->Pt();
820 float eta = simPart->Eta();
49b25059 821 eTtotalRecoBkgd+=myEt;
61e3f555 822 if(fUseRecoPt){//Then we switch the pT and the Et
823 myEt = Et(track->P(),track->Theta(),simPart->GetPDG(0)->PdgCode(),track->Charge());
824 pT = track->Pt();
825 eta = track->Eta();
826 }
f6acf3ad 827 if( !fRunLightweight){
828 FillHisto2D(Form("EtReconstructed%sAntiOmegaDaughters",cutName->Data()),pT,eta,myrecoEt);
829 }
0e866ddc 830 }
641e1e0c 831
0e866ddc 832 if(mom->GetFirstMother()>0){
833 TParticle *grandma = stack->Particle(mom->GetFirstMother());
834 if(grandma){
835 Int_t pdgCodeMom = mom->GetPDG(0)->PdgCode();
836 if(pdgCodeMom==fgPiPlusCode || pdgCodeMom==fgPiMinusCode || pdgCodeMom==fgProtonCode ||pdgCodeMom==fgAntiProtonCode || pdgCodeMom==fgKPlusCode || pdgCode==fgKMinusCode){
0e866ddc 837 Int_t pdgCodeGrandma = grandma->GetPDG(0)->PdgCode();
641e1e0c 838
0e866ddc 839 if(pdgCodeGrandma == fgXiCode){
49b25059 840 written = true;
0e866ddc 841 float myEt = Et(simPart);
61e3f555 842 float pT = simPart->Pt();
843 float eta = simPart->Eta();
49b25059 844 eTtotalRecoBkgd+=myEt;
61e3f555 845 if(fUseRecoPt){//Then we switch the pT and the Et
846 myEt = Et(track->P(),track->Theta(),simPart->GetPDG(0)->PdgCode(),track->Charge());
847 pT = track->Pt();
848 eta = track->Eta();
849 }
f6acf3ad 850 if( !fRunLightweight){
851 FillHisto2D(Form("EtReconstructed%sXiDaughters",cutName->Data()),pT,eta,myrecoEt);
852 }
0e866ddc 853 }
854 if(pdgCodeGrandma == fgAntiXiCode){
49b25059 855 written = true;
0e866ddc 856 float myEt = Et(simPart);
61e3f555 857 float pT = simPart->Pt();
858 float eta = simPart->Eta();
49b25059 859 eTtotalRecoBkgd+=myEt;
61e3f555 860 if(fUseRecoPt){//Then we switch the pT and the Et
861 myEt = Et(track->P(),track->Theta(),simPart->GetPDG(0)->PdgCode(),track->Charge());
862 pT = track->Pt();
863 eta = track->Eta();
864 }
f6acf3ad 865 if( !fRunLightweight){
866 FillHisto2D(Form("EtReconstructed%sAntiXiDaughters",cutName->Data()),pT,eta,myrecoEt);
867 }
0e866ddc 868 }
869 if(pdgCodeGrandma == fgOmegaCode){
49b25059 870 written = true;
0e866ddc 871 float myEt = Et(simPart);
61e3f555 872 float pT = simPart->Pt();
873 float eta = simPart->Eta();
49b25059 874 eTtotalRecoBkgd+=myEt;
61e3f555 875 if(fUseRecoPt){//Then we switch the pT and the Et
876 myEt = Et(track->P(),track->Theta(),simPart->GetPDG(0)->PdgCode(),track->Charge());
877 pT = track->Pt();
878 eta = track->Eta();
879 }
f6acf3ad 880 if( !fRunLightweight){
881 FillHisto2D(Form("EtReconstructed%sOmegaDaughters",cutName->Data()),pT,eta,myrecoEt);
882 }
0e866ddc 883 }
884 if(pdgCodeGrandma == fgXiCode){
49b25059 885 written = true;
0e866ddc 886 float myEt = Et(simPart);
61e3f555 887 float pT = simPart->Pt();
888 float eta = simPart->Eta();
49b25059 889 eTtotalRecoBkgd+=myEt;
61e3f555 890 if(fUseRecoPt){//Then we switch the pT and the Et
891 myEt = Et(track->P(),track->Theta(),simPart->GetPDG(0)->PdgCode(),track->Charge());
892 pT = track->Pt();
893 eta = track->Eta();
894 }
f6acf3ad 895 if( !fRunLightweight){
896 FillHisto2D(Form("EtReconstructed%sAntiOmegaDaughters",cutName->Data()),pT,eta,myrecoEt);
897 }
0e866ddc 898 }
641e1e0c 899
0e866ddc 900 }
641e1e0c 901 }
902 }
49b25059 903 if(!written){
904 int mycode = simPart->GetPDG(0)->PdgCode();
905 if( (pdgCode == fgGammaCode || pdgCode == fgPi0Code) && (mycode==fgEPlusCode||mycode==fgEMinusCode)){
906 written = true;
907 float myEt = Et(simPart);
908 float pT = simPart->Pt();
909 float eta = simPart->Eta();
910 eTtotalRecoBkgd+=myEt;
911 if(fUseRecoPt){//Then we switch the pT and the Et
912 myEt = Et(track->P(),track->Theta(),simPart->GetPDG(0)->PdgCode(),track->Charge());
913 pT = track->Pt();
914 eta = track->Eta();
915 }
f6acf3ad 916 if( !fRunLightweight){
917 FillHisto2D(Form("EtReconstructed%sConversionElectrons",cutName->Data()),pT,eta,myrecoEt);
918 }
49b25059 919 }
920 if(mycode==fgMuPlusCode || mycode==fgMuMinusCode){
921 written = true;
922 float myEt = Et(simPart);
923 float pT = simPart->Pt();
924 float eta = simPart->Eta();
925 eTtotalRecoBkgd+=myEt;
926 if(fUseRecoPt){//Then we switch the pT and the Et
927 myEt = Et(track->P(),track->Theta(),simPart->GetPDG(0)->PdgCode(),track->Charge());
928 pT = track->Pt();
929 eta = track->Eta();
930 }
f6acf3ad 931 if( !fRunLightweight){
932 FillHisto2D(Form("EtReconstructed%sSecondaryMuons",cutName->Data()),pT,eta,myrecoEt);
933 }
49b25059 934 }
935 if(mycode==fgPiPlusCode || mycode==fgPiMinusCode){
936 written = true;
937 float myEt = Et(simPart);
938 float pT = simPart->Pt();
939 float eta = simPart->Eta();
940 eTtotalRecoBkgd+=myEt;
941 if(fUseRecoPt){//Then we switch the pT and the Et
942 myEt = Et(track->P(),track->Theta(),simPart->GetPDG(0)->PdgCode(),track->Charge());
943 pT = track->Pt();
944 eta = track->Eta();
945 }
f6acf3ad 946 if( !fRunLightweight){
947 FillHisto2D(Form("EtReconstructed%sSecondaryPions",cutName->Data()),pT,eta,myrecoEt);
948 }
49b25059 949 }
950 if(mycode==fgAntiProtonCode || mycode==fgProtonCode){
951 written = true;
952 float myEt = Et(simPart);
953 float pT = simPart->Pt();
954 float eta = simPart->Eta();
955 eTtotalRecoBkgd+=myEt;
956 if(fUseRecoPt){//Then we switch the pT and the Et
957 myEt = Et(track->P(),track->Theta(),simPart->GetPDG(0)->PdgCode(),track->Charge());
958 pT = track->Pt();
959 eta = track->Eta();
960 }
f6acf3ad 961 if( !fRunLightweight){
962 FillHisto2D(Form("EtReconstructed%sSecondaryProtons",cutName->Data()),pT,eta,myrecoEt);
963 }
49b25059 964 }
965 //if(!written) cout<<"I was not counted in the background and I am a "<<simPart->GetName()<<" and my mother is a "<<mom->GetName()<<endl;
966 }
641e1e0c 967 }
49b25059 968 else{cout<<"No particle code!! 657"<<endl;}
641e1e0c 969 }
49b25059 970 else{cout<<"No mother particle!! 658"<<endl;}
641e1e0c 971 }
972 }
973 }
974
975 }
976 }
977 delete list;
978 }
f6acf3ad 979 if(fInvestigateSmearing && !fRunLightweight){
49b25059 980 if(fSimPiKPEtShouldBeReco>0.0) FillHisto2D("SimPiKPEtMinusSimEffCorrRecoOnly",fSimPiKPEtShouldBeReco,(fSimPiKPEtShouldBeReco-eTtotalRecoEffCorr)/fSimPiKPEtShouldBeReco,1.0);
981 if(fSimPiKPEtShouldBeReco>0.0) FillHisto2D("SimPiKPEtMinusSimEffBkgdCorrRecoOnly",fSimPiKPEtShouldBeReco,(fSimPiKPEtShouldBeReco-eTtotalRecoEffBkgdCorr)/fSimPiKPEtShouldBeReco,1.0);
982 if(fSimPiKPEtShouldBeRecoPi>0.0) FillHisto2D("SimPiKPEtMinusSimEffCorrRecoPiOnly",fSimPiKPEtShouldBeRecoPi,(fSimPiKPEtShouldBeRecoPi-eTtotalRecoEffCorrPi)/fSimPiKPEtShouldBeRecoPi,1.0);
983 if(fSimPiKPEtShouldBeRecoP>0.0) FillHisto2D("SimPiKPEtMinusSimEffCorrRecoPOnly",fSimPiKPEtShouldBeRecoP,(fSimPiKPEtShouldBeRecoP-eTtotalRecoEffCorrP)/fSimPiKPEtShouldBeRecoP,1.0);
984 if(fSimPiKPEtShouldBeRecoK>0.0) FillHisto2D("SimPiKPEtMinusSimEffCorrRecoKOnly",fSimPiKPEtShouldBeRecoK,(fSimPiKPEtShouldBeRecoK-eTtotalRecoEffCorrK)/fSimPiKPEtShouldBeRecoK,1.0);
985 if(eTtotalSim>0.0) FillHisto2D("SimPiKPEtMinusSimAllCorrSmearedRecoOnly",eTtotalSim,(eTtotalSim-eTtotalSimAll+eTtotalRecoBkgd)/eTtotalSim,1.0);
986 if(eTtotalRecoTotalUncorr>0.0) FillHisto2D("SimPiKPEtMeasMinusEtRealPiKP",eTtotalRecoTotalUncorr,(eTtotalRecoTotalUncorr-eTtotalRecoUncorr)/eTtotalRecoTotalUncorr,1.0);
987 if(eTtotalSim>0.0) FillHisto2D("SimPiKPEtMinusSimAllSmearedRecoOnly",eTtotalSim,(eTtotalSim-eTtotalSimAll)/eTtotalSim,1.0);
988 if(eTtotalSim>0.0) FillHisto2D("SimPiKPEtMinusSimPIDSmearedRecoOnly",eTtotalSim,(eTtotalSim-eTtotalRecoPIDSmeared*1.01)/eTtotalSim,1.0);
989 if(eTtotalSim>0.0) FillHisto2D("SimPiKPEtMinusSimSmearedRecoOnly",eTtotalSim,(eTtotalSim-eTtotalReco)/eTtotalSim,1.0);
990 if(pTtotalSim>0.0) FillHisto2D("SimPiKPPtMinusSimSmearedRecoOnly",pTtotalSim,(pTtotalSim-pTtotalReco)/pTtotalSim,1.0);
991 if(eTtotalSim>0.0) FillHisto2D("SimPiKPEtMinusSimSmearedMultRecoOnly",nReco,(eTtotalSim-eTtotalReco)/eTtotalSim,1.0);
992 if(pTtotalSim>0.0) FillHisto2D("SimPiKPPtMinusSimSmearedMultRecoOnly",nReco,(pTtotalSim-pTtotalReco)/pTtotalSim,1.0);
993 }
464aa50c 994 delete pID;
995 delete strTPC;
996 delete strITS;
997 delete strTPCITS;
641e1e0c 998 return 1;
999}
1000Int_t AliAnalysisHadEtMonteCarlo::AnalyseEvent(AliVEvent* ev)
cf6522d1 1001{ // analyse MC event
641e1e0c 1002 ResetEventValues();
6a0df78a 1003 if(!ev){
0f6416f3 1004 AliFatal("ERROR: Event does not exist");
6a0df78a 1005 return 0;
1006 }
641e1e0c 1007
1008 // Get us an mc event
1009 AliMCEvent *mcEvent = dynamic_cast<AliMCEvent*>(ev);
ec956c46 1010 if(!mcEvent){
1011 AliFatal("ERROR: MC Event does not exist");
1012 return 0;
1013 }
2c0680a5 1014
641e1e0c 1015 // Let's play with the stack!
1016 AliStack *stack = mcEvent->Stack();
1017
1018 Int_t nPrim = stack->GetNtrack();
1019
0e866ddc 1020 Float_t fSimPiKPEtPtSmeared = 0;
1021 Float_t fSimPiKPEtEfficiencySmeared = 0;
1022 Float_t fSimPiKPEtPtCutSmearedTPC = 0;
1023 Float_t fSimPiKPEtPtCutSmearedITS = 0;
1024 Float_t fSimPiKPEtPIDSmeared = 0;
1025 Float_t fSimPiKPEtPIDSmearedNoID = 0;
49b25059 1026 fSimPiKPEtShouldBeReco = 0;
1027 fSimPiKPEtShouldBeRecoPi = 0;
1028 fSimPiKPEtShouldBeRecoK = 0;
1029 fSimPiKPEtShouldBeRecoP = 0;
641e1e0c 1030 //=================Tracks which may or may not have been reconstructed=================
1031
1032 for (Int_t iPart = 0; iPart < nPrim; iPart++)
1033 {
1034
ea331c5d 1035 TParticle *part = stack->Particle(iPart);//This line is identified as a loss of memory by valgrind, however, the pointer still belongs to the stack, so it's the stack's problem
641e1e0c 1036
1037 if (!part)
1038 {
1039 Printf("ERROR: Could not get particle %d", iPart);
1040 continue;
1041 }
641e1e0c 1042 // Check if it is a primary particle
f427cbed 1043 if (stack->IsPhysicalPrimary(iPart)){//primaries
641e1e0c 1044
49b25059 1045 if (TMath::Abs(part->Eta()) < fHadEtReco->GetCorrections()->GetEtaCut()) {
641e1e0c 1046
1047 Int_t pdgCode = part->GetPDG(0)->PdgCode();
641e1e0c 1048 bool filled = false;
0e866ddc 1049 //Investigating smearing...
1050 //Numbers are realistic correction factors from previous studies
7d2d1773 1051 if(fInvestigateSmearing){
1052 if(pdgCode==fgPiPlusCode ||pdgCode==fgPiMinusCode ||pdgCode==fgKPlusCode ||pdgCode==fgKMinusCode ||pdgCode==fgProtonCode ||pdgCode==fgAntiProtonCode){
1053 //To investigate Smearing...
1054 Float_t myet = Et(part);
1055 fSimPiKPEt += myet;
1056 Float_t theta = part->Theta();
1057 Short_t charge = 1;
1058 Float_t momentum = part->P();
1059 //pt smearing
1060 Float_t pSmeared = momentum * fPtSmearer->Gaus(1,0.005);//Gaussian centered around 1
1061 fSimPiKPEtPtSmeared += Et(pSmeared,theta,pdgCode,charge);
1062 //Efficiency smearing
61e3f555 1063 //to mock up the difference between TPC only tracks in p+p (~90% efficiency at high pT) and TPC+ITS tracks in Pb+Pb (about 70% efficiency at high pT) a factor of 7/9 was added in front
1064 float efficiency = 7.0/9.0*2.26545*TMath::Exp(-TMath::Power(9.99977e-01/part->Pt(),7.85488e-02));//simple rough efficiency from fitting curve
7d2d1773 1065 if(fPtSmearer->Binomial(1,efficiency) ==1){
1066 fSimPiKPEtEfficiencySmeared += (1.0/efficiency)*myet;
1067 }
1068 //pT cut smeared
61e3f555 1069 if(part->Pt()>0.10){fSimPiKPEtPtCutSmearedITS +=1.00988*myet;}
1070 if(part->Pt()>0.15){fSimPiKPEtPtCutSmearedTPC +=1.02994*myet;}
7d2d1773 1071 //PID smearing
61e3f555 1072 fSimPiKPEtPIDSmearedNoID += 1.03018015790601458*Et(momentum,theta,fgPiPlusCode,charge);
7d2d1773 1073 if(part->P()<1.0){//then the particle would have been ID'd
61e3f555 1074 fSimPiKPEtPIDSmeared += 1.00918051514628582*myet;
7d2d1773 1075 }
1076 else{//Then it would have been assumed to be a pion
61e3f555 1077 fSimPiKPEtPIDSmeared += 1.00918051514628582*Et(momentum,theta,fgPiPlusCode,charge);
7d2d1773 1078 }
0e866ddc 1079 }
1080 }
1081
641e1e0c 1082 //============Charged hadrons===================================
4b40b2b1 1083 if(pdgCode == fgPiPlusCode){
641e1e0c 1084 float myEt = Et(part);
86d9d0dc 1085 float myEtP = Et(part,fgProtonMass);
1086 float myEtK = Et(part,fgKaonMass);
49b25059 1087 if(part->Pt()>0.15) fSimPiKPEtShouldBeReco += myEt;
1088 if(part->Pt()>0.15) fSimPiKPEtShouldBeRecoPi += myEt;
0e866ddc 1089
d6214a64 1090 fSimHadEt += myEt;
1091 fSimTotEt += myEt;
0e866ddc 1092
f6acf3ad 1093
1094 if( !fRunLightweight){
1095 FillHisto2D("EtSimulatedPiPlus",part->Pt(),part->Eta(),myEt);
1096 FillHisto2D("EtNSimulatedPiPlus",part->Pt(),part->Eta(),1.0);
1097 FillHisto2D("EtSimulatedChargedHadron",part->Pt(),part->Eta(),myEt);
1098 FillHisto2D("EtNSimulatedChargedHadron",part->Pt(),part->Eta(),1.0);
1099 if(fCentBin>=0){//if a centrality bin was defined
1100 FillHisto2D(Form("EtNSimulatedPiPlusCB%i",fCentBin),part->Pt(),part->Eta(),1.0);
1101 FillHisto2D(Form("EtNSimulatedChargedHadronCB%i",fCentBin),part->Pt(),part->Eta(),1.0);
1102 }
1103 FillHisto2D("EtSimulatedChargedHadronAssumingPion",part->Pt(),part->Eta(),myEt);
1104 FillHisto2D("EtSimulatedChargedHadronAssumingProton",part->Pt(),part->Eta(),myEtP);
1105 FillHisto2D("EtSimulatedPiPlusAssumingProton",part->Pt(),part->Eta(),myEtP);
1106 FillHisto2D("EtSimulatedChargedHadronAssumingKaon",part->Pt(),part->Eta(),myEtK);
1107 FillHisto2D("EtSimulatedPiPlusAssumingKaon",part->Pt(),part->Eta(),myEtK);
1108 FillHisto2D("EtSimulatedAllHadron",part->Pt(),part->Eta(),myEt);
1109 Short_t charge = 1;
1110 Float_t myEtLow = Et(0.0,part->Theta(),pdgCode,charge);
1111 Float_t myEtITS = Et(0.10/TMath::Sin(part->Theta()),part->Theta(),pdgCode,charge);
1112 Float_t myEtTPC = Et(0.15/TMath::Sin(part->Theta()),part->Theta(),pdgCode,charge);
1113 FillHisto2D("EtSimulatedChargedHadronAssumingNoPt",part->Pt(),part->Eta(),myEtLow);
1114 FillHisto2D("EtSimulatedChargedHadronAssumingPtTPCCut",part->Pt(),part->Eta(),myEtTPC);
1115 FillHisto2D("EtSimulatedChargedHadronAssumingPtITSCut",part->Pt(),part->Eta(),myEtITS);
52503ae7 1116 }
641e1e0c 1117 filled = true;
1118 }
4b40b2b1 1119 if(pdgCode == fgPiMinusCode){
641e1e0c 1120 float myEt = Et(part);
86d9d0dc 1121 float myEtP = Et(part,fgProtonMass);
1122 float myEtK = Et(part,fgKaonMass);
49b25059 1123 if(part->Pt()>0.15) fSimPiKPEtShouldBeReco += myEt;
1124 if(part->Pt()>0.15) fSimPiKPEtShouldBeRecoPi += myEt;
d6214a64 1125 fSimHadEt += myEt;
1126 fSimTotEt += myEt;
f6acf3ad 1127 if( !fRunLightweight){
1128 FillHisto2D("EtSimulatedPiMinus",part->Pt(),part->Eta(),myEt);
1129 FillHisto2D("EtNSimulatedPiMinus",part->Pt(),part->Eta(),1.0);
1130 FillHisto2D("EtSimulatedChargedHadron",part->Pt(),part->Eta(),myEt);
1131 FillHisto2D("EtNSimulatedChargedHadron",part->Pt(),part->Eta(),1.0);
1132 if(fCentBin>=0){//if a centrality bin was defined
1133 FillHisto2D(Form("EtNSimulatedPiMinusCB%i",fCentBin),part->Pt(),part->Eta(),1.0);
1134 FillHisto2D(Form("EtNSimulatedChargedHadronCB%i",fCentBin),part->Pt(),part->Eta(),1.0);
1135 }
1136 FillHisto2D("EtSimulatedChargedHadronAssumingPion",part->Pt(),part->Eta(),myEt);
1137 FillHisto2D("EtSimulatedChargedHadronAssumingProton",part->Pt(),part->Eta(),myEtP);
1138 FillHisto2D("EtSimulatedPiMinusAssumingProton",part->Pt(),part->Eta(),myEtP);
1139 FillHisto2D("EtSimulatedChargedHadronAssumingKaon",part->Pt(),part->Eta(),myEtK);
1140 FillHisto2D("EtSimulatedPiMinusAssumingKaon",part->Pt(),part->Eta(),myEtK);
1141 FillHisto2D("EtSimulatedAllHadron",part->Pt(),part->Eta(),myEt);
1142 Short_t charge = -1;
1143 Float_t myEtLow = Et(0.0,part->Theta(),pdgCode,charge);
1144 Float_t myEtITS = Et(0.10/TMath::Sin(part->Theta()),part->Theta(),pdgCode,charge);
1145 Float_t myEtTPC = Et(0.15/TMath::Sin(part->Theta()),part->Theta(),pdgCode,charge);
1146 FillHisto2D("EtSimulatedChargedHadronAssumingNoPt",part->Pt(),part->Eta(),myEtLow);
1147 FillHisto2D("EtSimulatedChargedHadronAssumingPtTPCCut",part->Pt(),part->Eta(),myEtTPC);
1148 FillHisto2D("EtSimulatedChargedHadronAssumingPtITSCut",part->Pt(),part->Eta(),myEtITS);
52503ae7 1149 }
641e1e0c 1150 filled = true;
1151 }
4b40b2b1 1152 if(pdgCode == fgKPlusCode){
641e1e0c 1153 float myEt = Et(part);
4b40b2b1 1154 float myEtPi = Et(part,fgPionMass);
86d9d0dc 1155 float myEtP = Et(part,fgProtonMass);
49b25059 1156 if(part->Pt()>0.15) fSimPiKPEtShouldBeReco += myEt;
1157 if(part->Pt()>0.15) fSimPiKPEtShouldBeRecoK += myEt;
d6214a64 1158 fSimHadEt += myEt;
1159 fSimTotEt += myEt;
f6acf3ad 1160 if( !fRunLightweight){
1161 FillHisto2D("EtSimulatedKPlus",part->Pt(),part->Eta(),myEt);
1162 FillHisto2D("EtNSimulatedKPlus",part->Pt(),part->Eta(),1.0);
1163 FillHisto2D("EtSimulatedChargedHadron",part->Pt(),part->Eta(),myEt);
1164 FillHisto2D("EtNSimulatedChargedHadron",part->Pt(),part->Eta(),1.0);
1165 if(fCentBin>=0){//if a centrality bin was defined
1166 FillHisto2D(Form("EtNSimulatedKPlusCB%i",fCentBin),part->Pt(),part->Eta(),1.0);
1167 FillHisto2D(Form("EtNSimulatedChargedHadronCB%i",fCentBin),part->Pt(),part->Eta(),1.0);
1168 }
1169 FillHisto2D("EtSimulatedChargedHadronAssumingPion",part->Pt(),part->Eta(),myEtPi);
1170 FillHisto2D("EtSimulatedKPlusAssumingPion",part->Pt(),part->Eta(),myEtPi);
1171 FillHisto2D("EtSimulatedChargedHadronAssumingProton",part->Pt(),part->Eta(),myEtP);
1172 FillHisto2D("EtSimulatedKPlusAssumingProton",part->Pt(),part->Eta(),myEtP);
1173 FillHisto2D("EtSimulatedAllHadron",part->Pt(),part->Eta(),myEt);
1174 Short_t charge = 1;
1175 Float_t myEtLow = Et(0.0,part->Theta(),pdgCode,charge);
1176 Float_t myEtITS = Et(0.10/TMath::Sin(part->Theta()),part->Theta(),pdgCode,charge);
1177 Float_t myEtTPC = Et(0.15/TMath::Sin(part->Theta()),part->Theta(),pdgCode,charge);
1178 FillHisto2D("EtSimulatedChargedHadronAssumingNoPt",part->Pt(),part->Eta(),myEtLow);
1179 FillHisto2D("EtSimulatedChargedHadronAssumingPtTPCCut",part->Pt(),part->Eta(),myEtTPC);
1180 FillHisto2D("EtSimulatedChargedHadronAssumingPtITSCut",part->Pt(),part->Eta(),myEtITS);
52503ae7 1181 }
641e1e0c 1182 filled = true;
1183 }
4b40b2b1 1184 if(pdgCode == fgKMinusCode){
641e1e0c 1185 float myEt = Et(part);
4b40b2b1 1186 float myEtPi = Et(part,fgPionMass);
86d9d0dc 1187 float myEtP = Et(part,fgProtonMass);
49b25059 1188 if(part->Pt()>0.15) fSimPiKPEtShouldBeReco += myEt;
1189 if(part->Pt()>0.15) fSimPiKPEtShouldBeRecoK += myEt;
d6214a64 1190 fSimHadEt += myEt;
1191 fSimTotEt += myEt;
f6acf3ad 1192 if( !fRunLightweight){
1193 FillHisto2D("EtSimulatedKMinus",part->Pt(),part->Eta(),myEt);
1194 FillHisto2D("EtNSimulatedKMinus",part->Pt(),part->Eta(),1.0);
1195 FillHisto2D("EtSimulatedChargedHadron",part->Pt(),part->Eta(),myEt);
1196 FillHisto2D("EtNSimulatedChargedHadron",part->Pt(),part->Eta(),1.0);
1197 if(fCentBin>=0){//if a centrality bin was defined
1198 FillHisto2D(Form("EtNSimulatedKMinusCB%i",fCentBin),part->Pt(),part->Eta(),1.0);
1199 FillHisto2D(Form("EtNSimulatedChargedHadronCB%i",fCentBin),part->Pt(),part->Eta(),1.0);
1200 }
1201 FillHisto2D("EtSimulatedChargedHadronAssumingPion",part->Pt(),part->Eta(),myEtPi);
1202 FillHisto2D("EtSimulatedKMinusAssumingPion",part->Pt(),part->Eta(),myEtPi);
1203 FillHisto2D("EtSimulatedChargedHadronAssumingProton",part->Pt(),part->Eta(),myEtP);
1204 FillHisto2D("EtSimulatedKMinusAssumingProton",part->Pt(),part->Eta(),myEtP);
1205 FillHisto2D("EtSimulatedAllHadron",part->Pt(),part->Eta(),myEt);
1206 Short_t charge = -1;
1207 Float_t myEtLow = Et(0.0,part->Theta(),pdgCode,charge);
1208 Float_t myEtITS = Et(0.10/TMath::Sin(part->Theta()),part->Theta(),pdgCode,charge);
1209 Float_t myEtTPC = Et(0.15/TMath::Sin(part->Theta()),part->Theta(),pdgCode,charge);
1210 FillHisto2D("EtSimulatedChargedHadronAssumingNoPt",part->Pt(),part->Eta(),myEtLow);
1211 FillHisto2D("EtSimulatedChargedHadronAssumingPtTPCCut",part->Pt(),part->Eta(),myEtTPC);
1212 FillHisto2D("EtSimulatedChargedHadronAssumingPtITSCut",part->Pt(),part->Eta(),myEtITS);
52503ae7 1213 }
641e1e0c 1214 filled = true;
1215 }
4b40b2b1 1216 if(pdgCode == fgProtonCode){
641e1e0c 1217 float myEt = Et(part);
4b40b2b1 1218 float myEtPi = Et(part,fgPionMass);
86d9d0dc 1219 float myEtK = Et(part,fgKaonMass);
49b25059 1220 if(part->Pt()>0.15) fSimPiKPEtShouldBeReco += myEt;
1221 if(part->Pt()>0.15) fSimPiKPEtShouldBeRecoP += myEt;
d6214a64 1222 fSimHadEt += myEt;
1223 fSimTotEt += myEt;
f6acf3ad 1224 if( !fRunLightweight){
1225 FillHisto2D("EtSimulatedProton",part->Pt(),part->Eta(),myEt);
1226 FillHisto2D("EtNSimulatedProton",part->Pt(),part->Eta(),1.0);
1227 FillHisto2D("EtSimulatedChargedHadron",part->Pt(),part->Eta(),myEt);
1228 FillHisto2D("EtNSimulatedChargedHadron",part->Pt(),part->Eta(),1.0);
1229 if(fCentBin>=0){//if a centrality bin was defined
1230 FillHisto2D(Form("EtNSimulatedProtonCB%i",fCentBin),part->Pt(),part->Eta(),1.0);
1231 FillHisto2D(Form("EtNSimulatedChargedHadronCB%i",fCentBin),part->Pt(),part->Eta(),1.0);
1232 }
1233 FillHisto2D("EtSimulatedChargedHadronAssumingPion",part->Pt(),part->Eta(),myEtPi);
1234 FillHisto2D("EtSimulatedProtonAssumingPion",part->Pt(),part->Eta(),myEtPi);
1235 FillHisto2D("EtSimulatedChargedHadronAssumingKaon",part->Pt(),part->Eta(),myEtK);
1236 FillHisto2D("EtSimulatedProtonAssumingKaon",part->Pt(),part->Eta(),myEtK);
1237 FillHisto2D("EtSimulatedAllHadron",part->Pt(),part->Eta(),myEt);
1238 Short_t charge = 1;
1239 Float_t myEtLow = Et(0.0,part->Theta(),pdgCode,charge);
1240 Float_t myEtITS = Et(0.10/TMath::Sin(part->Theta()),part->Theta(),pdgCode,charge);
1241 Float_t myEtTPC = Et(0.15/TMath::Sin(part->Theta()),part->Theta(),pdgCode,charge);
1242 FillHisto2D("EtSimulatedChargedHadronAssumingNoPt",part->Pt(),part->Eta(),myEtLow);
1243 FillHisto2D("EtSimulatedChargedHadronAssumingPtTPCCut",part->Pt(),part->Eta(),myEtTPC);
1244 FillHisto2D("EtSimulatedChargedHadronAssumingPtITSCut",part->Pt(),part->Eta(),myEtITS);
52503ae7 1245 }
641e1e0c 1246 filled = true;
f6acf3ad 1247 if( !fRunLightweight){
1248 if(fBaryonEnhancement){
1249 float enhancement = ProtonBaryonEnhancement(part->Pt());
1250 FillHisto2D("EtSimulatedProtonEnhanced",part->Pt(),part->Eta(),myEt*enhancement);
1251 FillHisto2D("EtNSimulatedProtonEnhanced",part->Pt(),part->Eta(),1.0*enhancement);
1252 FillHisto2D("EtSimulatedProtonAssumingPionEnhanced",part->Pt(),part->Eta(),myEtPi*enhancement);
1253 }
f43fc416 1254 }
641e1e0c 1255 }
4b40b2b1 1256 if(pdgCode == fgAntiProtonCode){
641e1e0c 1257 float myEt = Et(part);
4b40b2b1 1258 float myEtPi = Et(part,fgPionMass);
86d9d0dc 1259 float myEtK = Et(part,fgKaonMass);
49b25059 1260 if(part->Pt()>0.15) fSimPiKPEtShouldBeReco += myEt;
1261 if(part->Pt()>0.15) fSimPiKPEtShouldBeRecoP += myEt;
d6214a64 1262 fSimHadEt += myEt;
1263 fSimTotEt += myEt;
f6acf3ad 1264 if( !fRunLightweight){
1265 FillHisto2D("EtSimulatedAntiProton",part->Pt(),part->Eta(),myEt);
1266 FillHisto2D("EtNSimulatedAntiProton",part->Pt(),part->Eta(),1.0);
1267 FillHisto2D("EtSimulatedChargedHadron",part->Pt(),part->Eta(),myEt);
1268 FillHisto2D("EtNSimulatedChargedHadron",part->Pt(),part->Eta(),1.0);
1269 if(fCentBin>=0){//if a centrality bin was defined
1270 FillHisto2D(Form("EtNSimulatedAntiProtonCB%i",fCentBin),part->Pt(),part->Eta(),1.0);
1271 FillHisto2D(Form("EtNSimulatedChargedHadronCB%i",fCentBin),part->Pt(),part->Eta(),1.0);
1272 }
1273 FillHisto2D("EtSimulatedChargedHadronAssumingPion",part->Pt(),part->Eta(),myEtPi);
1274 FillHisto2D("EtSimulatedAntiProtonAssumingPion",part->Pt(),part->Eta(),myEtPi);
1275 FillHisto2D("EtSimulatedChargedHadronAssumingKaon",part->Pt(),part->Eta(),myEtK);
1276 FillHisto2D("EtSimulatedAntiProtonAssumingKaon",part->Pt(),part->Eta(),myEtK);
1277 FillHisto2D("EtSimulatedAllHadron",part->Pt(),part->Eta(),myEt);
1278 Short_t charge = -1;
1279 Float_t myEtLow = Et(0.0,part->Theta(),pdgCode,charge);
1280 Float_t myEtITS = Et(0.10/TMath::Sin(part->Theta()),part->Theta(),pdgCode,charge);
1281 Float_t myEtTPC = Et(0.15/TMath::Sin(part->Theta()),part->Theta(),pdgCode,charge);
1282 FillHisto2D("EtSimulatedChargedHadronAssumingNoPt",part->Pt(),part->Eta(),myEtLow);
1283 FillHisto2D("EtSimulatedChargedHadronAssumingPtTPCCut",part->Pt(),part->Eta(),myEtTPC);
1284 FillHisto2D("EtSimulatedChargedHadronAssumingPtITSCut",part->Pt(),part->Eta(),myEtITS);
52503ae7 1285 }
641e1e0c 1286 filled = true;
f6acf3ad 1287 if( !fRunLightweight){
1288 if(fBaryonEnhancement){
1289 float enhancement = ProtonBaryonEnhancement(part->Pt());
1290 FillHisto2D("EtSimulatedAntiProtonEnhanced",part->Pt(),part->Eta(),myEt*enhancement);
1291 FillHisto2D("EtNSimulatedAntiProtonEnhanced",part->Pt(),part->Eta(),1.0*enhancement);
1292 FillHisto2D("EtSimulatedAntiProtonAssumingPionEnhanced",part->Pt(),part->Eta(),myEtPi*enhancement);
1293 }
f43fc416 1294 }
641e1e0c 1295 }
1296 //============Other hadrons===================================
1297
4b40b2b1 1298 if(pdgCode == fgNeutronCode){
641e1e0c 1299 float myEt = Et(part);
d6214a64 1300 fSimHadEt += myEt;
1301 fSimTotEt += myEt;
f6acf3ad 1302 if( !fRunLightweight){
1303 FillHisto2D("EtSimulatedNeutron",part->Pt(),part->Eta(),myEt);
1304 FillHisto2D("EtSimulatedAllHadron",part->Pt(),part->Eta(),myEt);
1305 }
641e1e0c 1306 filled = true;
1307 }
4b40b2b1 1308 if(pdgCode == fgAntiNeutronCode){
641e1e0c 1309 float myEt = Et(part);
d6214a64 1310 fSimHadEt += myEt;
1311 fSimTotEt += myEt;
f6acf3ad 1312 if( !fRunLightweight){
1313 FillHisto2D("EtSimulatedAntiNeutron",part->Pt(),part->Eta(),myEt);
1314 FillHisto2D("EtSimulatedAllHadron",part->Pt(),part->Eta(),myEt);
1315 }
641e1e0c 1316 filled = true;
1317 }
4b40b2b1 1318 if(pdgCode == fgLambdaCode){
641e1e0c 1319 float myEt = Et(part);
d6214a64 1320 fSimHadEt += myEt;
1321 fSimTotEt += myEt;
f6acf3ad 1322 if( !fRunLightweight){
1323 FillHisto2D("EtSimulatedLambda",part->Pt(),part->Eta(),myEt);
1324 FillHisto2D("EtSimulatedAllHadron",part->Pt(),part->Eta(),myEt);
1325 Float_t weight = LambdaWeight(part->Pt());
1326 if(fBaryonEnhancement){
1327 float enhancement = ProtonBaryonEnhancement(part->Pt());
1328 weight = weight*enhancement;
1329 }
1330 FillHisto2D("EtSimulatedLambdaReweighted",part->Pt(),part->Eta(),myEt*weight);
1331 Int_t ndaughters = part->GetNDaughters();
1332 for(Int_t idaughter = 0;idaughter<ndaughters;idaughter++){
1333 Int_t daughterindex = part->GetDaughter(idaughter);
1334 if(daughterindex<0 || daughterindex>1e5) continue;
1335 TParticle *daughter = stack->ParticleFromTreeK(daughterindex);
1336 if(daughter){
1337 if(daughter->GetPDG(0)){
1338 Int_t daughtercode = daughter->GetPDG(0)->PdgCode();
1339 if(daughtercode==fgPiMinusCode || daughtercode==fgProtonCode){
1340 myEt = Et(daughter);
1341 FillHisto2D("EtSimulatedLambdaDaughters",daughter->Pt(),daughter->Eta(),myEt);
1342 FillHisto2D("EtSimulatedLambdaDaughtersReweighted",daughter->Pt(),daughter->Eta(),myEt*weight);
1343 }
1344 }
1345 else{
641e1e0c 1346 }
641e1e0c 1347 }
1348 }
1349 }
1350 filled = true;
1351 }
4b40b2b1 1352 if(pdgCode == fgAntiLambdaCode){
641e1e0c 1353 float myEt = Et(part);
d6214a64 1354 fSimHadEt += myEt;
1355 fSimTotEt += myEt;
f6acf3ad 1356 if( !fRunLightweight){
1357 FillHisto2D("EtSimulatedAntiLambda",part->Pt(),part->Eta(),myEt);
1358 FillHisto2D("EtSimulatedAllHadron",part->Pt(),part->Eta(),myEt);
1359 Float_t weight = AntiLambdaWeight(part->Pt());
1360 if(fBaryonEnhancement){
1361 float enhancement = ProtonBaryonEnhancement(part->Pt());
1362 weight = weight*enhancement;
1363 }
1364 FillHisto2D("EtSimulatedAntiLambdaReweighted",part->Pt(),part->Eta(),myEt*weight);
1365 Int_t ndaughters = part->GetNDaughters();
1366 for(Int_t idaughter = 0;idaughter<ndaughters;idaughter++){
1367 Int_t daughterindex = part->GetDaughter(idaughter);
1368 if(daughterindex<0 || daughterindex>1e5) continue;
1369 TParticle *daughter = stack->ParticleFromTreeK(daughterindex);
1370 if(daughter){
1371 if(daughter->GetPDG(0)){
1372 Int_t daughtercode = daughter->GetPDG(0)->PdgCode();
1373 if(daughtercode==fgPiPlusCode || daughtercode==fgAntiProtonCode){
1374 myEt = Et(daughter);
1375 FillHisto2D("EtSimulatedAntiLambdaDaughters",daughter->Pt(),daughter->Eta(),myEt);
1376 FillHisto2D("EtSimulatedAntiLambdaDaughtersReweighted",daughter->Pt(),daughter->Eta(),myEt*weight);
1377 }
641e1e0c 1378 }
1379 }
641e1e0c 1380 }
1381 }
1382 filled = true;
1383 }
4b40b2b1 1384 if(pdgCode == fgK0SCode){
641e1e0c 1385 float myEt = Et(part);
d6214a64 1386 fSimHadEt += myEt;
1387 fSimTotEt += myEt;
f6acf3ad 1388 if( !fRunLightweight){
1389 FillHisto2D("EtSimulatedK0S",part->Pt(),part->Eta(),myEt);
1390 FillHisto2D("EtSimulatedAllHadron",part->Pt(),part->Eta(),myEt);
1391 Float_t weight = K0Weight(part->Pt());
1392 FillHisto2D("EtSimulatedK0SReweighted",part->Pt(),part->Eta(),myEt*weight);
1393 Int_t ndaughters = part->GetNDaughters();
1394 for(Int_t idaughter = 0;idaughter<ndaughters;idaughter++){
1395 Int_t daughterindex = part->GetDaughter(idaughter);
1396 if(daughterindex<0 || daughterindex>1e5) continue;
1397 TParticle *daughter = stack->ParticleFromTreeK(daughterindex);
1398 if(daughter){
1399 if(daughter->GetPDG(0)){
1400
1401 Int_t daughtercode = daughter->GetPDG(0)->PdgCode();
1402 if(daughtercode==fgPiMinusCode || daughtercode==fgPiPlusCode){
1403 myEt = Et(daughter);
1404 FillHisto2D("EtSimulatedK0SDaughters",daughter->Pt(),daughter->Eta(),myEt);
1405 FillHisto2D("EtSimulatedK0SDaughtersReweighted",daughter->Pt(),daughter->Eta(),myEt*weight);
1406 }
641e1e0c 1407 }
1408 }
641e1e0c 1409 }
1410 }
1411 filled = true;
1412 }
4b40b2b1 1413 if(pdgCode == fgK0LCode){
641e1e0c 1414 float myEt = Et(part);
d6214a64 1415 fSimHadEt += myEt;
1416 fSimTotEt += myEt;
f6acf3ad 1417 if( !fRunLightweight){
1418 FillHisto2D("EtSimulatedK0L",part->Pt(),part->Eta(),myEt);
1419 FillHisto2D("EtSimulatedAllHadron",part->Pt(),part->Eta(),myEt);
1420 Float_t weight = K0Weight(part->Pt());
1421 FillHisto2D("EtSimulatedK0LReweighted",part->Pt(),part->Eta(),myEt*weight);
1422 }
641e1e0c 1423 filled = true;
1424 }
4b40b2b1 1425 if(pdgCode == fgOmegaCode){
641e1e0c 1426 float myEt = Et(part);
d6214a64 1427 fSimHadEt += myEt;
1428 fSimTotEt += myEt;
f6acf3ad 1429 if( !fRunLightweight){
1430 FillHisto2D("EtSimulatedOmega",part->Pt(),part->Eta(),myEt);
1431 FillHisto2D("EtSimulatedAllHadron",part->Pt(),part->Eta(),myEt);
1432 Int_t ndaughters = part->GetNDaughters();
1433 for(Int_t idaughter = 0;idaughter<ndaughters;idaughter++){
1434 Int_t daughterindex = part->GetDaughter(idaughter);
1435 if(daughterindex<0 || daughterindex>1e5) continue;
1436 TParticle *daughter = stack->Particle(daughterindex);
1437 if(daughter){
1438 if(daughter->GetPDG(0)){
1439
1440 Int_t daughtercode = daughter->GetPDG(0)->PdgCode();
1441 if(daughtercode==fgPiPlusCode || daughtercode==fgProtonCode || daughtercode==fgKMinusCode){
1442 myEt = Et(daughter);
1443 FillHisto2D("EtSimulatedOmegaDaughters",daughter->Pt(),daughter->Eta(),myEt);
1444 }
641e1e0c 1445 }
1446 }
641e1e0c 1447 }
1448 }
1449 filled = true;
1450 }
4b40b2b1 1451 if(pdgCode == fgAntiOmegaCode){
641e1e0c 1452 float myEt = Et(part);
d6214a64 1453 fSimHadEt += myEt;
1454 fSimTotEt += myEt;
f6acf3ad 1455 if( !fRunLightweight){
1456 FillHisto2D("EtSimulatedOmega",part->Pt(),part->Eta(),myEt);
1457 FillHisto2D("EtSimulatedAllHadron",part->Pt(),part->Eta(),myEt);
1458 Int_t ndaughters = part->GetNDaughters();
1459 for(Int_t idaughter = 0;idaughter<ndaughters;idaughter++){
1460 Int_t daughterindex = part->GetDaughter(idaughter);
1461 if(daughterindex<0 || daughterindex>1e5) continue;
1462 TParticle *daughter = stack->ParticleFromTreeK(daughterindex);
1463 if(daughter){
1464 if(daughter->GetPDG(0)){
1465 Int_t daughtercode = daughter->GetPDG(0)->PdgCode();
1466 if(daughtercode==fgPiMinusCode || daughtercode==fgAntiProtonCode || daughtercode==fgKPlusCode){
1467 myEt = Et(daughter);
1468 FillHisto2D("EtSimulatedAntiOmegaDaughters",daughter->Pt(),daughter->Eta(),myEt);
1469 }
641e1e0c 1470 }
1471 }
641e1e0c 1472 }
1473 }
1474 filled = true;
1475 }
1476 //There are two codes for Sigmas
4b40b2b1 1477 if(pdgCode == fgSigmaCode || pdgCode == -3222){
641e1e0c 1478 float myEt = Et(part);
d6214a64 1479 fSimHadEt += myEt;
1480 fSimTotEt += myEt;
f6acf3ad 1481 if( !fRunLightweight){
1482 FillHisto2D("EtSimulatedSigma",part->Pt(),part->Eta(),myEt);
1483 FillHisto2D("EtSimulatedAllHadron",part->Pt(),part->Eta(),myEt);
1484 }
641e1e0c 1485 filled = true;
1486 }
4b40b2b1 1487 if(pdgCode == fgAntiSigmaCode || pdgCode == 3222){
641e1e0c 1488 float myEt = Et(part);
d6214a64 1489 fSimHadEt += myEt;
1490 fSimTotEt += myEt;
f6acf3ad 1491 if( !fRunLightweight){
1492 FillHisto2D("EtSimulatedAntiSigma",part->Pt(),part->Eta(),myEt);
1493 FillHisto2D("EtSimulatedAllHadron",part->Pt(),part->Eta(),myEt);
1494 }
641e1e0c 1495 filled = true;
1496 }
4b40b2b1 1497 if(pdgCode == fgXiCode){
641e1e0c 1498 float myEt = Et(part);
d6214a64 1499 fSimHadEt += myEt;
1500 fSimTotEt += myEt;
f6acf3ad 1501 if( !fRunLightweight){
1502 FillHisto2D("EtSimulatedXi",part->Pt(),part->Eta(),myEt);
1503 FillHisto2D("EtSimulatedAllHadron",part->Pt(),part->Eta(),myEt);
1504 Int_t ndaughters = part->GetNDaughters();
1505 for(Int_t idaughter = 0;idaughter<ndaughters;idaughter++){
1506 Int_t daughterindex = part->GetDaughter(idaughter);
1507 if(daughterindex<0 || daughterindex>1e5 || daughterindex>1e5) continue;
1508 TParticle *daughter = stack->ParticleFromTreeK(daughterindex);
1509 if(daughter){
1510 if(daughter->GetPDG(0)){
1511
1512 Int_t daughtercode = daughter->GetPDG(0)->PdgCode();
1513 if(daughtercode==fgPiPlusCode || daughtercode==fgProtonCode || daughtercode==fgPiMinusCode){
1514 myEt = Et(daughter);
1515 FillHisto2D("EtSimulatedXiDaughters",daughter->Pt(),daughter->Eta(),myEt);
1516 }
641e1e0c 1517 }
1518 }
641e1e0c 1519 }
1520 }
1521 filled = true;
1522 }
4b40b2b1 1523 if(pdgCode == fgAntiXiCode){
641e1e0c 1524 float myEt = Et(part);
d6214a64 1525 fSimHadEt += myEt;
1526 fSimTotEt += myEt;
f6acf3ad 1527 if( !fRunLightweight){
1528 FillHisto2D("EtSimulatedAntiXi",part->Pt(),part->Eta(),myEt);
1529 FillHisto2D("EtSimulatedAllHadron",part->Pt(),part->Eta(),myEt);
1530 Int_t ndaughters = part->GetNDaughters();
1531 for(Int_t idaughter = 0;idaughter<ndaughters;idaughter++){
1532 Int_t daughterindex = part->GetDaughter(idaughter);
1533 if(daughterindex<0 || daughterindex>1e5) continue;
1534 TParticle *daughter = stack->ParticleFromTreeK(daughterindex);
1535 if(daughter){
1536 if(daughter->GetPDG(0)){
1537 Int_t daughtercode = daughter->GetPDG(0)->PdgCode();
1538 if(daughtercode==fgPiPlusCode || daughtercode==fgAntiProtonCode || daughtercode==fgPiMinusCode){
1539 myEt = Et(daughter);
1540 FillHisto2D("EtSimulatedAntiXiDaughters",daughter->Pt(),daughter->Eta(),myEt);
1541 }
641e1e0c 1542 }
1543 }
641e1e0c 1544 }
1545 }
1546 filled = true;
1547 }
4b40b2b1 1548 if(pdgCode == fgXi0Code){
641e1e0c 1549 float myEt = Et(part);
d6214a64 1550 fSimHadEt += myEt;
1551 fSimTotEt += myEt;
f6acf3ad 1552 if( !fRunLightweight){
1553 FillHisto2D("EtSimulatedXi0",part->Pt(),part->Eta(),myEt);
1554 FillHisto2D("EtSimulatedAllHadron",part->Pt(),part->Eta(),myEt);
1555 }
641e1e0c 1556 filled = true;
1557 }
4b40b2b1 1558 if(pdgCode == fgAntiXi0Code){
641e1e0c 1559 float myEt = Et(part);
d6214a64 1560 fSimHadEt += myEt;
1561 fSimTotEt += myEt;
f6acf3ad 1562 if( !fRunLightweight){
1563 FillHisto2D("EtSimulatedAntiXi0",part->Pt(),part->Eta(),myEt);
1564 FillHisto2D("EtSimulatedAllHadron",part->Pt(),part->Eta(),myEt);
1565 }
641e1e0c 1566 filled = true;
1567 }
1568 //============electrons===================================
1569
4b40b2b1 1570 if(pdgCode == fgEPlusCode){
641e1e0c 1571 float myEt = Et(part);
d6214a64 1572 fSimTotEt += myEt;
f6acf3ad 1573 if( !fRunLightweight){
1574 FillHisto2D("EtSimulatedEPlus",part->Pt(),part->Eta(),myEt);
1575 }
641e1e0c 1576 filled = true;
1577 }
4b40b2b1 1578 if(pdgCode == fgEMinusCode){
641e1e0c 1579 float myEt = Et(part);
d6214a64 1580 fSimTotEt += myEt;
f6acf3ad 1581 if( !fRunLightweight){
1582 FillHisto2D("EtSimulatedEMinus",part->Pt(),part->Eta(),myEt);
1583 }
641e1e0c 1584 filled = true;
1585 }
f427cbed 1586 //============neutrals===================================
4b40b2b1 1587 if(pdgCode == fgGammaCode){
61e3f555 1588 TParticle *mom = NULL;
1589 Int_t pdgCodeMom = -99999999;
1590 float momEta = -30;
1591 float mompT = -5;
1592 if(part->GetFirstMother()){
1593 mom = stack->Particle(part->GetFirstMother());
1594 pdgCodeMom = mom->GetPDG(0)->PdgCode();
1595 momEta = mom->Eta();
1596 mompT = mom->Pt();
1597 }
4e0c0fe1 1598 //We want to separate the gammas by pi0, eta, omega0 but we don't want to double count energy so we get the et from the gamma daughter
4b40b2b1 1599 if(pdgCodeMom == fgEtaCode){
4e0c0fe1 1600 float myEt = Et(part);
1601 fSimTotEt += myEt;
f6acf3ad 1602 if( !fRunLightweight){
1603 FillHisto2D("EtSimulatedEta",mompT,momEta,myEt);
1604 }
b64de20c 1605 filled = true;
1606 }
4b40b2b1 1607 if(pdgCodeMom == fgPi0Code){
4e0c0fe1 1608 float myEt = Et(part);
1609 fSimTotEt += myEt;
f6acf3ad 1610 if( !fRunLightweight){
1611 FillHisto2D("EtSimulatedPi0",mompT,momEta,myEt);
1612 }
b64de20c 1613 filled = true;
1614 }
4b40b2b1 1615 if(pdgCodeMom == fgOmega0Code){
4e0c0fe1 1616 float myEt = Et(part);
1617 fSimTotEt += myEt;
f6acf3ad 1618 if( !fRunLightweight){
1619 FillHisto2D("EtSimulatedOmega0",mompT,momEta,myEt);
1620 }
b64de20c 1621 filled = true;
1622 }
1623 if(!filled){
1624 float myEt = Et(part);
4e0c0fe1 1625 fSimTotEt += myEt;
f6acf3ad 1626 if( !fRunLightweight){
1627 FillHisto2D("EtSimulatedGamma",part->Pt(),part->Eta(),myEt);
1628 }
b64de20c 1629 filled = true;
1630 }
f427cbed 1631 }
4b40b2b1 1632 if(pdgCode == fgEtaCode){
f427cbed 1633 float myEt = Et(part);
d6214a64 1634 fSimTotEt += myEt;
f6acf3ad 1635 if( !fRunLightweight){
1636 FillHisto2D("EtSimulatedEta",part->Pt(),part->Eta(),myEt);
1637 }
f427cbed 1638 filled = true;
1639 }
4b40b2b1 1640 if(pdgCode == fgPi0Code){
f427cbed 1641 float myEt = Et(part);
d6214a64 1642 fSimTotEt += myEt;
f6acf3ad 1643 if( !fRunLightweight){
1644 FillHisto2D("EtSimulatedPi0",part->Pt(),part->Eta(),myEt);
1645 }
f427cbed 1646 filled = true;
1647 }
4b40b2b1 1648 if(pdgCode == fgOmega0Code){
b64de20c 1649 float myEt = Et(part);
d6214a64 1650 fSimTotEt += myEt;
f6acf3ad 1651 if( !fRunLightweight){
1652 FillHisto2D("EtSimulatedOmega0",part->Pt(),part->Eta(),myEt);
1653 }
b64de20c 1654 filled = true;
1655 }
641e1e0c 1656 }
1657 }
1658 }
1659
f6acf3ad 1660 FillHisto1D("SimTotEt",fSimTotEt,1.0);
1661 FillHisto1D("SimHadEt",fSimHadEt,1.0);
1662 FillHisto1D("SimPiKPEt",fSimPiKPEt,1.0);
55d73438 1663 if(fDataSet!=20100 && AliPWG0Helper::GetEventProcessType(mcEvent->Header()) == AliPWG0Helper::kND){
2c0680a5 1664 FillHisto1D("SimHadEtND",fSimHadEt,1.0);
1665 FillHisto1D("SimTotEtND",fSimHadEt,1.0);
1666 FillHisto1D("NEventsND",0.5,1);
f6acf3ad 1667 FillHisto1D("SimPiKPEtND",fSimPiKPEt,1.0);
d35312c9 1668 if(kIsOfflineV0AND){
1669 FillHisto1D("SimHadEtNDV0AND",fSimHadEt,1.0);
1670 FillHisto1D("SimTotEtNDV0AND",fSimHadEt,1.0);
1671 FillHisto1D("NEventsNDV0AND",0.5,1);
1672 FillHisto1D("SimPiKPEtNDV0AND",fSimPiKPEt,1.0);
1673 }
2c0680a5 1674 }
55d73438 1675 if(fDataSet!=20100 && AliPWG0Helper::GetEventProcessType(mcEvent->Header()) == AliPWG0Helper::kSD){
2c0680a5 1676 FillHisto1D("SimHadEtSD",fSimHadEt,1.0);
1677 FillHisto1D("SimTotEtSD",fSimHadEt,1.0);
1678 FillHisto1D("NEventsSD",0.5,1);
f6acf3ad 1679 FillHisto1D("SimPiKPEtSD",fSimPiKPEt,1.0);
d35312c9 1680 if(kIsOfflineV0AND){
1681 FillHisto1D("SimHadEtSDV0AND",fSimHadEt,1.0);
1682 FillHisto1D("SimTotEtSDV0AND",fSimHadEt,1.0);
1683 FillHisto1D("NEventsSDV0AND",0.5,1);
1684 FillHisto1D("SimPiKPEtSDV0AND",fSimPiKPEt,1.0);
1685 }
2c0680a5 1686 }
55d73438 1687 if(fDataSet!=20100 && AliPWG0Helper::GetEventProcessType(mcEvent->Header()) == AliPWG0Helper::kDD){
2c0680a5 1688 FillHisto1D("SimHadEtDD",fSimHadEt,1.0);
1689 FillHisto1D("SimTotEtDD",fSimHadEt,1.0);
1690 FillHisto1D("NEventsDD",0.5,1);
d35312c9 1691 FillHisto1D("SimPiKPEtDD",fSimPiKPEt,1.0);
1692 if(kIsOfflineV0AND){
1693 FillHisto1D("SimHadEtDDV0AND",fSimHadEt,1.0);
1694 FillHisto1D("SimTotEtDDV0AND",fSimHadEt,1.0);
1695 FillHisto1D("NEventsDDV0AND",0.5,1);
1696 FillHisto1D("SimPiKPEtDDV0AND",fSimPiKPEt,1.0);
1697 }
2c0680a5 1698 }
02710991 1699 if(fCentBin != -1){//if we have Pb+Pb and a centrality bin was found
1700 if(fSimTotEt>0.0) FillHisto1D(Form("SimTotEtCB%i",fCentBin),fSimTotEt,1.0);
1701 if(fSimHadEt>0.0) FillHisto1D(Form("SimHadEtCB%i",fCentBin),fSimHadEt,1.0);
1702 if(fSimPiKPEt>0.0)FillHisto1D(Form("SimPiKPEtCB%i",fCentBin),fSimPiKPEt,1.0);
1703 }
0e866ddc 1704
f6acf3ad 1705 if(fInvestigateSmearing && !fRunLightweight){
7d2d1773 1706 //Smearing histograms
1707 if(fSimPiKPEt>0.0) FillHisto2D("SimPiKPEtMinusSimPtSmeared",fSimPiKPEt,(fSimPiKPEt-fSimPiKPEtPtSmeared)/fSimPiKPEt,1.0);
1708 FillHisto1D("SimPiKPEtPtSmeared",fSimPiKPEtPtSmeared,1.0);
1709 if(fSimPiKPEt>0.0) FillHisto2D("SimPiKPEtMinusSimEfficiencySmeared",fSimPiKPEt,(fSimPiKPEt-fSimPiKPEtEfficiencySmeared)/fSimPiKPEt,1.0);
1710 FillHisto1D("SimPiKPEtEfficiencySmeared",fSimPiKPEtEfficiencySmeared,1.0);
1711 if(fSimPiKPEt>0.0) FillHisto2D("SimPiKPEtMinusSimPtCutSmearedTPC",fSimPiKPEt,(fSimPiKPEt-fSimPiKPEtPtCutSmearedTPC)/fSimPiKPEt,1.0);
1712 FillHisto1D("SimPiKPEtPtCutSmearedTPC",fSimPiKPEtPtCutSmearedTPC,1.0);
1713 if(fSimPiKPEt>0.0) FillHisto2D("SimPiKPEtMinusSimPtCutSmearedITS",fSimPiKPEt,(fSimPiKPEt-fSimPiKPEtPtCutSmearedITS)/fSimPiKPEt,1.0);
1714 FillHisto1D("SimPiKPEtPtCutSmearedITS",fSimPiKPEtPtCutSmearedTPC,1.0);
1715 if(fSimPiKPEt>0.0) FillHisto2D("SimPiKPEtMinusSimPIDSmeared",fSimPiKPEt,(fSimPiKPEt-fSimPiKPEtPIDSmeared)/fSimPiKPEt,1.0);
1716 FillHisto1D("SimPiKPEtPIDSmeared",fSimPiKPEtPIDSmeared,1.0);
1717 if(fSimPiKPEt>0.0) FillHisto2D("SimPiKPEtMinusSimPIDSmearedNoID",fSimPiKPEt,(fSimPiKPEt-fSimPiKPEtPIDSmearedNoID)/fSimPiKPEt,1.0);
1718 FillHisto1D("SimPiKPEtPIDSmearedNoID",fSimPiKPEtPIDSmearedNoID,1.0);
1719 }
641e1e0c 1720 return 1;
1721
1722}
1723
1724void AliAnalysisHadEtMonteCarlo::Init()
cf6522d1 1725{ // Init
641e1e0c 1726 AliAnalysisHadEt::Init();
0e866ddc 1727 if(!fPtSmearer) fPtSmearer = new TRandom();
641e1e0c 1728}
1729void AliAnalysisHadEtMonteCarlo::CreateHistograms(){
1730 //for simulated Et only (no reconstruction)
f6acf3ad 1731 if( !fRunLightweight){
1732 CreateEtaPtHisto2D(TString("EtSimulatedPiPlus"),TString("Simulated E_{T} from #pi^{+}"));
1733 CreateEtaPtHisto2D("EtSimulatedPiMinus","Simulated E_{T} from #pi^{-}");
1734 CreateEtaPtHisto2D("EtSimulatedKPlus","Simulated E_{T} from K^{+}");
1735 CreateEtaPtHisto2D("EtSimulatedKMinus","Simulated E_{T} from K^{-}");
1736 CreateEtaPtHisto2D("EtSimulatedProton","Simulated E_{T} from p");
1737 CreateEtaPtHisto2D("EtSimulatedAntiProton","Simulated E_{T} from #bar{p}");//Both baryon enhancement and strangeness rescaling
1738 if(fBaryonEnhancement){
1739 CreateEtaPtHisto2D("EtSimulatedProtonEnhanced","Simulated E_{T} from p");
1740 CreateEtaPtHisto2D("EtSimulatedAntiProtonEnhanced","Simulated E_{T} from #bar{p}");
1741 }
1742 CreateEtaPtHisto2D("EtSimulatedChargedHadron","Simulated E_{T} from charged hadrons");
1743 CreateEtaPtHisto2D("EtNSimulatedPiPlus","Number of Simulated #pi^{+}");
1744 CreateEtaPtHisto2D("EtNSimulatedPiMinus","Number of simulated #pi^{-}");
1745 CreateEtaPtHisto2D("EtNSimulatedKPlus","Number of simulated K^{+}");
1746 CreateEtaPtHisto2D("EtNSimulatedKMinus","Number of simulated K^{-}");
1747 CreateEtaPtHisto2D("EtNSimulatedProton","Number of simulated p");
1748 CreateEtaPtHisto2D("EtNSimulatedAntiProton","Number of simulated #bar{p}");
1749 if(fBaryonEnhancement){
1750 CreateEtaPtHisto2D("EtNSimulatedProtonEnhanced","Number of simulated p");
1751 CreateEtaPtHisto2D("EtNSimulatedAntiProtonEnhanced","Number of simulated #bar{p}");
1752 }
1753 CreateEtaPtHisto2D("EtNSimulatedChargedHadron","Number of simulated charged hadrons");
1754 if(fDataSet==20100){//If this is Pb+Pb
1755 Int_t width = 5;
1756 if(fNCentBins<21) width = 10;
1757 for(Int_t i=0;i<fNCentBins;i++){
1758 CreateEtaPtHisto2D(Form("EtNSimulatedPiPlusCB%i",i),Form("Number of Simulated #pi^{+} for %i-%i central",i*width,(i+1)*width));
1759 CreateEtaPtHisto2D(Form("EtNSimulatedPiMinusCB%i",i),Form("Number of simulated #pi^{-} for %i-%i central",i*width,(i+1)*width));
1760 CreateEtaPtHisto2D(Form("EtNSimulatedKPlusCB%i",i),Form("Number of simulated K^{+} for %i-%i central",i*width,(i+1)*width));
1761 CreateEtaPtHisto2D(Form("EtNSimulatedKMinusCB%i",i),Form("Number of simulated K^{-} for %i-%i central",i*width,(i+1)*width));
1762 CreateEtaPtHisto2D(Form("EtNSimulatedProtonCB%i",i),Form("Number of simulated p for %i-%i central",i*width,(i+1)*width));
1763 CreateEtaPtHisto2D(Form("EtNSimulatedAntiProtonCB%i",i),Form("Number of simulated #bar{p} for %i-%i central",i*width,(i+1)*width));
1764 CreateEtaPtHisto2D(Form("EtNSimulatedChargedHadronCB%i",i),Form("Number of simulated charged hadrons for %i-%i central",i*width,(i+1)*width));
1765 }
1766 }
1767 CreateEtaPtHisto2D("EtSimulatedChargedHadronAssumingNoPt","Simulated E_{T} from charged hadrons assuming p_{T}=0");
1768 CreateEtaPtHisto2D("EtSimulatedChargedHadronAssumingPtTPCCut","Simulated E_{T} from charged hadrons assuming p_{T}=0.15");
1769 CreateEtaPtHisto2D("EtSimulatedChargedHadronAssumingPtITSCut","Simulated E_{T} from charged hadrons assuming p_{T}=0.10");
1770
1771 CreateEtaPtHisto2D("EtSimulatedChargedHadronAssumingPion","Simulated E_{T} from charged hadrons assuming they are all pions");
1772 CreateEtaPtHisto2D("EtSimulatedChargedHadronAssumingProton","Simulated E_{T} from charged hadrons assuming they are all pions");
1773 CreateEtaPtHisto2D("EtSimulatedChargedHadronAssumingKaon","Simulated E_{T} from charged hadrons assuming they are all pions");
1774 CreateEtaPtHisto2D("EtSimulatedKPlusAssumingPion","Simulated E_{T} from K^{+} assuming #pi mass");
1775 CreateEtaPtHisto2D("EtSimulatedKMinusAssumingPion","Simulated E_{T} from K^{-} assuming #pi mass");
1776 CreateEtaPtHisto2D("EtSimulatedProtonAssumingPion","Simulated E_{T} from p assuming #pi mass");
1777 CreateEtaPtHisto2D("EtSimulatedAntiProtonAssumingPion","Simulated E_{T} from #bar{p} assuming #pi mass");
1778 CreateEtaPtHisto2D("EtSimulatedKPlusAssumingProton","Simulated E_{T} from K^{+} assuming #pi mass");
1779 CreateEtaPtHisto2D("EtSimulatedKMinusAssumingProton","Simulated E_{T} from K^{-} assuming #pi mass");
1780 CreateEtaPtHisto2D("EtSimulatedPiPlusAssumingProton","Simulated E_{T} from p assuming #pi mass");
1781 CreateEtaPtHisto2D("EtSimulatedPiMinusAssumingProton","Simulated E_{T} from #bar{p} assuming #pi mass");
1782 CreateEtaPtHisto2D("EtSimulatedPiPlusAssumingKaon","Simulated E_{T} from K^{+} assuming #pi mass");
1783 CreateEtaPtHisto2D("EtSimulatedPiMinusAssumingKaon","Simulated E_{T} from K^{-} assuming #pi mass");
1784 CreateEtaPtHisto2D("EtSimulatedProtonAssumingKaon","Simulated E_{T} from p assuming #pi mass");
1785 CreateEtaPtHisto2D("EtSimulatedAntiProtonAssumingKaon","Simulated E_{T} from #bar{p} assuming #pi mass");
1786 if(fBaryonEnhancement){
1787 CreateEtaPtHisto2D("EtSimulatedProtonAssumingPionEnhanced","Simulated E_{T} from p assuming #pi mass");
1788 CreateEtaPtHisto2D("EtSimulatedAntiProtonAssumingPionEnhanced","Simulated E_{T} from #bar{p} assuming #pi mass");
52503ae7 1789 }
f427cbed 1790
f6acf3ad 1791 CreateEtaPtHisto2D("EtSimulatedLambda","Simulated E_{T} from #Lambda");
1792 CreateEtaPtHisto2D("EtSimulatedAntiLambda","Simulated E_{T} from #bar{#Lambda}");
1793 CreateEtaPtHisto2D("EtSimulatedK0S","Simulated E_{T} from K^{0}_{S}");
1794 CreateEtaPtHisto2D("EtSimulatedK0L","Simulated E_{T} from K^{0}_{L}");
1795 CreateEtaPtHisto2D("EtSimulatedLambdaReweighted","Simulated E_{T} from #Lambda");//These will also be used for baryon enhancement
1796 CreateEtaPtHisto2D("EtSimulatedAntiLambdaReweighted","Simulated E_{T} from #bar{#Lambda}");
1797 CreateEtaPtHisto2D("EtSimulatedK0SReweighted","Simulated E_{T} from K^{0}_{S}");
1798 CreateEtaPtHisto2D("EtSimulatedK0LReweighted","Simulated E_{T} from K^{0}_{L}");
1799 CreateEtaPtHisto2D("EtSimulatedNeutron","Simulated E_{T} from neutrons");
1800 CreateEtaPtHisto2D("EtSimulatedAntiNeutron","Simulated E_{T} from #bar{n}");
1801 CreateEtaPtHisto2D("EtSimulatedEPlus","Simulated E_{T} from e^{+}");
1802 CreateEtaPtHisto2D("EtSimulatedEMinus","Simulated E_{T} from e^{-}");
1803 CreateEtaPtHisto2D("EtSimulatedOmega","Simulated E_{T} from #Omega^{-}");
1804 CreateEtaPtHisto2D("EtSimulatedAntiOmega","Simulated E_{T} from #Omega^{+}");
1805 CreateEtaPtHisto2D("EtSimulatedXi","Simulated E_{T} from #Xi^{-}");
1806 CreateEtaPtHisto2D("EtSimulatedAntiXi","Simulated E_{T} from #Xi^{+}");
1807 CreateEtaPtHisto2D("EtSimulatedSigma","Simulated E_{T} from #Xi^{-}");
1808 CreateEtaPtHisto2D("EtSimulatedAntiSigma","Simulated E_{T} from #Xi^{+}");
1809 CreateEtaPtHisto2D("EtSimulatedXi0","Simulated E_{T} from #Xi^{0}");
1810 CreateEtaPtHisto2D("EtSimulatedAntiXi0","Simulated E_{T} from #Xi^{0}");
1811 CreateEtaPtHisto2D("EtSimulatedAllHadron","Simulated E_{T} from all hadrons");
1812
1813
1814 CreateEtaPtHisto2D("EtSimulatedLambdaDaughters","Simulated E_{T} from #Lambda Daughters");
1815 CreateEtaPtHisto2D("EtSimulatedAntiLambdaDaughters","Simulated E_{T} from #bar{#Lambda} Daughters");
1816 CreateEtaPtHisto2D("EtSimulatedK0SDaughters","Simulated E_{T} from K^{0}_{S} Daughters");
1817 CreateEtaPtHisto2D("EtSimulatedLambdaDaughtersReweighted","Simulated E_{T} from #Lambda Daughters");
1818 CreateEtaPtHisto2D("EtSimulatedAntiLambdaDaughtersReweighted","Simulated E_{T} from #bar{#Lambda} Daughters");
1819 CreateEtaPtHisto2D("EtSimulatedK0SDaughtersReweighted","Simulated E_{T} from K^{0}_{S} Daughters");
1820 CreateEtaPtHisto2D("EtSimulatedOmegaDaughters","Simulated E_{T} from #Omega^{-} Daughters");
1821 CreateEtaPtHisto2D("EtSimulatedAntiOmegaDaughters","Simulated E_{T} from #Omega^{+} Daughters");
1822 CreateEtaPtHisto2D("EtSimulatedXiDaughters","Simulated E_{T} from #Xi^{-} Daughters");
1823 CreateEtaPtHisto2D("EtSimulatedAntiXiDaughters","Simulated E_{T} from #Xi^{+} Daughters");
1824
1825
1826 CreateEtaPtHisto2D("EtSimulatedGamma","Simulated E_{T} from #gamma");
1827 CreateEtaPtHisto2D("EtSimulatedEta","Simulated E_{T} from #eta");
1828 CreateEtaPtHisto2D("EtSimulatedPi0","Simulated E_{T} from #pi^{0}");
1829 CreateEtaPtHisto2D("EtSimulatedOmega0","Simulated E_{T} from #omega");
1830 }
cf6522d1 1831 TString *strTPC = new TString("TPC");
1832 TString *strITS = new TString("ITS");
1833 TString *strTPCITS = new TString("TPCITS");
7d2d1773 1834 Int_t lastcutset = 1;
1835 if(fRequireITSHits) lastcutset = 2;
1836 for(Int_t i=0;i<=lastcutset;i++){
ea331c5d 1837 TString *cutName = NULL;
641e1e0c 1838 Float_t maxPtdEdx = 10;
1839 Float_t mindEdx = 35;
1840 Float_t maxdEdx = 150.0;
1841 switch(i){
1842 case 0:
cf6522d1 1843 cutName = strTPC;
641e1e0c 1844 break;
1845 case 1:
cf6522d1 1846 cutName = strITS;
641e1e0c 1847 maxPtdEdx = 5;
1848 maxdEdx = 500.0;
1849 break;
1850 case 2:
cf6522d1 1851 cutName = strTPCITS;
641e1e0c 1852 break;
1853 default:
1854 cerr<<"Error: cannot make histograms!"<<endl;
1855 return;
1856 }
1857
f6acf3ad 1858 if( !fRunLightweight){
1859 CreateEtaPtHisto2D(Form("EtReconstructed%sIdentifiedPiPlus",cutName->Data()),"Reconstructed E_{T} from identified #pi^{+}");
1860 CreateEtaPtHisto2D(Form("EtReconstructed%sIdentifiedPiMinus",cutName->Data()),"Reconstructed E_{T} from identified #pi^{-}");
1861 CreateEtaPtHisto2D(Form("EtReconstructed%sIdentifiedKPlus",cutName->Data()),"Reconstructed E_{T} from identified K^{+}");
1862 CreateEtaPtHisto2D(Form("EtReconstructed%sIdentifiedEMinus",cutName->Data()),"Reconstructed E_{T} from identified e^{-}");
1863 CreateEtaPtHisto2D(Form("EtReconstructed%sIdentifiedEPlus",cutName->Data()),"Reconstructed E_{T} from identified e^{+}");
1864 CreateEtaPtHisto2D(Form("EtReconstructed%sIdentifiedKMinus",cutName->Data()),"Reconstructed E_{T} from identified K^{-}");
1865 CreateEtaPtHisto2D(Form("EtReconstructed%sIdentifiedProton",cutName->Data()),"Reconstructed E_{T} from identified p");
1866 CreateEtaPtHisto2D(Form("EtReconstructed%sIdentifiedAntiProton",cutName->Data()),"Reconstructed E_{T} from identified #bar{p}");
1867 if(fBaryonEnhancement){
1868 CreateEtaPtHisto2D(Form("EtReconstructed%sIdentifiedProtonEnhanced",cutName->Data()),"Reconstructed E_{T} from identified p");
1869 CreateEtaPtHisto2D(Form("EtReconstructed%sIdentifiedAntiProtonEnhanced",cutName->Data()),"Reconstructed E_{T} from identified #bar{p}");
1870 }
1871 CreateEtaPtHisto2D(Form("EtNReconstructed%sUnidentified",cutName->Data()),"Number of Reconstructed unidentified particles");
1872 CreateEtaPtHisto2D(Form("EtReconstructed%sUnidentifiedAssumingPion",cutName->Data()),"Reconstructed E_{T} from unidentified particles assuming pion mass");
1873 CreateEtaPtHisto2D(Form("EtReconstructed%sUnidentifiedAssumingProton",cutName->Data()),"Reconstructed E_{T} from unidentified particles assuming pion mass");
1874 CreateEtaPtHisto2D(Form("EtReconstructed%sUnidentifiedAssumingKaon",cutName->Data()),"Reconstructed E_{T} from unidentified particles assuming pion mass");
1875
1876 CreateEtaPtHisto2D(Form("EtNReconstructed%sUnidentifiedKaon",cutName->Data()),"Number of Reconstructed unidentified kaons particles");
1877 CreateEtaPtHisto2D(Form("EtReconstructed%sUnidentifiedKaonAssumingPion",cutName->Data()),"Reconstructed E_{T} from unidentified kaons particles assuming pion mass");
1878 CreateEtaPtHisto2D(Form("EtReconstructed%sUnidentifiedKaonAssumingProton",cutName->Data()),"Reconstructed E_{T} from unidentified kaons particles assuming pion mass");
1879 CreateEtaPtHisto2D(Form("EtReconstructed%sUnidentifiedKaonAssumingKaon",cutName->Data()),"Reconstructed E_{T} from unidentified kaons particles assuming pion mass");
1880 CreateEtaPtHisto2D(Form("EtReconstructed%sUnidentifiedKaon",cutName->Data()),"Reconstructed E_{T} from unidentified kaons particles assuming kaon mass");
1881 CreateEtaPtHisto2D(Form("EtNReconstructed%sUnidentifiedProton",cutName->Data()),"Number of Reconstructed unidentified proton particles");
1882 CreateEtaPtHisto2D(Form("EtReconstructed%sUnidentifiedProtonAssumingPion",cutName->Data()),"Reconstructed E_{T} from unidentified proton particles assuming pion mass");
1883 CreateEtaPtHisto2D(Form("EtReconstructed%sUnidentifiedProtonAssumingKaon",cutName->Data()),"Reconstructed E_{T} from unidentified proton particles assuming pion mass");
1884 CreateEtaPtHisto2D(Form("EtReconstructed%sUnidentifiedPionAssumingKaon",cutName->Data()),"Reconstructed E_{T} from unidentified kaons particles assuming pion mass");
1885 CreateEtaPtHisto2D(Form("EtReconstructed%sUnidentifiedProtonAssumingKaon",cutName->Data()),"Reconstructed E_{T} from unidentified proton particles assuming pion mass");
1886 CreateEtaPtHisto2D(Form("EtReconstructed%sUnidentifiedPionAssumingProton",cutName->Data()),"Reconstructed E_{T} from unidentified kaons particles assuming pion mass");
1887 CreateEtaPtHisto2D(Form("EtReconstructed%sUnidentifiedProtonAssumingProton",cutName->Data()),"Reconstructed E_{T} from unidentified proton particles assuming pion mass");
1888 CreateEtaPtHisto2D(Form("EtReconstructed%sUnidentifiedProton",cutName->Data()),"Reconstructed E_{T} from unidentified proton particles assuming proton mass");
1889 if(fBaryonEnhancement){
1890 CreateEtaPtHisto2D(Form("EtNReconstructed%sUnidentifiedProtonEnhanced",cutName->Data()),"Number of Reconstructed unidentified proton particles");
1891 CreateEtaPtHisto2D(Form("EtReconstructed%sUnidentifiedProtonAssumingPionEnhanced",cutName->Data()),"Reconstructed E_{T} from unidentified proton particles assuming pion mass");
1892 CreateEtaPtHisto2D(Form("EtReconstructed%sUnidentifiedProtonEnhanced",cutName->Data()),"Reconstructed E_{T} from unidentified proton particles assuming proton mass");
1893 }
1894 CreateEtaPtHisto2D(Form("EtNReconstructed%sUnidentifiedPion",cutName->Data()),"Number of Reconstructed unidentified pions particles");
1895 CreateEtaPtHisto2D(Form("EtReconstructed%sUnidentifiedPionAssumingPion",cutName->Data()),"Reconstructed E_{T} from unidentified pions particles assuming pion mass");
1896 CreateEtaPtHisto2D(Form("EtReconstructed%sUnidentifiedPionAssumingKaon",cutName->Data()),"Reconstructed E_{T} from unidentified pions particles assuming pion mass");
1897 CreateEtaPtHisto2D(Form("EtReconstructed%sUnidentifiedPionAssumingProton",cutName->Data()),"Reconstructed E_{T} from unidentified pions particles assuming pion mass");
1898 CreateEtaPtHisto2D(Form("EtReconstructed%sUnidentifiedPion",cutName->Data()),"Reconstructed E_{T} from unidentified pions particles assuming pion mass");
1899
1900 CreateEtaPtHisto2D(Form("EtReconstructed%sUnidentified",cutName->Data()),"Reconstructed E_{T} from unidentified particles using real mass");
1901 CreateEtaPtHisto2D(Form("EtReconstructed%sMisidentifiedElectrons",cutName->Data()),"Reconstructed E_{T} from misidentified electrons");
1902
1903
1904 CreateEtaPtHisto2D(Form("EtReconstructed%sPiPlus",cutName->Data()),"Reconstructed E_{T} from #pi^{+}");
1905 CreateEtaPtHisto2D(Form("EtReconstructed%sPiMinus",cutName->Data()),"Reconstructed E_{T} from #pi^{-}");
1906 CreateEtaPtHisto2D(Form("EtReconstructed%sKPlus",cutName->Data()),"Reconstructed E_{T} from K^{+}");
1907 CreateEtaPtHisto2D(Form("EtReconstructed%sKMinus",cutName->Data()),"Reconstructed E_{T} from K^{-}");
1908 CreateEtaPtHisto2D(Form("EtReconstructed%sProton",cutName->Data()),"Reconstructed E_{T} from p");
1909 CreateEtaPtHisto2D(Form("EtReconstructed%sAntiProton",cutName->Data()),"Reconstructed E_{T} from #bar{p}");
1910 if(fBaryonEnhancement){
1911 CreateEtaPtHisto2D(Form("EtReconstructed%sProtonEnhanced",cutName->Data()),"Reconstructed E_{T} from p");
1912 CreateEtaPtHisto2D(Form("EtReconstructed%sAntiProtonEnhanced",cutName->Data()),"Reconstructed E_{T} from #bar{p}");
1913 }
1914 CreateEtaPtHisto2D(Form("EtReconstructed%sChargedHadron",cutName->Data()),"Reconstructed E_{T} from charged hadrons");
1915 CreateEtaPtHisto2D(Form("EtNReconstructed%sPiPlus",cutName->Data()),"Reconstructed E_{T} from #pi^{+}");
1916 CreateEtaPtHisto2D(Form("EtNReconstructed%sPiMinus",cutName->Data()),"Reconstructed E_{T} from #pi^{-}");
1917 CreateEtaPtHisto2D(Form("EtNReconstructed%sKPlus",cutName->Data()),"Reconstructed E_{T} from K^{+}");
1918 CreateEtaPtHisto2D(Form("EtNReconstructed%sKMinus",cutName->Data()),"Reconstructed E_{T} from K^{-}");
1919 CreateEtaPtHisto2D(Form("EtNReconstructed%sProton",cutName->Data()),"Reconstructed E_{T} from p");
1920 CreateEtaPtHisto2D(Form("EtNReconstructed%sAntiProton",cutName->Data()),"Reconstructed E_{T} from #bar{p}");
1921 if(fBaryonEnhancement){
1922 CreateEtaPtHisto2D(Form("EtNReconstructed%sProtonEnhanced",cutName->Data()),"Reconstructed E_{T} from p");
1923 CreateEtaPtHisto2D(Form("EtNReconstructed%sAntiProtonEnhanced",cutName->Data()),"Reconstructed E_{T} from #bar{p}");
1924 }
1925 CreateEtaPtHisto2D(Form("EtNReconstructed%sChargedHadron",cutName->Data()),"Reconstructed E_{T} from charged hadrons");
1926 if(fDataSet==20100){//If this is Pb+Pb
1927 Int_t width = 5;
1928 if(fNCentBins<21) width = 10;
1929 for(Int_t j=0;j<fNCentBins;j++){
1930 CreateEtaPtHisto2D(Form("EtNReconstructed%sPiPlusCB%i",cutName->Data(),j),Form("Reconstructed E_{T} from #pi^{+} for %i-%i central",j*width,(j+1)*width));
1931 CreateEtaPtHisto2D(Form("EtNReconstructed%sPiMinusCB%i",cutName->Data(),j),Form("Reconstructed E_{T} from #pi^{-} for %i-%i central",j*width,(j+1)*width));
1932 CreateEtaPtHisto2D(Form("EtNReconstructed%sKPlusCB%i",cutName->Data(),j),Form("Reconstructed E_{T} from K^{+} for %i-%i central",j*width,(j+1)*width));
1933 CreateEtaPtHisto2D(Form("EtNReconstructed%sKMinusCB%i",cutName->Data(),j),Form("Reconstructed E_{T} from K^{-} for %i-%i central",j*width,(j+1)*width));
1934 CreateEtaPtHisto2D(Form("EtNReconstructed%sProtonCB%i",cutName->Data(),j),Form("Reconstructed E_{T} from p for %i-%i central",j*width,(j+1)*width));
1935 CreateEtaPtHisto2D(Form("EtNReconstructed%sAntiProtonCB%i",cutName->Data(),j),Form("Reconstructed E_{T} from #bar{p} for %i-%i central",j*width,(j+1)*width));
1936 CreateEtaPtHisto2D(Form("EtNReconstructed%sChargedHadronCB%i",cutName->Data(),j),Form("Reconstructed E_{T} from charged hadrons for %i-%i central",j*width,(j+1)*width));
1937 }
52503ae7 1938 }
cf6522d1 1939
f6acf3ad 1940 CreateEtaPtHisto2D(Form("EtReconstructed%sChargedHadronAssumingPion",cutName->Data()),"Reconstructed E_{T} from charged hadrons assuming they are all pions");
1941 CreateEtaPtHisto2D(Form("EtReconstructed%sChargedHadronAssumingProton",cutName->Data()),"Reconstructed E_{T} from charged hadrons assuming they are all pions");
1942 CreateEtaPtHisto2D(Form("EtReconstructed%sChargedHadronAssumingKaon",cutName->Data()),"Reconstructed E_{T} from charged hadrons assuming they are all pions");
1943 CreateEtaPtHisto2D(Form("EtReconstructed%sKPlusAssumingPion",cutName->Data()),"Reconstructed E_{T} from K^{+} assuming #pi mass");
1944 CreateEtaPtHisto2D(Form("EtReconstructed%sKMinusAssumingPion",cutName->Data()),"Reconstructed E_{T} from K^{-} assuming #pi mass");
1945 CreateEtaPtHisto2D(Form("EtReconstructed%sProtonAssumingPion",cutName->Data()),"Reconstructed E_{T} from p assuming #pi mass");
1946 CreateEtaPtHisto2D(Form("EtReconstructed%sAntiProtonAssumingPion",cutName->Data()),"Reconstructed E_{T} from #bar{p} assuming #pi mass");
1947 CreateEtaPtHisto2D(Form("EtReconstructed%sPiPlusAssumingKaon",cutName->Data()),"Reconstructed E_{T} from K^{+} assuming #pi mass");
1948 CreateEtaPtHisto2D(Form("EtReconstructed%sPiMinusAssumingKaon",cutName->Data()),"Reconstructed E_{T} from K^{-} assuming #pi mass");
1949 CreateEtaPtHisto2D(Form("EtReconstructed%sKPlusAssumingKaon",cutName->Data()),"Reconstructed E_{T} from K^{+} assuming #pi mass");
1950 CreateEtaPtHisto2D(Form("EtReconstructed%sKMinusAssumingKaon",cutName->Data()),"Reconstructed E_{T} from K^{-} assuming #pi mass");
1951 CreateEtaPtHisto2D(Form("EtReconstructed%sProtonAssumingKaon",cutName->Data()),"Reconstructed E_{T} from p assuming #pi mass");
1952 CreateEtaPtHisto2D(Form("EtReconstructed%sAntiProtonAssumingKaon",cutName->Data()),"Reconstructed E_{T} from #bar{p} assuming #pi mass");
1953
1954 CreateEtaPtHisto2D(Form("EtReconstructed%sKPlusAssumingProton",cutName->Data()),"Reconstructed E_{T} from K^{+} assuming #pi mass");
1955 CreateEtaPtHisto2D(Form("EtReconstructed%sKMinusAssumingProton",cutName->Data()),"Reconstructed E_{T} from K^{-} assuming #pi mass");
1956 CreateEtaPtHisto2D(Form("EtReconstructed%sPiMinusAssumingProton",cutName->Data()),"Reconstructed E_{T} from p assuming #pi mass");
1957 CreateEtaPtHisto2D(Form("EtReconstructed%sPiPlusAssumingProton",cutName->Data()),"Reconstructed E_{T} from #bar{p} assuming #pi mass");
1958 CreateEtaPtHisto2D(Form("EtReconstructed%sProtonAssumingProton",cutName->Data()),"Reconstructed E_{T} from p assuming #pi mass");
1959 CreateEtaPtHisto2D(Form("EtReconstructed%sAntiProtonAssumingProton",cutName->Data()),"Reconstructed E_{T} from #bar{p} assuming #pi mass");
1960
1961 if(fBaryonEnhancement){
1962 CreateEtaPtHisto2D(Form("EtReconstructed%sProtonAssumingPionEnhanced",cutName->Data()),"Reconstructed E_{T} from p assuming #pi mass");
1963 CreateEtaPtHisto2D(Form("EtReconstructed%sAntiProtonAssumingPionEnhanced",cutName->Data()),"Reconstructed E_{T} from #bar{p} assuming #pi mass");
1964 }
86d9d0dc 1965
f6acf3ad 1966 CreateEtaPtHisto2D(Form("EtReconstructed%sEPlus",cutName->Data()),"Reconstructed E_{T} from e^{+}");
1967 CreateEtaPtHisto2D(Form("EtReconstructed%sEMinus",cutName->Data()),"Reconstructed E_{T} from e^{-}");
1968
1969
1970
1971 CreateEtaPtHisto2D(Form("EtReconstructed%sLambdaDaughters",cutName->Data()),"Reconstructed E_{T} from #Lambda Daughters");
1972 CreateEtaPtHisto2D(Form("EtReconstructed%sAntiLambdaDaughters",cutName->Data()),"Reconstructed E_{T} from #bar{#Lambda} Daughters");
1973 CreateEtaPtHisto2D(Form("EtReconstructed%sK0SDaughters",cutName->Data()),"Reconstructed E_{T} from K^{0}_{S} Daughters");
1974 CreateEtaPtHisto2D(Form("EtReconstructed%sLambdaDaughtersReweighted",cutName->Data()),"Reconstructed E_{T} from #Lambda Daughters");
1975 CreateEtaPtHisto2D(Form("EtReconstructed%sAntiLambdaDaughtersReweighted",cutName->Data()),"Reconstructed E_{T} from #bar{#Lambda} Daughters");
1976 CreateEtaPtHisto2D(Form("EtReconstructed%sK0SDaughtersReweighted",cutName->Data()),"Reconstructed E_{T} from K^{0}_{S} Daughters");
1977 CreateEtaPtHisto2D(Form("EtReconstructed%sOmegaDaughters",cutName->Data()),"Reconstructed E_{T} from #Omega^{-} Daughters");
1978 CreateEtaPtHisto2D(Form("EtReconstructed%sAntiOmegaDaughters",cutName->Data()),"Reconstructed E_{T} from #Omega^{+} Daughters");
1979 CreateEtaPtHisto2D(Form("EtReconstructed%sXiDaughters",cutName->Data()),"Reconstructed E_{T} from #Xi^{-} Daughters");
1980 CreateEtaPtHisto2D(Form("EtReconstructed%sAntiXiDaughters",cutName->Data()),"Reconstructed E_{T} from #Xi^{+} Daughters");
1981 CreateEtaPtHisto2D(Form("EtReconstructed%sConversionElectrons",cutName->Data()),"Reconstructed E_{T} from conversion electrons");
1982 CreateEtaPtHisto2D(Form("EtReconstructed%sSecondaryMuons",cutName->Data()),"Reconstructed E_{T} from secondary muons");//from pions
1983 CreateEtaPtHisto2D(Form("EtReconstructed%sSecondaryPions",cutName->Data()),"Reconstructed E_{T} from secondary pions");//from rescattering and sigma+-
1984 CreateEtaPtHisto2D(Form("EtReconstructed%sSecondaryProtons",cutName->Data()),"Reconstructed E_{T} from secondary protons");//from rescattering and sigma+-
f43fc416 1985 }
cf6522d1 1986 CreateIntHisto1D(Form("UnidentifiedPIDs%s",cutName->Data()),"PIDs of unidentified particles", "PID", "Number of particles",9, -4,4);
1987 CreateHisto2D(Form("MisidentifiedPIDs%s",cutName->Data()),"PIDs of misidentified particles", "PID real","PID identified",5, -.5,4.5,5, -.5,4.5);
1988 CreateHisto2D(Form("dEdxAll%s",cutName->Data()),"dE/dx for all particles","momentum (GeV/c)","dE/dx",400,0.0,maxPtdEdx,200,mindEdx,maxdEdx);
1989 CreateHisto2D(Form("dEdxPion%s",cutName->Data()),"dE/dx for #pi^{#pm}","momentum (GeV/c)","dE/dx",400,0.0,maxPtdEdx,200,mindEdx,maxdEdx);
1990 CreateHisto2D(Form("dEdxKaon%s",cutName->Data()),"dE/dx for K^{#pm}","momentum (GeV/c)","dE/dx",400,0.0,maxPtdEdx,200,mindEdx,maxdEdx);
1991 CreateHisto2D(Form("dEdxProton%s",cutName->Data()),"dE/dx for p(#bar{p})","momentum (GeV/c)","dE/dx",400,0.0,maxPtdEdx,200,mindEdx,maxdEdx);
1992 CreateHisto2D(Form("dEdxElectron%s",cutName->Data()),"dE/dx for e^{#pm}","momentum (GeV/c)","dE/dx",400,0.0,maxPtdEdx,200,mindEdx,maxdEdx);
1993 CreateHisto2D(Form("dEdxUnidentified%s",cutName->Data()),"dE/dx for unidentified particles","momentum (GeV/c)","dE/dx",400,0.0,maxPtdEdx,200,mindEdx,maxdEdx);
641e1e0c 1994 }
464aa50c 1995 delete strTPC;
1996 delete strITS;
1997 delete strTPCITS;
4e0c0fe1 1998
1999 Float_t minEt = 0.0;
2000 Float_t maxEt = 100.0;
c98582cc 2001 Float_t minEtPiKP = 0.0;
2002 Float_t maxEtPiKP = 50.0;
37827f90 2003 if(fDataSet==20100) maxEt=4000.0;
4b40b2b1 2004 Int_t nbinsEt = 100;
4e0c0fe1 2005 char histoname[200];
2006 char histotitle[200];
2007 char xtitle[50];
2008 char ytitle[50];
464aa50c 2009 TString *sTPC = new TString("TPC");
2010 TString *sITS = new TString("ITS");
2011 TString *sTPCpt = new TString("0.15");
2012 TString *sITSpt = new TString("0.10");
2013 TString *sPID = new TString("");
2014 TString *sNoPID = new TString("NoPID");
2015 TString *sNoPIDString = new TString(", No PID");
2016 TString *sHadEt = new TString("HadEt");
2017 TString *sTotEt = new TString("TotEt");
f6acf3ad 2018 TString *sPiKPEt = new TString("PiKPEt");
464aa50c 2019 TString *sTotEtString = new TString("total E_{T}");
2020 TString *sHadEtString = new TString("hadronic E_{T}");
f6acf3ad 2021 TString *sPiKPEtString = new TString("E_{T}^{#pi,K,p}");
464aa50c 2022 TString *sFull = new TString("Full");
2023 TString *sEMCAL = new TString("EMCAL");
2024 TString *sPHOS = new TString("PHOS");
4b40b2b1 2025 float etDiff = 1.5;
6b246af1 2026 float etDiffLow = etDiff;
2027 if(fDataSet!=20100){//If this is p+p
2028 etDiffLow = 2.5;
2029 }
7d2d1773 2030
2031 for(int tpc = 0;tpc<lastcutset;tpc++){
ea331c5d 2032 TString *detector = NULL;
2033 TString *ptstring = NULL;
4b40b2b1 2034 if(tpc==1) {detector = sTPC; ptstring = sTPCpt;}
2035 else{detector = sITS; ptstring = sITSpt;}
4e0c0fe1 2036 for(int hadet = 0;hadet<2;hadet++){
ea331c5d 2037 TString *et = NULL;
2038 TString *etstring = NULL;
4b40b2b1 2039 if(hadet==1) {et = sHadEt; etstring = sHadEtString;}
2040 else{et = sTotEt; etstring = sTotEtString;}
7d2d1773 2041 for(int type = 0;type<3;type++){
2042 if(type==0 && !fInvestigateFull) continue;
2043 if(type==1 && !fInvestigateEMCal) continue;
2044 if(type==2 && !fInvestigatePHOS) continue;
ea331c5d 2045 TString *acceptance = NULL;
4b40b2b1 2046 switch(type){
2047 case 0:
2048 acceptance = sFull;
7d2d1773 2049 etDiff = 1.5;
4b40b2b1 2050 break;
2051 case 1:
2052 acceptance = sEMCAL;
7d2d1773 2053 etDiff = 5;
4b40b2b1 2054 break;
2055 case 2:
2056 acceptance = sPHOS;
7d2d1773 2057 etDiff = 5;
4b40b2b1 2058 break;
2059 default:
2060 acceptance = sFull;
2061 }
4e0c0fe1 2062 for(int pid = 0;pid<2;pid++){
ea331c5d 2063 TString *partid = NULL;
2064 TString *partidstring = NULL;
464aa50c 2065 if(pid==1){partid = sPID; partidstring = sPID;}
2066 else{partid = sNoPID; partidstring = sNoPIDString;}
6b246af1 2067
6a0df78a 2068 snprintf(histoname,200,"Sim%sMinusReco%s%sAcceptance%s%s",et->Data(),et->Data(),acceptance->Data(),detector->Data(),partid->Data());
2069 snprintf(histotitle,200,"(Simulated %s - reconstructed %s)/(Simulated %s) with %s acceptance for p_{T}>%s GeV/c%s",etstring->Data(),etstring->Data(),etstring->Data(),acceptance->Data(),ptstring->Data(),partidstring->Data());
2070 snprintf(ytitle,50,"(Simulated %s - reconstructed %s)/(Simulated %s)",etstring->Data(),etstring->Data(),etstring->Data());
2071 snprintf(xtitle,50,"Simulated %s",etstring->Data());
6b246af1 2072 CreateHisto2D(histoname,histotitle,xtitle,ytitle,nbinsEt,minEt,maxEt,nbinsEt,-etDiffLow,etDiff);
2073
f6acf3ad 2074 if(type==0){//only fill for full acceptance
6b246af1 2075 snprintf(histoname,200,"Sim%sVsReco%s%sAcceptance%s%s",et->Data(),et->Data(),acceptance->Data(),detector->Data(),partid->Data());
2076 snprintf(histotitle,200,"Simulated %s vs reconstructed %s with %s acceptance for p_{T}>%s GeV/c%s",etstring->Data(),etstring->Data(),acceptance->Data(),ptstring->Data(),partidstring->Data());
f6acf3ad 2077 snprintf(ytitle,50,"Reconstructed %s",etstring->Data());
6b246af1 2078 snprintf(xtitle,50,"Simulated %s",etstring->Data());
2079 CreateHisto2D(histoname,histotitle,xtitle,ytitle,nbinsEt*4,minEt,maxEt,nbinsEt*4,minEt,maxEt);
f6acf3ad 2080 if(hadet==1){//on top of that we want to create pikp histograms without adding a full option parallel to had and tot et - therefore we will just create these histos when we create the hadet histos
2081 snprintf(histoname,200,"Sim%sVsReco%s%sAcceptance%s%s",sPiKPEt->Data(),sPiKPEt->Data(),acceptance->Data(),detector->Data(),partid->Data());
2082 snprintf(histotitle,200,"Simulated %s vs reconstructed %s with %s acceptance for p_{T}>%s GeV/c%s",sPiKPEtString->Data(),sPiKPEtString->Data(),acceptance->Data(),ptstring->Data(),partidstring->Data());
2083 snprintf(ytitle,50,"Reconstructed %s",sPiKPEtString->Data());
2084 snprintf(xtitle,50,"Simulated %s",sPiKPEtString->Data());
c98582cc 2085 CreateHisto2D(histoname,histotitle,xtitle,ytitle,nbinsEt*4,minEtPiKP,maxEtPiKP,nbinsEt*4,minEtPiKP,maxEtPiKP);
f6acf3ad 2086 }
6b246af1 2087 }
2088
7d2d1773 2089 if(hadet==0 && type==0 && fInvestigatePiKP){//we only want to do this once... not the most elegant way of coding but hey...
6a0df78a 2090 snprintf(histoname,200,"SimPiKPMinusRecoPiKP%sAcceptance%s%s",acceptance->Data(),detector->Data(),partid->Data());
2091 snprintf(histotitle,200,"(Sim PiKP - reco PiKP)/(Sim PiKP) with %s acceptance for p_{T}>%s GeV/c%s",acceptance->Data(),ptstring->Data(),partidstring->Data());
2092 snprintf(ytitle,50,"(Sim PiKP - reco PiKP)/(Sim PiKP)");
2093 snprintf(xtitle,50,"Simulated E_{T}^{#pi,K,p}");
6b246af1 2094 CreateHisto2D(histoname,histotitle,xtitle,ytitle,nbinsEt,minEt,maxEt,nbinsEt,-etDiffLow,etDiff);
0e866ddc 2095 }
4e0c0fe1 2096 }
2097 }
2098 }
2099 }
c98582cc 2100 CreateHisto1D("SimPiKPEt","Simulated #pi,K,p E_{T}","Simulated #pi,K,p E_{T}","Number of events",nbinsEt*4,minEtPiKP,maxEtPiKP);
2101 CreateHisto1D("SimPiKPEtND","Simulated #pi,K,p E_{T}","Simulated #pi,K,p E_{T}","Number of events",nbinsEt*4,minEtPiKP,maxEtPiKP);
2102 CreateHisto1D("SimPiKPEtDD","Simulated #pi,K,p E_{T}","Simulated #pi,K,p E_{T}","Number of events",nbinsEt*4,minEtPiKP,maxEtPiKP);
2103 CreateHisto1D("SimPiKPEtSD","Simulated #pi,K,p E_{T}","Simulated #pi,K,p E_{T}","Number of events",nbinsEt*4,minEtPiKP,maxEtPiKP);
d35312c9 2104 CreateHisto1D("SimPiKPEtNDV0AND","Simulated #pi,K,p E_{T}","Simulated #pi,K,p E_{T}","Number of events",nbinsEt*4,minEtPiKP,maxEtPiKP);
2105 CreateHisto1D("SimPiKPEtDDV0AND","Simulated #pi,K,p E_{T}","Simulated #pi,K,p E_{T}","Number of events",nbinsEt*4,minEtPiKP,maxEtPiKP);
2106 CreateHisto1D("SimPiKPEtSDV0AND","Simulated #pi,K,p E_{T}","Simulated #pi,K,p E_{T}","Number of events",nbinsEt*4,minEtPiKP,maxEtPiKP);
0e866ddc 2107 CreateHisto1D("SimTotEt","Simulated Total E_{T}","Simulated Total E_{T}","Number of events",nbinsEt*4,minEt,maxEt);
2108 CreateHisto1D("SimHadEt","Simulated Hadronic E_{T}","Simulated Hadronic E_{T}","Number of events",nbinsEt*4,minEt,maxEt);
2c0680a5 2109 CreateHisto1D("SimTotEtND","Simulated Total E_{T}","Simulated Total E_{T} for non-diffractive events","Number of events",nbinsEt*4,minEt,maxEt);
2110 CreateHisto1D("SimHadEtND","Simulated Hadronic E_{T}","Simulated Hadronic E_{T} for non-diffractive events","Number of events",nbinsEt*4,minEt,maxEt);
d35312c9 2111 CreateHisto1D("SimTotEtNDV0AND","Simulated Total E_{T}","Simulated Total E_{T} for non-diffractive events","Number of events",nbinsEt*4,minEt,maxEt);
2112 CreateHisto1D("SimHadEtNDV0AND","Simulated Hadronic E_{T}","Simulated Hadronic E_{T} for non-diffractive events","Number of events",nbinsEt*4,minEt,maxEt);
2c0680a5 2113 CreateHisto1D("SimTotEtSD","Simulated Total E_{T}","Simulated Total E_{T} for singly diffractive events","Number of events",nbinsEt*4,minEt,maxEt);
2114 CreateHisto1D("SimHadEtSD","Simulated Hadronic E_{T}","Simulated Hadronic E_{T} for singly diffractive events","Number of events",nbinsEt*4,minEt,maxEt);
d35312c9 2115 CreateHisto1D("SimTotEtSDV0AND","Simulated Total E_{T}","Simulated Total E_{T} for singly diffractive events","Number of events",nbinsEt*4,minEt,maxEt);
2116 CreateHisto1D("SimHadEtSDV0AND","Simulated Hadronic E_{T}","Simulated Hadronic E_{T} for singly diffractive events","Number of events",nbinsEt*4,minEt,maxEt);
2c0680a5 2117 CreateHisto1D("SimTotEtDD","Simulated Total E_{T}","Simulated Total E_{T} for doubly diffractive events","Number of events",nbinsEt*4,minEt,maxEt);
2118 CreateHisto1D("SimHadEtDD","Simulated Hadronic E_{T}","Simulated Hadronic E_{T} for doubly diffractive events","Number of events",nbinsEt*4,minEt,maxEt);
d35312c9 2119 CreateHisto1D("SimTotEtDDV0AND","Simulated Total E_{T}","Simulated Total E_{T} for doubly diffractive events","Number of events",nbinsEt*4,minEt,maxEt);
2120 CreateHisto1D("SimHadEtDDV0AND","Simulated Hadronic E_{T}","Simulated Hadronic E_{T} for doubly diffractive events","Number of events",nbinsEt*4,minEt,maxEt);
02710991 2121 if(fDataSet==20100){
2122 Int_t width = 5;
61e3f555 2123 if(fNCentBins<21) width = 10;
02710991 2124 for(Int_t j=0;j<fNCentBins;j++){
2125 CreateHisto1D(Form("SimTotEtCB%i",j),Form("Simulated Total E_{T} for %i-%i central",j*width,(j+1)*width),"Simulated Total E_{T}","Number of events",nbinsEt*4,minEt,maxEt);
2126 CreateHisto1D(Form("SimHadEtCB%i",j),Form("Simulated Hadronic E_{T} for %i-%i central",j*width,(j+1)*width),"Simulated Hadronic E_{T}","Number of events",nbinsEt*4,minEt,maxEt);
61e3f555 2127 CreateHisto1D(Form("SimPiKPEtCB%i",j),Form("Simulated #pi,K,p E_{T} for %i-%i central",j*width,(j+1)*width),"Simulated #pi,K,p E_{T}","Number of events",nbinsEt,minEt,maxEt);
02710991 2128 }
2129 }
0e866ddc 2130
2131 etDiff = 0.15;
2132
f6acf3ad 2133 if(fInvestigateSmearing && !fRunLightweight){
49b25059 2134 //======================================================================
2135
2136 snprintf(histoname,200,"SimPiKPEtMeasMinusEtRealPiKP");
2137 snprintf(histotitle,200,"Simulated (all reconstructed - primaries)/all reconstructed for reconstructed tracks only");
2138 snprintf(ytitle,50,"(primary-all)/primary");
2139 snprintf(xtitle,50,"true p, K, p E_{T} for primary tracks");
2140 CreateHisto2D(histoname,histotitle,xtitle,ytitle,nbinsEt,minEt,maxEt,nbinsEt,-etDiff*5,etDiff*5);
2141
2142 snprintf(histoname,200,"SimPiKPEtMinusSimAllCorrSmearedRecoOnly");
2143 snprintf(histotitle,200,"Simulated (primary-all)/primary for reconstructed tracks only");
2144 snprintf(ytitle,50,"(primary-all)/primary");
2145 snprintf(xtitle,50,"true p, K, p E_{T} for primary tracks");
2146 CreateHisto2D(histoname,histotitle,xtitle,ytitle,nbinsEt,minEt,maxEt,nbinsEt,-etDiff*5,etDiff*5);
2147
2148 snprintf(histoname,200,"SimPiKPEtMinusSimEffCorrRecoOnly");
2149 snprintf(histotitle,200,"(sim-reco)/sim primary #pi,k,p for p_{T}>0.15");
2150 snprintf(ytitle,50,"(sim-reco)/sim");
2151 snprintf(xtitle,50,"true p, K, p E_{T} for primary tracks");
2152 CreateHisto2D(histoname,histotitle,xtitle,ytitle,nbinsEt,minEt,maxEt,nbinsEt,-etDiff*5,etDiff*5);
2153
2154 snprintf(histoname,200,"SimPiKPEtMinusSimEffBkgdCorrRecoOnly");
2155 snprintf(histotitle,200,"(sim-reco)/sim primary #pi,k,p for p_{T}>0.15 with background subtraction");
2156 snprintf(ytitle,50,"(sim-reco)/sim");
2157 snprintf(xtitle,50,"true p, K, p E_{T} for primary tracks");
2158 CreateHisto2D(histoname,histotitle,xtitle,ytitle,nbinsEt,minEt,maxEt,nbinsEt,-etDiff*5,etDiff*5);
2159
2160 snprintf(histoname,200,"SimPiKPEtMinusSimEffCorrRecoPiOnly");
2161 snprintf(histotitle,200,"(sim-reco)/sim primary #pi for p_{T}>0.15");
2162 snprintf(ytitle,50,"(sim-reco)/sim");
2163 snprintf(xtitle,50,"true #pi E_{T} for primary tracks");
2164 CreateHisto2D(histoname,histotitle,xtitle,ytitle,nbinsEt,minEt,maxEt/2,nbinsEt,-etDiff*5,etDiff*5);
2165
2166 snprintf(histoname,200,"SimPiKPEtMinusSimEffCorrRecoKOnly");
2167 snprintf(histotitle,200,"(sim-reco)/sim primary K for p_{T}>0.15");
2168 snprintf(ytitle,50,"(sim-reco)/sim");
2169 snprintf(xtitle,50,"true K E_{T} for primary tracks");
2170 CreateHisto2D(histoname,histotitle,xtitle,ytitle,nbinsEt,minEt,maxEt/6,nbinsEt,-etDiff*5,etDiff*5);
2171
2172 snprintf(histoname,200,"SimPiKPEtMinusSimEffCorrRecoPOnly");
2173 snprintf(histotitle,200,"(sim-reco)/sim primary p for p_{T}>0.15");
2174 snprintf(ytitle,50,"(sim-reco)/sim");
2175 snprintf(xtitle,50,"true p E_{T} for primary tracks");
2176 CreateHisto2D(histoname,histotitle,xtitle,ytitle,nbinsEt,minEt,maxEt/6,nbinsEt,-etDiff*5,etDiff*5);
2177
2178 snprintf(histoname,200,"SimPiKPEtMinusSimAllSmearedRecoOnly");
2179 snprintf(histotitle,200,"Simulated (primary-all)/primary for reconstructed tracks only");
2180 snprintf(ytitle,50,"(primary-all)/primary");
2181 snprintf(xtitle,50,"true p, K, p E_{T} for primary tracks");
2182 CreateHisto2D(histoname,histotitle,xtitle,ytitle,nbinsEt,minEt,maxEt,nbinsEt,-etDiff*5,0.0);
2183
2184 snprintf(histoname,200,"SimPiKPEtMinusSimPIDSmearedRecoOnly");
2185 snprintf(histotitle,200,"Simulated (true-smeared)/true for reconstructed tracks only with PID smearing");
2186 snprintf(ytitle,50,"(true-smeared)/true");
2187 snprintf(xtitle,50,"true p, K, p E_{T}");
2188 CreateHisto2D(histoname,histotitle,xtitle,ytitle,nbinsEt,minEt,maxEt,nbinsEt,-etDiff,etDiff);
2189
2190 snprintf(histoname,200,"SimPiKPEtMinusSimSmearedRecoOnly");
2191 snprintf(histotitle,200,"Simulated (true-smeared)/true for reconstructed tracks only");
2192 snprintf(ytitle,50,"(true-smeared)/true");
2193 snprintf(xtitle,50,"true p, K, p E_{T}");
2194 CreateHisto2D(histoname,histotitle,xtitle,ytitle,nbinsEt,minEt,maxEt,nbinsEt,-etDiff/15,etDiff/15);
2195
2196 snprintf(histoname,200,"SimPiKPPtMinusSimSmearedRecoOnly");
2197 snprintf(histotitle,200,"Simulated (true-smeared)/true for reconstructed tracks only");
2198 snprintf(ytitle,50,"(true-smeared)/true");
2199 snprintf(xtitle,50,"true p, K, p p_{T}");
2200 CreateHisto2D(histoname,histotitle,xtitle,ytitle,nbinsEt,minEt,maxEt,nbinsEt,-etDiff/15,etDiff/15);
2201
2202 snprintf(histoname,200,"SimPiKPEtMinusSimSmearedMultRecoOnly");
2203 snprintf(histotitle,200,"Simulated (true-smeared)/true for reconstructed tracks only");
2204 snprintf(ytitle,50,"(true-smeared)/true");
2205 snprintf(xtitle,50,"number of reconstructed particles");
2206 CreateHisto2D(histoname,histotitle,xtitle,ytitle,nbinsEt,minEt,maxEt,nbinsEt,-etDiff/15,etDiff/15);
2207
2208 snprintf(histoname,200,"SimPiKPPtMinusSimSmearedMultRecoOnly");
2209 snprintf(histotitle,200,"Simulated (true-smeared)/true for reconstructed tracks only");
2210 snprintf(ytitle,50,"(true-smeared)/true");
2211 snprintf(xtitle,50,"number of reconstructed particles");
2212 CreateHisto2D(histoname,histotitle,xtitle,ytitle,nbinsEt,minEt,maxEt,nbinsEt,-etDiff/15,etDiff/15);
7d2d1773 2213
2214 //======================================================================
2215
6a0df78a 2216 snprintf(histoname,200,"SimPiKPEtMinusSimPtSmeared");
2217 snprintf(histotitle,200,"Simulated (true-smeared)/true for 0.5 percent momentum smearing");
2218 snprintf(ytitle,50,"(true-smeared)/true");
2219 snprintf(xtitle,50,"true p, K, p E_{T}");
61e3f555 2220 CreateHisto2D(histoname,histotitle,xtitle,ytitle,nbinsEt,minEt,maxEt,nbinsEt,-etDiff,etDiff);
6a0df78a 2221 snprintf(histoname,200,"SimPiKPEtPtSmeared");
2222 snprintf(histotitle,200,"Simulated E_{T} for 0.5 percent momentum smearing");
2223 snprintf(ytitle,50,"Number of events");
2224 snprintf(xtitle,50,"p, K, p E_{T}");
7d2d1773 2225 CreateHisto1D(histoname,histotitle,xtitle,ytitle,nbinsEt,minEt,maxEt);
2226
2227 //======================================================================
2228
6a0df78a 2229 snprintf(histoname,200,"SimPiKPEtMinusSimEfficiencySmeared");
2230 snprintf(histotitle,200,"Simulated (true-smeared)/true for efficiency smearing");
2231 snprintf(ytitle,50,"(true-smeared)/true");
2232 snprintf(xtitle,50,"true p, K, p E_{T}");
6b246af1 2233 CreateHisto2D(histoname,histotitle,xtitle,ytitle,nbinsEt,minEt,maxEt,nbinsEt,-etDiff*7,etDiff*7);
6a0df78a 2234 snprintf(histoname,200,"SimPiKPEtEfficiencySmeared");
2235 snprintf(histotitle,200,"Simulated E_{T} for efficiency smearing");
2236 snprintf(ytitle,50,"Number of events");
2237 snprintf(xtitle,50,"p, K, p E_{T}");
7d2d1773 2238 CreateHisto1D(histoname,histotitle,xtitle,ytitle,nbinsEt,minEt,maxEt);
2239
2240 //======================================================================
2241
6a0df78a 2242 snprintf(histoname,200,"SimPiKPEtMinusSimPtCutSmearedTPC");
2243 snprintf(histotitle,200,"Simulated (true-smeared)/true for p_{T}>0.15 GeV/c smearing");
2244 snprintf(ytitle,50,"(true-smeared)/true");
2245 snprintf(xtitle,50,"true p, K, p E_{T}");
7d2d1773 2246 CreateHisto2D(histoname,histotitle,xtitle,ytitle,nbinsEt,minEt,maxEt,nbinsEt,-etDiff,etDiff);
6a0df78a 2247 snprintf(histoname,200,"SimPiKPEtPtCutSmearedTPC");
2248 snprintf(histotitle,200,"Simulated E_{T} for p_{T}>0.15 GeV/c smearing");
2249 snprintf(ytitle,50,"Number of events");
2250 snprintf(xtitle,50,"p, K, p E_{T}");
7d2d1773 2251 CreateHisto1D(histoname,histotitle,xtitle,ytitle,nbinsEt,minEt,maxEt);
2252
2253
2254 //======================================================================
2255
6a0df78a 2256 snprintf(histoname,200,"SimPiKPEtMinusSimPtCutSmearedITS");
2257 snprintf(histotitle,200,"Simulated (true-smeared)/true for p_{T}>0.10 GeV/c smearing");
2258 snprintf(ytitle,50,"(true-smeared)/true");
2259 snprintf(xtitle,50,"true p, K, p E_{T}");
7d2d1773 2260 CreateHisto2D(histoname,histotitle,xtitle,ytitle,nbinsEt,minEt,maxEt,nbinsEt,-etDiff,etDiff);
6a0df78a 2261 snprintf(histoname,200,"SimPiKPEtPtCutSmearedITS");
2262 snprintf(histotitle,200,"Simulated E_{T} for p_{T}>0.10 GeV/c smearing");
2263 snprintf(ytitle,50,"Number of events");
2264 snprintf(xtitle,50,"p, K, p E_{T}");
7d2d1773 2265 CreateHisto1D(histoname,histotitle,xtitle,ytitle,nbinsEt,minEt,maxEt);
2266
2267 //======================================================================
2268
6a0df78a 2269 snprintf(histoname,200,"SimPiKPEtMinusSimPIDSmeared");
2270 snprintf(histotitle,200,"Simulated (true-smeared)/true for PID smearing");
2271 snprintf(ytitle,50,"(true-smeared)/true");
2272 snprintf(xtitle,50,"true p, K, p E_{T}");
7d2d1773 2273 CreateHisto2D(histoname,histotitle,xtitle,ytitle,nbinsEt,minEt,maxEt,nbinsEt,-etDiff,etDiff);
6a0df78a 2274 snprintf(histoname,200,"SimPiKPEtPIDSmeared");
2275 snprintf(histotitle,200,"Simulated E_{T} for PID smearing");
2276 snprintf(ytitle,50,"Number of events");
2277 snprintf(xtitle,50,"p, K, p E_{T}");
7d2d1773 2278 CreateHisto1D(histoname,histotitle,xtitle,ytitle,nbinsEt,minEt,maxEt);
2279
2280 //======================================================================
2281
6a0df78a 2282 snprintf(histoname,200,"SimPiKPEtMinusSimPIDSmearedNoID");
2283 snprintf(histotitle,200,"Simulated (true-smeared)/true for PID smearing No ID");
2284 snprintf(ytitle,50,"(true-smeared)/true");
2285 snprintf(xtitle,50,"true p, K, p E_{T}");
7d2d1773 2286 CreateHisto2D(histoname,histotitle,xtitle,ytitle,nbinsEt,minEt,maxEt,nbinsEt,-etDiff,etDiff);
6a0df78a 2287 snprintf(histoname,200,"SimPiKPEtPIDSmearedNoID");
2288 snprintf(histotitle,200,"Simulated E_{T} for PID smearing No ID");
2289 snprintf(ytitle,50,"Number of events");
2290 snprintf(xtitle,50,"p, K, p E_{T}");
7d2d1773 2291 CreateHisto1D(histoname,histotitle,xtitle,ytitle,nbinsEt,minEt,maxEt);
2292 }
464aa50c 2293 delete sTPC;
2294 delete sITS;
2295 delete sTPCpt;
2296 delete sITSpt;
2297 delete sPID;
2298 delete sNoPID;
2299 delete sNoPIDString;
2300 delete sHadEt;
2301 delete sTotEt;
f6acf3ad 2302 delete sPiKPEt;
464aa50c 2303 delete sTotEtString;
2304 delete sHadEtString;
f6acf3ad 2305 delete sPiKPEtString;
464aa50c 2306 delete sFull;
2307 delete sEMCAL;
2308 delete sPHOS;
641e1e0c 2309 CreateIntHisto1D("NEvents","Number of events","number of events","Number of events",1,0,1);
2c0680a5 2310 CreateIntHisto1D("NEventsSD","Number of events","number of singly diffractive events","Number of events",1,0,1);
2311 CreateIntHisto1D("NEventsDD","Number of events","number of doubly diffractive events","Number of events",1,0,1);
2312 CreateIntHisto1D("NEventsND","Number of events","number of non-diffractive events","Number of events",1,0,1);
d35312c9 2313 CreateIntHisto1D("NEventsSDV0AND","Number of events","number of singly diffractive events","Number of events",1,0,1);
2314 CreateIntHisto1D("NEventsDDV0AND","Number of events","number of doubly diffractive events","Number of events",1,0,1);
2315 CreateIntHisto1D("NEventsNDV0AND","Number of events","number of non-diffractive events","Number of events",1,0,1);
f6acf3ad 2316 if( !fRunLightweight){
2317 CreateResolutionPtHisto2D("presolutionTPC","p resolution","p^{rec}","(p^{sim}-p^{rec})/p^{rec}");
2318 CreateResolutionPtHisto2D("pTresolutionTPC","p_{T} resolution","p_{T}^{rec}","(p_{T}^{sim}-p_{T}^{rec})/p_{T}^{rec}");
2319 CreateResolutionPtHisto2D("ETresolutionTPC","E_{T} resolution","E_{T}^{rec}","(E_{T}^{sim}-E_{T}^{rec})/E_{T}^{rec}");
2320 CreateResolutionPtHisto2D("pTresolutionTPCITS","p_{T} resolution","p_{T}^{rec}","(p_{T}^{sim}-p_{T}^{rec})/p_{T}^{rec}");
2321 CreateResolutionPtHisto2D("ETresolutionTPCITS","E_{T} resolution","E_{T}^{rec}","(E_{T}^{sim}-E_{T}^{rec})/E_{T}^{rec}");
2322 CreateResolutionPtHisto2D("presolutionTPCITS","p resolution","p^{rec}","(p^{sim}-p^{rec})/p^{rec}");
2323 CreateResolutionPtHisto2D("pTresolutionITS","p_{T} resolution","p_{T}^{rec}","(p_{T}^{sim}-p_{T}^{rec})/p_{T}^{rec}");
2324 CreateResolutionPtHisto2D("ETresolutionITS","E_{T} resolution","E_{T}^{rec}","(E_{T}^{sim}-E_{T}^{rec})/E_{T}^{rec}");
2325 CreateResolutionPtHisto2D("presolutionITS","p resolution","p^{rec}","(p^{sim}-p^{rec})/p^{rec}");
2326 CreatePtHisto1D("pTsimITS","p_{T}^{sim}","p_{T}^{sim}","Number of particles");
2327 CreatePtHisto1D("pTsimTPC","p_{T}^{sim}","p_{T}^{sim}","Number of particles");
2328 CreatePtHisto1D("pTsimTPCITS","p_{T}^{sim}","p_{T}^{sim}","Number of particles");
2329 CreatePtHisto1D("pTrecITS","p_{T}^{rec}","p_{T}^{rec}","Number of particles");
2330 CreatePtHisto1D("pTrecTPC","p_{T}^{rec}","p_{T}^{rec}","Number of particles");
2331 CreatePtHisto1D("pTrecTPCITS","p_{T}^{rec}","p_{T}^{rec}","Number of particles");
2332 if(fDataSet==20100){
2333 Int_t width = 5;
2334 if(fNCentBins<21) width = 10;
2335 for(Int_t j=0;j<fNCentBins;j++){
2336 CreatePtHisto1D(Form("pTsimITSCB%i",j),Form("p_{T}^{sim} for %i-%i central",j*width,(j+1)*width),"p_{T}^{sim}","Number of particles");
2337 CreatePtHisto1D(Form("pTsimTPCITSCB%i",j),Form("p_{T}^{sim} for %i-%i central",j*width,(j+1)*width),"p_{T}^{sim}","Number of particles");
2338 CreatePtHisto1D(Form("pTsimTPCCB%i",j),Form("p_{T}^{sim} for %i-%i central",j*width,(j+1)*width),"p_{T}^{sim}","Number of particles");
2339 CreatePtHisto1D(Form("pTrecITSCB%i",j),Form("p_{T}^{rec} for %i-%i central",j*width,(j+1)*width),"p_{T}^{rec}","Number of particles");
2340 CreatePtHisto1D(Form("pTrecTPCITSCB%i",j),Form("p_{T}^{rec} for %i-%i central",j*width,(j+1)*width),"p_{T}^{rec}","Number of particles");
2341 CreatePtHisto1D(Form("pTrecTPCCB%i",j),Form("p_{T}^{rec} for %i-%i central",j*width,(j+1)*width),"p_{T}^{rec}","Number of particles");
2342 }
61e3f555 2343 }
2344 }
641e1e0c 2345
641e1e0c 2346}
2347