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