]>
Commit | Line | Data |
---|---|---|
cf6522d1 | 1 | //_________________________________________________________________________ |
2 | // Utility Class for transverse energy studies, charged hadrons | |
3 | // Base class for ESD analysis | |
4 | // - reconstruction output | |
5 | // implementation file | |
6 | // | |
7 | //Created by Christine Nattrass, Rebecca Scott, Irakli Martashvili | |
641e1e0c | 8 | //University of Tennessee at Knoxville |
cf6522d1 | 9 | //_________________________________________________________________________ |
3ce6b879 | 10 | |
11 | #include <TROOT.h> | |
12 | #include <TSystem.h> | |
13 | #include <TInterpreter.h> | |
641e1e0c | 14 | #include "AliAnalysisHadEtReconstructed.h" |
15 | #include "AliAnalysisEtCuts.h" | |
16 | #include "AliESDtrack.h" | |
17 | #include "AliESDCaloCluster.h" | |
641e1e0c | 18 | #include "AliVEvent.h" |
19 | #include "AliESDEvent.h" | |
3ce6b879 | 20 | #include "AliESDtrackCuts.h" |
21 | #include "AliESDpid.h" | |
641e1e0c | 22 | #include "AliVParticle.h" |
23 | #include <iostream> | |
3ce6b879 | 24 | #include "AliAnalysisHadEtCorrections.h" |
25 | #include "TFile.h" | |
26 | #include "TString.h" | |
7d2d1773 | 27 | #include "AliAnalysisEtCommon.h" |
28 | #include "AliAnalysisHadEt.h" | |
0f70cf50 | 29 | #include "AliCentrality.h" |
0f6416f3 | 30 | #include "AliLog.h" |
9a365626 | 31 | #include "AliPIDResponse.h" |
32 | #include "AliTPCPIDResponse.h" | |
33 | #include "AliInputEventHandler.h" | |
34 | #include "AliAnalysisManager.h" | |
2c0680a5 | 35 | #include "AliPWG0Helper.h" |
641e1e0c | 36 | |
16abb579 | 37 | using namespace std; |
38 | ||
39 | ClassImp(AliAnalysisHadEtReconstructed); | |
40 | ||
41 | ||
641e1e0c | 42 | AliAnalysisHadEtReconstructed::AliAnalysisHadEtReconstructed() : |
0f70cf50 | 43 | AliAnalysisHadEt() |
44 | ,fCorrections(0) | |
45 | ,fConfigFile("ConfigHadEtAnalysis.C") | |
46 | ,fCorrTotEtFullAcceptanceTPC(0) | |
47 | ,fCorrTotEtFullAcceptanceITS(0) | |
48 | ,fCorrHadEtFullAcceptanceTPC(0) | |
49 | ,fCorrHadEtFullAcceptanceITS(0) | |
132872f7 | 50 | ,fCorrPiKPEtFullAcceptanceTPC(0) |
51 | ,fCorrPiKPEtFullAcceptanceITS(0) | |
0f70cf50 | 52 | ,fCorrTotEtEMCALAcceptanceTPC(0) |
53 | ,fCorrTotEtEMCALAcceptanceITS(0) | |
54 | ,fCorrHadEtEMCALAcceptanceTPC(0) | |
55 | ,fCorrHadEtEMCALAcceptanceITS(0) | |
56 | ,fCorrTotEtPHOSAcceptanceTPC(0) | |
57 | ,fCorrTotEtPHOSAcceptanceITS(0) | |
58 | ,fCorrHadEtPHOSAcceptanceTPC(0) | |
59 | ,fCorrHadEtPHOSAcceptanceITS(0) | |
60 | ,fCorrectedHadEtFullAcceptanceTPCNoPID(0) | |
61 | ,fCorrectedHadEtFullAcceptanceITSNoPID(0) | |
62 | ,fCorrectedHadEtEMCALAcceptanceTPCNoPID(0) | |
63 | ,fCorrectedHadEtEMCALAcceptanceITSNoPID(0) | |
64 | ,fCorrectedHadEtPHOSAcceptanceTPCNoPID(0) | |
65 | ,fCorrectedHadEtPHOSAcceptanceITSNoPID(0) | |
66 | ,fCorrectedHadEtFullAcceptanceTPC(0) | |
67 | ,fCorrectedHadEtFullAcceptanceITS(0) | |
68 | ,fCorrectedHadEtFullAcceptanceTPCAssumingPion(0) | |
69 | ,fCorrectedHadEtFullAcceptanceITSAssumingPion(0) | |
70 | ,fCorrectedHadEtFullAcceptanceTPCAssumingProton(0) | |
71 | ,fCorrectedHadEtFullAcceptanceITSAssumingProton(0) | |
72 | ,fCorrectedHadEtFullAcceptanceTPCAssumingKaon(0) | |
73 | ,fCorrectedHadEtFullAcceptanceITSAssumingKaon(0) | |
74 | ,fCorrectedHadEtEMCALAcceptanceTPC(0) | |
75 | ,fCorrectedHadEtEMCALAcceptanceITS(0) | |
76 | ,fCorrectedHadEtPHOSAcceptanceTPC(0) | |
77 | ,fCorrectedHadEtPHOSAcceptanceITS(0) | |
78 | ,fRawEtFullAcceptanceTPC(0) | |
79 | ,fRawEtFullAcceptanceITS(0) | |
80 | ,fRawEtEMCALAcceptanceTPC(0) | |
81 | ,fRawEtEMCALAcceptanceITS(0) | |
82 | ,fRawEtPHOSAcceptanceTPC(0) | |
83 | ,fRawEtPHOSAcceptanceITS(0) | |
84 | ,fRawEtFullAcceptanceTPCNoPID(0) | |
85 | ,fRawEtFullAcceptanceITSNoPID(0) | |
86 | ,fRawEtEMCALAcceptanceTPCNoPID(0) | |
87 | ,fRawEtEMCALAcceptanceITSNoPID(0) | |
88 | ,fRawEtPHOSAcceptanceTPCNoPID(0) | |
89 | ,fRawEtPHOSAcceptanceITSNoPID(0) | |
d35312c9 | 90 | ,kIsOfflineV0AND(0) |
91 | ,kDoTriggerChecks(0) | |
92 | ,kDoTriggerChecksOnly(0) | |
641e1e0c | 93 | { |
641e1e0c | 94 | } |
95 | ||
cf6522d1 | 96 | AliAnalysisHadEtReconstructed::~AliAnalysisHadEtReconstructed() |
641e1e0c | 97 | { |
464aa50c | 98 | delete fCorrections; |
cf6522d1 | 99 | } |
100 | ||
2c0680a5 | 101 | Int_t AliAnalysisHadEtReconstructed::AnalyseEvent(AliVEvent* ev, Int_t eventtype) |
cf6522d1 | 102 | { // analyse ESD event |
d35312c9 | 103 | if(kDoTriggerChecksOnly){return 1;}//In this case we are just after trigger efficiencies and don't care about the ET reconstructed. |
104 | if(kDoTriggerChecks && !kIsOfflineV0AND){return 1;}//In this case we are just after trigger efficiencies and don't care about the ET reconstructed. | |
0f70cf50 | 105 | ResetEventValues(); |
6a0df78a | 106 | if(!ev){ |
0f6416f3 | 107 | AliFatal("ERROR: Event does not exist"); |
6a0df78a | 108 | return 0; |
109 | } | |
3ce6b879 | 110 | |
0f70cf50 | 111 | AliESDEvent *realEvent = dynamic_cast<AliESDEvent*>(ev); |
112 | if(!realEvent){ | |
113 | AliFatal("ERROR: ESD Event does not exist"); | |
114 | return 0; | |
115 | } | |
116 | fCentBin= -1; | |
a180fac9 | 117 | fGoodEvent = kTRUE;//for p+p collisions if we made it this far we have a good event |
3c7f3e24 | 118 | if(fDataSet==20100||fDataSet==2011){//If this is Pb+Pb or pPb |
c692b181 | 119 | // AliCentrality *centrality = realEvent->GetCentrality(); |
120 | // if(fNCentBins<21) fCentBin= centrality->GetCentralityClass10(fCentralityMethod); | |
121 | // else{ fCentBin= centrality->GetCentralityClass5(fCentralityMethod);} | |
122 | AliCentrality *centrality = realEvent->GetCentrality(); | |
123 | fCentBin = GetCentralityBin(fNCentBins, centrality); | |
900a0a41 | 124 | if(fCentBin ==-1){ |
125 | if(fDataSet==2013){ | |
126 | fCentBin = 19;//For pPb we don't want to throw these events out but there is no CB 19 | |
127 | } | |
128 | else{ | |
129 | fGoodEvent = kFALSE;//but for Pb+Pb events we don't want to count events where we did not find a centrality | |
130 | } | |
131 | } | |
0f70cf50 | 132 | } |
133 | //for PID | |
660b176a | 134 | // AliESDpid *pID = new AliESDpid(); |
135 | // pID->MakePID(realEvent); | |
0f70cf50 | 136 | TString *strTPC = new TString("TPC"); |
137 | TString *strITS = new TString("ITS"); | |
138 | TString *strTPCITS = new TString("TPCITS"); | |
139 | for(Int_t cutset=0;cutset<2;cutset++){ | |
140 | bool isTPC = false; | |
141 | TString *cutName = NULL; | |
142 | TObjArray* list = NULL; | |
143 | switch(cutset){ | |
144 | case 0: | |
145 | cutName = strTPCITS; | |
146 | list = fEsdtrackCutsITSTPC->GetAcceptedTracks(realEvent); | |
147 | isTPC = true; | |
148 | break; | |
149 | case 1: | |
150 | cutName = strITS; | |
151 | list = fEsdtrackCutsITS->GetAcceptedTracks(realEvent); | |
152 | break; | |
153 | case 2: | |
154 | cutName = strTPC; | |
155 | list = fEsdtrackCutsTPC->GetAcceptedTracks(realEvent); | |
156 | break; | |
157 | default: | |
158 | cerr<<"Error: cannot fill histograms!"<<endl; | |
159 | return -1; | |
ec956c46 | 160 | } |
0f70cf50 | 161 | Int_t nGoodTracks = list->GetEntries(); |
162 | for (Int_t iTrack = 0; iTrack < nGoodTracks; iTrack++) | |
163 | { | |
641e1e0c | 164 | |
641e1e0c | 165 | |
0f70cf50 | 166 | AliESDtrack *track = dynamic_cast<AliESDtrack*> (list->At(iTrack)); |
167 | if (!track) | |
168 | { | |
169 | Printf("ERROR: Could not get track %d", iTrack); | |
170 | continue; | |
171 | } | |
172 | else{ | |
173 | if(TMath::Abs(track->Eta())>fCorrections->GetEtaCut()) continue; | |
174 | Float_t nSigmaPion,nSigmaProton,nSigmaKaon,nSigmaElectron; | |
660b176a | 175 | Float_t nSigmaPionUnsigned,nSigmaProtonUnsigned,nSigmaKaonUnsigned,nSigmaElectronUnsigned; |
9a365626 | 176 | // pID->MakeTPCPID(track); |
177 | // pID->MakeITSPID(track); | |
178 | //if(!fPIDResponse) cout<<"Uh-oh! No PID Response!"<<endl; | |
0f70cf50 | 179 | if(cutset!=1){ |
9a365626 | 180 | nSigmaPion = TMath::Abs(fPIDResponse->NumberOfSigmasTPC(track, AliPID::kPion)); |
181 | nSigmaProton = TMath::Abs(fPIDResponse->NumberOfSigmasTPC(track, AliPID::kProton)); | |
182 | nSigmaKaon =TMath::Abs( fPIDResponse->NumberOfSigmasTPC(track, AliPID::kKaon)); | |
660b176a | 183 | nSigmaElectron =TMath::Abs( fPIDResponse->NumberOfSigmasTPC(track, AliPID::kElectron)); |
184 | ||
185 | nSigmaPionUnsigned = fPIDResponse->NumberOfSigmasTPC(track, AliPID::kPion); | |
186 | nSigmaProtonUnsigned = fPIDResponse->NumberOfSigmasTPC(track, AliPID::kProton); | |
187 | nSigmaKaonUnsigned = fPIDResponse->NumberOfSigmasTPC(track, AliPID::kKaon); | |
188 | nSigmaElectronUnsigned = fPIDResponse->NumberOfSigmasTPC(track, AliPID::kElectron); | |
9a365626 | 189 | |
190 | // nSigmaPion = TMath::Abs(pID->NumberOfSigmasTPC(track,AliPID::kPion)); | |
191 | // nSigmaProton = TMath::Abs(pID->NumberOfSigmasTPC(track,AliPID::kProton)); | |
192 | // nSigmaKaon = TMath::Abs(pID->NumberOfSigmasTPC(track,AliPID::kKaon)); | |
193 | // nSigmaElectron = TMath::Abs(pID->NumberOfSigmasTPC(track,AliPID::kElectron)); | |
0f70cf50 | 194 | } |
3ce6b879 | 195 | else{ |
9a365626 | 196 | nSigmaPion = TMath::Abs(fPIDResponse->NumberOfSigmasITS(track, AliPID::kPion)); |
197 | nSigmaProton = TMath::Abs(fPIDResponse->NumberOfSigmasITS(track, AliPID::kProton)); | |
198 | nSigmaKaon = TMath::Abs(fPIDResponse->NumberOfSigmasITS(track, AliPID::kKaon)); | |
199 | nSigmaElectron = TMath::Abs(fPIDResponse->NumberOfSigmasITS(track, AliPID::kElectron)); | |
660b176a | 200 | |
201 | nSigmaPionUnsigned = fPIDResponse->NumberOfSigmasITS(track, AliPID::kPion); | |
202 | nSigmaProtonUnsigned = fPIDResponse->NumberOfSigmasITS(track, AliPID::kProton); | |
203 | nSigmaKaonUnsigned = fPIDResponse->NumberOfSigmasITS(track, AliPID::kKaon); | |
204 | nSigmaElectronUnsigned = fPIDResponse->NumberOfSigmasITS(track, AliPID::kElectron); | |
9a365626 | 205 | // nSigmaPion = TMath::Abs(pID->NumberOfSigmasITS(track,AliPID::kPion)); |
206 | // nSigmaProton = TMath::Abs(pID->NumberOfSigmasITS(track,AliPID::kProton)); | |
207 | // nSigmaKaon = TMath::Abs(pID->NumberOfSigmasITS(track,AliPID::kKaon)); | |
208 | // nSigmaElectron = TMath::Abs(pID->NumberOfSigmasITS(track,AliPID::kElectron)); | |
0f70cf50 | 209 | } |
9a365626 | 210 | //cout<<"Nsigma pion "<<nSigmaPion<<" proton "<<nSigmaProton<<" kaon "<<nSigmaKaon<<" electron "<<nSigmaElectron<<endl; |
0f70cf50 | 211 | // bool isPion = (nSigmaPion<3.0 && nSigmaProton>2.0 && nSigmaKaon>2.0); |
212 | // bool isElectron = (nSigmaElectron<2.0 && nSigmaPion>4.0 && nSigmaProton>3.0 && nSigmaKaon>3.0); | |
213 | // bool isKaon = (nSigmaPion>3.0 && nSigmaProton>2.0 && nSigmaKaon<2.0); | |
214 | // bool isProton = (nSigmaPion>3.0 && nSigmaProton<2.0 && nSigmaKaon>2.0); | |
6a0df78a | 215 | bool isPion = (nSigmaPion<3.0 && nSigmaProton>2.0 && nSigmaKaon>2.0); |
216 | bool isElectron = (nSigmaElectron<2.0 && nSigmaPion>4.0 && nSigmaProton>3.0 && nSigmaKaon>3.0); | |
701b4621 | 217 | bool isKaon = (nSigmaPion>3.0 && nSigmaProton>3.0 && nSigmaKaon<3.0 && track->Pt()<0.45); |
218 | bool isProton = (nSigmaPion>3.0 && nSigmaProton<3.0 && nSigmaKaon>3.0 && track->Pt()<0.9); | |
641e1e0c | 219 | |
660b176a | 220 | FillHisto2D(Form("dEdxDataNSigmaPionAll%s",cutName->Data()),track->P(),nSigmaPionUnsigned,1.0); |
221 | FillHisto2D(Form("dEdxDataNSigmaKaonAll%s",cutName->Data()),track->P(),nSigmaKaonUnsigned,1.0); | |
222 | FillHisto2D(Form("dEdxDataNSigmaProtonAll%s",cutName->Data()),track->P(),nSigmaProtonUnsigned,1.0); | |
223 | FillHisto2D(Form("dEdxDataNSigmaElectronAll%s",cutName->Data()),track->P(),nSigmaElectronUnsigned,1.0); | |
224 | ||
0f70cf50 | 225 | bool unidentified = (!isProton && !isKaon && !isElectron && !isPion); |
49b25059 | 226 | if(cutset==1){//ITS dE/dx identification requires tighter cuts on the tracks and we don't gain much from that so we won't do it |
227 | unidentified = true; | |
228 | isPion=false; | |
229 | isElectron=false; | |
230 | isKaon=false; | |
231 | isProton=false; | |
232 | } | |
0f70cf50 | 233 | Float_t dEdx = track->GetTPCsignal(); |
234 | if(cutset==1) dEdx = track->GetITSsignal(); | |
235 | FillHisto2D(Form("dEdxDataAll%s",cutName->Data()),track->P(),dEdx,1.0); | |
641e1e0c | 236 | |
0f70cf50 | 237 | bool inPHOS = IsInPHOS(track); |
238 | bool inEMCAL = IsInEMCAL(track); | |
a02dfa56 | 239 | |
0f70cf50 | 240 | Float_t corrBkgd=0.0; |
241 | Float_t corrNotID=0.0; | |
49b25059 | 242 | Float_t corrNoID = fCorrections->GetNotIDCorrectionNoPID(track->Pt()); |
0f70cf50 | 243 | Float_t corrEff = 0.0; |
244 | Float_t corrEffNoID = 0.0; | |
49b25059 | 245 | if(cutset!=1){//TPC |
0f70cf50 | 246 | corrBkgd = fCorrections->GetBackgroundCorrectionTPC(track->Pt()); |
247 | corrEffNoID = fCorrections->GetTPCEfficiencyCorrectionHadron(track->Pt(),fCentBin); | |
248 | corrNotID = fCorrections->GetNotIDConstCorrectionTPC(); | |
249 | corrNoID = fCorrections->GetNotIDConstCorrectionTPCNoID(); | |
250 | } | |
251 | if(cutset==1){//ITS | |
252 | corrBkgd = fCorrections->GetBackgroundCorrectionITS(track->Pt()); | |
253 | corrEffNoID = fCorrections->GetITSEfficiencyCorrectionHadron(track->Pt(),fCentBin); | |
254 | corrNotID = fCorrections->GetNotIDConstCorrectionITS(); | |
255 | corrNoID = fCorrections->GetNotIDConstCorrectionITSNoID(); | |
256 | } | |
3c7f3e24 | 257 | if(fDataSet==20100||fDataSet==2011){ |
49b25059 | 258 | FillHisto2D("fbkgdVsCentralityBin",fCentBin,corrBkgd,1.0); |
259 | FillHisto2D("fnotIDVsCentralityBin",fCentBin,corrNotID,1.0); | |
260 | FillHisto2D("fpTcutVsCentralityBin",fCentBin,fCorrections->GetpTCutCorrectionTPC(),1.0); | |
261 | if(fCorrHadEtFullAcceptanceTPC>0.0) FillHisto2D("fneutralVsCentralityBin",fCentBin,1.0/fCorrHadEtFullAcceptanceTPC,1.0); | |
262 | if(fCorrections->GetNeutralCorrection()>0.0) FillHisto2D("ConstantCorrectionsVsCentralityBin",fCentBin,1.0/fCorrections->GetNeutralCorrection(),1.0); | |
263 | } | |
0f70cf50 | 264 | Float_t et = 0.0; |
265 | Float_t etNoID = Et(track->P(),track->Theta(),fgPiPlusCode,track->Charge()); | |
266 | Float_t etpartialcorrected = 0.0; | |
267 | Float_t etpartialcorrectedPion = 0.0; | |
268 | Float_t etpartialcorrectedKaon = 0.0; | |
269 | Float_t etpartialcorrectedProton = 0.0; | |
270 | Float_t etpartialcorrectedNoID = corrNoID*corrBkgd*corrEffNoID*etNoID; | |
271 | FillHisto2D(Form("EtDataRaw%sNoID",cutName->Data()),track->Pt(),track->Eta(),etpartialcorrectedNoID); | |
3ce6b879 | 272 | |
0f70cf50 | 273 | if(isPion){ |
274 | FillHisto2D(Form("dEdxDataPion%s",cutName->Data()),track->P(),dEdx,1.0); | |
660b176a | 275 | FillHisto2D(Form("dEdxDataNSigmaPion%s",cutName->Data()),track->P(),nSigmaPionUnsigned,1.0); |
0f70cf50 | 276 | et = Et(track->P(),track->Theta(),fgPiPlusCode,track->Charge()); |
49b25059 | 277 | if(cutset==0){corrEff = fCorrections->GetTPCEfficiencyCorrectionPion(track->Pt(),fCentBin);} |
0f70cf50 | 278 | etpartialcorrected = et*corrBkgd*corrEff*corrNotID; |
3c7f3e24 | 279 | if(corrEff>0.0&&(fDataSet==20100||fDataSet==2011))FillHisto2D("feffPionVsCentralityBin",fCentBin,1.0/corrEff,1.0); |
0f70cf50 | 280 | if(track->Charge()>0.0){ |
281 | FillHisto2D(Form("EtDataRaw%sPiPlus",cutName->Data()),track->Pt(),track->Eta(),et); | |
282 | FillHisto2D(Form("EtDataCorrected%sPiPlus",cutName->Data()),track->Pt(),track->Eta(),etpartialcorrected); | |
3ce6b879 | 283 | } |
0f70cf50 | 284 | else{ |
285 | FillHisto2D(Form("EtDataRaw%sPiMinus",cutName->Data()),track->Pt(),track->Eta(),et); | |
286 | FillHisto2D(Form("EtDataCorrected%sPiMinus",cutName->Data()),track->Pt(),track->Eta(),etpartialcorrected); | |
3ce6b879 | 287 | } |
0f70cf50 | 288 | } |
289 | if(isKaon){ | |
290 | FillHisto2D(Form("dEdxDataKaon%s",cutName->Data()),track->P(),dEdx,1.0); | |
660b176a | 291 | FillHisto2D(Form("dEdxDataNSigmaKaon%s",cutName->Data()),track->P(),nSigmaKaonUnsigned,1.0); |
0f70cf50 | 292 | et = Et(track->P(),track->Theta(),fgKPlusCode,track->Charge()); |
293 | if(cutset==0){corrEff = fCorrections->GetTPCEfficiencyCorrectionKaon(track->Pt(),fCentBin);} | |
0f70cf50 | 294 | etpartialcorrected = et*corrBkgd*corrEff*corrNotID; |
3c7f3e24 | 295 | if(corrEff>0.0&&(fDataSet==20100||fDataSet==2011))FillHisto2D("feffKaonVsCentralityBin",fCentBin,1.0/corrEff,1.0); |
3ce6b879 | 296 | |
0f70cf50 | 297 | if(track->Charge()>0.0){ |
298 | FillHisto2D(Form("EtDataRaw%sKPlus",cutName->Data()),track->Pt(),track->Eta(),et); | |
299 | FillHisto2D(Form("EtDataCorrected%sKPlus",cutName->Data()),track->Pt(),track->Eta(),etpartialcorrected); | |
3ce6b879 | 300 | } |
0f70cf50 | 301 | else{ |
302 | FillHisto2D(Form("EtDataRaw%sKMinus",cutName->Data()),track->Pt(),track->Eta(),et); | |
303 | FillHisto2D(Form("EtDataCorrected%sKMinus",cutName->Data()),track->Pt(),track->Eta(),etpartialcorrected); | |
3ce6b879 | 304 | } |
0f70cf50 | 305 | } |
306 | if(isProton){ | |
307 | FillHisto2D(Form("dEdxDataProton%s",cutName->Data()),track->P(),dEdx,1.0); | |
660b176a | 308 | FillHisto2D(Form("dEdxDataNSigmaProton%s",cutName->Data()),track->P(),nSigmaProtonUnsigned,1.0); |
0f70cf50 | 309 | et = Et(track->P(),track->Theta(),fgProtonCode,track->Charge()); |
310 | if(cutset==0){corrEff = fCorrections->GetTPCEfficiencyCorrectionProton(track->Pt(),fCentBin);} | |
0f70cf50 | 311 | etpartialcorrected = et*corrBkgd*corrEff*corrNotID; |
3c7f3e24 | 312 | if(corrEff>0.0&&(fDataSet==20100||fDataSet==2011))FillHisto2D("feffProtonVsCentralityBin",fCentBin,1.0/corrEff,1.0); |
0f70cf50 | 313 | |
314 | if(track->Charge()>0.0){ | |
315 | FillHisto2D(Form("EtDataRaw%sProton",cutName->Data()),track->Pt(),track->Eta(),et); | |
316 | FillHisto2D(Form("EtDataCorrected%sProton",cutName->Data()),track->Pt(),track->Eta(),etpartialcorrected); | |
3ce6b879 | 317 | } |
3d1099f3 | 318 | else{ |
0f70cf50 | 319 | FillHisto2D(Form("EtDataRaw%sAntiProton",cutName->Data()),track->Pt(),track->Eta(),et); |
320 | FillHisto2D(Form("EtDataCorrected%sAntiProton",cutName->Data()),track->Pt(),track->Eta(),etpartialcorrected); | |
0e866ddc | 321 | } |
3ce6b879 | 322 | } |
0f70cf50 | 323 | if(isElectron){ |
37827f90 | 324 | FillHisto2D(Form("dEdxDataElectron%s",cutName->Data()),track->P(),dEdx,1.0); |
660b176a | 325 | FillHisto2D(Form("dEdxDataNSigmaElectron%s",cutName->Data()),track->P(),nSigmaElectronUnsigned,1.0); |
0f70cf50 | 326 | } |
327 | if(unidentified){ | |
49b25059 | 328 | if(isPion) cerr<<"I should not be here!! AliAnalysisHadEtReconstructed 273"<<endl; |
0f70cf50 | 329 | FillHisto2D(Form("dEdxDataUnidentified%s",cutName->Data()),track->P(),dEdx,1.0); |
330 | et = Et(track->P(),track->Theta(),fgPiPlusCode,track->Charge()); | |
331 | Float_t etProton = Et(track->P(),track->Theta(),fgProtonCode,track->Charge()); | |
332 | Float_t etKaon = Et(track->P(),track->Theta(),fgKPlusCode,track->Charge()); | |
3c7f3e24 | 333 | if(corrEff>0.0&&(fDataSet==20100||fDataSet==2011))FillHisto2D("feffHadronVsCentralityBin",fCentBin,1.0/corrEff,1.0); |
0f70cf50 | 334 | etpartialcorrected = et*corrBkgd*corrEffNoID*corrNotID; |
335 | etpartialcorrectedPion = et*corrBkgd*corrEffNoID; | |
336 | etpartialcorrectedProton = etProton*corrBkgd*corrEffNoID; | |
337 | etpartialcorrectedKaon = etKaon*corrBkgd*corrEffNoID; | |
0f70cf50 | 338 | FillHisto2D(Form("EtDataCorrected%sUnidentified",cutName->Data()),track->Pt(),track->Eta(),etpartialcorrected); |
339 | } | |
340 | else{ | |
341 | etpartialcorrectedPion = etpartialcorrected; | |
342 | etpartialcorrectedKaon = etpartialcorrected; | |
343 | etpartialcorrectedProton = etpartialcorrected; | |
344 | } | |
345 | if(!isTPC){ | |
346 | etpartialcorrected = etpartialcorrectedNoID;//Not using PID for ITS | |
347 | } | |
348 | AddEt(et,etNoID,etpartialcorrected,etpartialcorrectedPion,etpartialcorrectedProton,etpartialcorrectedKaon,etpartialcorrectedNoID,track->Pt(),isTPC,inPHOS,inEMCAL); | |
3ce6b879 | 349 | } |
0f70cf50 | 350 | } |
351 | delete list; | |
352 | } | |
6246cab3 | 353 | |
354 | Int_t nondiff = 0;//(Int_t) AliPWG0Helper::kND; | |
355 | Int_t doublediff = 0;//(Int_t) AliPWG0Helper::kDD; | |
356 | Int_t singlediff = 0;//(Int_t) AliPWG0Helper::kSD; | |
3c7f3e24 | 357 | if(fDataSet!=20100 && fDataSet!=2011){ |
6246cab3 | 358 | nondiff = (Int_t) AliPWG0Helper::kND; |
359 | doublediff = (Int_t) AliPWG0Helper::kDD; | |
360 | singlediff = (Int_t) AliPWG0Helper::kSD; | |
361 | } | |
3966012c | 362 | // cout<<"event type "<<eventtype<<" nondiff event type "<<nondiff<<" data set "<<fDataSet<<" good event "<<fGoodEvent<<endl; |
363 | if((eventtype == nondiff|| fDataSet==20100 || fDataSet==2011) && fGoodEvent){ | |
364 | //cout<<"Filling "<<endl; | |
2c0680a5 | 365 | FillHisto1D("RecoHadEtFullAcceptanceTPCND",GetCorrectedHadEtFullAcceptanceTPC(),1.0); |
132872f7 | 366 | FillHisto1D("RecoPiKPEtFullAcceptanceTPCND",GetCorrectedPiKPEtFullAcceptanceTPC(),1.0); |
2c0680a5 | 367 | FillHisto1D("RecoTotEtFullAcceptanceTPCND",GetCorrectedTotEtFullAcceptanceTPC(),1.0); |
368 | FillHisto1D("RecoHadEtFullAcceptanceITSND",GetCorrectedHadEtFullAcceptanceITS(),1.0); | |
132872f7 | 369 | FillHisto1D("RecoPiKPEtFullAcceptanceITSND",GetCorrectedPiKPEtFullAcceptanceITS(),1.0); |
2c0680a5 | 370 | FillHisto1D("RecoTotEtFullAcceptanceITSND",GetCorrectedTotEtFullAcceptanceITS(),1.0); |
371 | FillHisto1D("RecoHadEtFullAcceptanceTPCNoPIDND",GetCorrectedHadEtFullAcceptanceTPCNoPID(),1.0); | |
132872f7 | 372 | FillHisto1D("RecoPiKPEtFullAcceptanceTPCNoPIDND",GetCorrectedPiKPEtFullAcceptanceTPCNoPID(),1.0); |
2c0680a5 | 373 | FillHisto1D("RecoTotEtFullAcceptanceTPCNoPIDND",GetCorrectedTotEtFullAcceptanceTPCNoPID(),1.0); |
374 | FillHisto1D("RecoHadEtFullAcceptanceITSNoPIDND",GetCorrectedHadEtFullAcceptanceITSNoPID(),1.0); | |
132872f7 | 375 | FillHisto1D("RecoPiKPEtFullAcceptanceITSNoPIDND",GetCorrectedPiKPEtFullAcceptanceITSNoPID(),1.0); |
2c0680a5 | 376 | FillHisto1D("RecoTotEtFullAcceptanceITSNoPIDND",GetCorrectedTotEtFullAcceptanceITSNoPID(),1.0); |
32ee0cd1 | 377 | |
378 | FillHisto1D("RecoRawEtFullAcceptanceTPCND",GetRawEtFullAcceptanceTPC(),1.0); | |
379 | FillHisto1D("RecoRawEtFullAcceptanceTPCNoPIDND",GetRawEtFullAcceptanceTPCNoPID(),1.0); | |
380 | FillHisto1D("RecoRawEtFullAcceptanceITSND",GetRawEtFullAcceptanceITS(),1.0); | |
381 | FillHisto1D("RecoRawEtFullAcceptanceITSNoPIDND",GetRawEtFullAcceptanceITSNoPID(),1.0); | |
382 | ||
2c0680a5 | 383 | } |
384 | if(eventtype == doublediff){ | |
385 | FillHisto1D("RecoHadEtFullAcceptanceTPCDD",GetCorrectedHadEtFullAcceptanceTPC(),1.0); | |
132872f7 | 386 | FillHisto1D("RecoPiKPEtFullAcceptanceTPCDD",GetCorrectedPiKPEtFullAcceptanceTPC(),1.0); |
2c0680a5 | 387 | FillHisto1D("RecoTotEtFullAcceptanceTPCDD",GetCorrectedTotEtFullAcceptanceTPC(),1.0); |
132872f7 | 388 | FillHisto1D("RecoPiKPEtFullAcceptanceITSDD",GetCorrectedPiKPEtFullAcceptanceITS(),1.0); |
2c0680a5 | 389 | FillHisto1D("RecoHadEtFullAcceptanceITSDD",GetCorrectedHadEtFullAcceptanceITS(),1.0); |
390 | FillHisto1D("RecoTotEtFullAcceptanceITSDD",GetCorrectedTotEtFullAcceptanceITS(),1.0); | |
391 | FillHisto1D("RecoHadEtFullAcceptanceTPCNoPIDDD",GetCorrectedHadEtFullAcceptanceTPCNoPID(),1.0); | |
132872f7 | 392 | FillHisto1D("RecoPiKPEtFullAcceptanceTPCNoPIDDD",GetCorrectedPiKPEtFullAcceptanceTPCNoPID(),1.0); |
2c0680a5 | 393 | FillHisto1D("RecoTotEtFullAcceptanceTPCNoPIDDD",GetCorrectedTotEtFullAcceptanceTPCNoPID(),1.0); |
394 | FillHisto1D("RecoHadEtFullAcceptanceITSNoPIDDD",GetCorrectedHadEtFullAcceptanceITSNoPID(),1.0); | |
132872f7 | 395 | FillHisto1D("RecoPiKPEtFullAcceptanceITSNoPIDDD",GetCorrectedPiKPEtFullAcceptanceITSNoPID(),1.0); |
2c0680a5 | 396 | FillHisto1D("RecoTotEtFullAcceptanceITSNoPIDDD",GetCorrectedTotEtFullAcceptanceITSNoPID(),1.0); |
32ee0cd1 | 397 | FillHisto1D("RecoRawEtFullAcceptanceTPCDD",GetRawEtFullAcceptanceTPC(),1.0); |
398 | FillHisto1D("RecoRawEtFullAcceptanceTPCNoPIDDD",GetRawEtFullAcceptanceTPCNoPID(),1.0); | |
399 | FillHisto1D("RecoRawEtFullAcceptanceITSDD",GetRawEtFullAcceptanceITS(),1.0); | |
400 | FillHisto1D("RecoRawEtFullAcceptanceITSNoPIDDD",GetRawEtFullAcceptanceITSNoPID(),1.0);//ND | |
2c0680a5 | 401 | } |
402 | if(eventtype == singlediff){ | |
132872f7 | 403 | FillHisto1D("RecoPiKPEtFullAcceptanceTPCSD",GetCorrectedPiKPEtFullAcceptanceTPC(),1.0); |
2c0680a5 | 404 | FillHisto1D("RecoHadEtFullAcceptanceTPCSD",GetCorrectedHadEtFullAcceptanceTPC(),1.0); |
405 | FillHisto1D("RecoTotEtFullAcceptanceTPCSD",GetCorrectedTotEtFullAcceptanceTPC(),1.0); | |
406 | FillHisto1D("RecoHadEtFullAcceptanceITSSD",GetCorrectedHadEtFullAcceptanceITS(),1.0); | |
132872f7 | 407 | FillHisto1D("RecoPiKPEtFullAcceptanceITSSD",GetCorrectedPiKPEtFullAcceptanceITS(),1.0); |
2c0680a5 | 408 | FillHisto1D("RecoTotEtFullAcceptanceITSSD",GetCorrectedTotEtFullAcceptanceITS(),1.0); |
409 | FillHisto1D("RecoHadEtFullAcceptanceTPCNoPIDSD",GetCorrectedHadEtFullAcceptanceTPCNoPID(),1.0); | |
132872f7 | 410 | FillHisto1D("RecoPiKPEtFullAcceptanceTPCNoPIDSD",GetCorrectedPiKPEtFullAcceptanceTPCNoPID(),1.0); |
2c0680a5 | 411 | FillHisto1D("RecoTotEtFullAcceptanceTPCNoPIDSD",GetCorrectedTotEtFullAcceptanceTPCNoPID(),1.0); |
412 | FillHisto1D("RecoHadEtFullAcceptanceITSNoPIDSD",GetCorrectedHadEtFullAcceptanceITSNoPID(),1.0); | |
132872f7 | 413 | FillHisto1D("RecoPiKPEtFullAcceptanceITSNoPIDSD",GetCorrectedPiKPEtFullAcceptanceITSNoPID(),1.0); |
2c0680a5 | 414 | FillHisto1D("RecoTotEtFullAcceptanceITSNoPIDSD",GetCorrectedTotEtFullAcceptanceITSNoPID(),1.0); |
32ee0cd1 | 415 | FillHisto1D("RecoRawEtFullAcceptanceTPCSD",GetRawEtFullAcceptanceTPC(),1.0); |
416 | FillHisto1D("RecoRawEtFullAcceptanceTPCNoPIDSD",GetRawEtFullAcceptanceTPCNoPID(),1.0); | |
417 | FillHisto1D("RecoRawEtFullAcceptanceITSSD",GetRawEtFullAcceptanceITS(),1.0); | |
418 | FillHisto1D("RecoRawEtFullAcceptanceITSNoPIDSD",GetRawEtFullAcceptanceITSNoPID(),1.0); | |
2c0680a5 | 419 | } |
132872f7 | 420 | if(fGoodEvent){ |
c98582cc | 421 | FillHisto1D("RecoPiKPEtFullAcceptanceTPC",GetCorrectedPiKPEtFullAcceptanceTPC(),1.0); |
422 | FillHisto1D("RecoPiKPEtFullAcceptanceITS",GetCorrectedPiKPEtFullAcceptanceITS(),1.0); | |
423 | FillHisto1D("RecoPiKPEtFullAcceptanceTPCNoPID",GetCorrectedPiKPEtFullAcceptanceTPCNoPID(),1.0); | |
424 | FillHisto1D("RecoPiKPEtFullAcceptanceITSNoPID",GetCorrectedPiKPEtFullAcceptanceITSNoPID(),1.0); | |
132872f7 | 425 | FillHisto1D("RecoHadEtFullAcceptanceTPC",GetCorrectedHadEtFullAcceptanceTPC(),1.0); |
426 | FillHisto1D("RecoTotEtFullAcceptanceTPC",GetCorrectedTotEtFullAcceptanceTPC(),1.0); | |
427 | FillHisto1D("RecoHadEtFullAcceptanceTPCAssumingPion",GetCorrectedHadEtFullAcceptanceTPCAssumingPion(),1.0); | |
428 | FillHisto1D("RecoHadEtFullAcceptanceTPCAssumingProton",GetCorrectedHadEtFullAcceptanceTPCAssumingProton(),1.0); | |
429 | FillHisto1D("RecoHadEtFullAcceptanceTPCAssumingKaon",GetCorrectedHadEtFullAcceptanceTPCAssumingKaon(),1.0); | |
430 | FillHisto1D("RecoHadEtEMCALAcceptanceTPC",GetCorrectedHadEtEMCALAcceptanceTPC(),1.0); | |
431 | FillHisto1D("RecoTotEtEMCALAcceptanceTPC",GetCorrectedTotEtEMCALAcceptanceTPC(),1.0); | |
432 | FillHisto1D("RecoHadEtPHOSAcceptanceTPC",GetCorrectedHadEtPHOSAcceptanceTPC(),1.0); | |
433 | FillHisto1D("RecoTotEtPHOSAcceptanceTPC",GetCorrectedTotEtPHOSAcceptanceTPC(),1.0); | |
434 | FillHisto1D("RecoHadEtFullAcceptanceTPCNoPID",GetCorrectedHadEtFullAcceptanceTPCNoPID(),1.0); | |
435 | FillHisto1D("RecoTotEtFullAcceptanceTPCNoPID",GetCorrectedTotEtFullAcceptanceTPCNoPID(),1.0); | |
436 | FillHisto1D("RecoHadEtEMCALAcceptanceTPCNoPID",GetCorrectedHadEtEMCALAcceptanceTPCNoPID(),1.0); | |
437 | FillHisto1D("RecoTotEtEMCALAcceptanceTPCNoPID",GetCorrectedTotEtEMCALAcceptanceTPCNoPID(),1.0); | |
438 | FillHisto1D("RecoHadEtPHOSAcceptanceTPCNoPID",GetCorrectedHadEtPHOSAcceptanceTPCNoPID(),1.0); | |
439 | FillHisto1D("RecoTotEtPHOSAcceptanceTPCNoPID",GetCorrectedTotEtPHOSAcceptanceTPCNoPID(),1.0); | |
440 | FillHisto1D("RecoHadEtFullAcceptanceITS",GetCorrectedHadEtFullAcceptanceITS(),1.0); | |
441 | FillHisto1D("RecoHadEtFullAcceptanceITSAssumingPion",GetCorrectedHadEtFullAcceptanceITSAssumingPion(),1.0); | |
442 | FillHisto1D("RecoHadEtFullAcceptanceITSAssumingProton",GetCorrectedHadEtFullAcceptanceITSAssumingProton(),1.0); | |
443 | FillHisto1D("RecoHadEtFullAcceptanceITSAssumingKaon",GetCorrectedHadEtFullAcceptanceITSAssumingKaon(),1.0); | |
444 | FillHisto1D("RecoTotEtFullAcceptanceITS",GetCorrectedTotEtFullAcceptanceITS(),1.0); | |
445 | FillHisto1D("RecoHadEtEMCALAcceptanceITS",GetCorrectedHadEtEMCALAcceptanceITS(),1.0); | |
446 | FillHisto1D("RecoTotEtEMCALAcceptanceITS",GetCorrectedTotEtEMCALAcceptanceITS(),1.0); | |
447 | FillHisto1D("RecoHadEtPHOSAcceptanceITS",GetCorrectedHadEtPHOSAcceptanceITS(),1.0); | |
448 | FillHisto1D("RecoTotEtPHOSAcceptanceITS",GetCorrectedTotEtPHOSAcceptanceITS(),1.0); | |
449 | FillHisto1D("RecoHadEtFullAcceptanceITSNoPID",GetCorrectedHadEtFullAcceptanceITSNoPID(),1.0); | |
450 | FillHisto1D("RecoTotEtFullAcceptanceITSNoPID",GetCorrectedTotEtFullAcceptanceITSNoPID(),1.0); | |
451 | FillHisto1D("RecoHadEtEMCALAcceptanceITSNoPID",GetCorrectedHadEtEMCALAcceptanceITSNoPID(),1.0); | |
452 | FillHisto1D("RecoTotEtEMCALAcceptanceITSNoPID",GetCorrectedTotEtEMCALAcceptanceITSNoPID(),1.0); | |
453 | FillHisto1D("RecoHadEtPHOSAcceptanceITSNoPID",GetCorrectedHadEtPHOSAcceptanceITSNoPID(),1.0); | |
454 | FillHisto1D("RecoTotEtPHOSAcceptanceITSNoPID",GetCorrectedTotEtPHOSAcceptanceITSNoPID(),1.0); | |
455 | ||
456 | FillHisto1D("RecoRawEtFullAcceptanceTPC",GetRawEtFullAcceptanceTPC(),1.0); | |
457 | FillHisto1D("RecoRawEtEMCALAcceptanceTPC",GetRawEtEMCALAcceptanceTPC(),1.0); | |
458 | FillHisto1D("RecoRawEtPHOSAcceptanceTPC",GetRawEtPHOSAcceptanceTPC(),1.0); | |
459 | FillHisto1D("RecoRawEtFullAcceptanceTPCNoPID",GetRawEtFullAcceptanceTPCNoPID(),1.0); | |
460 | FillHisto1D("RecoRawEtEMCALAcceptanceTPCNoPID",GetRawEtEMCALAcceptanceTPCNoPID(),1.0); | |
461 | FillHisto1D("RecoRawEtPHOSAcceptanceTPCNoPID",GetRawEtPHOSAcceptanceTPCNoPID(),1.0); | |
462 | FillHisto1D("RecoRawEtFullAcceptanceITS",GetRawEtFullAcceptanceITS(),1.0); | |
463 | FillHisto1D("RecoRawEtEMCALAcceptanceITS",GetRawEtEMCALAcceptanceITS(),1.0); | |
464 | FillHisto1D("RecoRawEtPHOSAcceptanceITS",GetRawEtPHOSAcceptanceITS(),1.0); | |
465 | FillHisto1D("RecoRawEtFullAcceptanceITSNoPID",GetRawEtFullAcceptanceITSNoPID(),1.0); | |
466 | FillHisto1D("RecoRawEtEMCALAcceptanceITSNoPID",GetRawEtEMCALAcceptanceITSNoPID(),1.0); | |
467 | FillHisto1D("RecoRawEtPHOSAcceptanceITSNoPID",GetRawEtPHOSAcceptanceITSNoPID(),1.0); | |
468 | if(fCentBin>-1){//if we have Pb+Pb and found a centrality bin | |
469 | FillHisto1D(Form("RecoHadEtFullAcceptanceTPCCB%i",fCentBin),GetCorrectedHadEtFullAcceptanceTPC(),1.0); | |
470 | FillHisto1D(Form("RecoTotEtFullAcceptanceTPCCB%i",fCentBin),GetCorrectedTotEtFullAcceptanceTPC(),1.0); | |
471 | FillHisto1D(Form("RecoHadEtFullAcceptanceITSCB%i",fCentBin),GetCorrectedHadEtFullAcceptanceITS(),1.0); | |
472 | FillHisto1D(Form("RecoTotEtFullAcceptanceITSCB%i",fCentBin),GetCorrectedTotEtFullAcceptanceITS(),1.0); | |
473 | FillHisto1D(Form("RecoRawEtFullAcceptanceTPCCB%i",fCentBin),GetRawEtFullAcceptanceTPC(),1.0); | |
474 | FillHisto1D(Form("RecoRawEtFullAcceptanceITSCB%i",fCentBin),GetRawEtFullAcceptanceITS(),1.0); | |
475 | } | |
0f70cf50 | 476 | } |
660b176a | 477 | // delete pID; |
0f70cf50 | 478 | delete strTPC; |
479 | delete strITS; | |
480 | delete strTPCITS; | |
49b25059 | 481 | // cout<<"Reconstructed pi/k/p et "<<GetCorrectedPiKPEtFullAcceptanceTPC()<<endl; |
0f70cf50 | 482 | return 1; |
641e1e0c | 483 | } |
3d1099f3 | 484 | void AliAnalysisHadEtReconstructed::AddEt(Float_t rawEt, Float_t rawEtNoPID, Float_t corrEt, Float_t corrEtPion, Float_t corrEtProton, Float_t corrEtKaon, Float_t corrEtNoPID, Float_t pt, Bool_t IsTPC, Bool_t InPHOS, Bool_t InEMCAL) {//Adding Et to each of the variables that tracks et event by event |
d6214a64 | 485 | if(pt>=AliAnalysisHadEt::fgPtTPCCutOff && IsTPC){//TPC tracks |
486 | //adding to the raw Et | |
d6214a64 | 487 | fRawEtFullAcceptanceTPC += rawEt; |
488 | if(InPHOS)fRawEtPHOSAcceptanceTPC += rawEt; | |
489 | if(InEMCAL)fRawEtEMCALAcceptanceTPC += rawEt; | |
490 | fRawEtFullAcceptanceTPCNoPID += rawEtNoPID; | |
491 | if(InPHOS)fRawEtPHOSAcceptanceTPCNoPID += rawEtNoPID; | |
492 | if(InEMCAL)fRawEtEMCALAcceptanceTPCNoPID += rawEtNoPID; | |
493 | //adding to the corrected Et | |
49b25059 | 494 | fCorrectedHadEtFullAcceptanceTPC += corrEt;//the pi/k/p et |
3d1099f3 | 495 | fCorrectedHadEtFullAcceptanceTPCAssumingPion += corrEtPion; |
496 | fCorrectedHadEtFullAcceptanceTPCAssumingProton += corrEtProton; | |
497 | fCorrectedHadEtFullAcceptanceTPCAssumingKaon += corrEtKaon; | |
d6214a64 | 498 | if(InPHOS)fCorrectedHadEtPHOSAcceptanceTPC += corrEt; |
499 | if(InEMCAL)fCorrectedHadEtEMCALAcceptanceTPC += corrEt; | |
500 | fCorrectedHadEtFullAcceptanceTPCNoPID += corrEtNoPID; | |
501 | if(InPHOS)fCorrectedHadEtPHOSAcceptanceTPCNoPID += corrEtNoPID; | |
502 | if(InEMCAL)fCorrectedHadEtEMCALAcceptanceTPCNoPID += corrEtNoPID; | |
503 | } | |
6246cab3 | 504 | //if(pt<AliAnalysisHadEt::fgPtTPCCutOff &&pt>=AliAnalysisHadEt::fgPtITSCutOff && !IsTPC){//ITS tracks |
505 | //If we use standalone tracks - not pure standalone tracks - the only tracks we get are ones that were missed by the TPC+ITS tracking. Therefore we don't need to add a momentum cut-off | |
506 | if(pt<AliAnalysisHadEt::fgPtTPCCutOff && !IsTPC){//ITS tracks | |
d6214a64 | 507 | //adding to the raw Et |
508 | fRawEtFullAcceptanceITS += rawEt; | |
509 | if(InPHOS)fRawEtPHOSAcceptanceITS += rawEt; | |
510 | if(InEMCAL)fRawEtEMCALAcceptanceITS += rawEt; | |
511 | fRawEtFullAcceptanceITSNoPID += rawEtNoPID; | |
512 | if(InPHOS)fRawEtPHOSAcceptanceITSNoPID += rawEtNoPID; | |
513 | if(InEMCAL)fRawEtEMCALAcceptanceITSNoPID += rawEtNoPID; | |
514 | //adding to the corrected Et | |
515 | fCorrectedHadEtFullAcceptanceITS += corrEt; | |
3d1099f3 | 516 | fCorrectedHadEtFullAcceptanceITSAssumingPion += corrEtPion; |
517 | fCorrectedHadEtFullAcceptanceITSAssumingProton += corrEtProton; | |
518 | fCorrectedHadEtFullAcceptanceITSAssumingKaon += corrEtKaon; | |
d6214a64 | 519 | if(InPHOS)fCorrectedHadEtPHOSAcceptanceITS += corrEt; |
520 | if(InEMCAL)fCorrectedHadEtEMCALAcceptanceITS += corrEt; | |
521 | fCorrectedHadEtFullAcceptanceITSNoPID += corrEtNoPID; | |
522 | if(InPHOS)fCorrectedHadEtPHOSAcceptanceITSNoPID += corrEtNoPID; | |
523 | if(InEMCAL)fCorrectedHadEtEMCALAcceptanceITSNoPID += corrEtNoPID; | |
524 | } | |
525 | } | |
641e1e0c | 526 | |
d6214a64 | 527 | Bool_t AliAnalysisHadEtReconstructed::IsInPHOS(AliESDtrack *track){//This function will need to be elaborated on later to include PHOS dead channels |
6a0df78a | 528 | if(!track){ |
529 | cout<<"Error: Track does not exist!!"<<endl; | |
530 | return kFALSE; | |
531 | } | |
d6214a64 | 532 | return TMath::Abs(track->Eta()) < fCuts->GetGeometryPhosEtaAccCut()//in eta acceptance |
533 | && track->Phi()*180.0/TMath::Pi() > fCuts->GetGeometryPhosPhiAccMinCut()//greater than the minimum phi | |
534 | && track->Phi()*180.0/TMath::Pi() < fCuts->GetGeometryPhosPhiAccMaxCut();//less than the maximum phi | |
535 | } | |
536 | Bool_t AliAnalysisHadEtReconstructed::IsInEMCAL(AliESDtrack *track){//This function will need to be elaborated on later to include EMCAL dead channels | |
6a0df78a | 537 | if(!track){ |
538 | cout<<"Error: Track does not exist!!"<<endl; | |
539 | return kFALSE; | |
540 | } | |
d6214a64 | 541 | return TMath::Abs(track->Eta()) < fCuts->GetGeometryEmcalEtaAccCut()//in eta acceptance |
542 | && track->Phi()*180.0/TMath::Pi() > fCuts->GetGeometryEmcalPhiAccMinCut()//greater than the minimum phi | |
543 | && track->Phi()*180.0/TMath::Pi() < fCuts->GetGeometryEmcalPhiAccMaxCut();//less than the maximum phi | |
544 | } | |
545 | Bool_t AliAnalysisHadEtReconstructed::CheckGoodVertex(AliVParticle* track) | |
cf6522d1 | 546 | { // check vertex |
641e1e0c | 547 | |
0f70cf50 | 548 | Float_t bxy = 999.; |
549 | Float_t bz = 999.; | |
550 | if(!track){ | |
551 | AliError("ERROR: no track"); | |
552 | return kFALSE; | |
553 | } | |
554 | AliESDtrack *esdTrack = dynamic_cast<AliESDtrack*>(track); | |
555 | if(!esdTrack){ | |
556 | AliError("ERROR: no track"); | |
557 | return kFALSE; | |
558 | } | |
559 | esdTrack->GetImpactParametersTPC(bxy,bz); | |
641e1e0c | 560 | |
0f70cf50 | 561 | bool status = (TMath::Abs(track->Xv()) < fCuts->GetReconstructedVertexXCut()) && |
562 | (TMath::Abs(track->Yv()) < fCuts->GetReconstructedVertexYCut()) && | |
563 | (TMath::Abs(track->Zv()) < fCuts->GetReconstructedVertexZCut()) && | |
564 | (TMath::Abs(bxy) < fCuts->GetReconstructedIPxyCut()) && | |
565 | (TMath::Abs(bz) < fCuts->GetReconstructedIPzCut()); | |
641e1e0c | 566 | |
0f70cf50 | 567 | return status; |
641e1e0c | 568 | } |
569 | ||
570 | void AliAnalysisHadEtReconstructed::Init() | |
cf6522d1 | 571 | { // Init |
4b40b2b1 | 572 | AliAnalysisHadEt::Init(); |
964c8159 | 573 | if(fCorrections){ |
464aa50c | 574 | fCorrTotEtFullAcceptanceTPC = fCorrections->GetConstantCorrections(kTRUE,fgPtTPCCutOff,"Full"); |
575 | fCorrTotEtFullAcceptanceITS = fCorrections->GetConstantCorrections(kTRUE,fgPtITSCutOff,"Full"); | |
576 | fCorrHadEtFullAcceptanceTPC = fCorrections->GetConstantCorrections(kFALSE,fgPtTPCCutOff,"Full"); | |
577 | fCorrHadEtFullAcceptanceITS = fCorrections->GetConstantCorrections(kFALSE,fgPtITSCutOff,"Full"); | |
132872f7 | 578 | fCorrPiKPEtFullAcceptanceTPC = fCorrections->GetConstantCorrections(kFALSE,fgPtTPCCutOff,"PiKP"); |
579 | fCorrPiKPEtFullAcceptanceITS = fCorrections->GetConstantCorrections(kFALSE,fgPtITSCutOff,"PiKP"); | |
464aa50c | 580 | fCorrTotEtEMCALAcceptanceTPC = fCorrections->GetConstantCorrections(kTRUE,fgPtTPCCutOff,"EMCAL"); |
581 | fCorrTotEtEMCALAcceptanceITS = fCorrections->GetConstantCorrections(kTRUE,fgPtITSCutOff,"EMCAL"); | |
582 | fCorrHadEtEMCALAcceptanceTPC = fCorrections->GetConstantCorrections(kFALSE,fgPtTPCCutOff,"EMCAL"); | |
583 | fCorrHadEtEMCALAcceptanceITS = fCorrections->GetConstantCorrections(kFALSE,fgPtITSCutOff,"EMCAL"); | |
584 | fCorrTotEtPHOSAcceptanceTPC = fCorrections->GetConstantCorrections(kTRUE,fgPtTPCCutOff,"PHOS"); | |
585 | fCorrTotEtPHOSAcceptanceITS = fCorrections->GetConstantCorrections(kTRUE,fgPtITSCutOff,"PHOS"); | |
586 | fCorrHadEtPHOSAcceptanceTPC = fCorrections->GetConstantCorrections(kFALSE,fgPtTPCCutOff,"PHOS"); | |
587 | fCorrHadEtPHOSAcceptanceITS = fCorrections->GetConstantCorrections(kFALSE,fgPtITSCutOff,"PHOS"); | |
964c8159 | 588 | } |
589 | else{ | |
590 | cout<<"Warning! You have not set corrections. Your code will crash. You have to set the corrections."<<endl; | |
3ce6b879 | 591 | } |
641e1e0c | 592 | } |
593 | ||
464aa50c | 594 | void AliAnalysisHadEtReconstructed::ResetEventValues(){//resetting event by event et's |
d6214a64 | 595 | AliAnalysisHadEt::ResetEventValues(); |
0f70cf50 | 596 | fCorrectedHadEtFullAcceptanceTPCNoPID=0.0; |
597 | fCorrectedHadEtFullAcceptanceITSNoPID=0.0; | |
598 | fCorrectedHadEtEMCALAcceptanceTPCNoPID=0.0; | |
599 | fCorrectedHadEtEMCALAcceptanceITSNoPID=0.0; | |
600 | fCorrectedHadEtPHOSAcceptanceTPCNoPID=0.0; | |
601 | fCorrectedHadEtPHOSAcceptanceITSNoPID=0.0; | |
602 | fCorrectedHadEtFullAcceptanceTPC=0.0; | |
603 | fCorrectedHadEtFullAcceptanceITS=0.0; | |
604 | fCorrectedHadEtFullAcceptanceTPCAssumingPion=0.0; | |
605 | fCorrectedHadEtFullAcceptanceITSAssumingPion=0.0; | |
606 | fCorrectedHadEtFullAcceptanceTPCAssumingProton=0.0; | |
607 | fCorrectedHadEtFullAcceptanceITSAssumingProton=0.0; | |
608 | fCorrectedHadEtFullAcceptanceTPCAssumingKaon=0.0; | |
609 | fCorrectedHadEtFullAcceptanceITSAssumingKaon=0.0; | |
610 | fCorrectedHadEtEMCALAcceptanceTPC=0.0; | |
611 | fCorrectedHadEtEMCALAcceptanceITS=0.0; | |
612 | fCorrectedHadEtPHOSAcceptanceTPC=0.0; | |
613 | fCorrectedHadEtPHOSAcceptanceITS=0.0; | |
614 | fRawEtFullAcceptanceTPC=0.0; | |
615 | fRawEtFullAcceptanceITS=0.0; | |
616 | fRawEtEMCALAcceptanceTPC=0.0; | |
617 | fRawEtEMCALAcceptanceITS=0.0; | |
618 | fRawEtPHOSAcceptanceTPC=0.0; | |
619 | fRawEtPHOSAcceptanceITS=0.0; | |
620 | fRawEtFullAcceptanceTPCNoPID=0.0; | |
621 | fRawEtFullAcceptanceITSNoPID=0.0; | |
622 | fRawEtEMCALAcceptanceTPCNoPID=0.0; | |
623 | fRawEtEMCALAcceptanceITSNoPID=0.0; | |
624 | fRawEtPHOSAcceptanceTPCNoPID=0.0; | |
625 | fRawEtPHOSAcceptanceITSNoPID=0.0; | |
d6214a64 | 626 | |
0f70cf50 | 627 | if(TMath::Abs(fCorrTotEtFullAcceptanceTPC)<1e-3){ |
628 | if (fConfigFile.Length()) { | |
629 | cout<<"Warning: Rereading fCorrections file..."<<endl; | |
630 | gROOT->LoadMacro(fConfigFile); | |
631 | fCorrections = (AliAnalysisHadEtCorrections *) gInterpreter->ProcessLine("ConfigHadEtAnalysis()"); | |
632 | fCorrTotEtFullAcceptanceTPC = fCorrections->GetConstantCorrections(kTRUE,fgPtTPCCutOff,"Full"); | |
633 | fCorrTotEtFullAcceptanceITS = fCorrections->GetConstantCorrections(kTRUE,fgPtITSCutOff,"Full"); | |
634 | fCorrHadEtFullAcceptanceTPC = fCorrections->GetConstantCorrections(kFALSE,fgPtTPCCutOff,"Full"); | |
635 | fCorrHadEtFullAcceptanceITS = fCorrections->GetConstantCorrections(kFALSE,fgPtITSCutOff,"Full"); | |
132872f7 | 636 | fCorrPiKPEtFullAcceptanceTPC = fCorrections->GetConstantCorrections(kFALSE,fgPtTPCCutOff,"PiKP"); |
637 | fCorrPiKPEtFullAcceptanceITS = fCorrections->GetConstantCorrections(kFALSE,fgPtITSCutOff,"PiKP"); | |
0f70cf50 | 638 | fCorrTotEtEMCALAcceptanceTPC = fCorrections->GetConstantCorrections(kTRUE,fgPtTPCCutOff,"EMCAL"); |
639 | fCorrTotEtEMCALAcceptanceITS = fCorrections->GetConstantCorrections(kTRUE,fgPtITSCutOff,"EMCAL"); | |
640 | fCorrHadEtEMCALAcceptanceTPC = fCorrections->GetConstantCorrections(kFALSE,fgPtTPCCutOff,"EMCAL"); | |
641 | fCorrHadEtEMCALAcceptanceITS = fCorrections->GetConstantCorrections(kFALSE,fgPtITSCutOff,"EMCAL"); | |
642 | fCorrTotEtPHOSAcceptanceTPC = fCorrections->GetConstantCorrections(kTRUE,fgPtTPCCutOff,"PHOS"); | |
643 | fCorrTotEtPHOSAcceptanceITS = fCorrections->GetConstantCorrections(kTRUE,fgPtITSCutOff,"PHOS"); | |
644 | fCorrHadEtPHOSAcceptanceTPC = fCorrections->GetConstantCorrections(kFALSE,fgPtTPCCutOff,"PHOS"); | |
645 | fCorrHadEtPHOSAcceptanceITS = fCorrections->GetConstantCorrections(kFALSE,fgPtITSCutOff,"PHOS"); | |
646 | } | |
647 | else{cerr<<"Uh-oh! Unable to open configuration file!"<<endl;} | |
648 | } | |
d6214a64 | 649 | } |
464aa50c | 650 | void AliAnalysisHadEtReconstructed::CreateHistograms(){//Creating histograms and adding them to the output TList |
c692b181 | 651 | Float_t maxCentbinRange = fNCentBins+0.5; |
3ce6b879 | 652 | |
9a365626 | 653 | AliAnalysisManager *man=AliAnalysisManager::GetAnalysisManager(); |
beb92504 | 654 | if (!man) { |
655 | AliFatal("Analysis manager needed"); | |
656 | return; | |
657 | } | |
9a365626 | 658 | AliInputEventHandler *inputHandler=dynamic_cast<AliInputEventHandler*>(man->GetInputEventHandler()); |
beb92504 | 659 | if (!inputHandler) { |
660 | AliFatal("Input handler needed"); | |
661 | return; | |
662 | } | |
663 | ||
9a365626 | 664 | //pid response object |
665 | fPIDResponse=inputHandler->GetPIDResponse(); | |
666 | if (!fPIDResponse) AliError("PIDResponse object was not created"); | |
667 | ||
668 | ||
d35312c9 | 669 | if(kDoTriggerChecksOnly){return;}//In this case we are just after trigger efficiencies and don't care about the ET reconstructed. |
6a0df78a | 670 | //TString *strTPC = new TString("TPC"); |
3ce6b879 | 671 | TString *strITS = new TString("ITS"); |
672 | TString *strTPCITS = new TString("TPCITS"); | |
660b176a | 673 | Float_t minNSigma = -4; |
674 | Float_t maxNSigma = 4; | |
675 | Float_t maxPtdEdxNSigma = 1.0; | |
676 | ||
3ce6b879 | 677 | for(Int_t i=0;i<2;i++){ |
ea331c5d | 678 | TString *cutName = NULL; |
3ce6b879 | 679 | Float_t maxPtdEdx = 10; |
680 | Float_t mindEdx = 35; | |
681 | Float_t maxdEdx = 150.0; | |
682 | switch(i){ | |
683 | case 0: | |
f43fc416 | 684 | cutName = strTPCITS; |
3ce6b879 | 685 | break; |
686 | case 1: | |
f43fc416 | 687 | cutName = strITS; |
3ce6b879 | 688 | maxPtdEdx = 5; |
689 | maxdEdx = 500.0; | |
690 | break; | |
6a0df78a | 691 | //not deleting this completely since we might want to add it back in later |
0f70cf50 | 692 | // case 2: |
693 | // cutName = strTPC; | |
694 | // maxPtdEdx = 5; | |
695 | // maxdEdx = 500.0; | |
696 | // break; | |
3ce6b879 | 697 | default: |
698 | cerr<<"Error: cannot make histograms!"<<endl; | |
699 | return; | |
700 | } | |
701 | ||
702 | CreateEtaPtHisto2D(Form("EtDataRaw%sPiPlus",cutName->Data()),"Raw reconstructed E_{T} from identified #pi^{+}"); | |
703 | CreateEtaPtHisto2D(Form("EtDataRaw%sPiMinus",cutName->Data()),"Raw reconstructed E_{T} from identified #pi^{-}"); | |
704 | CreateEtaPtHisto2D(Form("EtDataRaw%sKPlus",cutName->Data()),"Raw reconstructed E_{T} from identified K^{+}"); | |
0f70cf50 | 705 | // CreateEtaPtHisto2D(Form("EtDataRaw%sEMinus",cutName->Data()),"Raw reconstructed E_{T} from identified e^{-}"); |
706 | // CreateEtaPtHisto2D(Form("EtDataRaw%sEPlus",cutName->Data()),"Raw reconstructed E_{T} from identified e^{+}"); | |
3ce6b879 | 707 | CreateEtaPtHisto2D(Form("EtDataRaw%sKMinus",cutName->Data()),"Raw reconstructed E_{T} from identified K^{-}"); |
708 | CreateEtaPtHisto2D(Form("EtDataRaw%sProton",cutName->Data()),"Raw reconstructed E_{T} from identified p"); | |
709 | CreateEtaPtHisto2D(Form("EtDataRaw%sAntiProton",cutName->Data()),"Raw reconstructed E_{T} from identified #bar{p}"); | |
710 | CreateEtaPtHisto2D(Form("EtDataRaw%sUnidentified",cutName->Data()),"Raw reconstructed E_{T} from unidentified particles using real mass"); | |
711 | CreateEtaPtHisto2D(Form("EtDataRaw%sNoID",cutName->Data()),"Raw reconstructed E_{T} from unidentified particles using real mass"); | |
712 | ||
713 | CreateEtaPtHisto2D(Form("EtDataCorrected%sPiPlus",cutName->Data()),"Corrected reconstructed E_{T} from identified #pi^{+}"); | |
714 | CreateEtaPtHisto2D(Form("EtDataCorrected%sPiMinus",cutName->Data()),"Corrected reconstructed E_{T} from identified #pi^{-}"); | |
715 | CreateEtaPtHisto2D(Form("EtDataCorrected%sKPlus",cutName->Data()),"Corrected reconstructed E_{T} from identified K^{+}"); | |
0f70cf50 | 716 | // CreateEtaPtHisto2D(Form("EtDataCorrected%sEMinus",cutName->Data()),"Corrected reconstructed E_{T} from identified e^{-}"); |
717 | // CreateEtaPtHisto2D(Form("EtDataCorrected%sEPlus",cutName->Data()),"Corrected reconstructed E_{T} from identified e^{+}"); | |
3ce6b879 | 718 | CreateEtaPtHisto2D(Form("EtDataCorrected%sKMinus",cutName->Data()),"Corrected reconstructed E_{T} from identified K^{-}"); |
719 | CreateEtaPtHisto2D(Form("EtDataCorrected%sProton",cutName->Data()),"Corrected reconstructed E_{T} from identified p"); | |
720 | CreateEtaPtHisto2D(Form("EtDataCorrected%sAntiProton",cutName->Data()),"Corrected reconstructed E_{T} from identified #bar{p}"); | |
721 | CreateEtaPtHisto2D(Form("EtDataCorrected%sUnidentified",cutName->Data()),"Corrected reconstructed E_{T} from unidentified particles using real mass"); | |
722 | CreateEtaPtHisto2D(Form("EtDataCorrected%sNoID",cutName->Data()),"Corrected reconstructed E_{T} from unidentified particles using real mass"); | |
723 | ||
724 | ||
725 | CreateEtaPtHisto2D(Form("EtNData%sPiPlus",cutName->Data()),"Number of reconstructed #pi^{+}"); | |
726 | CreateEtaPtHisto2D(Form("EtNData%sPiMinus",cutName->Data()),"Number of reconstructed #pi^{-}"); | |
727 | CreateEtaPtHisto2D(Form("EtNData%sKPlus",cutName->Data()),"Number of reconstructed K^{+}"); | |
728 | CreateEtaPtHisto2D(Form("EtNData%sKMinus",cutName->Data()),"Number of reconstructed K^{-}"); | |
729 | CreateEtaPtHisto2D(Form("EtNData%sProton",cutName->Data()),"Number of reconstructed p"); | |
730 | CreateEtaPtHisto2D(Form("EtNData%sAntiProton",cutName->Data()),"Number of reconstructed #bar{p}"); | |
731 | CreateEtaPtHisto2D(Form("EtNData%sUnidentified",cutName->Data()),"Number of Reconstructed unidentified particles"); | |
732 | ||
733 | CreateHisto2D(Form("dEdxDataAll%s",cutName->Data()),"dE/dx for all particles","momentum (GeV/c)","dE/dx",400,0.0,maxPtdEdx,200,mindEdx,maxdEdx); | |
734 | CreateHisto2D(Form("dEdxDataPion%s",cutName->Data()),"dE/dx for #pi^{#pm}","momentum (GeV/c)","dE/dx",400,0.0,maxPtdEdx,200,mindEdx,maxdEdx); | |
735 | CreateHisto2D(Form("dEdxDataKaon%s",cutName->Data()),"dE/dx for K^{#pm}","momentum (GeV/c)","dE/dx",400,0.0,maxPtdEdx,200,mindEdx,maxdEdx); | |
736 | CreateHisto2D(Form("dEdxDataProton%s",cutName->Data()),"dE/dx for p(#bar{p})","momentum (GeV/c)","dE/dx",400,0.0,maxPtdEdx,200,mindEdx,maxdEdx); | |
737 | CreateHisto2D(Form("dEdxDataElectron%s",cutName->Data()),"dE/dx for e^{#pm}","momentum (GeV/c)","dE/dx",400,0.0,maxPtdEdx,200,mindEdx,maxdEdx); | |
738 | CreateHisto2D(Form("dEdxDataUnidentified%s",cutName->Data()),"dE/dx for unidentified particles","momentum (GeV/c)","dE/dx",400,0.0,maxPtdEdx,200,mindEdx,maxdEdx); | |
660b176a | 739 | |
740 | ||
741 | CreateHisto2D(Form("dEdxDataNSigmaPion%s",cutName->Data()),"N_{#sigma} dE/dx for PID'd #pi^{#pm}","momentum (GeV/c)","N_{#sigma} dE/dx",50,0.0,maxPtdEdxNSigma,100,minNSigma,maxNSigma); | |
742 | CreateHisto2D(Form("dEdxDataNSigmaKaon%s",cutName->Data()),"N_{#sigma} dE/dx for PID'd K^{#pm}","momentum (GeV/c)","N_{#sigma} dE/dx",50,0.0,maxPtdEdxNSigma,100,minNSigma,maxNSigma); | |
743 | CreateHisto2D(Form("dEdxDataNSigmaProton%s",cutName->Data()),"N_{#sigma} dE/dx for PID'd p(#bar{p})","momentum (GeV/c)","N_{#sigma} dE/dx",50,0.0,maxPtdEdxNSigma,100,minNSigma,maxNSigma); | |
744 | CreateHisto2D(Form("dEdxDataNSigmaElectron%s",cutName->Data()),"N_{#sigma} dE/dx for e^{#pm}","momentum (GeV/c)","N_{#sigma} dE/dx",50,0.0,maxPtdEdxNSigma,100,minNSigma,maxNSigma); | |
745 | ||
746 | CreateHisto2D(Form("dEdxDataNSigmaPionAll%s",cutName->Data()),"N_{#sigma} dE/dx for #pi^{#pm} for all","momentum (GeV/c)","N_{#sigma} dE/dx",50,0.0,maxPtdEdxNSigma,100,minNSigma,maxNSigma); | |
747 | CreateHisto2D(Form("dEdxDataNSigmaKaonAll%s",cutName->Data()),"N_{#sigma} dE/dx for K^{#pm} for all","momentum (GeV/c)","N_{#sigma} dE/dx",50,0.0,maxPtdEdxNSigma,100,minNSigma,maxNSigma); | |
748 | CreateHisto2D(Form("dEdxDataNSigmaProtonAll%s",cutName->Data()),"N_{#sigma} dE/dx for p(#bar{p}) for all","momentum (GeV/c)","N_{#sigma} dE/dx",50,0.0,maxPtdEdxNSigma,100,minNSigma,maxNSigma); | |
749 | CreateHisto2D(Form("dEdxDataNSigmaElectronAll%s",cutName->Data()),"N_{#sigma} dE/dx for e^{#pm} for all","momentum (GeV/c)","N_{#sigma} dE/dx",50,0.0,maxPtdEdxNSigma,100,minNSigma,maxNSigma); | |
750 | ||
751 | ||
3ce6b879 | 752 | } |
4e0c0fe1 | 753 | |
754 | Float_t minEt = 0.0; | |
755 | Float_t maxEt = 100.0; | |
c98582cc | 756 | Float_t minEtPiKP = 0.0; |
9f0216e3 | 757 | Float_t maxEtPiKP = 100.0; |
3c7f3e24 | 758 | if(fDataSet==20100||fDataSet==2011){ |
900a0a41 | 759 | maxEt=4000.0; |
760 | maxEtPiKP = 2500; | |
761 | } | |
762 | if(fDataSet==2013){ | |
763 | maxEt=100.0; | |
764 | maxEtPiKP = 100.0; | |
765 | } | |
4e0c0fe1 | 766 | Int_t nbinsEt = 200; |
767 | char histoname[200]; | |
768 | char histotitle[200]; | |
769 | char xtitle[50]; | |
770 | TString *ytitle = new TString("Number of events"); | |
464aa50c | 771 | TString *sTPC = new TString("TPC"); |
772 | TString *sITS = new TString("ITS"); | |
773 | TString *sTPCpt = new TString("0.15"); | |
774 | TString *sITSpt = new TString("0.10"); | |
775 | TString *sPID = new TString(""); | |
776 | TString *sNoPID = new TString("NoPID"); | |
777 | TString *sNoPIDString = new TString(", No PID"); | |
778 | TString *sHadEt = new TString("HadEt"); | |
132872f7 | 779 | TString *sPiKPEt = new TString("PiKPEt"); |
464aa50c | 780 | TString *sRawEt = new TString("RawEt"); |
781 | TString *sTotEt = new TString("TotEt"); | |
782 | TString *sTotEtString = new TString("total E_{T}"); | |
783 | TString *sHadEtString = new TString("hadronic E_{T}"); | |
132872f7 | 784 | TString *sPiKPEtString = new TString("E_{T}^{#pi,K,p}"); |
464aa50c | 785 | TString *sRawEtString = new TString("raw E_{T}"); |
786 | TString *sFull = new TString("Full"); | |
787 | TString *sEMCAL = new TString("EMCAL"); | |
788 | TString *sPHOS = new TString("PHOS"); | |
4e0c0fe1 | 789 | |
790 | for(int tpc = 0;tpc<2;tpc++){ | |
791 | for(int hadet = 0;hadet<3;hadet++){ | |
792 | for(int type = 0;type<3;type++){ | |
793 | for(int pid = 0;pid<2;pid++){ | |
ea331c5d | 794 | TString *detector = NULL; |
795 | TString *partid = NULL; | |
464aa50c | 796 | TString *et = sHadEt; |
ea331c5d | 797 | TString *acceptance = NULL; |
798 | TString *ptstring = NULL; | |
799 | TString *partidstring = NULL; | |
464aa50c | 800 | TString *etstring = sHadEtString; |
801 | if(tpc==1) {detector = sTPC; ptstring = sTPCpt;} | |
802 | else{detector = sITS; ptstring = sITSpt;} | |
803 | if(pid==1){partid = sPID; partidstring = sPID;} | |
804 | else{partid = sNoPID; partidstring = sNoPIDString;} | |
805 | if(hadet==1) {et = sHadEt; etstring = sHadEtString;} | |
806 | if(hadet==0){et = sTotEt; etstring = sTotEtString;} | |
807 | if(hadet==2){et = sRawEt; etstring = sRawEtString;} | |
4e0c0fe1 | 808 | switch(type){ |
809 | case 0: | |
464aa50c | 810 | acceptance = sFull; |
4e0c0fe1 | 811 | break; |
812 | case 1: | |
464aa50c | 813 | acceptance = sEMCAL; |
4e0c0fe1 | 814 | break; |
815 | case 2: | |
464aa50c | 816 | acceptance = sPHOS; |
4e0c0fe1 | 817 | break; |
818 | default: | |
464aa50c | 819 | acceptance = sFull; |
4e0c0fe1 | 820 | } |
6a0df78a | 821 | snprintf(histoname,200,"Reco%s%sAcceptance%s%s",et->Data(),acceptance->Data(),detector->Data(),partid->Data()); |
822 | snprintf(histotitle,200,"Reconstructed %s with %s acceptance for p_{T}>%s GeV/c%s",etstring->Data(),acceptance->Data(),ptstring->Data(),partidstring->Data()); | |
823 | snprintf(xtitle,50,"Reconstructed %s",etstring->Data()); | |
0e866ddc | 824 | CreateHisto1D(histoname,histotitle,xtitle,ytitle->Data(),nbinsEt*2,minEt,maxEt); |
2c0680a5 | 825 | if(type==0){//full acceptance only |
826 | snprintf(xtitle,50,"Reconstructed %s",etstring->Data()); | |
827 | ||
828 | snprintf(histoname,200,"Reco%s%sAcceptance%s%sND",et->Data(),acceptance->Data(),detector->Data(),partid->Data()); | |
829 | snprintf(histotitle,200,"Reconstructed non-diffractive events %s with %s acceptance for p_{T}>%s GeV/c%s",etstring->Data(),acceptance->Data(),ptstring->Data(),partidstring->Data()); | |
830 | CreateHisto1D(histoname,histotitle,xtitle,ytitle->Data(),nbinsEt*2,minEt,maxEt); | |
831 | snprintf(histoname,200,"Reco%s%sAcceptance%s%sDD",et->Data(),acceptance->Data(),detector->Data(),partid->Data()); | |
832 | snprintf(histotitle,200,"Reconstructed doubly-diffractive events %s with %s acceptance for p_{T}>%s GeV/c%s",etstring->Data(),acceptance->Data(),ptstring->Data(),partidstring->Data()); | |
833 | CreateHisto1D(histoname,histotitle,xtitle,ytitle->Data(),nbinsEt*2,minEt,maxEt); | |
834 | snprintf(histoname,200,"Reco%s%sAcceptance%s%sSD",et->Data(),acceptance->Data(),detector->Data(),partid->Data()); | |
835 | snprintf(histotitle,200,"Reconstructed singly-diffractive events %s with %s acceptance for p_{T}>%s GeV/c%s",etstring->Data(),acceptance->Data(),ptstring->Data(),partidstring->Data()); | |
836 | CreateHisto1D(histoname,histotitle,xtitle,ytitle->Data(),nbinsEt*2,minEt,maxEt); | |
132872f7 | 837 | |
838 | ||
c98582cc | 839 | |
840 | snprintf(histoname,200,"Reco%s%sAcceptance%s%s",sPiKPEt->Data(),acceptance->Data(),detector->Data(),partid->Data()); | |
841 | snprintf(histotitle,200,"Reconstructed %s with %s acceptance for p_{T}>%s GeV/c%s",sPiKPEtString->Data(),acceptance->Data(),ptstring->Data(),partidstring->Data()); | |
842 | snprintf(xtitle,50,"Reconstructed %s",sPiKPEtString->Data()); | |
843 | CreateHisto1D(histoname,histotitle,xtitle,ytitle->Data(),nbinsEt*2,minEtPiKP,maxEtPiKP); | |
844 | ||
132872f7 | 845 | snprintf(xtitle,50,"Reconstructed %s",sPiKPEt->Data()); |
846 | snprintf(histoname,200,"Reco%s%sAcceptance%s%sND",sPiKPEt->Data(),acceptance->Data(),detector->Data(),partid->Data()); | |
847 | snprintf(histotitle,200,"Reconstructed non-diffractive events %s with %s acceptance for p_{T}>%s GeV/c%s",sPiKPEtString->Data(),acceptance->Data(),ptstring->Data(),partidstring->Data()); | |
c98582cc | 848 | CreateHisto1D(histoname,histotitle,xtitle,ytitle->Data(),nbinsEt*2,minEtPiKP,maxEtPiKP); |
132872f7 | 849 | snprintf(histoname,200,"Reco%s%sAcceptance%s%sDD",sPiKPEt->Data(),acceptance->Data(),detector->Data(),partid->Data()); |
850 | snprintf(histotitle,200,"Reconstructed doubly-diffractive events %s with %s acceptance for p_{T}>%s GeV/c%s",sPiKPEtString->Data(),acceptance->Data(),ptstring->Data(),partidstring->Data()); | |
c98582cc | 851 | CreateHisto1D(histoname,histotitle,xtitle,ytitle->Data(),nbinsEt*2,minEtPiKP,maxEtPiKP); |
132872f7 | 852 | snprintf(histoname,200,"Reco%s%sAcceptance%s%sSD",sPiKPEt->Data(),acceptance->Data(),detector->Data(),partid->Data()); |
853 | snprintf(histotitle,200,"Reconstructed singly-diffractive events %s with %s acceptance for p_{T}>%s GeV/c%s",sPiKPEtString->Data(),acceptance->Data(),ptstring->Data(),partidstring->Data()); | |
c98582cc | 854 | CreateHisto1D(histoname,histotitle,xtitle,ytitle->Data(),nbinsEt*2,minEtPiKP,maxEtPiKP);//et |
132872f7 | 855 | |
2c0680a5 | 856 | } |
3c7f3e24 | 857 | if((fDataSet==20100||fDataSet==2011) && type ==0 &&pid==1){//If this is Pb+Pb and full acceptance with pid |
0f70cf50 | 858 | Int_t width = 5; |
a180fac9 | 859 | if(fNCentBins<21) width = 10; |
0f70cf50 | 860 | for(Int_t i=0;i<fNCentBins;i++){ |
861 | snprintf(histoname,200,"Reco%s%sAcceptance%s%sCB%i",et->Data(),acceptance->Data(),detector->Data(),partid->Data(),i); | |
862 | snprintf(histotitle,200,"Reconstructed %s with %s acceptance for p_{T}>%s GeV/c%s for centrality %i-%i",etstring->Data(),acceptance->Data(),ptstring->Data(),partidstring->Data(),i*width,(i+1)*width); | |
863 | snprintf(xtitle,50,"Reconstructed %s",etstring->Data()); | |
864 | CreateHisto1D(histoname,histotitle,xtitle,ytitle->Data(),nbinsEt*2,minEt,maxEt); | |
865 | } | |
866 | } | |
4e0c0fe1 | 867 | } |
868 | } | |
869 | } | |
870 | } | |
3d1099f3 | 871 | CreateHisto1D("RecoHadEtFullAcceptanceTPCAssumingPion","Reconstructing E_{T}^{had} with full acceptance for p_{T}>0.15 GeV/c assuming pions","Reconstructed E_{T}^{had}","dN_{eve}/dE_{T}^{had}",nbinsEt*2,minEt,maxEt); |
872 | CreateHisto1D("RecoHadEtFullAcceptanceTPCAssumingProton","Reconstructing E_{T}^{had} with full acceptance for p_{T}>0.15 GeV/c assuming protons","Reconstructed E_{T}^{had}","dN_{eve}/dE_{T}^{had}",nbinsEt*2,minEt,maxEt); | |
873 | CreateHisto1D("RecoHadEtFullAcceptanceTPCAssumingKaon","Reconstructing E_{T}^{had} with full acceptance for p_{T}>0.15 GeV/c assuming kaons","Reconstructed E_{T}^{had}","dN_{eve}/dE_{T}^{had}",nbinsEt*2,minEt,maxEt); | |
874 | CreateHisto1D("RecoHadEtFullAcceptanceITSAssumingPion","Reconstructing E_{T}^{had} with full acceptance for p_{T}>0.10 GeV/c assuming pions","Reconstructed E_{T}^{had}","dN_{eve}/dE_{T}^{had}",nbinsEt*2,minEt,maxEt); | |
875 | CreateHisto1D("RecoHadEtFullAcceptanceITSAssumingProton","Reconstructing E_{T}^{had} with full acceptance for p_{T}>0.10 GeV/c assuming protons","Reconstructed E_{T}^{had}","dN_{eve}/dE_{T}^{had}",nbinsEt*2,minEt,maxEt); | |
876 | CreateHisto1D("RecoHadEtFullAcceptanceITSAssumingKaon","Reconstructing E_{T}^{had} with full acceptance for p_{T}>0.10 GeV/c assuming kaons","Reconstructed E_{T}^{had}","dN_{eve}/dE_{T}^{had}",nbinsEt*2,minEt,maxEt); | |
0e866ddc | 877 | |
a180fac9 | 878 | //Cross checks that corrections are applied correctly |
3c7f3e24 | 879 | if(fDataSet==20100 || fDataSet==2011){ |
c692b181 | 880 | CreateHisto2D("fbkgdVsCentralityBin","f_{bkgd} vs centrality bin","centrality bin","f_{bkgd}",fNCentBins,-1.5,maxCentbinRange,200,0.7,1.05);// |
881 | CreateHisto2D("feffPionVsCentralityBin","Pion efficiency vs centrality bin","centrality bin","pion efficiency",fNCentBins,-1.5,maxCentbinRange,200,0,1.2);// | |
882 | CreateHisto2D("feffHadronVsCentralityBin","Hadron efficiency vs centrality bin","centrality bin","hadron efficiency",fNCentBins,-1.5,maxCentbinRange,200,0,1.2);// | |
883 | CreateHisto2D("feffKaonVsCentralityBin","Kaon efficiency vs centrality bin","centrality bin","kaon efficiency",fNCentBins,-1.5,maxCentbinRange,200,0,1.2);// | |
884 | CreateHisto2D("feffProtonVsCentralityBin","Proton efficiency vs centrality bin","centrality bin","proton efficiency",fNCentBins,-1.5,maxCentbinRange,200,0,1.2);// | |
885 | CreateHisto2D("fnotIDVsCentralityBin","f_{notID} vs centrality bin","centrality bin","f_{notID}",fNCentBins,-1.5,maxCentbinRange,50,0.95,1.05);// | |
886 | CreateHisto2D("fpTcutVsCentralityBin","f_{pTcut} vs centrality bin","centrality bin","f_{pTcut}",fNCentBins,-1.5,maxCentbinRange,50,0.95,1.05); | |
887 | CreateHisto2D("fneutralVsCentralityBin","f_{neutral} vs centrality bin","centrality bin","f_{neutral}",fNCentBins,-1.5,maxCentbinRange,50,0.5,1.00); | |
888 | CreateHisto2D("ConstantCorrectionsVsCentralityBin","constant corrections vs centrality bin","centrality bin","constant corrections",fNCentBins,-1.5,maxCentbinRange,50,0.5,1.00); | |
a180fac9 | 889 | } |
890 | ||
464aa50c | 891 | delete sTPC; |
892 | delete sITS; | |
893 | delete sTPCpt; | |
894 | delete sITSpt; | |
895 | delete sPID; | |
896 | delete sNoPID; | |
897 | delete sNoPIDString; | |
132872f7 | 898 | delete sPiKPEt; |
464aa50c | 899 | delete sHadEt; |
900 | delete sTotEt; | |
901 | delete sTotEtString; | |
902 | delete sHadEtString; | |
132872f7 | 903 | delete sPiKPEtString; |
464aa50c | 904 | delete sFull; |
905 | delete sEMCAL; | |
906 | delete sPHOS; | |
4e0c0fe1 | 907 | |
3ce6b879 | 908 | } |