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