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