]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG4/totEt/AliAnalysisHadEtReconstructed.cxx
Setting Id keyword property.
[u/mrichter/AliRoot.git] / PWG4 / totEt / AliAnalysisHadEtReconstructed.cxx
CommitLineData
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"
641e1e0c 29
16abb579 30using namespace std;
31
32ClassImp(AliAnalysisHadEtReconstructed);
33
34
641e1e0c 35AliAnalysisHadEtReconstructed::AliAnalysisHadEtReconstructed() :
36 AliAnalysisHadEt()
464aa50c 37 ,fCorrections(0)
3ce6b879 38 ,fConfigFile("ConfigHadEtAnalysis.C")
964c8159 39 ,fCorrTotEtFullAcceptanceTPC(0)
40 ,fCorrTotEtFullAcceptanceITS(0)
41 ,fCorrHadEtFullAcceptanceTPC(0)
42 ,fCorrHadEtFullAcceptanceITS(0)
43 ,fCorrTotEtEMCALAcceptanceTPC(0)
44 ,fCorrTotEtEMCALAcceptanceITS(0)
45 ,fCorrHadEtEMCALAcceptanceTPC(0)
46 ,fCorrHadEtEMCALAcceptanceITS(0)
47 ,fCorrTotEtPHOSAcceptanceTPC(0)
48 ,fCorrTotEtPHOSAcceptanceITS(0)
49 ,fCorrHadEtPHOSAcceptanceTPC(0)
50 ,fCorrHadEtPHOSAcceptanceITS(0)
51 ,fCorrectedHadEtFullAcceptanceTPCNoPID(0)
52 ,fCorrectedHadEtFullAcceptanceITSNoPID(0)
53 ,fCorrectedHadEtEMCALAcceptanceTPCNoPID(0)
54 ,fCorrectedHadEtEMCALAcceptanceITSNoPID(0)
55 ,fCorrectedHadEtPHOSAcceptanceTPCNoPID(0)
56 ,fCorrectedHadEtPHOSAcceptanceITSNoPID(0)
57 ,fCorrectedHadEtFullAcceptanceTPC(0)
58 ,fCorrectedHadEtFullAcceptanceITS(0)
3d1099f3 59 ,fCorrectedHadEtFullAcceptanceTPCAssumingPion(0)
60 ,fCorrectedHadEtFullAcceptanceITSAssumingPion(0)
61 ,fCorrectedHadEtFullAcceptanceTPCAssumingProton(0)
62 ,fCorrectedHadEtFullAcceptanceITSAssumingProton(0)
63 ,fCorrectedHadEtFullAcceptanceTPCAssumingKaon(0)
64 ,fCorrectedHadEtFullAcceptanceITSAssumingKaon(0)
964c8159 65 ,fCorrectedHadEtEMCALAcceptanceTPC(0)
66 ,fCorrectedHadEtEMCALAcceptanceITS(0)
67 ,fCorrectedHadEtPHOSAcceptanceTPC(0)
68 ,fCorrectedHadEtPHOSAcceptanceITS(0)
69 ,fRawEtFullAcceptanceTPC(0)
70 ,fRawEtFullAcceptanceITS(0)
71 ,fRawEtEMCALAcceptanceTPC(0)
72 ,fRawEtEMCALAcceptanceITS(0)
73 ,fRawEtPHOSAcceptanceTPC(0)
74 ,fRawEtPHOSAcceptanceITS(0)
75 ,fRawEtFullAcceptanceTPCNoPID(0)
76 ,fRawEtFullAcceptanceITSNoPID(0)
77 ,fRawEtEMCALAcceptanceTPCNoPID(0)
78 ,fRawEtEMCALAcceptanceITSNoPID(0)
79 ,fRawEtPHOSAcceptanceTPCNoPID(0)
80 ,fRawEtPHOSAcceptanceITSNoPID(0)
641e1e0c 81{
641e1e0c 82}
83
cf6522d1 84AliAnalysisHadEtReconstructed::~AliAnalysisHadEtReconstructed()
641e1e0c 85{
464aa50c 86 delete fCorrections;
cf6522d1 87}
88
89Int_t AliAnalysisHadEtReconstructed::AnalyseEvent(AliVEvent* ev)
90{ // analyse ESD event
641e1e0c 91 ResetEventValues();
6a0df78a 92 if(!ev){
93 Printf("ERROR: Event does not exist");
94 return 0;
95 }
3ce6b879 96
97 AliESDEvent *realEvent = dynamic_cast<AliESDEvent*>(ev);
98 //for PID
99 AliESDpid *pID = new AliESDpid();
100 pID->MakePID(realEvent);
3ce6b879 101 TString *strTPC = new TString("TPC");
102 TString *strITS = new TString("ITS");
103 TString *strTPCITS = new TString("TPCITS");
104 for(Int_t cutset=0;cutset<2;cutset++){
0e866ddc 105 bool isTPC = false;
ea331c5d 106 TString *cutName = NULL;
107 TObjArray* list = NULL;
3ce6b879 108 switch(cutset){
109 case 0:
3ce6b879 110 cutName = strTPCITS;
111 list = fEsdtrackCutsITSTPC->GetAcceptedTracks(realEvent);
f43fc416 112 isTPC = true;
3ce6b879 113 break;
f43fc416 114 case 1:
0f97be4c 115 cutName = strITS;
116 list = fEsdtrackCutsITS->GetAcceptedTracks(realEvent);
117 break;
f43fc416 118 case 2:
119 cutName = strTPC;
120 list = fEsdtrackCutsTPC->GetAcceptedTracks(realEvent);
121 break;
3ce6b879 122 default:
123 cerr<<"Error: cannot fill histograms!"<<endl;
124 return -1;
125 }
126 Int_t nGoodTracks = list->GetEntries();
127 for (Int_t iTrack = 0; iTrack < nGoodTracks; iTrack++)
128 {
641e1e0c 129
641e1e0c 130
3ce6b879 131 AliESDtrack *track = dynamic_cast<AliESDtrack*> (list->At(iTrack));
132 if (!track)
133 {
134 Printf("ERROR: Could not get track %d", iTrack);
135 continue;
136 }
137 else{
464aa50c 138 if(TMath::Abs(track->Eta())>fCorrections->GetEtaCut()) continue;
3ce6b879 139 Float_t nSigmaPion,nSigmaProton,nSigmaKaon,nSigmaElectron;
3ce6b879 140 if(cutset!=1){
141 nSigmaPion = TMath::Abs(pID->NumberOfSigmasTPC(track,AliPID::kPion));
142 nSigmaProton = TMath::Abs(pID->NumberOfSigmasTPC(track,AliPID::kProton));
143 nSigmaKaon = TMath::Abs(pID->NumberOfSigmasTPC(track,AliPID::kKaon));
144 nSigmaElectron = TMath::Abs(pID->NumberOfSigmasTPC(track,AliPID::kElectron));
145 }
146 else{
147 nSigmaPion = TMath::Abs(pID->NumberOfSigmasITS(track,AliPID::kPion));
148 nSigmaProton = TMath::Abs(pID->NumberOfSigmasITS(track,AliPID::kProton));
149 nSigmaKaon = TMath::Abs(pID->NumberOfSigmasITS(track,AliPID::kKaon));
150 nSigmaElectron = TMath::Abs(pID->NumberOfSigmasITS(track,AliPID::kElectron));
151 }
6a0df78a 152// bool isPion = (nSigmaPion<3.0 && nSigmaProton>2.0 && nSigmaKaon>2.0);
153// bool isElectron = (nSigmaElectron<2.0 && nSigmaPion>4.0 && nSigmaProton>3.0 && nSigmaKaon>3.0);
154// bool isKaon = (nSigmaPion>3.0 && nSigmaProton>2.0 && nSigmaKaon<2.0);
155// bool isProton = (nSigmaPion>3.0 && nSigmaProton<2.0 && nSigmaKaon>2.0);
156 bool isPion = (nSigmaPion<3.0 && nSigmaProton>2.0 && nSigmaKaon>2.0);
157 bool isElectron = (nSigmaElectron<2.0 && nSigmaPion>4.0 && nSigmaProton>3.0 && nSigmaKaon>3.0);
701b4621 158 bool isKaon = (nSigmaPion>3.0 && nSigmaProton>3.0 && nSigmaKaon<3.0 && track->Pt()<0.45);
159 bool isProton = (nSigmaPion>3.0 && nSigmaProton<3.0 && nSigmaKaon>3.0 && track->Pt()<0.9);
641e1e0c 160
0e866ddc 161 bool unidentified = (!isProton && !isKaon && !isElectron && !isPion);
3ce6b879 162 Float_t dEdx = track->GetTPCsignal();
163 if(cutset==1) dEdx = track->GetITSsignal();
164 FillHisto2D(Form("dEdxDataAll%s",cutName->Data()),track->P(),dEdx,1.0);
641e1e0c 165
d6214a64 166 bool inPHOS = IsInPHOS(track);
167 bool inEMCAL = IsInEMCAL(track);
a02dfa56 168
3ce6b879 169 Float_t corrBkgd=0.0;
170 Float_t corrNotID=0.0;
0e866ddc 171 Float_t corrNoID=0.0;// = fCorrections->GetNotIDCorrectionNoPID(track->Pt());
3ce6b879 172 Float_t corrEff = 0.0;
173 Float_t corrEffNoID = 0.0;
174 if(cutset==0){//TPC
464aa50c 175 corrBkgd = fCorrections->GetBackgroundCorrectionTPC(track->Pt());
176 corrEffNoID = fCorrections->GetTPCEfficiencyCorrectionHadron(track->Pt());
0e866ddc 177 corrNotID = fCorrections->GetNotIDConstCorrectionTPC();
178 corrNoID = fCorrections->GetNotIDConstCorrectionTPCNoID();
3ce6b879 179 }
180 if(cutset==1){//ITS
464aa50c 181 corrBkgd = fCorrections->GetBackgroundCorrectionITS(track->Pt());
0e866ddc 182 corrEffNoID = fCorrections->GetITSEfficiencyCorrectionHadron(track->Pt());
183 corrNotID = fCorrections->GetNotIDConstCorrectionITS();
184 corrNoID = fCorrections->GetNotIDConstCorrectionITSNoID();
3ce6b879 185 }
186 Float_t et = 0.0;
4b40b2b1 187 Float_t etNoID = Et(track->P(),track->Theta(),fgPiPlusCode,track->Charge());
3ce6b879 188 Float_t etpartialcorrected = 0.0;
3d1099f3 189 Float_t etpartialcorrectedPion = 0.0;
190 Float_t etpartialcorrectedKaon = 0.0;
191 Float_t etpartialcorrectedProton = 0.0;
d6214a64 192 Float_t etpartialcorrectedNoID = corrNoID*corrBkgd*corrEffNoID*etNoID;
3ce6b879 193 FillHisto2D(Form("EtDataRaw%sNoID",cutName->Data()),track->Pt(),track->Eta(),etpartialcorrectedNoID);
194
195 if(isPion){
196 FillHisto2D(Form("dEdxDataPion%s",cutName->Data()),track->P(),dEdx,1.0);
4b40b2b1 197 et = Et(track->P(),track->Theta(),fgPiPlusCode,track->Charge());
464aa50c 198 if(cutset==0){corrEff = fCorrections->GetTPCEfficiencyCorrectionPion(track->Pt());}
199 //else{corrEff = fCorrections->GetITSEfficiencyCorrectionPion(track->Pt());}
0e866ddc 200 etpartialcorrected = et*corrBkgd*corrEff*corrNotID;
3ce6b879 201
202 if(track->Charge()>0.0){
203 FillHisto2D(Form("EtDataRaw%sPiPlus",cutName->Data()),track->Pt(),track->Eta(),et);
204 FillHisto2D(Form("EtDataCorrected%sPiPlus",cutName->Data()),track->Pt(),track->Eta(),etpartialcorrected);
205 }
206 else{
207 FillHisto2D(Form("EtDataRaw%sPiMinus",cutName->Data()),track->Pt(),track->Eta(),et);
208 FillHisto2D(Form("EtDataCorrected%sPiMinus",cutName->Data()),track->Pt(),track->Eta(),etpartialcorrected);
209 }
210 }
211 if(isKaon){
212 FillHisto2D(Form("dEdxDataKaon%s",cutName->Data()),track->P(),dEdx,1.0);
4b40b2b1 213 et = Et(track->P(),track->Theta(),fgKPlusCode,track->Charge());
464aa50c 214 if(cutset==0){corrEff = fCorrections->GetTPCEfficiencyCorrectionKaon(track->Pt());}
215 //else{corrEff = fCorrections->GetITSEfficiencyCorrectionKaon(track->Pt());}
0e866ddc 216 etpartialcorrected = et*corrBkgd*corrEff*corrNotID;
3ce6b879 217
218 if(track->Charge()>0.0){
219 FillHisto2D(Form("EtDataRaw%sKPlus",cutName->Data()),track->Pt(),track->Eta(),et);
220 FillHisto2D(Form("EtDataCorrected%sKPlus",cutName->Data()),track->Pt(),track->Eta(),etpartialcorrected);
221 }
222 else{
223 FillHisto2D(Form("EtDataRaw%sKMinus",cutName->Data()),track->Pt(),track->Eta(),et);
224 FillHisto2D(Form("EtDataCorrected%sKMinus",cutName->Data()),track->Pt(),track->Eta(),etpartialcorrected);
225 }
226 }
227 if(isProton){
228 FillHisto2D(Form("dEdxDataProton%s",cutName->Data()),track->P(),dEdx,1.0);
4b40b2b1 229 et = Et(track->P(),track->Theta(),fgProtonCode,track->Charge());
464aa50c 230 if(cutset==0){corrEff = fCorrections->GetTPCEfficiencyCorrectionProton(track->Pt());}
231 //else{corrEff = fCorrections->GetITSEfficiencyCorrectionProton(track->Pt());}
0e866ddc 232 etpartialcorrected = et*corrBkgd*corrEff*corrNotID;
3ce6b879 233
234 if(track->Charge()>0.0){
235 FillHisto2D(Form("EtDataRaw%sProton",cutName->Data()),track->Pt(),track->Eta(),et);
236 FillHisto2D(Form("EtDataCorrected%sProton",cutName->Data()),track->Pt(),track->Eta(),etpartialcorrected);
237 }
238 else{
239 FillHisto2D(Form("EtDataRaw%sAntiProton",cutName->Data()),track->Pt(),track->Eta(),et);
240 FillHisto2D(Form("EtDataCorrected%sAntiProton",cutName->Data()),track->Pt(),track->Eta(),etpartialcorrected);
241 }
242 }
243 if(isElectron){
244 FillHisto2D(Form("dEdxDataProton%s",cutName->Data()),track->P(),dEdx,1.0);
4b40b2b1 245 //et = Et(track->P(),track->Theta(),fgPiPlusCode,track->Charge());
3ce6b879 246 }
247 if(unidentified){
0e866ddc 248 //if(!isPion)
3ce6b879 249 FillHisto2D(Form("dEdxDataUnidentified%s",cutName->Data()),track->P(),dEdx,1.0);
4b40b2b1 250 et = Et(track->P(),track->Theta(),fgPiPlusCode,track->Charge());
3d1099f3 251 Float_t etProton = Et(track->P(),track->Theta(),fgProtonCode,track->Charge());
252 Float_t etKaon = Et(track->P(),track->Theta(),fgKPlusCode,track->Charge());
3ce6b879 253 etpartialcorrected = et*corrBkgd*corrEffNoID*corrNotID;
3d1099f3 254 etpartialcorrectedPion = et*corrBkgd*corrEffNoID;
255 etpartialcorrectedProton = etProton*corrBkgd*corrEffNoID;
256 etpartialcorrectedKaon = etKaon*corrBkgd*corrEffNoID;
0e866ddc 257 //if(!isPion)
3ce6b879 258 FillHisto2D(Form("EtDataCorrected%sUnidentified",cutName->Data()),track->Pt(),track->Eta(),etpartialcorrected);
259 }
3d1099f3 260 else{
261 etpartialcorrectedPion = etpartialcorrected;
262 etpartialcorrectedKaon = etpartialcorrected;
263 etpartialcorrectedProton = etpartialcorrected;
264 }
0e866ddc 265 if(!isTPC){
266 etpartialcorrected = etpartialcorrectedNoID;//Not using PID for ITS
0e866ddc 267 }
3d1099f3 268 AddEt(et,etNoID,etpartialcorrected,etpartialcorrectedPion,etpartialcorrectedProton,etpartialcorrectedKaon,etpartialcorrectedNoID,track->Pt(),isTPC,inPHOS,inEMCAL);
3ce6b879 269 }
270 }
ea331c5d 271 delete list;
3ce6b879 272 }
7d2d1773 273 if(GetCorrectedHadEtFullAcceptanceTPC()>0.0)FillHisto1D("RecoHadEtFullAcceptanceTPC",GetCorrectedHadEtFullAcceptanceTPC(),1.0);
274 if(GetCorrectedTotEtFullAcceptanceTPC()>0.0)FillHisto1D("RecoTotEtFullAcceptanceTPC",GetCorrectedTotEtFullAcceptanceTPC(),1.0);
3d1099f3 275 if(GetCorrectedHadEtFullAcceptanceTPCAssumingPion()>0.0)FillHisto1D("RecoHadEtFullAcceptanceTPCAssumingPion",GetCorrectedHadEtFullAcceptanceTPCAssumingPion(),1.0);
276 if(GetCorrectedHadEtFullAcceptanceTPCAssumingProton()>0.0)FillHisto1D("RecoHadEtFullAcceptanceTPCAssumingProton",GetCorrectedHadEtFullAcceptanceTPCAssumingProton(),1.0);
277 if(GetCorrectedHadEtFullAcceptanceTPCAssumingKaon()>0.0)FillHisto1D("RecoHadEtFullAcceptanceTPCAssumingKaon",GetCorrectedHadEtFullAcceptanceTPCAssumingKaon(),1.0);
7d2d1773 278 if(GetCorrectedHadEtEMCALAcceptanceTPC()>0.0)FillHisto1D("RecoHadEtEMCALAcceptanceTPC",GetCorrectedHadEtEMCALAcceptanceTPC(),1.0);
279 if(GetCorrectedTotEtEMCALAcceptanceTPC()>0.0)FillHisto1D("RecoTotEtEMCALAcceptanceTPC",GetCorrectedTotEtEMCALAcceptanceTPC(),1.0);
280 if(GetCorrectedHadEtPHOSAcceptanceTPC()>0.0)FillHisto1D("RecoHadEtPHOSAcceptanceTPC",GetCorrectedHadEtPHOSAcceptanceTPC(),1.0);
281 if(GetCorrectedTotEtPHOSAcceptanceTPC()>0.0)FillHisto1D("RecoTotEtPHOSAcceptanceTPC",GetCorrectedTotEtPHOSAcceptanceTPC(),1.0);
282 if(GetCorrectedHadEtFullAcceptanceTPCNoPID()>0.0)FillHisto1D("RecoHadEtFullAcceptanceTPCNoPID",GetCorrectedHadEtFullAcceptanceTPCNoPID(),1.0);
283 if(GetCorrectedTotEtFullAcceptanceTPCNoPID()>0.0)FillHisto1D("RecoTotEtFullAcceptanceTPCNoPID",GetCorrectedTotEtFullAcceptanceTPCNoPID(),1.0);
284 if(GetCorrectedHadEtEMCALAcceptanceTPCNoPID()>0.0)FillHisto1D("RecoHadEtEMCALAcceptanceTPCNoPID",GetCorrectedHadEtEMCALAcceptanceTPCNoPID(),1.0);
285 if(GetCorrectedTotEtEMCALAcceptanceTPCNoPID()>0.0)FillHisto1D("RecoTotEtEMCALAcceptanceTPCNoPID",GetCorrectedTotEtEMCALAcceptanceTPCNoPID(),1.0);
286 if(GetCorrectedHadEtPHOSAcceptanceTPCNoPID()>0.0)FillHisto1D("RecoHadEtPHOSAcceptanceTPCNoPID",GetCorrectedHadEtPHOSAcceptanceTPCNoPID(),1.0);
287 if(GetCorrectedTotEtPHOSAcceptanceTPCNoPID()>0.0)FillHisto1D("RecoTotEtPHOSAcceptanceTPCNoPID",GetCorrectedTotEtPHOSAcceptanceTPCNoPID(),1.0);
288 if(GetCorrectedHadEtFullAcceptanceITS()>0.0)FillHisto1D("RecoHadEtFullAcceptanceITS",GetCorrectedHadEtFullAcceptanceITS(),1.0);
3d1099f3 289 if(GetCorrectedHadEtFullAcceptanceITSAssumingPion()>0.0)FillHisto1D("RecoHadEtFullAcceptanceITSAssumingPion",GetCorrectedHadEtFullAcceptanceITSAssumingPion(),1.0);
290 if(GetCorrectedHadEtFullAcceptanceITSAssumingProton()>0.0)FillHisto1D("RecoHadEtFullAcceptanceITSAssumingProton",GetCorrectedHadEtFullAcceptanceITSAssumingProton(),1.0);
291 if(GetCorrectedHadEtFullAcceptanceITSAssumingKaon()>0.0)FillHisto1D("RecoHadEtFullAcceptanceITSAssumingKaon",GetCorrectedHadEtFullAcceptanceITSAssumingKaon(),1.0);
7d2d1773 292 if(GetCorrectedTotEtFullAcceptanceITS()>0.0)FillHisto1D("RecoTotEtFullAcceptanceITS",GetCorrectedTotEtFullAcceptanceITS(),1.0);
293 if(GetCorrectedHadEtEMCALAcceptanceITS()>0.0)FillHisto1D("RecoHadEtEMCALAcceptanceITS",GetCorrectedHadEtEMCALAcceptanceITS(),1.0);
294 if(GetCorrectedTotEtEMCALAcceptanceITS()>0.0)FillHisto1D("RecoTotEtEMCALAcceptanceITS",GetCorrectedTotEtEMCALAcceptanceITS(),1.0);
295 if(GetCorrectedHadEtPHOSAcceptanceITS()>0.0)FillHisto1D("RecoHadEtPHOSAcceptanceITS",GetCorrectedHadEtPHOSAcceptanceITS(),1.0);
296 if(GetCorrectedTotEtPHOSAcceptanceITS()>0.0)FillHisto1D("RecoTotEtPHOSAcceptanceITS",GetCorrectedTotEtPHOSAcceptanceITS(),1.0);
297 if(GetCorrectedHadEtFullAcceptanceITSNoPID()>0.0)FillHisto1D("RecoHadEtFullAcceptanceITSNoPID",GetCorrectedHadEtFullAcceptanceITSNoPID(),1.0);
298 if(GetCorrectedTotEtFullAcceptanceITSNoPID()>0.0)FillHisto1D("RecoTotEtFullAcceptanceITSNoPID",GetCorrectedTotEtFullAcceptanceITSNoPID(),1.0);
299 if(GetCorrectedHadEtEMCALAcceptanceITSNoPID()>0.0)FillHisto1D("RecoHadEtEMCALAcceptanceITSNoPID",GetCorrectedHadEtEMCALAcceptanceITSNoPID(),1.0);
300 if(GetCorrectedTotEtEMCALAcceptanceITSNoPID()>0.0)FillHisto1D("RecoTotEtEMCALAcceptanceITSNoPID",GetCorrectedTotEtEMCALAcceptanceITSNoPID(),1.0);
301 if(GetCorrectedHadEtPHOSAcceptanceITSNoPID()>0.0)FillHisto1D("RecoHadEtPHOSAcceptanceITSNoPID",GetCorrectedHadEtPHOSAcceptanceITSNoPID(),1.0);
302 if(GetCorrectedTotEtPHOSAcceptanceITSNoPID()>0.0)FillHisto1D("RecoTotEtPHOSAcceptanceITSNoPID",GetCorrectedTotEtPHOSAcceptanceITSNoPID(),1.0);
4e0c0fe1 303
7d2d1773 304 if(GetRawEtFullAcceptanceTPC()>0.0)FillHisto1D("RecoRawEtFullAcceptanceTPC",GetRawEtFullAcceptanceTPC(),1.0);
305 if(GetRawEtEMCALAcceptanceTPC()>0.0)FillHisto1D("RecoRawEtEMCALAcceptanceTPC",GetRawEtEMCALAcceptanceTPC(),1.0);
306 if(GetRawEtPHOSAcceptanceTPC()>0.0)FillHisto1D("RecoRawEtPHOSAcceptanceTPC",GetRawEtPHOSAcceptanceTPC(),1.0);
307 if(GetRawEtFullAcceptanceTPCNoPID()>0.0)FillHisto1D("RecoRawEtFullAcceptanceTPCNoPID",GetRawEtFullAcceptanceTPCNoPID(),1.0);
308 if(GetRawEtEMCALAcceptanceTPCNoPID()>0.0)FillHisto1D("RecoRawEtEMCALAcceptanceTPCNoPID",GetRawEtEMCALAcceptanceTPCNoPID(),1.0);
309 if(GetRawEtPHOSAcceptanceTPCNoPID()>0.0)FillHisto1D("RecoRawEtPHOSAcceptanceTPCNoPID",GetRawEtPHOSAcceptanceTPCNoPID(),1.0);
310 if(GetRawEtFullAcceptanceITS()>0.0)FillHisto1D("RecoRawEtFullAcceptanceITS",GetRawEtFullAcceptanceITS(),1.0);
311 if(GetRawEtEMCALAcceptanceITS()>0.0)FillHisto1D("RecoRawEtEMCALAcceptanceITS",GetRawEtEMCALAcceptanceITS(),1.0);
312 if(GetRawEtPHOSAcceptanceITS()>0.0)FillHisto1D("RecoRawEtPHOSAcceptanceITS",GetRawEtPHOSAcceptanceITS(),1.0);
313 if(GetRawEtFullAcceptanceITSNoPID()>0.0)FillHisto1D("RecoRawEtFullAcceptanceITSNoPID",GetRawEtFullAcceptanceITSNoPID(),1.0);
314 if(GetRawEtEMCALAcceptanceITSNoPID()>0.0)FillHisto1D("RecoRawEtEMCALAcceptanceITSNoPID",GetRawEtEMCALAcceptanceITSNoPID(),1.0);
315 if(GetRawEtPHOSAcceptanceITSNoPID()>0.0)FillHisto1D("RecoRawEtPHOSAcceptanceITSNoPID",GetRawEtPHOSAcceptanceITSNoPID(),1.0);
464aa50c 316 delete pID;
317 delete strTPC;
318 delete strITS;
319 delete strTPCITS;
641e1e0c 320 return 1;
321}
3d1099f3 322void 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 323 if(pt>=AliAnalysisHadEt::fgPtTPCCutOff && IsTPC){//TPC tracks
324 //adding to the raw Et
d6214a64 325 fRawEtFullAcceptanceTPC += rawEt;
326 if(InPHOS)fRawEtPHOSAcceptanceTPC += rawEt;
327 if(InEMCAL)fRawEtEMCALAcceptanceTPC += rawEt;
328 fRawEtFullAcceptanceTPCNoPID += rawEtNoPID;
329 if(InPHOS)fRawEtPHOSAcceptanceTPCNoPID += rawEtNoPID;
330 if(InEMCAL)fRawEtEMCALAcceptanceTPCNoPID += rawEtNoPID;
331 //adding to the corrected Et
d6214a64 332 fCorrectedHadEtFullAcceptanceTPC += corrEt;
3d1099f3 333 fCorrectedHadEtFullAcceptanceTPCAssumingPion += corrEtPion;
334 fCorrectedHadEtFullAcceptanceTPCAssumingProton += corrEtProton;
335 fCorrectedHadEtFullAcceptanceTPCAssumingKaon += corrEtKaon;
d6214a64 336 if(InPHOS)fCorrectedHadEtPHOSAcceptanceTPC += corrEt;
337 if(InEMCAL)fCorrectedHadEtEMCALAcceptanceTPC += corrEt;
338 fCorrectedHadEtFullAcceptanceTPCNoPID += corrEtNoPID;
339 if(InPHOS)fCorrectedHadEtPHOSAcceptanceTPCNoPID += corrEtNoPID;
340 if(InEMCAL)fCorrectedHadEtEMCALAcceptanceTPCNoPID += corrEtNoPID;
341 }
342 if(pt<AliAnalysisHadEt::fgPtTPCCutOff &&pt>=AliAnalysisHadEt::fgPtITSCutOff && !IsTPC){//ITS tracks
343 //adding to the raw Et
344 fRawEtFullAcceptanceITS += rawEt;
345 if(InPHOS)fRawEtPHOSAcceptanceITS += rawEt;
346 if(InEMCAL)fRawEtEMCALAcceptanceITS += rawEt;
347 fRawEtFullAcceptanceITSNoPID += rawEtNoPID;
348 if(InPHOS)fRawEtPHOSAcceptanceITSNoPID += rawEtNoPID;
349 if(InEMCAL)fRawEtEMCALAcceptanceITSNoPID += rawEtNoPID;
350 //adding to the corrected Et
351 fCorrectedHadEtFullAcceptanceITS += corrEt;
3d1099f3 352 fCorrectedHadEtFullAcceptanceITSAssumingPion += corrEtPion;
353 fCorrectedHadEtFullAcceptanceITSAssumingProton += corrEtProton;
354 fCorrectedHadEtFullAcceptanceITSAssumingKaon += corrEtKaon;
d6214a64 355 if(InPHOS)fCorrectedHadEtPHOSAcceptanceITS += corrEt;
356 if(InEMCAL)fCorrectedHadEtEMCALAcceptanceITS += corrEt;
357 fCorrectedHadEtFullAcceptanceITSNoPID += corrEtNoPID;
358 if(InPHOS)fCorrectedHadEtPHOSAcceptanceITSNoPID += corrEtNoPID;
359 if(InEMCAL)fCorrectedHadEtEMCALAcceptanceITSNoPID += corrEtNoPID;
360 }
361}
641e1e0c 362
d6214a64 363Bool_t AliAnalysisHadEtReconstructed::IsInPHOS(AliESDtrack *track){//This function will need to be elaborated on later to include PHOS dead channels
6a0df78a 364 if(!track){
365 cout<<"Error: Track does not exist!!"<<endl;
366 return kFALSE;
367 }
d6214a64 368 return TMath::Abs(track->Eta()) < fCuts->GetGeometryPhosEtaAccCut()//in eta acceptance
369 && track->Phi()*180.0/TMath::Pi() > fCuts->GetGeometryPhosPhiAccMinCut()//greater than the minimum phi
370 && track->Phi()*180.0/TMath::Pi() < fCuts->GetGeometryPhosPhiAccMaxCut();//less than the maximum phi
371}
372Bool_t AliAnalysisHadEtReconstructed::IsInEMCAL(AliESDtrack *track){//This function will need to be elaborated on later to include EMCAL dead channels
6a0df78a 373 if(!track){
374 cout<<"Error: Track does not exist!!"<<endl;
375 return kFALSE;
376 }
d6214a64 377 return TMath::Abs(track->Eta()) < fCuts->GetGeometryEmcalEtaAccCut()//in eta acceptance
378 && track->Phi()*180.0/TMath::Pi() > fCuts->GetGeometryEmcalPhiAccMinCut()//greater than the minimum phi
379 && track->Phi()*180.0/TMath::Pi() < fCuts->GetGeometryEmcalPhiAccMaxCut();//less than the maximum phi
380}
381Bool_t AliAnalysisHadEtReconstructed::CheckGoodVertex(AliVParticle* track)
cf6522d1 382{ // check vertex
6a0df78a 383 if(!track){
384 cout<<"Error: Track does not exist!!"<<endl;
385 return kFALSE;
386 }
641e1e0c 387
388 Float_t bxy = 999.;
389 Float_t bz = 999.;
390 dynamic_cast<AliESDtrack*>(track)->GetImpactParametersTPC(bxy,bz);
391
4998becf 392 bool status = (TMath::Abs(track->Xv()) < fCuts->GetReconstructedVertexXCut()) &&
393 (TMath::Abs(track->Yv()) < fCuts->GetReconstructedVertexYCut()) &&
394 (TMath::Abs(track->Zv()) < fCuts->GetReconstructedVertexZCut()) &&
395 (TMath::Abs(bxy) < fCuts->GetReconstructedIPxyCut()) &&
396 (TMath::Abs(bz) < fCuts->GetReconstructedIPzCut());
641e1e0c 397
4998becf 398 return status;
641e1e0c 399}
400
401void AliAnalysisHadEtReconstructed::Init()
cf6522d1 402{ // Init
4b40b2b1 403 AliAnalysisHadEt::Init();
964c8159 404 if(fCorrections){
464aa50c 405 fCorrTotEtFullAcceptanceTPC = fCorrections->GetConstantCorrections(kTRUE,fgPtTPCCutOff,"Full");
406 fCorrTotEtFullAcceptanceITS = fCorrections->GetConstantCorrections(kTRUE,fgPtITSCutOff,"Full");
407 fCorrHadEtFullAcceptanceTPC = fCorrections->GetConstantCorrections(kFALSE,fgPtTPCCutOff,"Full");
408 fCorrHadEtFullAcceptanceITS = fCorrections->GetConstantCorrections(kFALSE,fgPtITSCutOff,"Full");
409 fCorrTotEtEMCALAcceptanceTPC = fCorrections->GetConstantCorrections(kTRUE,fgPtTPCCutOff,"EMCAL");
410 fCorrTotEtEMCALAcceptanceITS = fCorrections->GetConstantCorrections(kTRUE,fgPtITSCutOff,"EMCAL");
411 fCorrHadEtEMCALAcceptanceTPC = fCorrections->GetConstantCorrections(kFALSE,fgPtTPCCutOff,"EMCAL");
412 fCorrHadEtEMCALAcceptanceITS = fCorrections->GetConstantCorrections(kFALSE,fgPtITSCutOff,"EMCAL");
413 fCorrTotEtPHOSAcceptanceTPC = fCorrections->GetConstantCorrections(kTRUE,fgPtTPCCutOff,"PHOS");
414 fCorrTotEtPHOSAcceptanceITS = fCorrections->GetConstantCorrections(kTRUE,fgPtITSCutOff,"PHOS");
415 fCorrHadEtPHOSAcceptanceTPC = fCorrections->GetConstantCorrections(kFALSE,fgPtTPCCutOff,"PHOS");
416 fCorrHadEtPHOSAcceptanceITS = fCorrections->GetConstantCorrections(kFALSE,fgPtITSCutOff,"PHOS");
964c8159 417 }
418 else{
419 cout<<"Warning! You have not set corrections. Your code will crash. You have to set the corrections."<<endl;
3ce6b879 420 }
641e1e0c 421}
422
464aa50c 423void AliAnalysisHadEtReconstructed::ResetEventValues(){//resetting event by event et's
d6214a64 424 AliAnalysisHadEt::ResetEventValues();
425 fCorrectedHadEtFullAcceptanceTPCNoPID=0.0;
426 fCorrectedHadEtFullAcceptanceITSNoPID=0.0;
427 fCorrectedHadEtEMCALAcceptanceTPCNoPID=0.0;
428 fCorrectedHadEtEMCALAcceptanceITSNoPID=0.0;
429 fCorrectedHadEtPHOSAcceptanceTPCNoPID=0.0;
430 fCorrectedHadEtPHOSAcceptanceITSNoPID=0.0;
431 fCorrectedHadEtFullAcceptanceTPC=0.0;
432 fCorrectedHadEtFullAcceptanceITS=0.0;
3d1099f3 433 fCorrectedHadEtFullAcceptanceTPCAssumingPion=0.0;
434 fCorrectedHadEtFullAcceptanceITSAssumingPion=0.0;
435 fCorrectedHadEtFullAcceptanceTPCAssumingProton=0.0;
436 fCorrectedHadEtFullAcceptanceITSAssumingProton=0.0;
437 fCorrectedHadEtFullAcceptanceTPCAssumingKaon=0.0;
438 fCorrectedHadEtFullAcceptanceITSAssumingKaon=0.0;
d6214a64 439 fCorrectedHadEtEMCALAcceptanceTPC=0.0;
440 fCorrectedHadEtEMCALAcceptanceITS=0.0;
441 fCorrectedHadEtPHOSAcceptanceTPC=0.0;
442 fCorrectedHadEtPHOSAcceptanceITS=0.0;
443 fRawEtFullAcceptanceTPC=0.0;
444 fRawEtFullAcceptanceITS=0.0;
445 fRawEtEMCALAcceptanceTPC=0.0;
446 fRawEtEMCALAcceptanceITS=0.0;
447 fRawEtPHOSAcceptanceTPC=0.0;
448 fRawEtPHOSAcceptanceITS=0.0;
449 fRawEtFullAcceptanceTPCNoPID=0.0;
450 fRawEtFullAcceptanceITSNoPID=0.0;
451 fRawEtEMCALAcceptanceTPCNoPID=0.0;
452 fRawEtEMCALAcceptanceITSNoPID=0.0;
453 fRawEtPHOSAcceptanceTPCNoPID=0.0;
454 fRawEtPHOSAcceptanceITSNoPID=0.0;
455
456 if(TMath::Abs(fCorrTotEtFullAcceptanceTPC)<1e-3){
457 if (fConfigFile.Length()) {
964c8159 458 cout<<"Warning: Rereading fCorrections file..."<<endl;
d6214a64 459 gROOT->LoadMacro(fConfigFile);
464aa50c 460 fCorrections = (AliAnalysisHadEtCorrections *) gInterpreter->ProcessLine("ConfigHadEtAnalysis()");
461 fCorrTotEtFullAcceptanceTPC = fCorrections->GetConstantCorrections(kTRUE,fgPtTPCCutOff,"Full");
462 fCorrTotEtFullAcceptanceITS = fCorrections->GetConstantCorrections(kTRUE,fgPtITSCutOff,"Full");
463 fCorrHadEtFullAcceptanceTPC = fCorrections->GetConstantCorrections(kFALSE,fgPtTPCCutOff,"Full");
464 fCorrHadEtFullAcceptanceITS = fCorrections->GetConstantCorrections(kFALSE,fgPtITSCutOff,"Full");
465 fCorrTotEtEMCALAcceptanceTPC = fCorrections->GetConstantCorrections(kTRUE,fgPtTPCCutOff,"EMCAL");
466 fCorrTotEtEMCALAcceptanceITS = fCorrections->GetConstantCorrections(kTRUE,fgPtITSCutOff,"EMCAL");
467 fCorrHadEtEMCALAcceptanceTPC = fCorrections->GetConstantCorrections(kFALSE,fgPtTPCCutOff,"EMCAL");
468 fCorrHadEtEMCALAcceptanceITS = fCorrections->GetConstantCorrections(kFALSE,fgPtITSCutOff,"EMCAL");
469 fCorrTotEtPHOSAcceptanceTPC = fCorrections->GetConstantCorrections(kTRUE,fgPtTPCCutOff,"PHOS");
470 fCorrTotEtPHOSAcceptanceITS = fCorrections->GetConstantCorrections(kTRUE,fgPtITSCutOff,"PHOS");
471 fCorrHadEtPHOSAcceptanceTPC = fCorrections->GetConstantCorrections(kFALSE,fgPtTPCCutOff,"PHOS");
472 fCorrHadEtPHOSAcceptanceITS = fCorrections->GetConstantCorrections(kFALSE,fgPtITSCutOff,"PHOS");
d6214a64 473 }
474 else{cerr<<"Uh-oh! Unable to open configuration file!"<<endl;}
475 }
d6214a64 476}
464aa50c 477void AliAnalysisHadEtReconstructed::CreateHistograms(){//Creating histograms and adding them to the output TList
3ce6b879 478
6a0df78a 479 //TString *strTPC = new TString("TPC");
3ce6b879 480 TString *strITS = new TString("ITS");
481 TString *strTPCITS = new TString("TPCITS");
482 for(Int_t i=0;i<2;i++){
ea331c5d 483 TString *cutName = NULL;
3ce6b879 484 Float_t maxPtdEdx = 10;
485 Float_t mindEdx = 35;
486 Float_t maxdEdx = 150.0;
487 switch(i){
488 case 0:
f43fc416 489 cutName = strTPCITS;
3ce6b879 490 break;
491 case 1:
f43fc416 492 cutName = strITS;
3ce6b879 493 maxPtdEdx = 5;
494 maxdEdx = 500.0;
495 break;
6a0df78a 496 //not deleting this completely since we might want to add it back in later
497// case 2:
498// cutName = strTPC;
499// maxPtdEdx = 5;
500// maxdEdx = 500.0;
501// break;
3ce6b879 502 default:
503 cerr<<"Error: cannot make histograms!"<<endl;
504 return;
505 }
506
507 CreateEtaPtHisto2D(Form("EtDataRaw%sPiPlus",cutName->Data()),"Raw reconstructed E_{T} from identified #pi^{+}");
508 CreateEtaPtHisto2D(Form("EtDataRaw%sPiMinus",cutName->Data()),"Raw reconstructed E_{T} from identified #pi^{-}");
509 CreateEtaPtHisto2D(Form("EtDataRaw%sKPlus",cutName->Data()),"Raw reconstructed E_{T} from identified K^{+}");
510// CreateEtaPtHisto2D(Form("EtDataRaw%sEMinus",cutName->Data()),"Raw reconstructed E_{T} from identified e^{-}");
511// CreateEtaPtHisto2D(Form("EtDataRaw%sEPlus",cutName->Data()),"Raw reconstructed E_{T} from identified e^{+}");
512 CreateEtaPtHisto2D(Form("EtDataRaw%sKMinus",cutName->Data()),"Raw reconstructed E_{T} from identified K^{-}");
513 CreateEtaPtHisto2D(Form("EtDataRaw%sProton",cutName->Data()),"Raw reconstructed E_{T} from identified p");
514 CreateEtaPtHisto2D(Form("EtDataRaw%sAntiProton",cutName->Data()),"Raw reconstructed E_{T} from identified #bar{p}");
515 CreateEtaPtHisto2D(Form("EtDataRaw%sUnidentified",cutName->Data()),"Raw reconstructed E_{T} from unidentified particles using real mass");
516 CreateEtaPtHisto2D(Form("EtDataRaw%sNoID",cutName->Data()),"Raw reconstructed E_{T} from unidentified particles using real mass");
517
518 CreateEtaPtHisto2D(Form("EtDataCorrected%sPiPlus",cutName->Data()),"Corrected reconstructed E_{T} from identified #pi^{+}");
519 CreateEtaPtHisto2D(Form("EtDataCorrected%sPiMinus",cutName->Data()),"Corrected reconstructed E_{T} from identified #pi^{-}");
520 CreateEtaPtHisto2D(Form("EtDataCorrected%sKPlus",cutName->Data()),"Corrected reconstructed E_{T} from identified K^{+}");
521// CreateEtaPtHisto2D(Form("EtDataCorrected%sEMinus",cutName->Data()),"Corrected reconstructed E_{T} from identified e^{-}");
522// CreateEtaPtHisto2D(Form("EtDataCorrected%sEPlus",cutName->Data()),"Corrected reconstructed E_{T} from identified e^{+}");
523 CreateEtaPtHisto2D(Form("EtDataCorrected%sKMinus",cutName->Data()),"Corrected reconstructed E_{T} from identified K^{-}");
524 CreateEtaPtHisto2D(Form("EtDataCorrected%sProton",cutName->Data()),"Corrected reconstructed E_{T} from identified p");
525 CreateEtaPtHisto2D(Form("EtDataCorrected%sAntiProton",cutName->Data()),"Corrected reconstructed E_{T} from identified #bar{p}");
526 CreateEtaPtHisto2D(Form("EtDataCorrected%sUnidentified",cutName->Data()),"Corrected reconstructed E_{T} from unidentified particles using real mass");
527 CreateEtaPtHisto2D(Form("EtDataCorrected%sNoID",cutName->Data()),"Corrected reconstructed E_{T} from unidentified particles using real mass");
528
529
530 CreateEtaPtHisto2D(Form("EtNData%sPiPlus",cutName->Data()),"Number of reconstructed #pi^{+}");
531 CreateEtaPtHisto2D(Form("EtNData%sPiMinus",cutName->Data()),"Number of reconstructed #pi^{-}");
532 CreateEtaPtHisto2D(Form("EtNData%sKPlus",cutName->Data()),"Number of reconstructed K^{+}");
533 CreateEtaPtHisto2D(Form("EtNData%sKMinus",cutName->Data()),"Number of reconstructed K^{-}");
534 CreateEtaPtHisto2D(Form("EtNData%sProton",cutName->Data()),"Number of reconstructed p");
535 CreateEtaPtHisto2D(Form("EtNData%sAntiProton",cutName->Data()),"Number of reconstructed #bar{p}");
536 CreateEtaPtHisto2D(Form("EtNData%sUnidentified",cutName->Data()),"Number of Reconstructed unidentified particles");
537
538 CreateHisto2D(Form("dEdxDataAll%s",cutName->Data()),"dE/dx for all particles","momentum (GeV/c)","dE/dx",400,0.0,maxPtdEdx,200,mindEdx,maxdEdx);
539 CreateHisto2D(Form("dEdxDataPion%s",cutName->Data()),"dE/dx for #pi^{#pm}","momentum (GeV/c)","dE/dx",400,0.0,maxPtdEdx,200,mindEdx,maxdEdx);
540 CreateHisto2D(Form("dEdxDataKaon%s",cutName->Data()),"dE/dx for K^{#pm}","momentum (GeV/c)","dE/dx",400,0.0,maxPtdEdx,200,mindEdx,maxdEdx);
541 CreateHisto2D(Form("dEdxDataProton%s",cutName->Data()),"dE/dx for p(#bar{p})","momentum (GeV/c)","dE/dx",400,0.0,maxPtdEdx,200,mindEdx,maxdEdx);
542 CreateHisto2D(Form("dEdxDataElectron%s",cutName->Data()),"dE/dx for e^{#pm}","momentum (GeV/c)","dE/dx",400,0.0,maxPtdEdx,200,mindEdx,maxdEdx);
543 CreateHisto2D(Form("dEdxDataUnidentified%s",cutName->Data()),"dE/dx for unidentified particles","momentum (GeV/c)","dE/dx",400,0.0,maxPtdEdx,200,mindEdx,maxdEdx);
544 }
4e0c0fe1 545
546 Float_t minEt = 0.0;
547 Float_t maxEt = 100.0;
548 Int_t nbinsEt = 200;
549 char histoname[200];
550 char histotitle[200];
551 char xtitle[50];
552 TString *ytitle = new TString("Number of events");
464aa50c 553 TString *sTPC = new TString("TPC");
554 TString *sITS = new TString("ITS");
555 TString *sTPCpt = new TString("0.15");
556 TString *sITSpt = new TString("0.10");
557 TString *sPID = new TString("");
558 TString *sNoPID = new TString("NoPID");
559 TString *sNoPIDString = new TString(", No PID");
560 TString *sHadEt = new TString("HadEt");
561 TString *sRawEt = new TString("RawEt");
562 TString *sTotEt = new TString("TotEt");
563 TString *sTotEtString = new TString("total E_{T}");
564 TString *sHadEtString = new TString("hadronic E_{T}");
565 TString *sRawEtString = new TString("raw E_{T}");
566 TString *sFull = new TString("Full");
567 TString *sEMCAL = new TString("EMCAL");
568 TString *sPHOS = new TString("PHOS");
4e0c0fe1 569
570 for(int tpc = 0;tpc<2;tpc++){
571 for(int hadet = 0;hadet<3;hadet++){
572 for(int type = 0;type<3;type++){
573 for(int pid = 0;pid<2;pid++){
ea331c5d 574 TString *detector = NULL;
575 TString *partid = NULL;
464aa50c 576 TString *et = sHadEt;
ea331c5d 577 TString *acceptance = NULL;
578 TString *ptstring = NULL;
579 TString *partidstring = NULL;
464aa50c 580 TString *etstring = sHadEtString;
581 if(tpc==1) {detector = sTPC; ptstring = sTPCpt;}
582 else{detector = sITS; ptstring = sITSpt;}
583 if(pid==1){partid = sPID; partidstring = sPID;}
584 else{partid = sNoPID; partidstring = sNoPIDString;}
585 if(hadet==1) {et = sHadEt; etstring = sHadEtString;}
586 if(hadet==0){et = sTotEt; etstring = sTotEtString;}
587 if(hadet==2){et = sRawEt; etstring = sRawEtString;}
4e0c0fe1 588 switch(type){
589 case 0:
464aa50c 590 acceptance = sFull;
4e0c0fe1 591 break;
592 case 1:
464aa50c 593 acceptance = sEMCAL;
4e0c0fe1 594 break;
595 case 2:
464aa50c 596 acceptance = sPHOS;
4e0c0fe1 597 break;
598 default:
464aa50c 599 acceptance = sFull;
4e0c0fe1 600 }
6a0df78a 601 snprintf(histoname,200,"Reco%s%sAcceptance%s%s",et->Data(),acceptance->Data(),detector->Data(),partid->Data());
602 snprintf(histotitle,200,"Reconstructed %s with %s acceptance for p_{T}>%s GeV/c%s",etstring->Data(),acceptance->Data(),ptstring->Data(),partidstring->Data());
603 snprintf(xtitle,50,"Reconstructed %s",etstring->Data());
0e866ddc 604 CreateHisto1D(histoname,histotitle,xtitle,ytitle->Data(),nbinsEt*2,minEt,maxEt);
4e0c0fe1 605 }
606 }
607 }
608 }
3d1099f3 609 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);
610 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);
611 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);
612 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);
613 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);
614 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 615
464aa50c 616 delete sTPC;
617 delete sITS;
618 delete sTPCpt;
619 delete sITSpt;
620 delete sPID;
621 delete sNoPID;
622 delete sNoPIDString;
623 delete sHadEt;
624 delete sTotEt;
625 delete sTotEtString;
626 delete sHadEtString;
627 delete sFull;
628 delete sEMCAL;
629 delete sPHOS;
4e0c0fe1 630
3ce6b879 631}