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