]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGLF/totEt/AliAnalysisHadEtReconstructed.cxx
TENDER becomes Tender
[u/mrichter/AliRoot.git] / PWGLF / 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"
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 37using namespace std;
38
39ClassImp(AliAnalysisHadEtReconstructed);
40
41
641e1e0c 42AliAnalysisHadEtReconstructed::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 96AliAnalysisHadEtReconstructed::~AliAnalysisHadEtReconstructed()
641e1e0c 97{
464aa50c 98 delete fCorrections;
cf6522d1 99}
100
2c0680a5 101Int_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 484void 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 527Bool_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}
536Bool_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}
545Bool_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
570void 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 594void 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 650void 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}