AliAnalysisHadEt()
,corrections(0)
,fConfigFile("ConfigHadEtAnalysis.C")
- ,fCorrTotEtFullAcceptanceTPC(0)
- ,fCorrTotEtFullAcceptanceITS(0)
- ,fCorrHadEtFullAcceptanceTPC(0)
- ,fCorrHadEtFullAcceptanceITS(0)
- ,fCorrTotEtEMCALAcceptanceTPC(0)
- ,fCorrTotEtEMCALAcceptanceITS(0)
- ,fCorrHadEtEMCALAcceptanceTPC(0)
- ,fCorrHadEtEMCALAcceptanceITS(0)
- ,fCorrTotEtPHOSAcceptanceTPC(0)
- ,fCorrTotEtPHOSAcceptanceITS(0)
- ,fCorrHadEtPHOSAcceptanceTPC(0)
- ,fCorrHadEtPHOSAcceptanceITS(0)
- ,fRawEtFullAcceptanceTPC(0)
- ,fRawEtFullAcceptanceITS(0)
- ,fRawEtEMCALAcceptanceTPC(0)
- ,fRawEtEMCALAcceptanceITS(0)
- ,fRawEtPHOSAcceptanceTPC(0)
- ,fRawEtPHOSAcceptanceITS(0)
+ ,fCorrTotEtFullAcceptanceTPC(0)
+ ,fCorrTotEtFullAcceptanceITS(0)
+ ,fCorrHadEtFullAcceptanceTPC(0)
+ ,fCorrHadEtFullAcceptanceITS(0)
+ ,fCorrTotEtEMCALAcceptanceTPC(0)
+ ,fCorrTotEtEMCALAcceptanceITS(0)
+ ,fCorrHadEtEMCALAcceptanceTPC(0)
+ ,fCorrHadEtEMCALAcceptanceITS(0)
+ ,fCorrTotEtPHOSAcceptanceTPC(0)
+ ,fCorrTotEtPHOSAcceptanceITS(0)
+ ,fCorrHadEtPHOSAcceptanceTPC(0)
+ ,fCorrHadEtPHOSAcceptanceITS(0)
+ ,fCorrectedHadEtFullAcceptanceTPCNoPID(0)
+ ,fCorrectedHadEtFullAcceptanceITSNoPID(0)
+ ,fCorrectedHadEtEMCALAcceptanceTPCNoPID(0)
+ ,fCorrectedHadEtEMCALAcceptanceITSNoPID(0)
+ ,fCorrectedHadEtPHOSAcceptanceTPCNoPID(0)
+ ,fCorrectedHadEtPHOSAcceptanceITSNoPID(0)
+ ,fCorrectedHadEtFullAcceptanceTPC(0)
+ ,fCorrectedHadEtFullAcceptanceITS(0)
+ ,fCorrectedHadEtEMCALAcceptanceTPC(0)
+ ,fCorrectedHadEtEMCALAcceptanceITS(0)
+ ,fCorrectedHadEtPHOSAcceptanceTPC(0)
+ ,fCorrectedHadEtPHOSAcceptanceITS(0)
+ ,fRawEtFullAcceptanceTPC(0)
+ ,fRawEtFullAcceptanceITS(0)
+ ,fRawEtEMCALAcceptanceTPC(0)
+ ,fRawEtEMCALAcceptanceITS(0)
+ ,fRawEtPHOSAcceptanceTPC(0)
+ ,fRawEtPHOSAcceptanceITS(0)
+ ,fRawEtFullAcceptanceTPCNoPID(0)
+ ,fRawEtFullAcceptanceITSNoPID(0)
+ ,fRawEtEMCALAcceptanceTPCNoPID(0)
+ ,fRawEtEMCALAcceptanceITSNoPID(0)
+ ,fRawEtPHOSAcceptanceTPCNoPID(0)
+ ,fRawEtPHOSAcceptanceITSNoPID(0)
{
}
Int_t AliAnalysisHadEtReconstructed::AnalyseEvent(AliVEvent* ev)
{ // analyse ESD event
ResetEventValues();
- fRawEtFullAcceptanceTPC=0.0;
- fRawEtFullAcceptanceITS=0.0;
- fRawEtEMCALAcceptanceTPC=0.0;
- fRawEtEMCALAcceptanceITS=0.0;
- fRawEtPHOSAcceptanceTPC=0.0;
- fRawEtPHOSAcceptanceITS=0.0;
AliESDEvent *realEvent = dynamic_cast<AliESDEvent*>(ev);
//for PID
TString *strTPC = new TString("TPC");
TString *strITS = new TString("ITS");
TString *strTPCITS = new TString("TPCITS");
+ bool isTPC = false;
for(Int_t cutset=0;cutset<2;cutset++){
TString *cutName;
TObjArray* list;
case 0:
cutName = strTPC;
list = fEsdtrackCutsTPC->GetAcceptedTracks(realEvent);
+ isTPC = true;
break;
case 1:
cutName = strITS;
return -1;
}
Int_t nGoodTracks = list->GetEntries();
+ //cout<<nGoodTracks<<" "<<cutName->Data()<<" tracks"<<endl;
for (Int_t iTrack = 0; iTrack < nGoodTracks; iTrack++)
{
continue;
}
else{
+ if(TMath::Abs(track->Eta())>corrections->GetEtaCut()) continue;
Float_t nSigmaPion,nSigmaProton,nSigmaKaon,nSigmaElectron;
if(cutset!=1){
if(cutset==1) dEdx = track->GetITSsignal();
FillHisto2D(Form("dEdxDataAll%s",cutName->Data()),track->P(),dEdx,1.0);
+ bool inPHOS = IsInPHOS(track);
+ bool inEMCAL = IsInEMCAL(track);
+ //if(!(corrections->GetEfficiencyPionTPC())) cerr<<"Uh-oh! No histogram!"<<endl;
+
Float_t corrBkgd=0.0;
Float_t corrNotID=0.0;
Float_t corrNoID = corrections->GetNotIDCorrectionNoPID(track->Pt());
Float_t corrEffNoID = 0.0;
if(cutset==0){//TPC
corrBkgd = corrections->GetBackgroundCorrectionTPC(track->Pt());
- //corrEffNoID = corrections->GetTPCEfficiencyCorrectionHadron(track->Pt());
+ corrEffNoID = corrections->GetTPCEfficiencyCorrectionHadron(track->Pt());
corrNotID = corrections->GetNotIDCorrectionTPC(track->Pt());
}
if(cutset==1){//ITS
corrNotID = corrections->GetNotIDCorrectionITS(track->Pt());
}
Float_t et = 0.0;
+ Float_t etNoID = Et(track->P(),track->Theta(),fPiPlusCode,track->Charge());
Float_t etpartialcorrected = 0.0;
- Float_t etpartialcorrectedNoID = corrNoID*corrBkgd*corrEffNoID*Et(track->P(),track->Theta(),fPiPlusCode,track->Charge());
+ Float_t etpartialcorrectedNoID = corrNoID*corrBkgd*corrEffNoID*etNoID;
FillHisto2D(Form("EtDataRaw%sNoID",cutName->Data()),track->Pt(),track->Eta(),etpartialcorrectedNoID);
if(isPion){
FillHisto2D(Form("dEdxDataPion%s",cutName->Data()),track->P(),dEdx,1.0);
et = Et(track->P(),track->Theta(),fPiPlusCode,track->Charge());
- //if(cutset==0){corrEff = corrections->GetTPCEfficiencyCorrectionPion(track->Pt());}
+ if(cutset==0){corrEff = corrections->GetTPCEfficiencyCorrectionPion(track->Pt());}
//else{corrEff = corrections->GetITSEfficiencyCorrectionPion(track->Pt());}
etpartialcorrected = et*corrBkgd*corrEff;
if(isKaon){
FillHisto2D(Form("dEdxDataKaon%s",cutName->Data()),track->P(),dEdx,1.0);
et = Et(track->P(),track->Theta(),fKPlusCode,track->Charge());
- //if(cutset==0){corrEff = corrections->GetTPCEfficiencyCorrectionKaon(track->Pt());}
+ if(cutset==0){corrEff = corrections->GetTPCEfficiencyCorrectionKaon(track->Pt());}
//else{corrEff = corrections->GetITSEfficiencyCorrectionKaon(track->Pt());}
etpartialcorrected = et*corrBkgd*corrEff;
if(isProton){
FillHisto2D(Form("dEdxDataProton%s",cutName->Data()),track->P(),dEdx,1.0);
et = Et(track->P(),track->Theta(),fProtonCode,track->Charge());
- //if(cutset==0){corrEff = corrections->GetTPCEfficiencyCorrectionProton(track->Pt());}
+ if(cutset==0){corrEff = corrections->GetTPCEfficiencyCorrectionProton(track->Pt());}
//else{corrEff = corrections->GetITSEfficiencyCorrectionProton(track->Pt());}
etpartialcorrected = et*corrBkgd*corrEff;
etpartialcorrected = et*corrBkgd*corrEffNoID*corrNotID;
FillHisto2D(Form("EtDataCorrected%sUnidentified",cutName->Data()),track->Pt(),track->Eta(),etpartialcorrected);
}
+ if(!isTPC) etpartialcorrected = etpartialcorrectedNoID;//Not using PID for ITS
+ AddEt(et,etNoID,etpartialcorrected,etpartialcorrectedNoID,track->Pt(),isTPC,inPHOS,inEMCAL);
+ //if(inEMCAL) cout<<"I should add a track"<<endl;
}
}
}
+// cout<<"Finishing with Raw/Corrected Et in full, PHOS, EMCAL acceptance of "
+// << GetRawEtFullAcceptanceITS() <<"/"
+// << GetCorrectedHadEtFullAcceptanceITS() <<", "
+// << GetRawEtPHOSAcceptanceITS() <<"/"
+// << GetCorrectedHadEtPHOSAcceptanceITS() <<", "
+// << GetRawEtEMCALAcceptanceITS() <<"/"
+// << GetCorrectedHadEtEMCALAcceptanceITS() <<endl;
+// cout<<"Finishing with Raw/Corrected Et w/o PID in full, PHOS, EMCAL acceptance of "
+// << GetRawEtFullAcceptanceITSNoPID() <<"/"
+// << GetCorrectedHadEtFullAcceptanceITSNoPID() <<", "
+// << GetRawEtPHOSAcceptanceITSNoPID() <<"/"
+// << GetCorrectedHadEtPHOSAcceptanceITSNoPID() <<", "
+// << GetRawEtEMCALAcceptanceITSNoPID() <<"/"
+// << GetCorrectedHadEtEMCALAcceptanceITSNoPID() <<endl;
+// cout<<"Finishing with Raw/Corrected Et in full, PHOS, EMCAL acceptance of "
+// << GetRawEtFullAcceptanceTPC() <<"/"
+// << GetCorrectedHadEtFullAcceptanceTPC() <<", "
+// << GetRawEtPHOSAcceptanceTPC() <<"/"
+// << GetCorrectedHadEtPHOSAcceptanceTPC() <<", "
+// << GetRawEtEMCALAcceptanceTPC() <<"/"
+// << GetCorrectedHadEtEMCALAcceptanceTPC() <<endl;
+// cout<<"Finishing with Raw/Corrected Et w/o PID in full, PHOS, EMCAL acceptance of "
+// << GetRawEtFullAcceptanceTPCNoPID() <<"/"
+// << GetCorrectedHadEtFullAcceptanceTPCNoPID() <<", "
+// << GetRawEtPHOSAcceptanceTPCNoPID() <<"/"
+// << GetCorrectedHadEtPHOSAcceptanceTPCNoPID() <<", "
+// << GetRawEtEMCALAcceptanceTPCNoPID() <<"/"
+// << GetCorrectedHadEtEMCALAcceptanceTPCNoPID() <<endl;
+// cout<<"Correction factors "
+// <<fCorrTotEtFullAcceptanceTPC<<", "<<fCorrTotEtFullAcceptanceITS<<", "<<fCorrHadEtFullAcceptanceTPC<<", "<<fCorrHadEtFullAcceptanceITS<<","
+// <<fCorrTotEtEMCALAcceptanceTPC<<", "<<fCorrTotEtEMCALAcceptanceITS<<", "<<fCorrHadEtEMCALAcceptanceTPC<<", "<<fCorrHadEtEMCALAcceptanceITS<<","
+// <<fCorrTotEtPHOSAcceptanceTPC<<", "<<fCorrTotEtPHOSAcceptanceITS<<", "<<fCorrHadEtPHOSAcceptanceTPC<<", "<<fCorrHadEtPHOSAcceptanceITS<<endl;
return 1;
}
+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) {
+ if(pt>=AliAnalysisHadEt::fgPtTPCCutOff && IsTPC){//TPC tracks
+ //adding to the raw Et
+ //if(InEMCAL) cout<<"Adding "<<rawEt<<" to the raw Et"<<endl;
+ fRawEtFullAcceptanceTPC += rawEt;
+ if(InPHOS)fRawEtPHOSAcceptanceTPC += rawEt;
+ if(InEMCAL)fRawEtEMCALAcceptanceTPC += rawEt;
+ fRawEtFullAcceptanceTPCNoPID += rawEtNoPID;
+ if(InPHOS)fRawEtPHOSAcceptanceTPCNoPID += rawEtNoPID;
+ if(InEMCAL)fRawEtEMCALAcceptanceTPCNoPID += rawEtNoPID;
+ //adding to the corrected Et
+ //if(InPHOS) cout<<"Adding "<<corrEt<<" to the corrected Et"<<endl;
+ fCorrectedHadEtFullAcceptanceTPC += corrEt;
+ if(InPHOS)fCorrectedHadEtPHOSAcceptanceTPC += corrEt;
+ if(InEMCAL)fCorrectedHadEtEMCALAcceptanceTPC += corrEt;
+ fCorrectedHadEtFullAcceptanceTPCNoPID += corrEtNoPID;
+ if(InPHOS)fCorrectedHadEtPHOSAcceptanceTPCNoPID += corrEtNoPID;
+ if(InEMCAL)fCorrectedHadEtEMCALAcceptanceTPCNoPID += corrEtNoPID;
+ }
+ if(pt<AliAnalysisHadEt::fgPtTPCCutOff &&pt>=AliAnalysisHadEt::fgPtITSCutOff && !IsTPC){//ITS tracks
+ //adding to the raw Et
+ fRawEtFullAcceptanceITS += rawEt;
+ if(InPHOS)fRawEtPHOSAcceptanceITS += rawEt;
+ if(InEMCAL)fRawEtEMCALAcceptanceITS += rawEt;
+ fRawEtFullAcceptanceITSNoPID += rawEtNoPID;
+ if(InPHOS)fRawEtPHOSAcceptanceITSNoPID += rawEtNoPID;
+ if(InEMCAL)fRawEtEMCALAcceptanceITSNoPID += rawEtNoPID;
+ //adding to the corrected Et
+ fCorrectedHadEtFullAcceptanceITS += corrEt;
+ if(InPHOS)fCorrectedHadEtPHOSAcceptanceITS += corrEt;
+ if(InEMCAL)fCorrectedHadEtEMCALAcceptanceITS += corrEt;
+ fCorrectedHadEtFullAcceptanceITSNoPID += corrEtNoPID;
+ if(InPHOS)fCorrectedHadEtPHOSAcceptanceITSNoPID += corrEtNoPID;
+ if(InEMCAL)fCorrectedHadEtEMCALAcceptanceITSNoPID += corrEtNoPID;
+ }
+}
-bool AliAnalysisHadEtReconstructed::CheckGoodVertex(AliVParticle* track)
+Bool_t AliAnalysisHadEtReconstructed::IsInPHOS(AliESDtrack *track){//This function will need to be elaborated on later to include PHOS dead channels
+ return TMath::Abs(track->Eta()) < fCuts->GetGeometryPhosEtaAccCut()//in eta acceptance
+ && track->Phi()*180.0/TMath::Pi() > fCuts->GetGeometryPhosPhiAccMinCut()//greater than the minimum phi
+ && track->Phi()*180.0/TMath::Pi() < fCuts->GetGeometryPhosPhiAccMaxCut();//less than the maximum phi
+}
+Bool_t AliAnalysisHadEtReconstructed::IsInEMCAL(AliESDtrack *track){//This function will need to be elaborated on later to include EMCAL dead channels
+ //cout<<"Eta: |"<<track->Eta()<<"|<"<< fCuts->GetGeometryEmcalEtaAccCut() <<"; phi: "<<fCuts->GetGeometryEmcalPhiAccMinCut()<<"<"<<track->Phi()*180.0/TMath::Pi()<<"<"<<fCuts->GetGeometryEmcalPhiAccMaxCut()<<endl;
+ return TMath::Abs(track->Eta()) < fCuts->GetGeometryEmcalEtaAccCut()//in eta acceptance
+ && track->Phi()*180.0/TMath::Pi() > fCuts->GetGeometryEmcalPhiAccMinCut()//greater than the minimum phi
+ && track->Phi()*180.0/TMath::Pi() < fCuts->GetGeometryEmcalPhiAccMaxCut();//less than the maximum phi
+}
+Bool_t AliAnalysisHadEtReconstructed::CheckGoodVertex(AliVParticle* track)
{ // check vertex
Float_t bxy = 999.;
if (fConfigFile.Length()) {
gROOT->LoadMacro(fConfigFile);
corrections = (AliAnalysisHadEtCorrections *) gInterpreter->ProcessLine("ConfigHadEtAnalysis()");
- fCorrTotEtFullAcceptanceTPC = corrections->GetConstantCorrections(kTRUE,0.15,"Full");
- fCorrTotEtFullAcceptanceITS = corrections->GetConstantCorrections(kTRUE,0.1,"Full");
- fCorrHadEtFullAcceptanceTPC = corrections->GetConstantCorrections(kFALSE,0.15,"Full");
- fCorrHadEtFullAcceptanceITS = corrections->GetConstantCorrections(kFALSE,0.1,"Full");
- fCorrTotEtEMCALAcceptanceTPC = corrections->GetConstantCorrections(kTRUE,0.15,"EMCAL");
- fCorrTotEtEMCALAcceptanceITS = corrections->GetConstantCorrections(kTRUE,0.1,"EMCAL");
- fCorrHadEtEMCALAcceptanceTPC = corrections->GetConstantCorrections(kFALSE,0.15,"EMCAL");
- fCorrHadEtEMCALAcceptanceITS = corrections->GetConstantCorrections(kFALSE,0.1,"EMCAL");
- fCorrTotEtPHOSAcceptanceTPC = corrections->GetConstantCorrections(kTRUE,0.15,"PHOS");
- fCorrTotEtPHOSAcceptanceITS = corrections->GetConstantCorrections(kTRUE,0.1,"PHOS");
- fCorrHadEtPHOSAcceptanceTPC = corrections->GetConstantCorrections(kFALSE,0.15,"PHOS");
- fCorrHadEtPHOSAcceptanceITS = corrections->GetConstantCorrections(kFALSE,0.1,"PHOS");
+ fCorrTotEtFullAcceptanceTPC = corrections->GetConstantCorrections(kTRUE,fgPtTPCCutOff,"Full");
+ fCorrTotEtFullAcceptanceITS = corrections->GetConstantCorrections(kTRUE,fgPtITSCutOff,"Full");
+ fCorrHadEtFullAcceptanceTPC = corrections->GetConstantCorrections(kFALSE,fgPtTPCCutOff,"Full");
+ fCorrHadEtFullAcceptanceITS = corrections->GetConstantCorrections(kFALSE,fgPtITSCutOff,"Full");
+ fCorrTotEtEMCALAcceptanceTPC = corrections->GetConstantCorrections(kTRUE,fgPtTPCCutOff,"EMCAL");
+ fCorrTotEtEMCALAcceptanceITS = corrections->GetConstantCorrections(kTRUE,fgPtITSCutOff,"EMCAL");
+ fCorrHadEtEMCALAcceptanceTPC = corrections->GetConstantCorrections(kFALSE,fgPtTPCCutOff,"EMCAL");
+ fCorrHadEtEMCALAcceptanceITS = corrections->GetConstantCorrections(kFALSE,fgPtITSCutOff,"EMCAL");
+ fCorrTotEtPHOSAcceptanceTPC = corrections->GetConstantCorrections(kTRUE,fgPtTPCCutOff,"PHOS");
+ fCorrTotEtPHOSAcceptanceITS = corrections->GetConstantCorrections(kTRUE,fgPtITSCutOff,"PHOS");
+ fCorrHadEtPHOSAcceptanceTPC = corrections->GetConstantCorrections(kFALSE,fgPtTPCCutOff,"PHOS");
+ fCorrHadEtPHOSAcceptanceITS = corrections->GetConstantCorrections(kFALSE,fgPtITSCutOff,"PHOS");
}
}
+void AliAnalysisHadEtReconstructed::ResetEventValues(){
+ AliAnalysisHadEt::ResetEventValues();
+ fCorrectedHadEtFullAcceptanceTPCNoPID=0.0;
+ fCorrectedHadEtFullAcceptanceITSNoPID=0.0;
+ fCorrectedHadEtEMCALAcceptanceTPCNoPID=0.0;
+ fCorrectedHadEtEMCALAcceptanceITSNoPID=0.0;
+ fCorrectedHadEtPHOSAcceptanceTPCNoPID=0.0;
+ fCorrectedHadEtPHOSAcceptanceITSNoPID=0.0;
+ fCorrectedHadEtFullAcceptanceTPC=0.0;
+ fCorrectedHadEtFullAcceptanceITS=0.0;
+ fCorrectedHadEtEMCALAcceptanceTPC=0.0;
+ fCorrectedHadEtEMCALAcceptanceITS=0.0;
+ fCorrectedHadEtPHOSAcceptanceTPC=0.0;
+ fCorrectedHadEtPHOSAcceptanceITS=0.0;
+ fRawEtFullAcceptanceTPC=0.0;
+ fRawEtFullAcceptanceITS=0.0;
+ fRawEtEMCALAcceptanceTPC=0.0;
+ fRawEtEMCALAcceptanceITS=0.0;
+ fRawEtPHOSAcceptanceTPC=0.0;
+ fRawEtPHOSAcceptanceITS=0.0;
+ fRawEtFullAcceptanceTPCNoPID=0.0;
+ fRawEtFullAcceptanceITSNoPID=0.0;
+ fRawEtEMCALAcceptanceTPCNoPID=0.0;
+ fRawEtEMCALAcceptanceITSNoPID=0.0;
+ fRawEtPHOSAcceptanceTPCNoPID=0.0;
+ fRawEtPHOSAcceptanceITSNoPID=0.0;
+ if(TMath::Abs(fCorrTotEtFullAcceptanceTPC)<1e-3){
+ if (fConfigFile.Length()) {
+ cout<<"Rereading corrections file..."<<endl;
+ gROOT->LoadMacro(fConfigFile);
+ corrections = (AliAnalysisHadEtCorrections *) gInterpreter->ProcessLine("ConfigHadEtAnalysis()");
+ fCorrTotEtFullAcceptanceTPC = corrections->GetConstantCorrections(kTRUE,fgPtTPCCutOff,"Full");
+ fCorrTotEtFullAcceptanceITS = corrections->GetConstantCorrections(kTRUE,fgPtITSCutOff,"Full");
+ fCorrHadEtFullAcceptanceTPC = corrections->GetConstantCorrections(kFALSE,fgPtTPCCutOff,"Full");
+ fCorrHadEtFullAcceptanceITS = corrections->GetConstantCorrections(kFALSE,fgPtITSCutOff,"Full");
+ fCorrTotEtEMCALAcceptanceTPC = corrections->GetConstantCorrections(kTRUE,fgPtTPCCutOff,"EMCAL");
+ fCorrTotEtEMCALAcceptanceITS = corrections->GetConstantCorrections(kTRUE,fgPtITSCutOff,"EMCAL");
+ fCorrHadEtEMCALAcceptanceTPC = corrections->GetConstantCorrections(kFALSE,fgPtTPCCutOff,"EMCAL");
+ fCorrHadEtEMCALAcceptanceITS = corrections->GetConstantCorrections(kFALSE,fgPtITSCutOff,"EMCAL");
+ fCorrTotEtPHOSAcceptanceTPC = corrections->GetConstantCorrections(kTRUE,fgPtTPCCutOff,"PHOS");
+ fCorrTotEtPHOSAcceptanceITS = corrections->GetConstantCorrections(kTRUE,fgPtITSCutOff,"PHOS");
+ fCorrHadEtPHOSAcceptanceTPC = corrections->GetConstantCorrections(kFALSE,fgPtTPCCutOff,"PHOS");
+ fCorrHadEtPHOSAcceptanceITS = corrections->GetConstantCorrections(kFALSE,fgPtITSCutOff,"PHOS");
+ }
+ else{cerr<<"Uh-oh! Unable to open configuration file!"<<endl;}
+ }
+
+}
void AliAnalysisHadEtReconstructed::CreateHistograms(){
TString *strTPC = new TString("TPC");