]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG4/totEt/AliAnalysisHadEtMonteCarlo.cxx
Adding functions to facilitate cross checks with Monte Carlo
[u/mrichter/AliRoot.git] / PWG4 / 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"
24#include "AliAnalysisEtCuts.h"
641e1e0c 25#include <iostream>
4b40b2b1 26#include "TRandom.h"
7d2d1773 27#include "AliAnalysisEtCommon.h"
52503ae7 28#include "AliCentrality.h"
0f6416f3 29#include "AliLog.h"
16abb579 30
641e1e0c 31using namespace std;
32
16abb579 33ClassImp(AliAnalysisHadEtMonteCarlo);
34
4b40b2b1 35
0e866ddc 36Int_t AliAnalysisHadEtMonteCarlo::fgNumSmearWidths = 4;
37Float_t AliAnalysisHadEtMonteCarlo::fgSmearWidths[4] = {0.005,0.006,0.007,0.008};
4b40b2b1 38
d6214a64 39AliAnalysisHadEtMonteCarlo::AliAnalysisHadEtMonteCarlo():AliAnalysisHadEt()
0e866ddc 40 ,fSimPiKPEt(0)
4b40b2b1 41 ,fSimHadEt(0)
42 ,fSimTotEt(0)
7d2d1773 43 ,fInvestigateSmearing(0)
44 ,fInvestigateFull(0)
45 ,fInvestigateEMCal(0)
46 ,fInvestigatePHOS(0)
47 ,fInvestigatePiKP(0)
48 ,fRequireITSHits(0)
f43fc416 49 ,fBaryonEnhancement(0)
0e866ddc 50 ,fPtSmearer(0)
d6214a64 51{
4b40b2b1 52}
53AliAnalysisHadEtMonteCarlo::~AliAnalysisHadEtMonteCarlo(){//destructor
0e866ddc 54 if(fPtSmearer) delete fPtSmearer;
d6214a64 55}
4b40b2b1 56
57void AliAnalysisHadEtMonteCarlo::ResetEventValues(){//resetting event variables
d6214a64 58 AliAnalysisHadEt::ResetEventValues();
59 fSimHadEt=0.0;
60 fSimTotEt=0.0;
0e866ddc 61 fSimPiKPEt=0.0;
d6214a64 62}
cf6522d1 63Int_t AliAnalysisHadEtMonteCarlo::AnalyseEvent(AliVEvent* ev,AliVEvent* ev2)
64{ // analyse MC and real event info
641e1e0c 65 FillHisto1D("NEvents",0.5,1);
6a0df78a 66 if(!ev || !ev2){
0f6416f3 67 AliFatal("ERROR: Event does not exist");
6a0df78a 68 return 0;
69 }
641e1e0c 70 AliMCEvent *mcEvent = dynamic_cast<AliMCEvent*>(ev);
71 AliESDEvent *realEvent = dynamic_cast<AliESDEvent*>(ev2);
ec956c46 72 if(!mcEvent || !realEvent){
73 AliFatal("ERROR: mcEvent or realEvent does not exist");
74 return 0;
75 }
641e1e0c 76 AliStack *stack = mcEvent->Stack();
bf205f52 77 fCentBin= -1;
52503ae7 78 if(fDataSet==20100){//If this is Pb+Pb
79 AliCentrality *centrality = realEvent->GetCentrality();
bf205f52 80 if(fNCentBins<20) fCentBin= centrality->GetCentralityClass10(fCentralityMethod);
81 else{ fCentBin= centrality->GetCentralityClass5(fCentralityMethod);}
52503ae7 82 }
83 AnalyseEvent(ev);
641e1e0c 84
85 //for PID
ea331c5d 86 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 87
641e1e0c 88 //=============================================
89
90 //Roughly following $ALICE_ROOT/PWG0/dNdEta/AlidNdEtaCorrectionTask
91
92 //=============================================TPC&&ITS=============================================
cf6522d1 93 TString *strTPC = new TString("TPC");
94 TString *strITS = new TString("ITS");
95 TString *strTPCITS = new TString("TPCITS");
7d2d1773 96 Int_t lastcutset = 1;
97 if(fRequireITSHits) lastcutset = 2;
98 for(Int_t cutset=0;cutset<=lastcutset;cutset++){
ea331c5d 99 TString *cutName = NULL;
100 TObjArray* list = NULL;
641e1e0c 101 switch(cutset){
102 case 0:
cf6522d1 103 cutName = strTPC;
104 list = fEsdtrackCutsTPC->GetAcceptedTracks(realEvent);
641e1e0c 105 break;
106 case 1:
cf6522d1 107 cutName = strITS;
108 list = fEsdtrackCutsITS->GetAcceptedTracks(realEvent);
641e1e0c 109 break;
110 case 2:
cf6522d1 111 cutName = strTPCITS;
112 list = fEsdtrackCutsITSTPC->GetAcceptedTracks(realEvent);
641e1e0c 113 break;
114 default:
115 cerr<<"Error: cannot fill histograms!"<<endl;
116 return -1;
117 }
118 Int_t nGoodTracks = list->GetEntries();
119 for (Int_t iTrack = 0; iTrack < nGoodTracks; iTrack++)
120 {
121 AliESDtrack *track = dynamic_cast<AliESDtrack*> (list->At(iTrack));
122 if (!track)
123 {
124 Printf("ERROR: Could not get track %d", iTrack);
125 continue;
126 }
127 else{
641e1e0c 128 Float_t nSigmaPion,nSigmaProton,nSigmaKaon,nSigmaElectron;
7d2d1773 129 pID->MakeTPCPID(track);
130 pID->MakeITSPID(track);
641e1e0c 131 if(cutset!=1){
cf6522d1 132 nSigmaPion = TMath::Abs(pID->NumberOfSigmasTPC(track,AliPID::kPion));
133 nSigmaProton = TMath::Abs(pID->NumberOfSigmasTPC(track,AliPID::kProton));
134 nSigmaKaon = TMath::Abs(pID->NumberOfSigmasTPC(track,AliPID::kKaon));
135 nSigmaElectron = TMath::Abs(pID->NumberOfSigmasTPC(track,AliPID::kElectron));
641e1e0c 136 }
137 else{
cf6522d1 138 nSigmaPion = TMath::Abs(pID->NumberOfSigmasITS(track,AliPID::kPion));
139 nSigmaProton = TMath::Abs(pID->NumberOfSigmasITS(track,AliPID::kProton));
140 nSigmaKaon = TMath::Abs(pID->NumberOfSigmasITS(track,AliPID::kKaon));
141 nSigmaElectron = TMath::Abs(pID->NumberOfSigmasITS(track,AliPID::kElectron));
641e1e0c 142 }
6a0df78a 143// bool isPion = (nSigmaPion<3.0 && nSigmaProton>2.0 && nSigmaKaon>2.0);
144// bool isElectron = (nSigmaElectron<2.0 && nSigmaPion>4.0 && nSigmaProton>3.0 && nSigmaKaon>3.0);
145// bool isKaon = (nSigmaPion>3.0 && nSigmaProton>2.0 && nSigmaKaon<2.0);
146// bool isProton = (nSigmaPion>3.0 && nSigmaProton<2.0 && nSigmaKaon>2.0);
cf6522d1 147 bool isPion = (nSigmaPion<3.0 && nSigmaProton>2.0 && nSigmaKaon>2.0);
148 bool isElectron = (nSigmaElectron<2.0 && nSigmaPion>4.0 && nSigmaProton>3.0 && nSigmaKaon>3.0);
701b4621 149 bool isKaon = (nSigmaPion>3.0 && nSigmaProton>3.0 && nSigmaKaon<3.0 && track->Pt()<0.45);
150 bool isProton = (nSigmaPion>3.0 && nSigmaProton<3.0 && nSigmaKaon>3.0 && track->Pt()<0.9);
641e1e0c 151
cf6522d1 152 bool unidentified = (!isProton && !isKaon && !isElectron);
641e1e0c 153 Float_t dEdx = track->GetTPCsignal();
154 if(cutset==1) dEdx = track->GetITSsignal();
155
cf6522d1 156 FillHisto2D(Form("dEdxAll%s",cutName->Data()),track->P(),dEdx,1.0);
641e1e0c 157
158 UInt_t label = (UInt_t)TMath::Abs(track->GetLabel());
159 TParticle *simPart = stack->Particle(label);
160 if(!simPart) {
161 Printf("no MC particle\n");
162 continue;
163 }
164 else{//analysis
165 if(stack->IsPhysicalPrimary(label)){
0e866ddc 166 if (TMath::Abs(simPart->Eta()) < fCuts->GetCommonEtaCut()){
641e1e0c 167 Int_t pdgCode = simPart->GetPDG(0)->PdgCode();
168 Int_t mypid = 0;
7d2d1773 169 if(pdgCode==AliAnalysisHadEt::fgPiPlusCode) mypid = 1;
4b40b2b1 170 if(pdgCode==fgProtonCode) mypid = 2;
171 if(pdgCode==fgKPlusCode) mypid = 3;
172 if(pdgCode==fgEPlusCode) mypid = 4;
173 if(pdgCode==fgPiMinusCode) mypid = 1;
174 if(pdgCode==fgAntiProtonCode) mypid = 2;
175 if(pdgCode==fgKMinusCode) mypid = 3;
176 if(pdgCode==fgEMinusCode) mypid = 4;
641e1e0c 177 bool filled = false;
178 //============Charged hadrons===================================
179 //identified...
cf6522d1 180 if(isPion){
4b40b2b1 181 if(pdgCode!=fgPiPlusCode && pdgCode!=fgPiMinusCode){
cf6522d1 182 FillHisto2D(Form("MisidentifiedPIDs%s",cutName->Data()),1,mypid,1);
641e1e0c 183 //if(mypid==0)cerr<<"I was misidentified! I'm not a pion! I am a "<<simPart->GetName()<<endl;
184 }
185 float myEt = Et(simPart);
cf6522d1 186 if(track->Charge()>0){ FillHisto2D(Form("EtReconstructed%sIdentifiedPiPlus",cutName->Data()),track->Pt(),track->Eta(),myEt);}
187 else{ FillHisto2D(Form("EtReconstructed%sIdentifiedPiMinus",cutName->Data()),track->Pt(),track->Eta(),myEt);}
188 FillHisto2D(Form("dEdxPion%s",cutName->Data()),track->P(),dEdx,1.0);
641e1e0c 189 }
cf6522d1 190 if(isProton){
4b40b2b1 191 if(pdgCode!=fgProtonCode && pdgCode!=fgAntiProtonCode){
cf6522d1 192 FillHisto2D(Form("MisidentifiedPIDs%s",cutName->Data()),2,mypid,1);
641e1e0c 193 }
194 float myEt = Et(simPart);
cf6522d1 195 if(track->Charge()>0){ FillHisto2D(Form("EtReconstructed%sIdentifiedProton",cutName->Data()),track->Pt(),track->Eta(),myEt);}
196 else{ FillHisto2D(Form("EtReconstructed%sIdentifiedAntiProton",cutName->Data()),track->Pt(),track->Eta(),myEt);}
f43fc416 197 if(fBaryonEnhancement){
198 myEt = myEt*ProtonBaryonEnhancement(track->Pt());
199 if(track->Charge()>0){ FillHisto2D(Form("EtReconstructed%sIdentifiedProtonEnhanced",cutName->Data()),track->Pt(),track->Eta(),myEt);}
200 else{ FillHisto2D(Form("EtReconstructed%sIdentifiedAntiProtonEnhanced",cutName->Data()),track->Pt(),track->Eta(),myEt);}
201 }
cf6522d1 202 FillHisto2D(Form("dEdxProton%s",cutName->Data()),track->P(),dEdx,1.0);
641e1e0c 203 }
cf6522d1 204 if(isKaon){
4b40b2b1 205 if(pdgCode!=fgKMinusCode && pdgCode!=fgKPlusCode){
cf6522d1 206 FillHisto2D(Form("MisidentifiedPIDs%s",cutName->Data()),3,mypid,1);
641e1e0c 207 }
208 float myEt = Et(simPart);
cf6522d1 209 if(track->Charge()>0){ FillHisto2D(Form("EtReconstructed%sIdentifiedKPlus",cutName->Data()),track->Pt(),track->Eta(),myEt);}
210 else{ FillHisto2D(Form("EtReconstructed%sIdentifiedKMinus",cutName->Data()),track->Pt(),track->Eta(),myEt);}
211 FillHisto2D(Form("dEdxKaon%s",cutName->Data()),track->P(),dEdx,1.0);
641e1e0c 212 }
cf6522d1 213 if(isElectron){
4b40b2b1 214 if(pdgCode!=fgEMinusCode && pdgCode!=fgEPlusCode){
cf6522d1 215 FillHisto2D(Form("MisidentifiedPIDs%s",cutName->Data()),4,mypid,1);
641e1e0c 216 }
217 float myEt = Et(simPart);
cf6522d1 218 if(track->Charge()>0){ FillHisto2D(Form("EtReconstructed%sIdentifiedEPlus",cutName->Data()),track->Pt(),track->Eta(),myEt);}
219 else{ FillHisto2D(Form("EtReconstructed%sIdentifiedEMinus",cutName->Data()),track->Pt(),track->Eta(),myEt);}
220 FillHisto2D(Form("dEdxElectron%s",cutName->Data()),track->P(),dEdx,1.0);
641e1e0c 221 }
cf6522d1 222 if(unidentified){
4b40b2b1 223 if(pdgCode!=fgEMinusCode && pdgCode!=fgEPlusCode){
224 float myEtPi = Et(simPart,fgPionMass);
86d9d0dc 225 float myEtP = Et(simPart,fgProtonMass);
226 float myEtK = Et(simPart,fgKaonMass);
641e1e0c 227 float myEt = Et(simPart);
cf6522d1 228 FillHisto2D(Form("EtReconstructed%sUnidentifiedAssumingPion",cutName->Data()),track->Pt(),track->Eta(),myEtPi);
86d9d0dc 229 FillHisto2D(Form("EtReconstructed%sUnidentifiedAssumingProton",cutName->Data()),track->Pt(),track->Eta(),myEtP);
230 FillHisto2D(Form("EtReconstructed%sUnidentifiedAssumingKaon",cutName->Data()),track->Pt(),track->Eta(),myEtK);
cf6522d1 231 FillHisto2D(Form("EtReconstructed%sUnidentified",cutName->Data()),track->Pt(),track->Eta(),myEt);
232 FillHisto2D(Form("EtNReconstructed%sUnidentified",cutName->Data()),track->Pt(),track->Eta(),1.0);
f43fc416 233 if(pdgCode == fgPiPlusCode||pdgCode == fgPiMinusCode){
234 FillHisto2D(Form("EtReconstructed%sUnidentifiedPionAssumingPion",cutName->Data()),track->Pt(),track->Eta(),myEtPi);
86d9d0dc 235 FillHisto2D(Form("EtReconstructed%sUnidentifiedPionAssumingProton",cutName->Data()),track->Pt(),track->Eta(),myEtP);
236 FillHisto2D(Form("EtReconstructed%sUnidentifiedPionAssumingKaon",cutName->Data()),track->Pt(),track->Eta(),myEtK);
904048b2 237 FillHisto2D(Form("EtReconstructed%sUnidentifiedPion",cutName->Data()),track->Pt(),track->Eta(),myEt);
f43fc416 238 FillHisto2D(Form("EtNReconstructed%sUnidentifiedPion",cutName->Data()),track->Pt(),track->Eta(),1.0);
239 }
240 if(pdgCode == fgKPlusCode||pdgCode == fgKMinusCode){
241 FillHisto2D(Form("EtReconstructed%sUnidentifiedKaonAssumingPion",cutName->Data()),track->Pt(),track->Eta(),myEtPi);
86d9d0dc 242 FillHisto2D(Form("EtReconstructed%sUnidentifiedKaonAssumingProton",cutName->Data()),track->Pt(),track->Eta(),myEtP);
243 FillHisto2D(Form("EtReconstructed%sUnidentifiedKaonAssumingKaon",cutName->Data()),track->Pt(),track->Eta(),myEtK);
904048b2 244 FillHisto2D(Form("EtReconstructed%sUnidentifiedKaon",cutName->Data()),track->Pt(),track->Eta(),myEt);
f43fc416 245 FillHisto2D(Form("EtNReconstructed%sUnidentifiedKaon",cutName->Data()),track->Pt(),track->Eta(),1.0);
246 }
247 if(pdgCode == fgProtonCode||pdgCode == fgAntiProtonCode){
248 FillHisto2D(Form("EtReconstructed%sUnidentifiedProtonAssumingPion",cutName->Data()),track->Pt(),track->Eta(),myEtPi);
86d9d0dc 249 FillHisto2D(Form("EtReconstructed%sUnidentifiedProtonAssumingProton",cutName->Data()),track->Pt(),track->Eta(),myEtP);
250 FillHisto2D(Form("EtReconstructed%sUnidentifiedProtonAssumingKaon",cutName->Data()),track->Pt(),track->Eta(),myEtK);
904048b2 251 FillHisto2D(Form("EtReconstructed%sUnidentifiedProton",cutName->Data()),track->Pt(),track->Eta(),myEt);
f43fc416 252 FillHisto2D(Form("EtNReconstructed%sUnidentifiedProton",cutName->Data()),track->Pt(),track->Eta(),1.0);
253 if(fBaryonEnhancement){
254 myEt = myEt*ProtonBaryonEnhancement(track->Pt());
255 FillHisto2D(Form("EtReconstructed%sUnidentifiedProtonAssumingPionEnhanced",cutName->Data()),track->Pt(),track->Eta(),myEtPi);
904048b2 256 FillHisto2D(Form("EtReconstructed%sUnidentifiedProtonEnhanced",cutName->Data()),track->Pt(),track->Eta(),myEt);
f43fc416 257 FillHisto2D(Form("EtNReconstructed%sUnidentifiedProtonEnhanced",cutName->Data()),track->Pt(),track->Eta(),1.0);
258 }
259 }
641e1e0c 260 }
cf6522d1 261 FillHisto2D(Form("dEdxUnidentified%s",cutName->Data()),track->P(),dEdx,1.0);
cf6522d1 262 FillHisto1D(Form("UnidentifiedPIDs%s",cutName->Data()),mypid,1);
641e1e0c 263 }
264 //...simulated
7d2d1773 265 if(pdgCode == fgPiPlusCode){
641e1e0c 266 float myEt = Et(simPart);
86d9d0dc 267 float myEtP = Et(simPart,fgProtonMass);
268 float myEtK = Et(simPart,fgKaonMass);
cf6522d1 269 FillHisto2D(Form("EtReconstructed%sPiPlus",cutName->Data()),simPart->Pt(),simPart->Eta(),myEt);
270 FillHisto2D(Form("EtReconstructed%sChargedHadron",cutName->Data()),simPart->Pt(),simPart->Eta(),myEt);
271 FillHisto2D(Form("EtNReconstructed%sPiPlus",cutName->Data()),simPart->Pt(),simPart->Eta(),myEt);
272 FillHisto2D(Form("EtNReconstructed%sChargedHadron",cutName->Data()),simPart->Pt(),simPart->Eta(),myEt);
bf205f52 273 if(fCentBin>=0){//if a centrality bin was defined
274 FillHisto2D(Form("EtNReconstructed%sPiPlusCB%i",cutName->Data(),fCentBin),simPart->Pt(),simPart->Eta(),myEt);
275 FillHisto2D(Form("EtNReconstructed%sChargedHadronCB%i",cutName->Data(),fCentBin),simPart->Pt(),simPart->Eta(),myEt);
52503ae7 276 }
cf6522d1 277 FillHisto2D(Form("EtReconstructed%sChargedHadronAssumingPion",cutName->Data()),simPart->Pt(),simPart->Eta(),myEt);
86d9d0dc 278 FillHisto2D(Form("EtReconstructed%sChargedHadronAssumingProton",cutName->Data()),simPart->Pt(),simPart->Eta(),myEtP);
279 FillHisto2D(Form("EtReconstructed%sChargedHadronAssumingKaon",cutName->Data()),simPart->Pt(),simPart->Eta(),myEtK);
280 FillHisto2D(Form("EtReconstructed%sPiPlusAssumingKaon",cutName->Data()),simPart->Pt(),simPart->Eta(),myEtK);
281 FillHisto2D(Form("EtReconstructed%sPiPlusAssumingProton",cutName->Data()),simPart->Pt(),simPart->Eta(),myEtP);
641e1e0c 282 filled = true;
283 }
4b40b2b1 284 if(pdgCode == fgPiMinusCode){
641e1e0c 285 float myEt = Et(simPart);
86d9d0dc 286 float myEtP = Et(simPart,fgProtonMass);
287 float myEtK = Et(simPart,fgKaonMass);
cf6522d1 288 FillHisto2D(Form("EtReconstructed%sPiMinus",cutName->Data()),simPart->Pt(),simPart->Eta(),myEt);
289 FillHisto2D(Form("EtReconstructed%sChargedHadron",cutName->Data()),simPart->Pt(),simPart->Eta(),myEt);
290 FillHisto2D(Form("EtNReconstructed%sPiMinus",cutName->Data()),simPart->Pt(),simPart->Eta(),myEt);
291 FillHisto2D(Form("EtNReconstructed%sChargedHadron",cutName->Data()),simPart->Pt(),simPart->Eta(),myEt);
bf205f52 292 if(fCentBin>=0){//if a centrality bin was defined
293 FillHisto2D(Form("EtNReconstructed%sPiMinusCB%i",cutName->Data(),fCentBin),simPart->Pt(),simPart->Eta(),myEt);
294 FillHisto2D(Form("EtNReconstructed%sChargedHadronCB%i",cutName->Data(),fCentBin),simPart->Pt(),simPart->Eta(),myEt);
52503ae7 295 }
cf6522d1 296 FillHisto2D(Form("EtReconstructed%sChargedHadronAssumingPion",cutName->Data()),simPart->Pt(),simPart->Eta(),myEt);
86d9d0dc 297 FillHisto2D(Form("EtReconstructed%sChargedHadronAssumingProton",cutName->Data()),simPart->Pt(),simPart->Eta(),myEtP);
298 FillHisto2D(Form("EtReconstructed%sChargedHadronAssumingKaon",cutName->Data()),simPart->Pt(),simPart->Eta(),myEtK);
299 FillHisto2D(Form("EtReconstructed%sPiMinusAssumingKaon",cutName->Data()),simPart->Pt(),simPart->Eta(),myEtK);
300 FillHisto2D(Form("EtReconstructed%sPiMinusAssumingProton",cutName->Data()),simPart->Pt(),simPart->Eta(),myEtP);
641e1e0c 301 filled = true;
302 }
4b40b2b1 303 if(pdgCode == fgKPlusCode){
641e1e0c 304 float myEt = Et(simPart);
4b40b2b1 305 float myEtPi = Et(simPart,fgPionMass);
86d9d0dc 306 float myEtP = Et(simPart,fgProtonMass);
cf6522d1 307 FillHisto2D(Form("EtReconstructed%sKPlus",cutName->Data()),simPart->Pt(),simPart->Eta(),myEt);
308 FillHisto2D(Form("EtReconstructed%sChargedHadron",cutName->Data()),simPart->Pt(),simPart->Eta(),myEt);
309 FillHisto2D(Form("EtNReconstructed%sKPlus",cutName->Data()),simPart->Pt(),simPart->Eta(),myEt);
310 FillHisto2D(Form("EtNReconstructed%sChargedHadron",cutName->Data()),simPart->Pt(),simPart->Eta(),myEt);
bf205f52 311 if(fCentBin>=0){//if a centrality bin was defined
312 FillHisto2D(Form("EtNReconstructed%sKPlusCB%i",cutName->Data(),fCentBin),simPart->Pt(),simPart->Eta(),myEt);
313 FillHisto2D(Form("EtNReconstructed%sChargedHadronCB%i",cutName->Data(),fCentBin),simPart->Pt(),simPart->Eta(),myEt);
52503ae7 314 }
cf6522d1 315 FillHisto2D(Form("EtReconstructed%sChargedHadronAssumingPion",cutName->Data()),simPart->Pt(),simPart->Eta(),myEtPi);
316 FillHisto2D(Form("EtReconstructed%sKPlusAssumingPion",cutName->Data()),simPart->Pt(),simPart->Eta(),myEtPi);
86d9d0dc 317 FillHisto2D(Form("EtReconstructed%sChargedHadronAssumingKaon",cutName->Data()),simPart->Pt(),simPart->Eta(),myEt);
318 FillHisto2D(Form("EtReconstructed%sKPlusAssumingKaon",cutName->Data()),simPart->Pt(),simPart->Eta(),myEt);
319 FillHisto2D(Form("EtReconstructed%sChargedHadronAssumingProton",cutName->Data()),simPart->Pt(),simPart->Eta(),myEtP);
320 FillHisto2D(Form("EtReconstructed%sKPlusAssumingProton",cutName->Data()),simPart->Pt(),simPart->Eta(),myEtP);
641e1e0c 321 filled = true;
322 }
4b40b2b1 323 if(pdgCode == fgKMinusCode){
641e1e0c 324 float myEt = Et(simPart);
4b40b2b1 325 float myEtPi = Et(simPart,fgPionMass);
86d9d0dc 326 float myEtP = Et(simPart,fgProtonMass);
cf6522d1 327 FillHisto2D(Form("EtReconstructed%sKMinus",cutName->Data()),simPart->Pt(),simPart->Eta(),myEt);
328 FillHisto2D(Form("EtReconstructed%sChargedHadron",cutName->Data()),simPart->Pt(),simPart->Eta(),myEt);
329 FillHisto2D(Form("EtNReconstructed%sKMinus",cutName->Data()),simPart->Pt(),simPart->Eta(),myEt);
330 FillHisto2D(Form("EtNReconstructed%sChargedHadron",cutName->Data()),simPart->Pt(),simPart->Eta(),myEt);
bf205f52 331 if(fCentBin>=0){//if a centrality bin was defined
332 FillHisto2D(Form("EtNReconstructed%sKMinusCB%i",cutName->Data(),fCentBin),simPart->Pt(),simPart->Eta(),myEt);
333 FillHisto2D(Form("EtNReconstructed%sChargedHadronCB%i",cutName->Data(),fCentBin),simPart->Pt(),simPart->Eta(),myEt);
52503ae7 334 }
cf6522d1 335 FillHisto2D(Form("EtReconstructed%sChargedHadronAssumingPion",cutName->Data()),simPart->Pt(),simPart->Eta(),myEtPi);
336 FillHisto2D(Form("EtReconstructed%sKMinusAssumingPion",cutName->Data()),simPart->Pt(),simPart->Eta(),myEtPi);
86d9d0dc 337 FillHisto2D(Form("EtReconstructed%sChargedHadronAssumingKaon",cutName->Data()),simPart->Pt(),simPart->Eta(),myEt);
338 FillHisto2D(Form("EtReconstructed%sKMinusAssumingKaon",cutName->Data()),simPart->Pt(),simPart->Eta(),myEt);
339 FillHisto2D(Form("EtReconstructed%sChargedHadronAssumingProton",cutName->Data()),simPart->Pt(),simPart->Eta(),myEtP);
340 FillHisto2D(Form("EtReconstructed%sKMinusAssumingProton",cutName->Data()),simPart->Pt(),simPart->Eta(),myEtP);
641e1e0c 341 filled = true;
342 }
4b40b2b1 343 if(pdgCode == fgProtonCode){
641e1e0c 344 float myEt = Et(simPart);
4b40b2b1 345 float myEtPi = Et(simPart,fgPionMass);
86d9d0dc 346 float myEtK = Et(simPart,fgKaonMass);
cf6522d1 347 FillHisto2D(Form("EtReconstructed%sProton",cutName->Data()),simPart->Pt(),simPart->Eta(),myEt);
348 FillHisto2D(Form("EtReconstructed%sChargedHadron",cutName->Data()),simPart->Pt(),simPart->Eta(),myEt);
349 FillHisto2D(Form("EtNReconstructed%sProton",cutName->Data()),simPart->Pt(),simPart->Eta(),myEt);
350 FillHisto2D(Form("EtNReconstructed%sChargedHadron",cutName->Data()),simPart->Pt(),simPart->Eta(),myEt);
bf205f52 351 if(fCentBin>=0){//if a centrality bin was defined
352 FillHisto2D(Form("EtNReconstructed%sProtonCB%i",cutName->Data(),fCentBin),simPart->Pt(),simPart->Eta(),myEt);
353 FillHisto2D(Form("EtNReconstructed%sChargedHadronCB%i",cutName->Data(),fCentBin),simPart->Pt(),simPart->Eta(),myEt);
52503ae7 354 }
cf6522d1 355 FillHisto2D(Form("EtReconstructed%sChargedHadronAssumingPion",cutName->Data()),simPart->Pt(),simPart->Eta(),myEtPi);
356 FillHisto2D(Form("EtReconstructed%sProtonAssumingPion",cutName->Data()),simPart->Pt(),simPart->Eta(),myEtPi);
86d9d0dc 357 FillHisto2D(Form("EtReconstructed%sChargedHadronAssumingKaon",cutName->Data()),simPart->Pt(),simPart->Eta(),myEtK);
358 FillHisto2D(Form("EtReconstructed%sProtonAssumingKaon",cutName->Data()),simPart->Pt(),simPart->Eta(),myEtK);
359 FillHisto2D(Form("EtReconstructed%sChargedHadronAssumingProton",cutName->Data()),simPart->Pt(),simPart->Eta(),myEt);
360 FillHisto2D(Form("EtReconstructed%sProtonAssumingProton",cutName->Data()),simPart->Pt(),simPart->Eta(),myEt);
641e1e0c 361 filled = true;
f43fc416 362
363 if(fBaryonEnhancement){
364 float enhancement = ProtonBaryonEnhancement(track->Pt());
365 FillHisto2D(Form("EtReconstructed%sProtonEnhanced",cutName->Data()),simPart->Pt(),simPart->Eta(),myEt*enhancement);
366 FillHisto2D(Form("EtNReconstructed%sProtonEnhanced",cutName->Data()),simPart->Pt(),simPart->Eta(),myEt*enhancement);
367 FillHisto2D(Form("EtReconstructed%sProtonAssumingPionEnhanced",cutName->Data()),simPart->Pt(),simPart->Eta(),myEtPi*enhancement);
368 }
369
641e1e0c 370 }
4b40b2b1 371 if(pdgCode == fgAntiProtonCode){
641e1e0c 372 float myEt = Et(simPart);
4b40b2b1 373 float myEtPi = Et(simPart,fgPionMass);
86d9d0dc 374 float myEtK = Et(simPart,fgKaonMass);
cf6522d1 375 FillHisto2D(Form("EtReconstructed%sAntiProton",cutName->Data()),simPart->Pt(),simPart->Eta(),myEt);
376 FillHisto2D(Form("EtReconstructed%sChargedHadron",cutName->Data()),simPart->Pt(),simPart->Eta(),myEt);
377 FillHisto2D(Form("EtNReconstructed%sAntiProton",cutName->Data()),simPart->Pt(),simPart->Eta(),myEt);
378 FillHisto2D(Form("EtNReconstructed%sChargedHadron",cutName->Data()),simPart->Pt(),simPart->Eta(),myEt);
bf205f52 379 if(fCentBin>=0){//if a centrality bin was defined
380 FillHisto2D(Form("EtNReconstructed%sAntiProtonCB%i",cutName->Data(),fCentBin),simPart->Pt(),simPart->Eta(),myEt);
381 FillHisto2D(Form("EtNReconstructed%sChargedHadronCB%i",cutName->Data(),fCentBin),simPart->Pt(),simPart->Eta(),myEt);
52503ae7 382 }
cf6522d1 383 FillHisto2D(Form("EtReconstructed%sChargedHadronAssumingPion",cutName->Data()),simPart->Pt(),simPart->Eta(),myEtPi);
384 FillHisto2D(Form("EtReconstructed%sAntiProtonAssumingPion",cutName->Data()),simPart->Pt(),simPart->Eta(),myEtPi);
86d9d0dc 385 FillHisto2D(Form("EtReconstructed%sChargedHadronAssumingKaon",cutName->Data()),simPart->Pt(),simPart->Eta(),myEtK);
386 FillHisto2D(Form("EtReconstructed%sAntiProtonAssumingKaon",cutName->Data()),simPart->Pt(),simPart->Eta(),myEtK);
387 FillHisto2D(Form("EtReconstructed%sChargedHadronAssumingProton",cutName->Data()),simPart->Pt(),simPart->Eta(),myEt);
388 FillHisto2D(Form("EtReconstructed%sAntiProtonAssumingProton",cutName->Data()),simPart->Pt(),simPart->Eta(),myEt);
641e1e0c 389 filled = true;
f43fc416 390 if(fBaryonEnhancement){
391 float enhancement = ProtonBaryonEnhancement(track->Pt());
392 FillHisto2D(Form("EtReconstructed%sAntiProtonEnhanced",cutName->Data()),simPart->Pt(),simPart->Eta(),myEt*enhancement);
393 FillHisto2D(Form("EtNReconstructed%sAntiProtonEnhanced",cutName->Data()),simPart->Pt(),simPart->Eta(),myEt*enhancement);
394 FillHisto2D(Form("EtReconstructed%sAntiProtonAssumingPionEnhanced",cutName->Data()),simPart->Pt(),simPart->Eta(),myEtPi*enhancement);
395 }
641e1e0c 396 }
4b40b2b1 397 if(pdgCode == fgEPlusCode){
641e1e0c 398 float myEt = Et(simPart);
cf6522d1 399 FillHisto2D(Form("EtReconstructed%sEPlus",cutName->Data()),simPart->Pt(),simPart->Eta(),myEt);
400 if(!isElectron || unidentified){
4b40b2b1 401 float myEtPi = Et(simPart,fgPionMass);
cf6522d1 402 FillHisto2D(Form("EtReconstructed%sMisidentifiedElectrons",cutName->Data()),track->Pt(),track->Eta(),myEtPi);
641e1e0c 403 }
404 filled = true;
405 }
4b40b2b1 406 if(pdgCode == fgEMinusCode){
cf6522d1 407 if(!isElectron || unidentified){
4b40b2b1 408 float myEtPi = Et(simPart,fgPionMass);
cf6522d1 409 FillHisto2D(Form("EtReconstructed%sMisidentifiedElectrons",cutName->Data()),track->Pt(),track->Eta(),myEtPi);
641e1e0c 410 }
411 float myEt = Et(simPart);
cf6522d1 412 FillHisto2D(Form("EtReconstructed%sEMinus",cutName->Data()),simPart->Pt(),simPart->Eta(),myEt);
641e1e0c 413 filled = true;
414 }
641e1e0c 415 }
416
417 }
418 else{//not a primary - we're after V0 daughters!
0e866ddc 419 if (TMath::Abs(simPart->Eta()) < fCuts->GetCommonEtaCut()){
420 TParticle *mom = stack->Particle(simPart->GetFirstMother());
421 if(mom){
422 TParticlePDG *pc = mom->GetPDG(0);
423 if(pc){
424 Int_t pdgCode = mom->GetPDG(0)->PdgCode();
425 if(pdgCode == fgLambdaCode){
426 float myEt = Et(simPart);
427 FillHisto2D(Form("EtReconstructed%sLambdaDaughters",cutName->Data()),track->Pt(),track->Eta(),myEt);
0f97be4c 428 Float_t weight = LambdaWeight(mom->Pt());
f43fc416 429 if(fBaryonEnhancement){
430 float enhancement = ProtonBaryonEnhancement(track->Pt());
431 weight = weight*enhancement;
432 }
0f97be4c 433 FillHisto2D(Form("EtReconstructed%sLambdaDaughtersReweighted",cutName->Data()),track->Pt(),track->Eta(),myEt*weight);
0e866ddc 434 }
435 if(pdgCode == fgAntiLambdaCode){
436 float myEt = Et(simPart);
437 FillHisto2D(Form("EtReconstructed%sAntiLambdaDaughters",cutName->Data()),track->Pt(),track->Eta(),myEt);
0f97be4c 438 Float_t weight = AntiLambdaWeight(mom->Pt());
f43fc416 439 if(fBaryonEnhancement){
440 float enhancement = ProtonBaryonEnhancement(track->Pt());
441 weight = weight*enhancement;
442 }
0f97be4c 443 FillHisto2D(Form("EtReconstructed%sAntiLambdaDaughtersReweighted",cutName->Data()),track->Pt(),track->Eta(),myEt*weight);
0e866ddc 444 }
445 if(pdgCode == fgK0SCode){
446 float myEt = Et(simPart);
447 FillHisto2D(Form("EtReconstructed%sK0SDaughters",cutName->Data()),track->Pt(),track->Eta(),myEt);
0f97be4c 448 Float_t weight = K0Weight(mom->Pt());
449 FillHisto2D(Form("EtReconstructed%sK0SDaughtersReweighted",cutName->Data()),track->Pt(),track->Eta(),myEt*weight);
0e866ddc 450 }
451 if(pdgCode == fgXiCode){
452 float myEt = Et(simPart);
453 FillHisto2D(Form("EtReconstructed%sXiDaughters",cutName->Data()),track->Pt(),track->Eta(),myEt);
454 }
455 if(pdgCode == fgAntiXiCode){
456 float myEt = Et(simPart);
457 FillHisto2D(Form("EtReconstructed%sAntiXiDaughters",cutName->Data()),track->Pt(),track->Eta(),myEt);
458 }
459 if(pdgCode == fgOmegaCode){
460 float myEt = Et(simPart);
461 FillHisto2D(Form("EtReconstructed%sOmegaDaughters",cutName->Data()),track->Pt(),track->Eta(),myEt);
462 }
463 if(pdgCode == fgXiCode){
464 float myEt = Et(simPart);
465 FillHisto2D(Form("EtReconstructed%sAntiOmegaDaughters",cutName->Data()),track->Pt(),track->Eta(),myEt);
466 }
641e1e0c 467
0e866ddc 468 if(mom->GetFirstMother()>0){
469 TParticle *grandma = stack->Particle(mom->GetFirstMother());
470 if(grandma){
471 Int_t pdgCodeMom = mom->GetPDG(0)->PdgCode();
472 if(pdgCodeMom==fgPiPlusCode || pdgCodeMom==fgPiMinusCode || pdgCodeMom==fgProtonCode ||pdgCodeMom==fgAntiProtonCode || pdgCodeMom==fgKPlusCode || pdgCode==fgKMinusCode){
0e866ddc 473 Int_t pdgCodeGrandma = grandma->GetPDG(0)->PdgCode();
641e1e0c 474
0e866ddc 475 if(pdgCodeGrandma == fgXiCode){
476 float myEt = Et(simPart);
477 FillHisto2D(Form("EtReconstructed%sXiDaughters",cutName->Data()),track->Pt(),track->Eta(),myEt);
478 }
479 if(pdgCodeGrandma == fgAntiXiCode){
480 float myEt = Et(simPart);
481 FillHisto2D(Form("EtReconstructed%sAntiXiDaughters",cutName->Data()),track->Pt(),track->Eta(),myEt);
482 }
483 if(pdgCodeGrandma == fgOmegaCode){
484 float myEt = Et(simPart);
485 FillHisto2D(Form("EtReconstructed%sOmegaDaughters",cutName->Data()),track->Pt(),track->Eta(),myEt);
486 }
487 if(pdgCodeGrandma == fgXiCode){
488 float myEt = Et(simPart);
489 FillHisto2D(Form("EtReconstructed%sAntiOmegaDaughters",cutName->Data()),track->Pt(),track->Eta(),myEt);
490 }
641e1e0c 491
0e866ddc 492 }
641e1e0c 493 }
494 }
495 }
496 }
497 }
498 }
499 }
500
501 }
502 }
503 delete list;
504 }
464aa50c 505 delete pID;
506 delete strTPC;
507 delete strITS;
508 delete strTPCITS;
641e1e0c 509 //delete AliESDpid;
510 return 1;
511}
512Int_t AliAnalysisHadEtMonteCarlo::AnalyseEvent(AliVEvent* ev)
cf6522d1 513{ // analyse MC event
641e1e0c 514 ResetEventValues();
6a0df78a 515 if(!ev){
0f6416f3 516 AliFatal("ERROR: Event does not exist");
6a0df78a 517 return 0;
518 }
641e1e0c 519
520 // Get us an mc event
521 AliMCEvent *mcEvent = dynamic_cast<AliMCEvent*>(ev);
ec956c46 522 if(!mcEvent){
523 AliFatal("ERROR: MC Event does not exist");
524 return 0;
525 }
641e1e0c 526 // Let's play with the stack!
527 AliStack *stack = mcEvent->Stack();
528
529 Int_t nPrim = stack->GetNtrack();
530
0e866ddc 531 Float_t fSimPiKPEtPtSmeared = 0;
532 Float_t fSimPiKPEtEfficiencySmeared = 0;
533 Float_t fSimPiKPEtPtCutSmearedTPC = 0;
534 Float_t fSimPiKPEtPtCutSmearedITS = 0;
535 Float_t fSimPiKPEtPIDSmeared = 0;
536 Float_t fSimPiKPEtPIDSmearedNoID = 0;
641e1e0c 537 //=================Tracks which may or may not have been reconstructed=================
538
539 for (Int_t iPart = 0; iPart < nPrim; iPart++)
540 {
541
ea331c5d 542 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 543
544 if (!part)
545 {
546 Printf("ERROR: Could not get particle %d", iPart);
547 continue;
548 }
549
964c8159 550 //TParticlePDG *pc = part->GetPDG(0);
641e1e0c 551
552 // Check if it is a primary particle
f427cbed 553 if (stack->IsPhysicalPrimary(iPart)){//primaries
641e1e0c 554
4998becf 555 if (TMath::Abs(part->Eta()) < fCuts->GetCommonEtaCut()) {
641e1e0c 556
557 Int_t pdgCode = part->GetPDG(0)->PdgCode();
641e1e0c 558 bool filled = false;
0e866ddc 559 //Investigating smearing...
560 //Numbers are realistic correction factors from previous studies
7d2d1773 561 if(fInvestigateSmearing){
562 if(pdgCode==fgPiPlusCode ||pdgCode==fgPiMinusCode ||pdgCode==fgKPlusCode ||pdgCode==fgKMinusCode ||pdgCode==fgProtonCode ||pdgCode==fgAntiProtonCode){
563 //To investigate Smearing...
564 Float_t myet = Et(part);
565 fSimPiKPEt += myet;
566 Float_t theta = part->Theta();
567 Short_t charge = 1;
568 Float_t momentum = part->P();
569 //pt smearing
570 Float_t pSmeared = momentum * fPtSmearer->Gaus(1,0.005);//Gaussian centered around 1
571 fSimPiKPEtPtSmeared += Et(pSmeared,theta,pdgCode,charge);
572 //Efficiency smearing
573 float efficiency = 2.26545*TMath::Exp(-TMath::Power(9.99977e-01/part->Pt(),7.85488e-02));//simple rough efficiency from fitting curve
574 if(fPtSmearer->Binomial(1,efficiency) ==1){
575 fSimPiKPEtEfficiencySmeared += (1.0/efficiency)*myet;
576 }
577 //pT cut smeared
578 if(part->Pt()>0.10){fSimPiKPEtPtCutSmearedITS +=1.00645645*myet;}
579 if(part->Pt()>0.15){fSimPiKPEtPtCutSmearedTPC +=1.02000723*myet;}
580 //PID smearing
581 fSimPiKPEtPIDSmearedNoID += 1.02679314*Et(momentum,theta,fgPiPlusCode,charge);
582 if(part->P()<1.0){//then the particle would have been ID'd
583 fSimPiKPEtPIDSmeared += 1.0085942*myet;
584 }
585 else{//Then it would have been assumed to be a pion
586 fSimPiKPEtPIDSmeared += 1.0085942*Et(momentum,theta,fgPiPlusCode,charge);
587 }
0e866ddc 588 }
589 }
590
641e1e0c 591 //============Charged hadrons===================================
4b40b2b1 592 if(pdgCode == fgPiPlusCode){
641e1e0c 593 float myEt = Et(part);
86d9d0dc 594 float myEtP = Et(part,fgProtonMass);
595 float myEtK = Et(part,fgKaonMass);
0e866ddc 596
d6214a64 597 fSimHadEt += myEt;
598 fSimTotEt += myEt;
0e866ddc 599
641e1e0c 600 FillHisto2D("EtSimulatedPiPlus",part->Pt(),part->Eta(),myEt);
601 FillHisto2D("EtNSimulatedPiPlus",part->Pt(),part->Eta(),1.0);
602 FillHisto2D("EtSimulatedChargedHadron",part->Pt(),part->Eta(),myEt);
603 FillHisto2D("EtNSimulatedChargedHadron",part->Pt(),part->Eta(),1.0);
bf205f52 604 if(fCentBin>=0){//if a centrality bin was defined
605 FillHisto2D(Form("EtNSimulatedPiPlusCB%i",fCentBin),part->Pt(),part->Eta(),1.0);
606 FillHisto2D(Form("EtNSimulatedChargedHadronCB%i",fCentBin),part->Pt(),part->Eta(),1.0);
52503ae7 607 }
641e1e0c 608 FillHisto2D("EtSimulatedChargedHadronAssumingPion",part->Pt(),part->Eta(),myEt);
86d9d0dc 609 FillHisto2D("EtSimulatedChargedHadronAssumingProton",part->Pt(),part->Eta(),myEtP);
610 FillHisto2D("EtSimulatedPiPlusAssumingProton",part->Pt(),part->Eta(),myEtP);
611 FillHisto2D("EtSimulatedChargedHadronAssumingKaon",part->Pt(),part->Eta(),myEtK);
612 FillHisto2D("EtSimulatedPiPlusAssumingKaon",part->Pt(),part->Eta(),myEtK);
641e1e0c 613 FillHisto2D("EtSimulatedAllHadron",part->Pt(),part->Eta(),myEt);
0e866ddc 614 Short_t charge = 1;
615 Float_t myEtLow = Et(0.0,part->Theta(),pdgCode,charge);
616 Float_t myEtITS = Et(0.10/TMath::Sin(part->Theta()),part->Theta(),pdgCode,charge);
617 Float_t myEtTPC = Et(0.15/TMath::Sin(part->Theta()),part->Theta(),pdgCode,charge);
618 FillHisto2D("EtSimulatedChargedHadronAssumingNoPt",part->Pt(),part->Eta(),myEtLow);
619 FillHisto2D("EtSimulatedChargedHadronAssumingPtTPCCut",part->Pt(),part->Eta(),myEtTPC);
620 FillHisto2D("EtSimulatedChargedHadronAssumingPtITSCut",part->Pt(),part->Eta(),myEtITS);
641e1e0c 621 filled = true;
622 }
4b40b2b1 623 if(pdgCode == fgPiMinusCode){
641e1e0c 624 float myEt = Et(part);
86d9d0dc 625 float myEtP = Et(part,fgProtonMass);
626 float myEtK = Et(part,fgKaonMass);
d6214a64 627 fSimHadEt += myEt;
628 fSimTotEt += myEt;
641e1e0c 629 FillHisto2D("EtSimulatedPiMinus",part->Pt(),part->Eta(),myEt);
630 FillHisto2D("EtNSimulatedPiMinus",part->Pt(),part->Eta(),1.0);
631 FillHisto2D("EtSimulatedChargedHadron",part->Pt(),part->Eta(),myEt);
632 FillHisto2D("EtNSimulatedChargedHadron",part->Pt(),part->Eta(),1.0);
bf205f52 633 if(fCentBin>=0){//if a centrality bin was defined
634 FillHisto2D(Form("EtNSimulatedPiMinusCB%i",fCentBin),part->Pt(),part->Eta(),1.0);
635 FillHisto2D(Form("EtNSimulatedChargedHadronCB%i",fCentBin),part->Pt(),part->Eta(),1.0);
52503ae7 636 }
641e1e0c 637 FillHisto2D("EtSimulatedChargedHadronAssumingPion",part->Pt(),part->Eta(),myEt);
86d9d0dc 638 FillHisto2D("EtSimulatedChargedHadronAssumingProton",part->Pt(),part->Eta(),myEtP);
639 FillHisto2D("EtSimulatedPiMinusAssumingProton",part->Pt(),part->Eta(),myEtP);
640 FillHisto2D("EtSimulatedChargedHadronAssumingKaon",part->Pt(),part->Eta(),myEtK);
641 FillHisto2D("EtSimulatedPiMinusAssumingKaon",part->Pt(),part->Eta(),myEtK);
641e1e0c 642 FillHisto2D("EtSimulatedAllHadron",part->Pt(),part->Eta(),myEt);
0e866ddc 643 Short_t charge = -1;
644 Float_t myEtLow = Et(0.0,part->Theta(),pdgCode,charge);
645 Float_t myEtITS = Et(0.10/TMath::Sin(part->Theta()),part->Theta(),pdgCode,charge);
646 Float_t myEtTPC = Et(0.15/TMath::Sin(part->Theta()),part->Theta(),pdgCode,charge);
647 FillHisto2D("EtSimulatedChargedHadronAssumingNoPt",part->Pt(),part->Eta(),myEtLow);
648 FillHisto2D("EtSimulatedChargedHadronAssumingPtTPCCut",part->Pt(),part->Eta(),myEtTPC);
649 FillHisto2D("EtSimulatedChargedHadronAssumingPtITSCut",part->Pt(),part->Eta(),myEtITS);
641e1e0c 650 filled = true;
651 }
4b40b2b1 652 if(pdgCode == fgKPlusCode){
641e1e0c 653 float myEt = Et(part);
4b40b2b1 654 float myEtPi = Et(part,fgPionMass);
86d9d0dc 655 float myEtP = Et(part,fgProtonMass);
d6214a64 656 fSimHadEt += myEt;
657 fSimTotEt += myEt;
641e1e0c 658 FillHisto2D("EtSimulatedKPlus",part->Pt(),part->Eta(),myEt);
659 FillHisto2D("EtNSimulatedKPlus",part->Pt(),part->Eta(),1.0);
660 FillHisto2D("EtSimulatedChargedHadron",part->Pt(),part->Eta(),myEt);
661 FillHisto2D("EtNSimulatedChargedHadron",part->Pt(),part->Eta(),1.0);
bf205f52 662 if(fCentBin>=0){//if a centrality bin was defined
663 FillHisto2D(Form("EtNSimulatedKPlusCB%i",fCentBin),part->Pt(),part->Eta(),1.0);
664 FillHisto2D(Form("EtNSimulatedChargedHadronCB%i",fCentBin),part->Pt(),part->Eta(),1.0);
52503ae7 665 }
641e1e0c 666 FillHisto2D("EtSimulatedChargedHadronAssumingPion",part->Pt(),part->Eta(),myEtPi);
667 FillHisto2D("EtSimulatedKPlusAssumingPion",part->Pt(),part->Eta(),myEtPi);
86d9d0dc 668 FillHisto2D("EtSimulatedChargedHadronAssumingProton",part->Pt(),part->Eta(),myEtP);
669 FillHisto2D("EtSimulatedKPlusAssumingProton",part->Pt(),part->Eta(),myEtP);
641e1e0c 670 FillHisto2D("EtSimulatedAllHadron",part->Pt(),part->Eta(),myEt);
0e866ddc 671 Short_t charge = 1;
672 Float_t myEtLow = Et(0.0,part->Theta(),pdgCode,charge);
673 Float_t myEtITS = Et(0.10/TMath::Sin(part->Theta()),part->Theta(),pdgCode,charge);
674 Float_t myEtTPC = Et(0.15/TMath::Sin(part->Theta()),part->Theta(),pdgCode,charge);
675 FillHisto2D("EtSimulatedChargedHadronAssumingNoPt",part->Pt(),part->Eta(),myEtLow);
676 FillHisto2D("EtSimulatedChargedHadronAssumingPtTPCCut",part->Pt(),part->Eta(),myEtTPC);
677 FillHisto2D("EtSimulatedChargedHadronAssumingPtITSCut",part->Pt(),part->Eta(),myEtITS);
641e1e0c 678 filled = true;
679 }
4b40b2b1 680 if(pdgCode == fgKMinusCode){
641e1e0c 681 float myEt = Et(part);
4b40b2b1 682 float myEtPi = Et(part,fgPionMass);
86d9d0dc 683 float myEtP = Et(part,fgProtonMass);
d6214a64 684 fSimHadEt += myEt;
685 fSimTotEt += myEt;
641e1e0c 686 FillHisto2D("EtSimulatedKMinus",part->Pt(),part->Eta(),myEt);
687 FillHisto2D("EtNSimulatedKMinus",part->Pt(),part->Eta(),1.0);
688 FillHisto2D("EtSimulatedChargedHadron",part->Pt(),part->Eta(),myEt);
689 FillHisto2D("EtNSimulatedChargedHadron",part->Pt(),part->Eta(),1.0);
bf205f52 690 if(fCentBin>=0){//if a centrality bin was defined
691 FillHisto2D(Form("EtNSimulatedKMinusCB%i",fCentBin),part->Pt(),part->Eta(),1.0);
692 FillHisto2D(Form("EtNSimulatedChargedHadronCB%i",fCentBin),part->Pt(),part->Eta(),1.0);
52503ae7 693 }
641e1e0c 694 FillHisto2D("EtSimulatedChargedHadronAssumingPion",part->Pt(),part->Eta(),myEtPi);
695 FillHisto2D("EtSimulatedKMinusAssumingPion",part->Pt(),part->Eta(),myEtPi);
86d9d0dc 696 FillHisto2D("EtSimulatedChargedHadronAssumingProton",part->Pt(),part->Eta(),myEtP);
697 FillHisto2D("EtSimulatedKMinusAssumingProton",part->Pt(),part->Eta(),myEtP);
641e1e0c 698 FillHisto2D("EtSimulatedAllHadron",part->Pt(),part->Eta(),myEt);
0e866ddc 699 Short_t charge = -1;
700 Float_t myEtLow = Et(0.0,part->Theta(),pdgCode,charge);
701 Float_t myEtITS = Et(0.10/TMath::Sin(part->Theta()),part->Theta(),pdgCode,charge);
702 Float_t myEtTPC = Et(0.15/TMath::Sin(part->Theta()),part->Theta(),pdgCode,charge);
703 FillHisto2D("EtSimulatedChargedHadronAssumingNoPt",part->Pt(),part->Eta(),myEtLow);
704 FillHisto2D("EtSimulatedChargedHadronAssumingPtTPCCut",part->Pt(),part->Eta(),myEtTPC);
705 FillHisto2D("EtSimulatedChargedHadronAssumingPtITSCut",part->Pt(),part->Eta(),myEtITS);
641e1e0c 706 filled = true;
707 }
4b40b2b1 708 if(pdgCode == fgProtonCode){
641e1e0c 709 float myEt = Et(part);
4b40b2b1 710 float myEtPi = Et(part,fgPionMass);
86d9d0dc 711 float myEtK = Et(part,fgKaonMass);
d6214a64 712 fSimHadEt += myEt;
713 fSimTotEt += myEt;
641e1e0c 714 FillHisto2D("EtSimulatedProton",part->Pt(),part->Eta(),myEt);
715 FillHisto2D("EtNSimulatedProton",part->Pt(),part->Eta(),1.0);
716 FillHisto2D("EtSimulatedChargedHadron",part->Pt(),part->Eta(),myEt);
717 FillHisto2D("EtNSimulatedChargedHadron",part->Pt(),part->Eta(),1.0);
bf205f52 718 if(fCentBin>=0){//if a centrality bin was defined
719 FillHisto2D(Form("EtNSimulatedProtonCB%i",fCentBin),part->Pt(),part->Eta(),1.0);
720 FillHisto2D(Form("EtNSimulatedChargedHadronCB%i",fCentBin),part->Pt(),part->Eta(),1.0);
52503ae7 721 }
641e1e0c 722 FillHisto2D("EtSimulatedChargedHadronAssumingPion",part->Pt(),part->Eta(),myEtPi);
723 FillHisto2D("EtSimulatedProtonAssumingPion",part->Pt(),part->Eta(),myEtPi);
86d9d0dc 724 FillHisto2D("EtSimulatedChargedHadronAssumingKaon",part->Pt(),part->Eta(),myEtK);
725 FillHisto2D("EtSimulatedProtonAssumingKaon",part->Pt(),part->Eta(),myEtK);
641e1e0c 726 FillHisto2D("EtSimulatedAllHadron",part->Pt(),part->Eta(),myEt);
0e866ddc 727 Short_t charge = 1;
728 Float_t myEtLow = Et(0.0,part->Theta(),pdgCode,charge);
729 Float_t myEtITS = Et(0.10/TMath::Sin(part->Theta()),part->Theta(),pdgCode,charge);
730 Float_t myEtTPC = Et(0.15/TMath::Sin(part->Theta()),part->Theta(),pdgCode,charge);
731 FillHisto2D("EtSimulatedChargedHadronAssumingNoPt",part->Pt(),part->Eta(),myEtLow);
732 FillHisto2D("EtSimulatedChargedHadronAssumingPtTPCCut",part->Pt(),part->Eta(),myEtTPC);
733 FillHisto2D("EtSimulatedChargedHadronAssumingPtITSCut",part->Pt(),part->Eta(),myEtITS);
641e1e0c 734 filled = true;
f43fc416 735 if(fBaryonEnhancement){
736 float enhancement = ProtonBaryonEnhancement(part->Pt());
737 FillHisto2D("EtSimulatedProtonEnhanced",part->Pt(),part->Eta(),myEt*enhancement);
738 FillHisto2D("EtNSimulatedProtonEnhanced",part->Pt(),part->Eta(),1.0*enhancement);
739 FillHisto2D("EtSimulatedProtonAssumingPionEnhanced",part->Pt(),part->Eta(),myEtPi*enhancement);
740 }
641e1e0c 741 }
4b40b2b1 742 if(pdgCode == fgAntiProtonCode){
641e1e0c 743 float myEt = Et(part);
4b40b2b1 744 float myEtPi = Et(part,fgPionMass);
86d9d0dc 745 float myEtK = Et(part,fgKaonMass);
d6214a64 746 fSimHadEt += myEt;
747 fSimTotEt += myEt;
641e1e0c 748 FillHisto2D("EtSimulatedAntiProton",part->Pt(),part->Eta(),myEt);
749 FillHisto2D("EtNSimulatedAntiProton",part->Pt(),part->Eta(),1.0);
750 FillHisto2D("EtSimulatedChargedHadron",part->Pt(),part->Eta(),myEt);
751 FillHisto2D("EtNSimulatedChargedHadron",part->Pt(),part->Eta(),1.0);
bf205f52 752 if(fCentBin>=0){//if a centrality bin was defined
753 FillHisto2D(Form("EtNSimulatedAntiProtonCB%i",fCentBin),part->Pt(),part->Eta(),1.0);
754 FillHisto2D(Form("EtNSimulatedChargedHadronCB%i",fCentBin),part->Pt(),part->Eta(),1.0);
52503ae7 755 }
641e1e0c 756 FillHisto2D("EtSimulatedChargedHadronAssumingPion",part->Pt(),part->Eta(),myEtPi);
757 FillHisto2D("EtSimulatedAntiProtonAssumingPion",part->Pt(),part->Eta(),myEtPi);
86d9d0dc 758 FillHisto2D("EtSimulatedChargedHadronAssumingKaon",part->Pt(),part->Eta(),myEtK);
759 FillHisto2D("EtSimulatedAntiProtonAssumingKaon",part->Pt(),part->Eta(),myEtK);
641e1e0c 760 FillHisto2D("EtSimulatedAllHadron",part->Pt(),part->Eta(),myEt);
0e866ddc 761 Short_t charge = -1;
762 Float_t myEtLow = Et(0.0,part->Theta(),pdgCode,charge);
763 Float_t myEtITS = Et(0.10/TMath::Sin(part->Theta()),part->Theta(),pdgCode,charge);
764 Float_t myEtTPC = Et(0.15/TMath::Sin(part->Theta()),part->Theta(),pdgCode,charge);
765 FillHisto2D("EtSimulatedChargedHadronAssumingNoPt",part->Pt(),part->Eta(),myEtLow);
766 FillHisto2D("EtSimulatedChargedHadronAssumingPtTPCCut",part->Pt(),part->Eta(),myEtTPC);
767 FillHisto2D("EtSimulatedChargedHadronAssumingPtITSCut",part->Pt(),part->Eta(),myEtITS);
641e1e0c 768 filled = true;
f43fc416 769 if(fBaryonEnhancement){
770 float enhancement = ProtonBaryonEnhancement(part->Pt());
771 FillHisto2D("EtSimulatedAntiProtonEnhanced",part->Pt(),part->Eta(),myEt*enhancement);
772 FillHisto2D("EtNSimulatedAntiProtonEnhanced",part->Pt(),part->Eta(),1.0*enhancement);
773 FillHisto2D("EtSimulatedAntiProtonAssumingPionEnhanced",part->Pt(),part->Eta(),myEtPi*enhancement);
774 }
641e1e0c 775 }
776 //============Other hadrons===================================
777
4b40b2b1 778 if(pdgCode == fgNeutronCode){
641e1e0c 779 float myEt = Et(part);
d6214a64 780 fSimHadEt += myEt;
781 fSimTotEt += myEt;
641e1e0c 782 FillHisto2D("EtSimulatedNeutron",part->Pt(),part->Eta(),myEt);
783 FillHisto2D("EtSimulatedAllHadron",part->Pt(),part->Eta(),myEt);
784 filled = true;
785 }
4b40b2b1 786 if(pdgCode == fgAntiNeutronCode){
641e1e0c 787 float myEt = Et(part);
d6214a64 788 fSimHadEt += myEt;
789 fSimTotEt += myEt;
641e1e0c 790 FillHisto2D("EtSimulatedAntiNeutron",part->Pt(),part->Eta(),myEt);
791 FillHisto2D("EtSimulatedAllHadron",part->Pt(),part->Eta(),myEt);
792 filled = true;
793 }
4b40b2b1 794 if(pdgCode == fgLambdaCode){
641e1e0c 795 float myEt = Et(part);
d6214a64 796 fSimHadEt += myEt;
797 fSimTotEt += myEt;
641e1e0c 798 //cout<<"I am a simulated lambda! pt "<<part->Pt()<<" eta "<<part->Eta()<<endl;
799 FillHisto2D("EtSimulatedLambda",part->Pt(),part->Eta(),myEt);
800 FillHisto2D("EtSimulatedAllHadron",part->Pt(),part->Eta(),myEt);
964c8159 801 Float_t weight = LambdaWeight(part->Pt());
f43fc416 802 if(fBaryonEnhancement){
803 float enhancement = ProtonBaryonEnhancement(part->Pt());
804 weight = weight*enhancement;
805 }
964c8159 806 FillHisto2D("EtSimulatedLambdaReweighted",part->Pt(),part->Eta(),myEt*weight);
641e1e0c 807 Int_t ndaughters = part->GetNDaughters();
808 for(Int_t idaughter = 0;idaughter<ndaughters;idaughter++){
809 Int_t daughterindex = part->GetDaughter(idaughter);
810 if(daughterindex<0 || daughterindex>1e5) continue;
811 TParticle *daughter = stack->ParticleFromTreeK(daughterindex);
812 if(daughter){
813 if(daughter->GetPDG(0)){
814 Int_t daughtercode = daughter->GetPDG(0)->PdgCode();
4b40b2b1 815 if(daughtercode==fgPiMinusCode || daughtercode==fgProtonCode){
641e1e0c 816 myEt = Et(daughter);
817 FillHisto2D("EtSimulatedLambdaDaughters",daughter->Pt(),daughter->Eta(),myEt);
964c8159 818 FillHisto2D("EtSimulatedLambdaDaughtersReweighted",daughter->Pt(),daughter->Eta(),myEt*weight);
641e1e0c 819 //cout<<"Lambda daughter is a "<<daughter->GetName()<<endl;
820 }
821 }
822 else{
823 //cout<<"Lambda daughter is a "<<daughter->GetName()<<endl;
824 }
825 }
826 }
827 filled = true;
828 }
4b40b2b1 829 if(pdgCode == fgAntiLambdaCode){
641e1e0c 830 float myEt = Et(part);
d6214a64 831 fSimHadEt += myEt;
832 fSimTotEt += myEt;
641e1e0c 833 FillHisto2D("EtSimulatedAntiLambda",part->Pt(),part->Eta(),myEt);
834 FillHisto2D("EtSimulatedAllHadron",part->Pt(),part->Eta(),myEt);
964c8159 835 Float_t weight = AntiLambdaWeight(part->Pt());
f43fc416 836 if(fBaryonEnhancement){
837 float enhancement = ProtonBaryonEnhancement(part->Pt());
838 weight = weight*enhancement;
839 }
964c8159 840 FillHisto2D("EtSimulatedAntiLambdaReweighted",part->Pt(),part->Eta(),myEt*weight);
641e1e0c 841 Int_t ndaughters = part->GetNDaughters();
842 for(Int_t idaughter = 0;idaughter<ndaughters;idaughter++){
843 Int_t daughterindex = part->GetDaughter(idaughter);
844 if(daughterindex<0 || daughterindex>1e5) continue;
845 TParticle *daughter = stack->ParticleFromTreeK(daughterindex);
846 if(daughter){
847 if(daughter->GetPDG(0)){
848 Int_t daughtercode = daughter->GetPDG(0)->PdgCode();
4b40b2b1 849 if(daughtercode==fgPiPlusCode || daughtercode==fgAntiProtonCode){
641e1e0c 850 myEt = Et(daughter);
851 FillHisto2D("EtSimulatedAntiLambdaDaughters",daughter->Pt(),daughter->Eta(),myEt);
964c8159 852 FillHisto2D("EtSimulatedAntiLambdaDaughtersReweighted",daughter->Pt(),daughter->Eta(),myEt*weight);
641e1e0c 853 //cout<<"AntiLambda daughter is a "<<daughter->GetName()<<endl;
854 }
855 }
856 else{
857 //cout<<"AntiLambda daughter is a "<<daughter->GetName()<<endl;
858 }
859 }
860 }
861 filled = true;
862 }
4b40b2b1 863 if(pdgCode == fgK0SCode){
641e1e0c 864 float myEt = Et(part);
d6214a64 865 fSimHadEt += myEt;
866 fSimTotEt += myEt;
641e1e0c 867 FillHisto2D("EtSimulatedK0S",part->Pt(),part->Eta(),myEt);
868 FillHisto2D("EtSimulatedAllHadron",part->Pt(),part->Eta(),myEt);
964c8159 869 Float_t weight = K0Weight(part->Pt());
870 FillHisto2D("EtSimulatedK0SReweighted",part->Pt(),part->Eta(),myEt*weight);
641e1e0c 871 Int_t ndaughters = part->GetNDaughters();
872 for(Int_t idaughter = 0;idaughter<ndaughters;idaughter++){
873 Int_t daughterindex = part->GetDaughter(idaughter);
874 if(daughterindex<0 || daughterindex>1e5) continue;
875 TParticle *daughter = stack->ParticleFromTreeK(daughterindex);
876 if(daughter){
877 if(daughter->GetPDG(0)){
878
879 Int_t daughtercode = daughter->GetPDG(0)->PdgCode();
4b40b2b1 880 if(daughtercode==fgPiMinusCode || daughtercode==fgPiPlusCode){
641e1e0c 881 myEt = Et(daughter);
882 FillHisto2D("EtSimulatedK0SDaughters",daughter->Pt(),daughter->Eta(),myEt);
964c8159 883 FillHisto2D("EtSimulatedK0SDaughtersReweighted",daughter->Pt(),daughter->Eta(),myEt*weight);
641e1e0c 884 //cout<<"K0S daughter is a "<<daughter->GetName()<<endl;
885 }
886 }
887 else{
888 //cout<<"K0S daughter is a "<<daughter->GetName()<<endl;
889 }
890 }
891 }
892 filled = true;
893 }
4b40b2b1 894 if(pdgCode == fgK0LCode){
641e1e0c 895 float myEt = Et(part);
d6214a64 896 fSimHadEt += myEt;
897 fSimTotEt += myEt;
641e1e0c 898 FillHisto2D("EtSimulatedK0L",part->Pt(),part->Eta(),myEt);
899 FillHisto2D("EtSimulatedAllHadron",part->Pt(),part->Eta(),myEt);
964c8159 900 Float_t weight = K0Weight(part->Pt());
901 FillHisto2D("EtSimulatedK0LReweighted",part->Pt(),part->Eta(),myEt*weight);
641e1e0c 902 filled = true;
903 }
4b40b2b1 904 if(pdgCode == fgOmegaCode){
641e1e0c 905 float myEt = Et(part);
d6214a64 906 fSimHadEt += myEt;
907 fSimTotEt += myEt;
641e1e0c 908 FillHisto2D("EtSimulatedOmega",part->Pt(),part->Eta(),myEt);
909 FillHisto2D("EtSimulatedAllHadron",part->Pt(),part->Eta(),myEt);
910 Int_t ndaughters = part->GetNDaughters();
911 for(Int_t idaughter = 0;idaughter<ndaughters;idaughter++){
912 Int_t daughterindex = part->GetDaughter(idaughter);
913 if(daughterindex<0 || daughterindex>1e5) continue;
914 TParticle *daughter = stack->Particle(daughterindex);
915 if(daughter){
916 if(daughter->GetPDG(0)){
917
918 Int_t daughtercode = daughter->GetPDG(0)->PdgCode();
4b40b2b1 919 if(daughtercode==fgPiPlusCode || daughtercode==fgProtonCode || daughtercode==fgKMinusCode){
641e1e0c 920 myEt = Et(daughter);
921 FillHisto2D("EtSimulatedOmegaDaughters",daughter->Pt(),daughter->Eta(),myEt);
922 //cout<<"Omega daughter is a "<<daughter->GetName()<<endl;
923 }
924 }
925 else{
926 //cout<<"Omega daughter is a "<<daughter->GetName()<<endl;
927 }
928 }
929 }
930 filled = true;
931 }
4b40b2b1 932 if(pdgCode == fgAntiOmegaCode){
641e1e0c 933 float myEt = Et(part);
d6214a64 934 fSimHadEt += myEt;
935 fSimTotEt += myEt;
641e1e0c 936 FillHisto2D("EtSimulatedOmega",part->Pt(),part->Eta(),myEt);
937 FillHisto2D("EtSimulatedAllHadron",part->Pt(),part->Eta(),myEt);
938 Int_t ndaughters = part->GetNDaughters();
939 for(Int_t idaughter = 0;idaughter<ndaughters;idaughter++){
940 Int_t daughterindex = part->GetDaughter(idaughter);
941 if(daughterindex<0 || daughterindex>1e5) continue;
942 TParticle *daughter = stack->ParticleFromTreeK(daughterindex);
943 if(daughter){
944 if(daughter->GetPDG(0)){
945 Int_t daughtercode = daughter->GetPDG(0)->PdgCode();
4b40b2b1 946 if(daughtercode==fgPiMinusCode || daughtercode==fgAntiProtonCode || daughtercode==fgKPlusCode){
641e1e0c 947 myEt = Et(daughter);
948 FillHisto2D("EtSimulatedAntiOmegaDaughters",daughter->Pt(),daughter->Eta(),myEt);
949 //cout<<"AntiOmega daughter is a "<<daughter->GetName()<<endl;
950 }
951 }
952 else{
953 //cout<<"AntiOmega daughter is a "<<daughter->GetName()<<endl;
954 }
955 }
956 }
957 filled = true;
958 }
959 //There are two codes for Sigmas
4b40b2b1 960 if(pdgCode == fgSigmaCode || pdgCode == -3222){
641e1e0c 961 float myEt = Et(part);
d6214a64 962 fSimHadEt += myEt;
963 fSimTotEt += myEt;
641e1e0c 964 FillHisto2D("EtSimulatedSigma",part->Pt(),part->Eta(),myEt);
965 FillHisto2D("EtSimulatedAllHadron",part->Pt(),part->Eta(),myEt);
966 filled = true;
967 }
4b40b2b1 968 if(pdgCode == fgAntiSigmaCode || pdgCode == 3222){
641e1e0c 969 float myEt = Et(part);
d6214a64 970 fSimHadEt += myEt;
971 fSimTotEt += myEt;
641e1e0c 972 FillHisto2D("EtSimulatedAntiSigma",part->Pt(),part->Eta(),myEt);
973 FillHisto2D("EtSimulatedAllHadron",part->Pt(),part->Eta(),myEt);
974 filled = true;
975 }
4b40b2b1 976 if(pdgCode == fgXiCode){
641e1e0c 977 float myEt = Et(part);
d6214a64 978 fSimHadEt += myEt;
979 fSimTotEt += myEt;
641e1e0c 980 FillHisto2D("EtSimulatedXi",part->Pt(),part->Eta(),myEt);
981 FillHisto2D("EtSimulatedAllHadron",part->Pt(),part->Eta(),myEt);
982 Int_t ndaughters = part->GetNDaughters();
983 for(Int_t idaughter = 0;idaughter<ndaughters;idaughter++){
984 Int_t daughterindex = part->GetDaughter(idaughter);
985 if(daughterindex<0 || daughterindex>1e5 || daughterindex>1e5) continue;
986 //cerr<<"Daughter index "<<daughterindex<<" npart "<<nPrim<<endl;
987 TParticle *daughter = stack->ParticleFromTreeK(daughterindex);
988 if(daughter){
989 if(daughter->GetPDG(0)){
990
991 Int_t daughtercode = daughter->GetPDG(0)->PdgCode();
4b40b2b1 992 if(daughtercode==fgPiPlusCode || daughtercode==fgProtonCode || daughtercode==fgPiMinusCode){
641e1e0c 993 myEt = Et(daughter);
994 FillHisto2D("EtSimulatedXiDaughters",daughter->Pt(),daughter->Eta(),myEt);
995 //cout<<"Xi daughter is a "<<daughter->GetName()<<endl;
996 }
997 }
998 else{
999 //cout<<"Xi daughter is a "<<daughter->GetName()<<endl;
1000 }
1001 }
1002 }
1003 filled = true;
1004 }
4b40b2b1 1005 if(pdgCode == fgAntiXiCode){
641e1e0c 1006 float myEt = Et(part);
d6214a64 1007 fSimHadEt += myEt;
1008 fSimTotEt += myEt;
641e1e0c 1009 FillHisto2D("EtSimulatedAntiXi",part->Pt(),part->Eta(),myEt);
1010 FillHisto2D("EtSimulatedAllHadron",part->Pt(),part->Eta(),myEt);
1011 Int_t ndaughters = part->GetNDaughters();
1012 for(Int_t idaughter = 0;idaughter<ndaughters;idaughter++){
1013 Int_t daughterindex = part->GetDaughter(idaughter);
1014 if(daughterindex<0 || daughterindex>1e5) continue;
1015 TParticle *daughter = stack->ParticleFromTreeK(daughterindex);
1016 if(daughter){
1017 if(daughter->GetPDG(0)){
1018 Int_t daughtercode = daughter->GetPDG(0)->PdgCode();
4b40b2b1 1019 if(daughtercode==fgPiPlusCode || daughtercode==fgAntiProtonCode || daughtercode==fgPiMinusCode){
641e1e0c 1020 myEt = Et(daughter);
1021 FillHisto2D("EtSimulatedAntiXiDaughters",daughter->Pt(),daughter->Eta(),myEt);
1022 //cout<<"AntiXi daughter is a "<<daughter->GetName()<<endl;
1023 }
1024 }
1025 else{
1026 //cout<<"AntiXi daughter is a "<<daughter->GetName()<<endl;
1027 }
1028 }
1029 }
1030 filled = true;
1031 }
4b40b2b1 1032 if(pdgCode == fgXi0Code){
641e1e0c 1033 float myEt = Et(part);
d6214a64 1034 fSimHadEt += myEt;
1035 fSimTotEt += myEt;
641e1e0c 1036 FillHisto2D("EtSimulatedXi0",part->Pt(),part->Eta(),myEt);
1037 FillHisto2D("EtSimulatedAllHadron",part->Pt(),part->Eta(),myEt);
1038 filled = true;
1039 }
4b40b2b1 1040 if(pdgCode == fgAntiXi0Code){
641e1e0c 1041 float myEt = Et(part);
d6214a64 1042 fSimHadEt += myEt;
1043 fSimTotEt += myEt;
641e1e0c 1044 FillHisto2D("EtSimulatedAntiXi0",part->Pt(),part->Eta(),myEt);
1045 FillHisto2D("EtSimulatedAllHadron",part->Pt(),part->Eta(),myEt);
1046 filled = true;
1047 }
1048 //============electrons===================================
1049
4b40b2b1 1050 if(pdgCode == fgEPlusCode){
641e1e0c 1051 float myEt = Et(part);
d6214a64 1052 fSimTotEt += myEt;
641e1e0c 1053 FillHisto2D("EtSimulatedEPlus",part->Pt(),part->Eta(),myEt);
1054 filled = true;
1055 }
4b40b2b1 1056 if(pdgCode == fgEMinusCode){
641e1e0c 1057 float myEt = Et(part);
d6214a64 1058 fSimTotEt += myEt;
641e1e0c 1059 FillHisto2D("EtSimulatedEMinus",part->Pt(),part->Eta(),myEt);
1060 filled = true;
1061 }
f427cbed 1062 //============neutrals===================================
4b40b2b1 1063 if(pdgCode == fgGammaCode){
b64de20c 1064 TParticle *mom = stack->Particle(part->GetFirstMother());
1065 Int_t pdgCodeMom = mom->GetPDG(0)->PdgCode();
1066 //cout<<"I am a gamma and my mom is "<<mom->GetName()<<endl;
4e0c0fe1 1067 //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 1068 if(pdgCodeMom == fgEtaCode){
4e0c0fe1 1069 float myEt = Et(part);
1070 fSimTotEt += myEt;
b64de20c 1071 FillHisto2D("EtSimulatedEta",mom->Pt(),mom->Eta(),myEt);
1072 filled = true;
1073 }
4b40b2b1 1074 if(pdgCodeMom == fgPi0Code){
4e0c0fe1 1075 float myEt = Et(part);
1076 fSimTotEt += myEt;
b64de20c 1077 FillHisto2D("EtSimulatedPi0",mom->Pt(),mom->Eta(),myEt);
1078 filled = true;
1079 }
4b40b2b1 1080 if(pdgCodeMom == fgOmega0Code){
4e0c0fe1 1081 float myEt = Et(part);
1082 fSimTotEt += myEt;
b64de20c 1083 FillHisto2D("EtSimulatedOmega0",mom->Pt(),mom->Eta(),myEt);
1084 filled = true;
1085 }
1086 if(!filled){
1087 float myEt = Et(part);
4e0c0fe1 1088 fSimTotEt += myEt;
b64de20c 1089 FillHisto2D("EtSimulatedGamma",part->Pt(),part->Eta(),myEt);
1090 filled = true;
1091 }
f427cbed 1092 }
4b40b2b1 1093 if(pdgCode == fgEtaCode){
f427cbed 1094 float myEt = Et(part);
d6214a64 1095 fSimTotEt += myEt;
f427cbed 1096 FillHisto2D("EtSimulatedEta",part->Pt(),part->Eta(),myEt);
1097 filled = true;
1098 }
4b40b2b1 1099 if(pdgCode == fgPi0Code){
f427cbed 1100 float myEt = Et(part);
d6214a64 1101 fSimTotEt += myEt;
f427cbed 1102 FillHisto2D("EtSimulatedPi0",part->Pt(),part->Eta(),myEt);
1103 filled = true;
1104 }
4b40b2b1 1105 if(pdgCode == fgOmega0Code){
b64de20c 1106 float myEt = Et(part);
d6214a64 1107 fSimTotEt += myEt;
b64de20c 1108 FillHisto2D("EtSimulatedOmega0",part->Pt(),part->Eta(),myEt);
1109 filled = true;
1110 }
641e1e0c 1111 if(!filled){
f427cbed 1112 //if( strcmp(pc->ParticleClass(),"Baryon")==0 || strcmp(pc->ParticleClass(),"Meson")==0 ){
964c8159 1113 //cout<<"Did not find a place for "<<part->GetName()<<" "<<pdgCode<<" which is a "<<pc->ParticleClass()<<endl;
f427cbed 1114 //}
641e1e0c 1115 }
1116 }
1117 }
1118 }
1119
0e866ddc 1120 if(fSimTotEt>0.0)FillHisto1D("SimTotEt",fSimTotEt,1.0);
1121 if(fSimHadEt>0.0)FillHisto1D("SimHadEt",fSimHadEt,1.0);
1122 if(fSimPiKPEt>0.0)FillHisto1D("SimPiKPEt",fSimPiKPEt,1.0);
02710991 1123 if(fCentBin != -1){//if we have Pb+Pb and a centrality bin was found
1124 if(fSimTotEt>0.0) FillHisto1D(Form("SimTotEtCB%i",fCentBin),fSimTotEt,1.0);
1125 if(fSimHadEt>0.0) FillHisto1D(Form("SimHadEtCB%i",fCentBin),fSimHadEt,1.0);
1126 if(fSimPiKPEt>0.0)FillHisto1D(Form("SimPiKPEtCB%i",fCentBin),fSimPiKPEt,1.0);
1127 }
0e866ddc 1128
7d2d1773 1129 if(fInvestigateSmearing){
1130 //Smearing histograms
1131 if(fSimPiKPEt>0.0) FillHisto2D("SimPiKPEtMinusSimPtSmeared",fSimPiKPEt,(fSimPiKPEt-fSimPiKPEtPtSmeared)/fSimPiKPEt,1.0);
1132 FillHisto1D("SimPiKPEtPtSmeared",fSimPiKPEtPtSmeared,1.0);
1133 if(fSimPiKPEt>0.0) FillHisto2D("SimPiKPEtMinusSimEfficiencySmeared",fSimPiKPEt,(fSimPiKPEt-fSimPiKPEtEfficiencySmeared)/fSimPiKPEt,1.0);
1134 FillHisto1D("SimPiKPEtEfficiencySmeared",fSimPiKPEtEfficiencySmeared,1.0);
1135 if(fSimPiKPEt>0.0) FillHisto2D("SimPiKPEtMinusSimPtCutSmearedTPC",fSimPiKPEt,(fSimPiKPEt-fSimPiKPEtPtCutSmearedTPC)/fSimPiKPEt,1.0);
1136 FillHisto1D("SimPiKPEtPtCutSmearedTPC",fSimPiKPEtPtCutSmearedTPC,1.0);
1137 if(fSimPiKPEt>0.0) FillHisto2D("SimPiKPEtMinusSimPtCutSmearedITS",fSimPiKPEt,(fSimPiKPEt-fSimPiKPEtPtCutSmearedITS)/fSimPiKPEt,1.0);
1138 FillHisto1D("SimPiKPEtPtCutSmearedITS",fSimPiKPEtPtCutSmearedTPC,1.0);
1139 if(fSimPiKPEt>0.0) FillHisto2D("SimPiKPEtMinusSimPIDSmeared",fSimPiKPEt,(fSimPiKPEt-fSimPiKPEtPIDSmeared)/fSimPiKPEt,1.0);
1140 FillHisto1D("SimPiKPEtPIDSmeared",fSimPiKPEtPIDSmeared,1.0);
1141 if(fSimPiKPEt>0.0) FillHisto2D("SimPiKPEtMinusSimPIDSmearedNoID",fSimPiKPEt,(fSimPiKPEt-fSimPiKPEtPIDSmearedNoID)/fSimPiKPEt,1.0);
1142 FillHisto1D("SimPiKPEtPIDSmearedNoID",fSimPiKPEtPIDSmearedNoID,1.0);
1143 }
641e1e0c 1144 return 1;
1145
1146}
1147
1148void AliAnalysisHadEtMonteCarlo::Init()
cf6522d1 1149{ // Init
641e1e0c 1150 AliAnalysisHadEt::Init();
0e866ddc 1151 if(!fPtSmearer) fPtSmearer = new TRandom();
641e1e0c 1152}
1153void AliAnalysisHadEtMonteCarlo::CreateHistograms(){
1154 //for simulated Et only (no reconstruction)
1155 CreateEtaPtHisto2D(TString("EtSimulatedPiPlus"),TString("Simulated E_{T} from #pi^{+}"));
1156 CreateEtaPtHisto2D("EtSimulatedPiMinus","Simulated E_{T} from #pi^{-}");
1157 CreateEtaPtHisto2D("EtSimulatedKPlus","Simulated E_{T} from K^{+}");
1158 CreateEtaPtHisto2D("EtSimulatedKMinus","Simulated E_{T} from K^{-}");
1159 CreateEtaPtHisto2D("EtSimulatedProton","Simulated E_{T} from p");
f43fc416 1160 CreateEtaPtHisto2D("EtSimulatedAntiProton","Simulated E_{T} from #bar{p}");//Both baryon enhancement and strangeness rescaling
1161 if(fBaryonEnhancement){
1162 CreateEtaPtHisto2D("EtSimulatedProtonEnhanced","Simulated E_{T} from p");
1163 CreateEtaPtHisto2D("EtSimulatedAntiProtonEnhanced","Simulated E_{T} from #bar{p}");
1164 }
641e1e0c 1165 CreateEtaPtHisto2D("EtSimulatedChargedHadron","Simulated E_{T} from charged hadrons");
52503ae7 1166 CreateEtaPtHisto2D("EtNSimulatedPiPlus","Number of Simulated #pi^{+}");
641e1e0c 1167 CreateEtaPtHisto2D("EtNSimulatedPiMinus","Number of simulated #pi^{-}");
1168 CreateEtaPtHisto2D("EtNSimulatedKPlus","Number of simulated K^{+}");
1169 CreateEtaPtHisto2D("EtNSimulatedKMinus","Number of simulated K^{-}");
1170 CreateEtaPtHisto2D("EtNSimulatedProton","Number of simulated p");
1171 CreateEtaPtHisto2D("EtNSimulatedAntiProton","Number of simulated #bar{p}");
f43fc416 1172 if(fBaryonEnhancement){
1173 CreateEtaPtHisto2D("EtNSimulatedProtonEnhanced","Number of simulated p");
1174 CreateEtaPtHisto2D("EtNSimulatedAntiProtonEnhanced","Number of simulated #bar{p}");
1175 }
641e1e0c 1176 CreateEtaPtHisto2D("EtNSimulatedChargedHadron","Number of simulated charged hadrons");
52503ae7 1177 if(fDataSet==20100){//If this is Pb+Pb
1178 Int_t width = 5;
bf205f52 1179 if(fNCentBins<20) width = 10;
1180 for(Int_t i=0;i<fNCentBins;i++){
52503ae7 1181 CreateEtaPtHisto2D(Form("EtNSimulatedPiPlusCB%i",i),Form("Number of Simulated #pi^{+} for %i-%i central",i*width,(i+1)*width));
1182 CreateEtaPtHisto2D(Form("EtNSimulatedPiMinusCB%i",i),Form("Number of simulated #pi^{-} for %i-%i central",i*width,(i+1)*width));
1183 CreateEtaPtHisto2D(Form("EtNSimulatedKPlusCB%i",i),Form("Number of simulated K^{+} for %i-%i central",i*width,(i+1)*width));
1184 CreateEtaPtHisto2D(Form("EtNSimulatedKMinusCB%i",i),Form("Number of simulated K^{-} for %i-%i central",i*width,(i+1)*width));
1185 CreateEtaPtHisto2D(Form("EtNSimulatedProtonCB%i",i),Form("Number of simulated p for %i-%i central",i*width,(i+1)*width));
1186 CreateEtaPtHisto2D(Form("EtNSimulatedAntiProtonCB%i",i),Form("Number of simulated #bar{p} for %i-%i central",i*width,(i+1)*width));
1187 CreateEtaPtHisto2D(Form("EtNSimulatedChargedHadronCB%i",i),Form("Number of simulated charged hadrons for %i-%i central",i*width,(i+1)*width));
1188 }
1189 }
0e866ddc 1190 CreateEtaPtHisto2D("EtSimulatedChargedHadronAssumingNoPt","Simulated E_{T} from charged hadrons assuming p_{T}=0");
1191 CreateEtaPtHisto2D("EtSimulatedChargedHadronAssumingPtTPCCut","Simulated E_{T} from charged hadrons assuming p_{T}=0.15");
1192 CreateEtaPtHisto2D("EtSimulatedChargedHadronAssumingPtITSCut","Simulated E_{T} from charged hadrons assuming p_{T}=0.10");
641e1e0c 1193
1194 CreateEtaPtHisto2D("EtSimulatedChargedHadronAssumingPion","Simulated E_{T} from charged hadrons assuming they are all pions");
86d9d0dc 1195 CreateEtaPtHisto2D("EtSimulatedChargedHadronAssumingProton","Simulated E_{T} from charged hadrons assuming they are all pions");
1196 CreateEtaPtHisto2D("EtSimulatedChargedHadronAssumingKaon","Simulated E_{T} from charged hadrons assuming they are all pions");
641e1e0c 1197 CreateEtaPtHisto2D("EtSimulatedKPlusAssumingPion","Simulated E_{T} from K^{+} assuming #pi mass");
1198 CreateEtaPtHisto2D("EtSimulatedKMinusAssumingPion","Simulated E_{T} from K^{-} assuming #pi mass");
1199 CreateEtaPtHisto2D("EtSimulatedProtonAssumingPion","Simulated E_{T} from p assuming #pi mass");
1200 CreateEtaPtHisto2D("EtSimulatedAntiProtonAssumingPion","Simulated E_{T} from #bar{p} assuming #pi mass");
86d9d0dc 1201 CreateEtaPtHisto2D("EtSimulatedKPlusAssumingProton","Simulated E_{T} from K^{+} assuming #pi mass");
1202 CreateEtaPtHisto2D("EtSimulatedKMinusAssumingProton","Simulated E_{T} from K^{-} assuming #pi mass");
1203 CreateEtaPtHisto2D("EtSimulatedPiPlusAssumingProton","Simulated E_{T} from p assuming #pi mass");
1204 CreateEtaPtHisto2D("EtSimulatedPiMinusAssumingProton","Simulated E_{T} from #bar{p} assuming #pi mass");
1205 CreateEtaPtHisto2D("EtSimulatedPiPlusAssumingKaon","Simulated E_{T} from K^{+} assuming #pi mass");
1206 CreateEtaPtHisto2D("EtSimulatedPiMinusAssumingKaon","Simulated E_{T} from K^{-} assuming #pi mass");
1207 CreateEtaPtHisto2D("EtSimulatedProtonAssumingKaon","Simulated E_{T} from p assuming #pi mass");
1208 CreateEtaPtHisto2D("EtSimulatedAntiProtonAssumingKaon","Simulated E_{T} from #bar{p} assuming #pi mass");
f43fc416 1209 if(fBaryonEnhancement){
1210 CreateEtaPtHisto2D("EtSimulatedProtonAssumingPionEnhanced","Simulated E_{T} from p assuming #pi mass");
1211 CreateEtaPtHisto2D("EtSimulatedAntiProtonAssumingPionEnhanced","Simulated E_{T} from #bar{p} assuming #pi mass");
1212 }
641e1e0c 1213
1214 CreateEtaPtHisto2D("EtSimulatedLambda","Simulated E_{T} from #Lambda");
1215 CreateEtaPtHisto2D("EtSimulatedAntiLambda","Simulated E_{T} from #bar{#Lambda}");
1216 CreateEtaPtHisto2D("EtSimulatedK0S","Simulated E_{T} from K^{0}_{S}");
1217 CreateEtaPtHisto2D("EtSimulatedK0L","Simulated E_{T} from K^{0}_{L}");
f43fc416 1218 CreateEtaPtHisto2D("EtSimulatedLambdaReweighted","Simulated E_{T} from #Lambda");//These will also be used for baryon enhancement
964c8159 1219 CreateEtaPtHisto2D("EtSimulatedAntiLambdaReweighted","Simulated E_{T} from #bar{#Lambda}");
1220 CreateEtaPtHisto2D("EtSimulatedK0SReweighted","Simulated E_{T} from K^{0}_{S}");
1221 CreateEtaPtHisto2D("EtSimulatedK0LReweighted","Simulated E_{T} from K^{0}_{L}");
641e1e0c 1222 CreateEtaPtHisto2D("EtSimulatedNeutron","Simulated E_{T} from neutrons");
1223 CreateEtaPtHisto2D("EtSimulatedAntiNeutron","Simulated E_{T} from #bar{n}");
1224 CreateEtaPtHisto2D("EtSimulatedEPlus","Simulated E_{T} from e^{+}");
1225 CreateEtaPtHisto2D("EtSimulatedEMinus","Simulated E_{T} from e^{-}");
1226 CreateEtaPtHisto2D("EtSimulatedOmega","Simulated E_{T} from #Omega^{-}");
1227 CreateEtaPtHisto2D("EtSimulatedAntiOmega","Simulated E_{T} from #Omega^{+}");
1228 CreateEtaPtHisto2D("EtSimulatedXi","Simulated E_{T} from #Xi^{-}");
1229 CreateEtaPtHisto2D("EtSimulatedAntiXi","Simulated E_{T} from #Xi^{+}");
1230 CreateEtaPtHisto2D("EtSimulatedSigma","Simulated E_{T} from #Xi^{-}");
1231 CreateEtaPtHisto2D("EtSimulatedAntiSigma","Simulated E_{T} from #Xi^{+}");
1232 CreateEtaPtHisto2D("EtSimulatedXi0","Simulated E_{T} from #Xi^{0}");
1233 CreateEtaPtHisto2D("EtSimulatedAntiXi0","Simulated E_{T} from #Xi^{0}");
1234 CreateEtaPtHisto2D("EtSimulatedAllHadron","Simulated E_{T} from all hadrons");
1235
1236
1237 CreateEtaPtHisto2D("EtSimulatedLambdaDaughters","Simulated E_{T} from #Lambda Daughters");
1238 CreateEtaPtHisto2D("EtSimulatedAntiLambdaDaughters","Simulated E_{T} from #bar{#Lambda} Daughters");
1239 CreateEtaPtHisto2D("EtSimulatedK0SDaughters","Simulated E_{T} from K^{0}_{S} Daughters");
964c8159 1240 CreateEtaPtHisto2D("EtSimulatedLambdaDaughtersReweighted","Simulated E_{T} from #Lambda Daughters");
1241 CreateEtaPtHisto2D("EtSimulatedAntiLambdaDaughtersReweighted","Simulated E_{T} from #bar{#Lambda} Daughters");
1242 CreateEtaPtHisto2D("EtSimulatedK0SDaughtersReweighted","Simulated E_{T} from K^{0}_{S} Daughters");
641e1e0c 1243 CreateEtaPtHisto2D("EtSimulatedOmegaDaughters","Simulated E_{T} from #Omega^{-} Daughters");
1244 CreateEtaPtHisto2D("EtSimulatedAntiOmegaDaughters","Simulated E_{T} from #Omega^{+} Daughters");
1245 CreateEtaPtHisto2D("EtSimulatedXiDaughters","Simulated E_{T} from #Xi^{-} Daughters");
1246 CreateEtaPtHisto2D("EtSimulatedAntiXiDaughters","Simulated E_{T} from #Xi^{+} Daughters");
1247
f427cbed 1248
1249 CreateEtaPtHisto2D("EtSimulatedGamma","Simulated E_{T} from #gamma");
1250 CreateEtaPtHisto2D("EtSimulatedEta","Simulated E_{T} from #eta");
1251 CreateEtaPtHisto2D("EtSimulatedPi0","Simulated E_{T} from #pi^{0}");
b64de20c 1252 CreateEtaPtHisto2D("EtSimulatedOmega0","Simulated E_{T} from #omega");
f427cbed 1253
cf6522d1 1254 TString *strTPC = new TString("TPC");
1255 TString *strITS = new TString("ITS");
1256 TString *strTPCITS = new TString("TPCITS");
7d2d1773 1257 Int_t lastcutset = 1;
1258 if(fRequireITSHits) lastcutset = 2;
1259 for(Int_t i=0;i<=lastcutset;i++){
ea331c5d 1260 TString *cutName = NULL;
641e1e0c 1261 Float_t maxPtdEdx = 10;
1262 Float_t mindEdx = 35;
1263 Float_t maxdEdx = 150.0;
1264 switch(i){
1265 case 0:
cf6522d1 1266 cutName = strTPC;
641e1e0c 1267 break;
1268 case 1:
cf6522d1 1269 cutName = strITS;
641e1e0c 1270 maxPtdEdx = 5;
1271 maxdEdx = 500.0;
1272 break;
1273 case 2:
cf6522d1 1274 cutName = strTPCITS;
641e1e0c 1275 break;
1276 default:
1277 cerr<<"Error: cannot make histograms!"<<endl;
1278 return;
1279 }
1280
cf6522d1 1281 CreateEtaPtHisto2D(Form("EtReconstructed%sIdentifiedPiPlus",cutName->Data()),"Reconstructed E_{T} from identified #pi^{+}");
1282 CreateEtaPtHisto2D(Form("EtReconstructed%sIdentifiedPiMinus",cutName->Data()),"Reconstructed E_{T} from identified #pi^{-}");
1283 CreateEtaPtHisto2D(Form("EtReconstructed%sIdentifiedKPlus",cutName->Data()),"Reconstructed E_{T} from identified K^{+}");
1284 CreateEtaPtHisto2D(Form("EtReconstructed%sIdentifiedEMinus",cutName->Data()),"Reconstructed E_{T} from identified e^{-}");
1285 CreateEtaPtHisto2D(Form("EtReconstructed%sIdentifiedEPlus",cutName->Data()),"Reconstructed E_{T} from identified e^{+}");
1286 CreateEtaPtHisto2D(Form("EtReconstructed%sIdentifiedKMinus",cutName->Data()),"Reconstructed E_{T} from identified K^{-}");
1287 CreateEtaPtHisto2D(Form("EtReconstructed%sIdentifiedProton",cutName->Data()),"Reconstructed E_{T} from identified p");
1288 CreateEtaPtHisto2D(Form("EtReconstructed%sIdentifiedAntiProton",cutName->Data()),"Reconstructed E_{T} from identified #bar{p}");
f43fc416 1289 if(fBaryonEnhancement){
1290 CreateEtaPtHisto2D(Form("EtReconstructed%sIdentifiedProtonEnhanced",cutName->Data()),"Reconstructed E_{T} from identified p");
1291 CreateEtaPtHisto2D(Form("EtReconstructed%sIdentifiedAntiProtonEnhanced",cutName->Data()),"Reconstructed E_{T} from identified #bar{p}");
1292 }
cf6522d1 1293 CreateEtaPtHisto2D(Form("EtNReconstructed%sUnidentified",cutName->Data()),"Number of Reconstructed unidentified particles");
1294 CreateEtaPtHisto2D(Form("EtReconstructed%sUnidentifiedAssumingPion",cutName->Data()),"Reconstructed E_{T} from unidentified particles assuming pion mass");
86d9d0dc 1295 CreateEtaPtHisto2D(Form("EtReconstructed%sUnidentifiedAssumingProton",cutName->Data()),"Reconstructed E_{T} from unidentified particles assuming pion mass");
1296 CreateEtaPtHisto2D(Form("EtReconstructed%sUnidentifiedAssumingKaon",cutName->Data()),"Reconstructed E_{T} from unidentified particles assuming pion mass");
f43fc416 1297
1298 CreateEtaPtHisto2D(Form("EtNReconstructed%sUnidentifiedKaon",cutName->Data()),"Number of Reconstructed unidentified kaons particles");
1299 CreateEtaPtHisto2D(Form("EtReconstructed%sUnidentifiedKaonAssumingPion",cutName->Data()),"Reconstructed E_{T} from unidentified kaons particles assuming pion mass");
86d9d0dc 1300 CreateEtaPtHisto2D(Form("EtReconstructed%sUnidentifiedKaonAssumingProton",cutName->Data()),"Reconstructed E_{T} from unidentified kaons particles assuming pion mass");
1301 CreateEtaPtHisto2D(Form("EtReconstructed%sUnidentifiedKaonAssumingKaon",cutName->Data()),"Reconstructed E_{T} from unidentified kaons particles assuming pion mass");
904048b2 1302 CreateEtaPtHisto2D(Form("EtReconstructed%sUnidentifiedKaon",cutName->Data()),"Reconstructed E_{T} from unidentified kaons particles assuming kaon mass");
f43fc416 1303 CreateEtaPtHisto2D(Form("EtNReconstructed%sUnidentifiedProton",cutName->Data()),"Number of Reconstructed unidentified proton particles");
1304 CreateEtaPtHisto2D(Form("EtReconstructed%sUnidentifiedProtonAssumingPion",cutName->Data()),"Reconstructed E_{T} from unidentified proton particles assuming pion mass");
86d9d0dc 1305 CreateEtaPtHisto2D(Form("EtReconstructed%sUnidentifiedProtonAssumingKaon",cutName->Data()),"Reconstructed E_{T} from unidentified proton particles assuming pion mass");
1306 CreateEtaPtHisto2D(Form("EtReconstructed%sUnidentifiedPionAssumingKaon",cutName->Data()),"Reconstructed E_{T} from unidentified kaons particles assuming pion mass");
1307 CreateEtaPtHisto2D(Form("EtReconstructed%sUnidentifiedProtonAssumingKaon",cutName->Data()),"Reconstructed E_{T} from unidentified proton particles assuming pion mass");
1308 CreateEtaPtHisto2D(Form("EtReconstructed%sUnidentifiedPionAssumingProton",cutName->Data()),"Reconstructed E_{T} from unidentified kaons particles assuming pion mass");
1309 CreateEtaPtHisto2D(Form("EtReconstructed%sUnidentifiedProtonAssumingProton",cutName->Data()),"Reconstructed E_{T} from unidentified proton particles assuming pion mass");
904048b2 1310 CreateEtaPtHisto2D(Form("EtReconstructed%sUnidentifiedProton",cutName->Data()),"Reconstructed E_{T} from unidentified proton particles assuming proton mass");
f43fc416 1311 if(fBaryonEnhancement){
1312 CreateEtaPtHisto2D(Form("EtNReconstructed%sUnidentifiedProtonEnhanced",cutName->Data()),"Number of Reconstructed unidentified proton particles");
1313 CreateEtaPtHisto2D(Form("EtReconstructed%sUnidentifiedProtonAssumingPionEnhanced",cutName->Data()),"Reconstructed E_{T} from unidentified proton particles assuming pion mass");
904048b2 1314 CreateEtaPtHisto2D(Form("EtReconstructed%sUnidentifiedProtonEnhanced",cutName->Data()),"Reconstructed E_{T} from unidentified proton particles assuming proton mass");
f43fc416 1315 }
1316 CreateEtaPtHisto2D(Form("EtNReconstructed%sUnidentifiedPion",cutName->Data()),"Number of Reconstructed unidentified pions particles");
1317 CreateEtaPtHisto2D(Form("EtReconstructed%sUnidentifiedPionAssumingPion",cutName->Data()),"Reconstructed E_{T} from unidentified pions particles assuming pion mass");
86d9d0dc 1318 CreateEtaPtHisto2D(Form("EtReconstructed%sUnidentifiedPionAssumingKaon",cutName->Data()),"Reconstructed E_{T} from unidentified pions particles assuming pion mass");
1319 CreateEtaPtHisto2D(Form("EtReconstructed%sUnidentifiedPionAssumingProton",cutName->Data()),"Reconstructed E_{T} from unidentified pions particles assuming pion mass");
904048b2 1320 CreateEtaPtHisto2D(Form("EtReconstructed%sUnidentifiedPion",cutName->Data()),"Reconstructed E_{T} from unidentified pions particles assuming pion mass");
f43fc416 1321
cf6522d1 1322 CreateEtaPtHisto2D(Form("EtReconstructed%sUnidentified",cutName->Data()),"Reconstructed E_{T} from unidentified particles using real mass");
1323 CreateEtaPtHisto2D(Form("EtReconstructed%sMisidentifiedElectrons",cutName->Data()),"Reconstructed E_{T} from misidentified electrons");
1324
1325
1326 CreateEtaPtHisto2D(Form("EtReconstructed%sPiPlus",cutName->Data()),"Reconstructed E_{T} from #pi^{+}");
1327 CreateEtaPtHisto2D(Form("EtReconstructed%sPiMinus",cutName->Data()),"Reconstructed E_{T} from #pi^{-}");
1328 CreateEtaPtHisto2D(Form("EtReconstructed%sKPlus",cutName->Data()),"Reconstructed E_{T} from K^{+}");
1329 CreateEtaPtHisto2D(Form("EtReconstructed%sKMinus",cutName->Data()),"Reconstructed E_{T} from K^{-}");
1330 CreateEtaPtHisto2D(Form("EtReconstructed%sProton",cutName->Data()),"Reconstructed E_{T} from p");
1331 CreateEtaPtHisto2D(Form("EtReconstructed%sAntiProton",cutName->Data()),"Reconstructed E_{T} from #bar{p}");
f43fc416 1332 if(fBaryonEnhancement){
1333 CreateEtaPtHisto2D(Form("EtReconstructed%sProtonEnhanced",cutName->Data()),"Reconstructed E_{T} from p");
1334 CreateEtaPtHisto2D(Form("EtReconstructed%sAntiProtonEnhanced",cutName->Data()),"Reconstructed E_{T} from #bar{p}");
1335 }
cf6522d1 1336 CreateEtaPtHisto2D(Form("EtReconstructed%sChargedHadron",cutName->Data()),"Reconstructed E_{T} from charged hadrons");
1337 CreateEtaPtHisto2D(Form("EtNReconstructed%sPiPlus",cutName->Data()),"Reconstructed E_{T} from #pi^{+}");
1338 CreateEtaPtHisto2D(Form("EtNReconstructed%sPiMinus",cutName->Data()),"Reconstructed E_{T} from #pi^{-}");
1339 CreateEtaPtHisto2D(Form("EtNReconstructed%sKPlus",cutName->Data()),"Reconstructed E_{T} from K^{+}");
1340 CreateEtaPtHisto2D(Form("EtNReconstructed%sKMinus",cutName->Data()),"Reconstructed E_{T} from K^{-}");
1341 CreateEtaPtHisto2D(Form("EtNReconstructed%sProton",cutName->Data()),"Reconstructed E_{T} from p");
1342 CreateEtaPtHisto2D(Form("EtNReconstructed%sAntiProton",cutName->Data()),"Reconstructed E_{T} from #bar{p}");
f43fc416 1343 if(fBaryonEnhancement){
1344 CreateEtaPtHisto2D(Form("EtNReconstructed%sProtonEnhanced",cutName->Data()),"Reconstructed E_{T} from p");
1345 CreateEtaPtHisto2D(Form("EtNReconstructed%sAntiProtonEnhanced",cutName->Data()),"Reconstructed E_{T} from #bar{p}");
1346 }
cf6522d1 1347 CreateEtaPtHisto2D(Form("EtNReconstructed%sChargedHadron",cutName->Data()),"Reconstructed E_{T} from charged hadrons");
52503ae7 1348 if(fDataSet==20100){//If this is Pb+Pb
1349 Int_t width = 5;
bf205f52 1350 if(fNCentBins<20) width = 10;
1351 for(Int_t j=0;j<fNCentBins;j++){
52503ae7 1352 CreateEtaPtHisto2D(Form("EtNReconstructed%sPiPlusCB%i",cutName->Data(),j),Form("Reconstructed E_{T} from #pi^{+} for %i-%i central",j*width,(j+1)*width));
1353 CreateEtaPtHisto2D(Form("EtNReconstructed%sPiMinusCB%i",cutName->Data(),j),Form("Reconstructed E_{T} from #pi^{-} for %i-%i central",j*width,(j+1)*width));
1354 CreateEtaPtHisto2D(Form("EtNReconstructed%sKPlusCB%i",cutName->Data(),j),Form("Reconstructed E_{T} from K^{+} for %i-%i central",j*width,(j+1)*width));
1355 CreateEtaPtHisto2D(Form("EtNReconstructed%sKMinusCB%i",cutName->Data(),j),Form("Reconstructed E_{T} from K^{-} for %i-%i central",j*width,(j+1)*width));
1356 CreateEtaPtHisto2D(Form("EtNReconstructed%sProtonCB%i",cutName->Data(),j),Form("Reconstructed E_{T} from p for %i-%i central",j*width,(j+1)*width));
1357 CreateEtaPtHisto2D(Form("EtNReconstructed%sAntiProtonCB%i",cutName->Data(),j),Form("Reconstructed E_{T} from #bar{p} for %i-%i central",j*width,(j+1)*width));
1358 CreateEtaPtHisto2D(Form("EtNReconstructed%sChargedHadronCB%i",cutName->Data(),j),Form("Reconstructed E_{T} from charged hadrons for %i-%i central",j*width,(j+1)*width));
1359 }
1360 }
cf6522d1 1361
1362 CreateEtaPtHisto2D(Form("EtReconstructed%sChargedHadronAssumingPion",cutName->Data()),"Reconstructed E_{T} from charged hadrons assuming they are all pions");
86d9d0dc 1363 CreateEtaPtHisto2D(Form("EtReconstructed%sChargedHadronAssumingProton",cutName->Data()),"Reconstructed E_{T} from charged hadrons assuming they are all pions");
1364 CreateEtaPtHisto2D(Form("EtReconstructed%sChargedHadronAssumingKaon",cutName->Data()),"Reconstructed E_{T} from charged hadrons assuming they are all pions");
cf6522d1 1365 CreateEtaPtHisto2D(Form("EtReconstructed%sKPlusAssumingPion",cutName->Data()),"Reconstructed E_{T} from K^{+} assuming #pi mass");
1366 CreateEtaPtHisto2D(Form("EtReconstructed%sKMinusAssumingPion",cutName->Data()),"Reconstructed E_{T} from K^{-} assuming #pi mass");
1367 CreateEtaPtHisto2D(Form("EtReconstructed%sProtonAssumingPion",cutName->Data()),"Reconstructed E_{T} from p assuming #pi mass");
1368 CreateEtaPtHisto2D(Form("EtReconstructed%sAntiProtonAssumingPion",cutName->Data()),"Reconstructed E_{T} from #bar{p} assuming #pi mass");
86d9d0dc 1369 CreateEtaPtHisto2D(Form("EtReconstructed%sPiPlusAssumingKaon",cutName->Data()),"Reconstructed E_{T} from K^{+} assuming #pi mass");
1370 CreateEtaPtHisto2D(Form("EtReconstructed%sPiMinusAssumingKaon",cutName->Data()),"Reconstructed E_{T} from K^{-} assuming #pi mass");
1371 CreateEtaPtHisto2D(Form("EtReconstructed%sKPlusAssumingKaon",cutName->Data()),"Reconstructed E_{T} from K^{+} assuming #pi mass");
1372 CreateEtaPtHisto2D(Form("EtReconstructed%sKMinusAssumingKaon",cutName->Data()),"Reconstructed E_{T} from K^{-} assuming #pi mass");
1373 CreateEtaPtHisto2D(Form("EtReconstructed%sProtonAssumingKaon",cutName->Data()),"Reconstructed E_{T} from p assuming #pi mass");
1374 CreateEtaPtHisto2D(Form("EtReconstructed%sAntiProtonAssumingKaon",cutName->Data()),"Reconstructed E_{T} from #bar{p} assuming #pi mass");
1375
1376 CreateEtaPtHisto2D(Form("EtReconstructed%sKPlusAssumingProton",cutName->Data()),"Reconstructed E_{T} from K^{+} assuming #pi mass");
1377 CreateEtaPtHisto2D(Form("EtReconstructed%sKMinusAssumingProton",cutName->Data()),"Reconstructed E_{T} from K^{-} assuming #pi mass");
1378 CreateEtaPtHisto2D(Form("EtReconstructed%sPiMinusAssumingProton",cutName->Data()),"Reconstructed E_{T} from p assuming #pi mass");
1379 CreateEtaPtHisto2D(Form("EtReconstructed%sPiPlusAssumingProton",cutName->Data()),"Reconstructed E_{T} from #bar{p} assuming #pi mass");
1380 CreateEtaPtHisto2D(Form("EtReconstructed%sProtonAssumingProton",cutName->Data()),"Reconstructed E_{T} from p assuming #pi mass");
1381 CreateEtaPtHisto2D(Form("EtReconstructed%sAntiProtonAssumingProton",cutName->Data()),"Reconstructed E_{T} from #bar{p} assuming #pi mass");
1382
f43fc416 1383 if(fBaryonEnhancement){
1384 CreateEtaPtHisto2D(Form("EtReconstructed%sProtonAssumingPionEnhanced",cutName->Data()),"Reconstructed E_{T} from p assuming #pi mass");
1385 CreateEtaPtHisto2D(Form("EtReconstructed%sAntiProtonAssumingPionEnhanced",cutName->Data()),"Reconstructed E_{T} from #bar{p} assuming #pi mass");
1386 }
cf6522d1 1387
1388 CreateEtaPtHisto2D(Form("EtReconstructed%sEPlus",cutName->Data()),"Reconstructed E_{T} from e^{+}");
1389 CreateEtaPtHisto2D(Form("EtReconstructed%sEMinus",cutName->Data()),"Reconstructed E_{T} from e^{-}");
1390
1391
1392
1393 CreateEtaPtHisto2D(Form("EtReconstructed%sLambdaDaughters",cutName->Data()),"Reconstructed E_{T} from #Lambda Daughters");
1394 CreateEtaPtHisto2D(Form("EtReconstructed%sAntiLambdaDaughters",cutName->Data()),"Reconstructed E_{T} from #bar{#Lambda} Daughters");
1395 CreateEtaPtHisto2D(Form("EtReconstructed%sK0SDaughters",cutName->Data()),"Reconstructed E_{T} from K^{0}_{S} Daughters");
0f97be4c 1396 CreateEtaPtHisto2D(Form("EtReconstructed%sLambdaDaughtersReweighted",cutName->Data()),"Reconstructed E_{T} from #Lambda Daughters");
1397 CreateEtaPtHisto2D(Form("EtReconstructed%sAntiLambdaDaughtersReweighted",cutName->Data()),"Reconstructed E_{T} from #bar{#Lambda} Daughters");
1398 CreateEtaPtHisto2D(Form("EtReconstructed%sK0SDaughtersReweighted",cutName->Data()),"Reconstructed E_{T} from K^{0}_{S} Daughters");
cf6522d1 1399 CreateEtaPtHisto2D(Form("EtReconstructed%sOmegaDaughters",cutName->Data()),"Reconstructed E_{T} from #Omega^{-} Daughters");
1400 CreateEtaPtHisto2D(Form("EtReconstructed%sAntiOmegaDaughters",cutName->Data()),"Reconstructed E_{T} from #Omega^{+} Daughters");
1401 CreateEtaPtHisto2D(Form("EtReconstructed%sXiDaughters",cutName->Data()),"Reconstructed E_{T} from #Xi^{-} Daughters");
1402 CreateEtaPtHisto2D(Form("EtReconstructed%sAntiXiDaughters",cutName->Data()),"Reconstructed E_{T} from #Xi^{+} Daughters");
1403
1404 CreateIntHisto1D(Form("UnidentifiedPIDs%s",cutName->Data()),"PIDs of unidentified particles", "PID", "Number of particles",9, -4,4);
1405 CreateHisto2D(Form("MisidentifiedPIDs%s",cutName->Data()),"PIDs of misidentified particles", "PID real","PID identified",5, -.5,4.5,5, -.5,4.5);
1406 CreateHisto2D(Form("dEdxAll%s",cutName->Data()),"dE/dx for all particles","momentum (GeV/c)","dE/dx",400,0.0,maxPtdEdx,200,mindEdx,maxdEdx);
1407 CreateHisto2D(Form("dEdxPion%s",cutName->Data()),"dE/dx for #pi^{#pm}","momentum (GeV/c)","dE/dx",400,0.0,maxPtdEdx,200,mindEdx,maxdEdx);
1408 CreateHisto2D(Form("dEdxKaon%s",cutName->Data()),"dE/dx for K^{#pm}","momentum (GeV/c)","dE/dx",400,0.0,maxPtdEdx,200,mindEdx,maxdEdx);
1409 CreateHisto2D(Form("dEdxProton%s",cutName->Data()),"dE/dx for p(#bar{p})","momentum (GeV/c)","dE/dx",400,0.0,maxPtdEdx,200,mindEdx,maxdEdx);
1410 CreateHisto2D(Form("dEdxElectron%s",cutName->Data()),"dE/dx for e^{#pm}","momentum (GeV/c)","dE/dx",400,0.0,maxPtdEdx,200,mindEdx,maxdEdx);
1411 CreateHisto2D(Form("dEdxUnidentified%s",cutName->Data()),"dE/dx for unidentified particles","momentum (GeV/c)","dE/dx",400,0.0,maxPtdEdx,200,mindEdx,maxdEdx);
641e1e0c 1412 }
464aa50c 1413 delete strTPC;
1414 delete strITS;
1415 delete strTPCITS;
4e0c0fe1 1416
1417 Float_t minEt = 0.0;
1418 Float_t maxEt = 100.0;
02710991 1419 if(fDataSet==20100) maxEt=3000.0;
4b40b2b1 1420 Int_t nbinsEt = 100;
4e0c0fe1 1421 char histoname[200];
1422 char histotitle[200];
1423 char xtitle[50];
1424 char ytitle[50];
464aa50c 1425 TString *sTPC = new TString("TPC");
1426 TString *sITS = new TString("ITS");
1427 TString *sTPCpt = new TString("0.15");
1428 TString *sITSpt = new TString("0.10");
1429 TString *sPID = new TString("");
1430 TString *sNoPID = new TString("NoPID");
1431 TString *sNoPIDString = new TString(", No PID");
1432 TString *sHadEt = new TString("HadEt");
1433 TString *sTotEt = new TString("TotEt");
1434 TString *sTotEtString = new TString("total E_{T}");
1435 TString *sHadEtString = new TString("hadronic E_{T}");
1436 TString *sFull = new TString("Full");
1437 TString *sEMCAL = new TString("EMCAL");
1438 TString *sPHOS = new TString("PHOS");
4b40b2b1 1439 float etDiff = 1.5;
7d2d1773 1440
1441 for(int tpc = 0;tpc<lastcutset;tpc++){
ea331c5d 1442 TString *detector = NULL;
1443 TString *ptstring = NULL;
4b40b2b1 1444 if(tpc==1) {detector = sTPC; ptstring = sTPCpt;}
1445 else{detector = sITS; ptstring = sITSpt;}
4e0c0fe1 1446 for(int hadet = 0;hadet<2;hadet++){
ea331c5d 1447 TString *et = NULL;
1448 TString *etstring = NULL;
4b40b2b1 1449 if(hadet==1) {et = sHadEt; etstring = sHadEtString;}
1450 else{et = sTotEt; etstring = sTotEtString;}
7d2d1773 1451 for(int type = 0;type<3;type++){
1452 if(type==0 && !fInvestigateFull) continue;
1453 if(type==1 && !fInvestigateEMCal) continue;
1454 if(type==2 && !fInvestigatePHOS) continue;
ea331c5d 1455 TString *acceptance = NULL;
4b40b2b1 1456 switch(type){
1457 case 0:
1458 acceptance = sFull;
7d2d1773 1459 etDiff = 1.5;
4b40b2b1 1460 break;
1461 case 1:
1462 acceptance = sEMCAL;
7d2d1773 1463 etDiff = 5;
4b40b2b1 1464 break;
1465 case 2:
1466 acceptance = sPHOS;
7d2d1773 1467 etDiff = 5;
4b40b2b1 1468 break;
1469 default:
1470 acceptance = sFull;
1471 }
4e0c0fe1 1472 for(int pid = 0;pid<2;pid++){
ea331c5d 1473 TString *partid = NULL;
1474 TString *partidstring = NULL;
464aa50c 1475 if(pid==1){partid = sPID; partidstring = sPID;}
1476 else{partid = sNoPID; partidstring = sNoPIDString;}
6a0df78a 1477 snprintf(histoname,200,"Sim%sMinusReco%s%sAcceptance%s%s",et->Data(),et->Data(),acceptance->Data(),detector->Data(),partid->Data());
1478 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());
1479 snprintf(ytitle,50,"(Simulated %s - reconstructed %s)/(Simulated %s)",etstring->Data(),etstring->Data(),etstring->Data());
1480 snprintf(xtitle,50,"Simulated %s",etstring->Data());
4b40b2b1 1481 CreateHisto2D(histoname,histotitle,xtitle,ytitle,nbinsEt,minEt,maxEt,nbinsEt,-etDiff,etDiff);
7d2d1773 1482 if(hadet==0 && type==0 && fInvestigatePiKP){//we only want to do this once... not the most elegant way of coding but hey...
6a0df78a 1483 snprintf(histoname,200,"SimPiKPMinusRecoPiKP%sAcceptance%s%s",acceptance->Data(),detector->Data(),partid->Data());
1484 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());
1485 snprintf(ytitle,50,"(Sim PiKP - reco PiKP)/(Sim PiKP)");
1486 snprintf(xtitle,50,"Simulated E_{T}^{#pi,K,p}");
0e866ddc 1487 CreateHisto2D(histoname,histotitle,xtitle,ytitle,nbinsEt,minEt,maxEt,nbinsEt,-etDiff,etDiff);
0e866ddc 1488 }
4e0c0fe1 1489 }
1490 }
1491 }
1492 }
7d2d1773 1493 CreateHisto1D("SimPiKPEt","Simulated #pi,K,p E_{T}","Simulated #pi,K,p E_{T}","Number of events",nbinsEt,minEt,maxEt);
0e866ddc 1494 CreateHisto1D("SimTotEt","Simulated Total E_{T}","Simulated Total E_{T}","Number of events",nbinsEt*4,minEt,maxEt);
1495 CreateHisto1D("SimHadEt","Simulated Hadronic E_{T}","Simulated Hadronic E_{T}","Number of events",nbinsEt*4,minEt,maxEt);
02710991 1496 if(fDataSet==20100){
1497 Int_t width = 5;
1498 if(fNCentBins<20) width = 10;
1499 for(Int_t j=0;j<fNCentBins;j++){
1500 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);
1501 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);
1502 }
1503 }
0e866ddc 1504
1505 etDiff = 0.15;
1506
7d2d1773 1507 if(fInvestigateSmearing){
1508
1509 //======================================================================
1510
6a0df78a 1511 snprintf(histoname,200,"SimPiKPEtMinusSimPtSmeared");
1512 snprintf(histotitle,200,"Simulated (true-smeared)/true for 0.5 percent momentum smearing");
1513 snprintf(ytitle,50,"(true-smeared)/true");
1514 snprintf(xtitle,50,"true p, K, p E_{T}");
7d2d1773 1515 CreateHisto2D(histoname,histotitle,xtitle,ytitle,nbinsEt,minEt,maxEt,nbinsEt,-etDiff/10.0,etDiff/10.0);
6a0df78a 1516 snprintf(histoname,200,"SimPiKPEtPtSmeared");
1517 snprintf(histotitle,200,"Simulated E_{T} for 0.5 percent momentum smearing");
1518 snprintf(ytitle,50,"Number of events");
1519 snprintf(xtitle,50,"p, K, p E_{T}");
7d2d1773 1520 CreateHisto1D(histoname,histotitle,xtitle,ytitle,nbinsEt,minEt,maxEt);
1521
1522 //======================================================================
1523
6a0df78a 1524 snprintf(histoname,200,"SimPiKPEtMinusSimEfficiencySmeared");
1525 snprintf(histotitle,200,"Simulated (true-smeared)/true for efficiency smearing");
1526 snprintf(ytitle,50,"(true-smeared)/true");
1527 snprintf(xtitle,50,"true p, K, p E_{T}");
7d2d1773 1528 CreateHisto2D(histoname,histotitle,xtitle,ytitle,nbinsEt,minEt,maxEt,nbinsEt,-etDiff*5,etDiff*5);
6a0df78a 1529 snprintf(histoname,200,"SimPiKPEtEfficiencySmeared");
1530 snprintf(histotitle,200,"Simulated E_{T} for efficiency smearing");
1531 snprintf(ytitle,50,"Number of events");
1532 snprintf(xtitle,50,"p, K, p E_{T}");
7d2d1773 1533 CreateHisto1D(histoname,histotitle,xtitle,ytitle,nbinsEt,minEt,maxEt);
1534
1535 //======================================================================
1536
6a0df78a 1537 snprintf(histoname,200,"SimPiKPEtMinusSimPtCutSmearedTPC");
1538 snprintf(histotitle,200,"Simulated (true-smeared)/true for p_{T}>0.15 GeV/c smearing");
1539 snprintf(ytitle,50,"(true-smeared)/true");
1540 snprintf(xtitle,50,"true p, K, p E_{T}");
7d2d1773 1541 CreateHisto2D(histoname,histotitle,xtitle,ytitle,nbinsEt,minEt,maxEt,nbinsEt,-etDiff,etDiff);
6a0df78a 1542 snprintf(histoname,200,"SimPiKPEtPtCutSmearedTPC");
1543 snprintf(histotitle,200,"Simulated E_{T} for p_{T}>0.15 GeV/c smearing");
1544 snprintf(ytitle,50,"Number of events");
1545 snprintf(xtitle,50,"p, K, p E_{T}");
7d2d1773 1546 CreateHisto1D(histoname,histotitle,xtitle,ytitle,nbinsEt,minEt,maxEt);
1547
1548
1549 //======================================================================
1550
6a0df78a 1551 snprintf(histoname,200,"SimPiKPEtMinusSimPtCutSmearedITS");
1552 snprintf(histotitle,200,"Simulated (true-smeared)/true for p_{T}>0.10 GeV/c smearing");
1553 snprintf(ytitle,50,"(true-smeared)/true");
1554 snprintf(xtitle,50,"true p, K, p E_{T}");
7d2d1773 1555 CreateHisto2D(histoname,histotitle,xtitle,ytitle,nbinsEt,minEt,maxEt,nbinsEt,-etDiff,etDiff);
6a0df78a 1556 snprintf(histoname,200,"SimPiKPEtPtCutSmearedITS");
1557 snprintf(histotitle,200,"Simulated E_{T} for p_{T}>0.10 GeV/c smearing");
1558 snprintf(ytitle,50,"Number of events");
1559 snprintf(xtitle,50,"p, K, p E_{T}");
7d2d1773 1560 CreateHisto1D(histoname,histotitle,xtitle,ytitle,nbinsEt,minEt,maxEt);
1561
1562 //======================================================================
1563
6a0df78a 1564 snprintf(histoname,200,"SimPiKPEtMinusSimPIDSmeared");
1565 snprintf(histotitle,200,"Simulated (true-smeared)/true for PID smearing");
1566 snprintf(ytitle,50,"(true-smeared)/true");
1567 snprintf(xtitle,50,"true p, K, p E_{T}");
7d2d1773 1568 CreateHisto2D(histoname,histotitle,xtitle,ytitle,nbinsEt,minEt,maxEt,nbinsEt,-etDiff,etDiff);
6a0df78a 1569 snprintf(histoname,200,"SimPiKPEtPIDSmeared");
1570 snprintf(histotitle,200,"Simulated E_{T} for PID smearing");
1571 snprintf(ytitle,50,"Number of events");
1572 snprintf(xtitle,50,"p, K, p E_{T}");
7d2d1773 1573 CreateHisto1D(histoname,histotitle,xtitle,ytitle,nbinsEt,minEt,maxEt);
1574
1575 //======================================================================
1576
6a0df78a 1577 snprintf(histoname,200,"SimPiKPEtMinusSimPIDSmearedNoID");
1578 snprintf(histotitle,200,"Simulated (true-smeared)/true for PID smearing No ID");
1579 snprintf(ytitle,50,"(true-smeared)/true");
1580 snprintf(xtitle,50,"true p, K, p E_{T}");
7d2d1773 1581 CreateHisto2D(histoname,histotitle,xtitle,ytitle,nbinsEt,minEt,maxEt,nbinsEt,-etDiff,etDiff);
6a0df78a 1582 snprintf(histoname,200,"SimPiKPEtPIDSmearedNoID");
1583 snprintf(histotitle,200,"Simulated E_{T} for PID smearing No ID");
1584 snprintf(ytitle,50,"Number of events");
1585 snprintf(xtitle,50,"p, K, p E_{T}");
7d2d1773 1586 CreateHisto1D(histoname,histotitle,xtitle,ytitle,nbinsEt,minEt,maxEt);
1587 }
464aa50c 1588 delete sTPC;
1589 delete sITS;
1590 delete sTPCpt;
1591 delete sITSpt;
1592 delete sPID;
1593 delete sNoPID;
1594 delete sNoPIDString;
1595 delete sHadEt;
1596 delete sTotEt;
1597 delete sTotEtString;
1598 delete sHadEtString;
1599 delete sFull;
1600 delete sEMCAL;
1601 delete sPHOS;
641e1e0c 1602 CreateIntHisto1D("NEvents","Number of events","number of events","Number of events",1,0,1);
1603
641e1e0c 1604}
1605