]>
Commit | Line | Data |
---|---|---|
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 | 31 | using namespace std; |
32 | ||
16abb579 | 33 | ClassImp(AliAnalysisHadEtMonteCarlo); |
34 | ||
4b40b2b1 | 35 | |
0e866ddc | 36 | Int_t AliAnalysisHadEtMonteCarlo::fgNumSmearWidths = 4; |
37 | Float_t AliAnalysisHadEtMonteCarlo::fgSmearWidths[4] = {0.005,0.006,0.007,0.008}; | |
4b40b2b1 | 38 | |
d6214a64 | 39 | AliAnalysisHadEtMonteCarlo::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 | } |
53 | AliAnalysisHadEtMonteCarlo::~AliAnalysisHadEtMonteCarlo(){//destructor | |
0e866ddc | 54 | if(fPtSmearer) delete fPtSmearer; |
d6214a64 | 55 | } |
4b40b2b1 | 56 | |
57 | void 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 | 63 | Int_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 | } | |
512 | Int_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 | ||
1148 | void AliAnalysisHadEtMonteCarlo::Init() | |
cf6522d1 | 1149 | { // Init |
641e1e0c | 1150 | AliAnalysisHadEt::Init(); |
0e866ddc | 1151 | if(!fPtSmearer) fPtSmearer = new TRandom(); |
641e1e0c | 1152 | } |
1153 | void 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 |