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