// author: Alberica Toia
//*****************************************************
+#include "AliCentralitySelectionTask.h"
+
#include <TTree.h>
#include <TList.h>
#include <TH1F.h>
#include <TCanvas.h>
#include <TROOT.h>
#include <TDirectory.h>
+#include <TSystem.h>
#include <iostream>
#include "AliAnalysisManager.h"
#include "AliESDFMD.h"
#include "AliESDVZERO.h"
#include "AliESDCentrality.h"
+#include "AliESDtrackCuts.h"
#include "AliMultiplicity.h"
#include "AliAODHandler.h"
#include "AliAODEvent.h"
+#include "AliESDVertex.h"
#include "AliAODVertex.h"
#include "AliAODMCHeader.h"
#include "AliMCEvent.h"
#include "AliPhysicsSelectionTask.h"
#include "AliPhysicsSelection.h"
#include "AliBackgroundSelection.h"
-#include "AliCentralitySelectionTask.h"
+#include "AliESDUtils.h"
ClassImp(AliCentralitySelectionTask)
fIsMCInput(kFALSE),
fFile(0),
fFile2(0),
- fCentfilename(""),
- fCentfilename2(""),
- fFileList(new TList),
- fFileList2(new TList),
fCurrentRun(-1),
+ fRunNo(-1),
+ fTrackCuts(0),
fCentV0M(0),
fCentFMD(0),
fCentTRK(0),
fHtempCL1(0),
fHtempV0MvsFMD(0),
fHtempTKLvsV0M(0),
- fHtempZEMvsZDC(0)
+ fHtempZEMvsZDC(0),
+ fOutputList(0),
+ fHOutCentV0M (0),
+ fHOutCentFMD (0),
+ fHOutCentTRK (0),
+ fHOutCentTKL (0),
+ fHOutCentCL0 (0),
+ fHOutCentCL1 (0),
+ fHOutCentV0MvsFMD(0),
+ fHOutCentTKLvsV0M(0),
+ fHOutCentZEMvsZDC(0),
+ fHOutMultV0M(0),
+ fHOutMultV0R(0),
+ fHOutMultFMD(0),
+ fHOutMultTRK(0),
+ fHOutMultTKL(0),
+ fHOutMultCL0(0),
+ fHOutMultCL1(0),
+ fHOutMultV0MvsZDC(0),
+ fHOutMultZEMvsZDC(0),
+ fHOutMultV0MvsCL1(0),
+ fHOutMultV0MvsTRK(0),
+ fHOutMultTRKvsCL1(0)
{
// Default constructor
- fFileList->SetOwner();
- fFileList2->SetOwner();
-
AliInfo("Centrality Selection enabled.");
}
fIsMCInput(kFALSE),
fFile(0),
fFile2(0),
- fCentfilename(""),
- fCentfilename2(""),
- fFileList(new TList),
- fFileList2(new TList),
fCurrentRun(-1),
+ fRunNo(-1),
+ fTrackCuts(0),
fCentV0M(0),
fCentFMD(0),
fCentTRK(0),
fHtempCL1(0),
fHtempV0MvsFMD(0),
fHtempTKLvsV0M(0),
- fHtempZEMvsZDC(0)
+ fHtempZEMvsZDC(0),
+ fOutputList(0),
+ fHOutCentV0M (0),
+ fHOutCentFMD (0),
+ fHOutCentTRK (0),
+ fHOutCentTKL (0),
+ fHOutCentCL0 (0),
+ fHOutCentCL1 (0),
+ fHOutCentV0MvsFMD(0),
+ fHOutCentTKLvsV0M(0),
+ fHOutCentZEMvsZDC(0),
+ fHOutMultV0M(0),
+ fHOutMultV0R(0),
+ fHOutMultFMD(0),
+ fHOutMultTRK(0),
+ fHOutMultTKL(0),
+ fHOutMultCL0(0),
+ fHOutMultCL1(0),
+ fHOutMultV0MvsZDC(0),
+ fHOutMultZEMvsZDC(0),
+ fHOutMultV0MvsCL1(0),
+ fHOutMultV0MvsTRK(0),
+ fHOutMultTRKvsCL1(0)
{
// Default constructor
- fFileList->SetOwner();
- fFileList2->SetOwner();
-
AliInfo("Centrality Selection enabled.");
+ DefineOutput(1, TList::Class());
}
//________________________________________________________________________
fIsMCInput(ana.fIsMCInput),
fFile(ana.fFile),
fFile2(ana.fFile2),
- fCentfilename(ana.fCentfilename),
- fCentfilename2(ana.fCentfilename2),
- fFileList(ana.fFileList),
- fFileList2(ana.fFileList2),
fCurrentRun(ana.fCurrentRun),
+ fRunNo(ana.fRunNo),
+ fTrackCuts(ana.fTrackCuts),
fCentV0M(ana.fCentV0M),
fCentFMD(ana.fCentFMD),
fCentTRK(ana.fCentTRK),
fHtempCL1(ana.fHtempCL1),
fHtempV0MvsFMD(ana.fHtempV0MvsFMD),
fHtempTKLvsV0M(ana.fHtempTKLvsV0M),
- fHtempZEMvsZDC(ana.fHtempZEMvsZDC)
+ fHtempZEMvsZDC(ana.fHtempZEMvsZDC),
+ fOutputList(ana.fOutputList),
+ fHOutCentV0M (ana.fHOutCentV0M ),
+ fHOutCentFMD (ana.fHOutCentFMD ),
+ fHOutCentTRK (ana.fHOutCentTRK ),
+ fHOutCentTKL (ana.fHOutCentTKL ),
+ fHOutCentCL0 (ana.fHOutCentCL0 ),
+ fHOutCentCL1 (ana.fHOutCentCL1 ),
+ fHOutCentV0MvsFMD(ana.fHOutCentV0MvsFMD),
+ fHOutCentTKLvsV0M(ana.fHOutCentTKLvsV0M),
+ fHOutCentZEMvsZDC(ana.fHOutCentZEMvsZDC),
+ fHOutMultV0M(ana.fHOutMultV0M),
+ fHOutMultV0R(ana.fHOutMultV0R),
+ fHOutMultFMD(ana.fHOutMultFMD),
+ fHOutMultTRK(ana.fHOutMultTRK),
+ fHOutMultTKL(ana.fHOutMultTKL),
+ fHOutMultCL0(ana.fHOutMultCL0),
+ fHOutMultCL1(ana.fHOutMultCL1),
+ fHOutMultV0MvsZDC(ana.fHOutMultV0MvsZDC),
+ fHOutMultZEMvsZDC(ana.fHOutMultZEMvsZDC),
+ fHOutMultV0MvsCL1(ana.fHOutMultV0MvsCL1),
+ fHOutMultV0MvsTRK(ana.fHOutMultV0MvsTRK),
+ fHOutMultTRKvsCL1(ana.fHOutMultTRKvsCL1)
{
// Copy Constructor
}
//________________________________________________________________________
AliCentralitySelectionTask::~AliCentralitySelectionTask()
{
- // Destructor
-
- if (fFileList) {
- fFileList->Clear();
- delete fFileList;
- }
- fFileList = NULL;
-
- if (fFileList2) {
- fFileList2->Clear();
- delete fFileList2;
- }
- fFileList2 = NULL;
+ // Destructor
+ if (fOutputList && !AliAnalysisManager::GetAnalysisManager()->IsProofMode()) delete fOutputList;
+ if (fTrackCuts) delete fTrackCuts;
}
//________________________________________________________________________
{
// Create the output containers
if(fDebug>1) printf("AnalysisCentralitySelectionTask::UserCreateOutputObjects() \n");
-
- if (fFileList->GetEntries() < 1) {
- AliError("No Inputfiles Added");
- }
-
AliLog::SetClassDebugLevel("AliCentralitySelectionTask", AliLog::kInfo);
+
+ fOutputList = new TList();
+ fOutputList->SetOwner();
+ fHOutCentV0M = new TH1F("fHOutCentV0M","fHOutCentV0M; Centrality V0",101,-0.5,100.5);
+ fHOutCentFMD = new TH1F("fHOutCentFMD","fHOutCentFMD; Centrality FMD",101,-0.5,100.5);
+ fHOutCentTRK = new TH1F("fHOutCentTRK","fHOutCentTRK; Centrality TPC",101,-0.5,100.5);
+ fHOutCentTKL = new TH1F("fHOutCentTKL","fHOutCentTKL; Centrality tracklets",101,-0.5,100.5);
+ fHOutCentCL0 = new TH1F("fHOutCentCL0","fHOutCentCL0; Centrality SPD inner",101,-0.5,100.5);
+ fHOutCentCL1 = new TH1F("fHOutCentCL1","fHOutCentCL1; Centrality SPD outer",101,-0.5,100.5);
+ fHOutCentV0MvsFMD= new TH1F("fHOutCentV0MvsFMD","fHOutCentV0MvsFMD; Centrality V0 vs FMD",101,-0.5,100.5);
+ fHOutCentTKLvsV0M= new TH1F("fHOutCentTKLvsV0M","fHOutCentTKLvsV0M; Centrality tracklets vs V0",101,-0.5,100.5);
+ fHOutCentZEMvsZDC= new TH1F("fHOutCentZEMvsZDC","fHOutCentZEMvsZDC; Centrality ZEM vs ZDC",101,-0.5,100.5);
+
+ fHOutMultV0M = new TH1F("fHOutMultV0M","fHOutMultV0M; Multiplicity V0",25000,0,25000);
+ fHOutMultV0R = new TH1F("fHOutMultV0R","fHOutMultV0R; Multiplicity V0",25000,0,25000);
+ fHOutMultFMD = new TH1F("fHOutMultFMD","fHOutMultFMD; Multiplicity FMD",24000,0,24000);
+ fHOutMultTRK = new TH1F("fHOutMultTRK","fHOutMultTRK; Multiplicity TPC",4000,0,4000);
+ fHOutMultTKL = new TH1F("fHOutMultTKL","fHOutMultTKL; Multiplicity tracklets",5000,0,5000);
+ fHOutMultCL0 = new TH1F("fHOutMultCL0","fHOutMultCL0; Multiplicity SPD inner",7000,0,7000);
+ fHOutMultCL1 = new TH1F("fHOutMultCL1","fHOutMultCL1; Multiplicity SPD outer",7000,0,7000);
+ fHOutMultV0MvsZDC = new TH2F("fHOutMultV0MvsZDC","fHOutMultV0MvsZDC; Multiplicity V0; Energy ZDC",500,0,25000,500,0,6000);
+ fHOutMultZEMvsZDC = new TH2F("fHOutMultZEMvsZDC","fHOutMultZEMvsZDC; Energy ZEM; Energy ZDC",500,0,2500,500,0,6000);
+ fHOutMultV0MvsCL1 = new TH2F("fHOutMultV0MvsCL1","fHOutMultV0MvsCL1; Multiplicity V0; Multiplicity SPD outer",2500,0,25000,700,0,7000);
+ fHOutMultV0MvsTRK = new TH2F("fHOutMultV0MvsTRK","fHOutMultV0MvsTRK; Multiplicity V0; Multiplicity TPC",2500,0,25000,400,0,4000);
+ fHOutMultTRKvsCL1 = new TH2F("fHOutMultTRKvsCL1","fHOutMultTRKvsCL1; Multiplicity TPC; Multiplicity SPD outer",400,0,4000,700,0,7000);
+
+ fOutputList->Add( fHOutCentV0M );
+ fOutputList->Add( fHOutCentFMD );
+ fOutputList->Add( fHOutCentTRK );
+ fOutputList->Add( fHOutCentTKL );
+ fOutputList->Add( fHOutCentCL0 );
+ fOutputList->Add( fHOutCentCL1 );
+ fOutputList->Add( fHOutCentV0MvsFMD);
+ fOutputList->Add( fHOutCentTKLvsV0M);
+ fOutputList->Add( fHOutCentZEMvsZDC);
+ fOutputList->Add( fHOutMultV0M);
+ fOutputList->Add( fHOutMultV0R);
+ fOutputList->Add( fHOutMultFMD);
+ fOutputList->Add( fHOutMultTRK);
+ fOutputList->Add( fHOutMultTKL);
+ fOutputList->Add( fHOutMultCL0);
+ fOutputList->Add( fHOutMultCL1);
+ fOutputList->Add( fHOutMultV0MvsZDC);
+ fOutputList->Add( fHOutMultZEMvsZDC);
+ fOutputList->Add( fHOutMultV0MvsCL1);
+ fOutputList->Add( fHOutMultV0MvsTRK);
+ fOutputList->Add( fHOutMultTRKvsCL1);
+
+
+ fTrackCuts = AliESDtrackCuts::GetStandardTPCOnlyTrackCuts();
+
+ PostData(1, fOutputList);
}
//________________________________________________________________________
// Execute analysis for current event:
if(fDebug>1) printf(" **** AliCentralitySelectionTask::UserExec() \n");
- Float_t zncEnergy; // ZNC Energy
- Float_t zpcEnergy; // ZPC Energy
- Float_t znaEnergy; // ZNA Energy
- Float_t zpaEnergy; // ZPA Energy
+ Float_t zncEnergy = 0.; // ZNC Energy
+ Float_t zpcEnergy = 0.; // ZPC Energy
+ Float_t znaEnergy = 0.; // ZNA Energy
+ Float_t zpaEnergy = 0.; // ZPA Energy
Float_t zem1Energy = 0.; // ZEM1 Energy
Float_t zem2Energy = 0.; // ZEM2 Energy
Int_t nTracklets = 0; // no. tracklets
Int_t nClusters[6]; // no. clusters on 6 ITS layers
Int_t nChips[2]; // no. chips on 2 SPD layers
+ Float_t spdCorr =0; // corrected spd2 multiplicity
Float_t multV0A = 0; // multiplicity from V0 reco side A
Float_t multV0C = 0; // multiplicity from V0 reco side C
Float_t multFMDA = 0; // multiplicity from FMD on detector A
Float_t multFMDC = 0; // multiplicity from FMD on detector C
+ Short_t v0Corr = 0; // corrected V0 multiplicity
+ Short_t v0CorrResc = 0; // corrected and rescaled V0 multiplicity
+
+ Float_t zvtx =0; // z-vertex SPD
+
AliESDCentrality *esdCent = 0;
if(fAnalysisInput.CompareTo("ESD")==0){
AliVEvent* event = InputEvent();
AliESDEvent* esd = dynamic_cast<AliESDEvent*>(event);
-
- if (SetupRun(esd))
- return;
+
+ if (fRunNo<=0) {
+ if (SetupRun(esd)<0)
+ AliFatal("Centrality File not available for this run");
+ }
esdCent = esd->GetCentrality();
AliESDVZERO* esdV0 = esd->GetVZEROData();
multV0A=esdV0->GetMTotV0A();
multV0C=esdV0->GetMTotV0C();
-
+
+ float v0CorrR;
+ v0Corr = (Short_t)AliESDUtils::GetCorrV0(esd,v0CorrR);
+ v0CorrResc = (Short_t)v0CorrR;
+
+ // ***** Vertex Info
+ const AliESDVertex* vtxESD = esd->GetPrimaryVertexSPD();
+ zvtx = vtxESD->GetZ();
+
// ***** CB info (tracklets, clusters, chips)
- nTracks = event->GetNumberOfTracks();
+ //nTracks = event->GetNumberOfTracks();
+ nTracks = fTrackCuts ? (Short_t)fTrackCuts->GetReferenceMultiplicity(esd,kTRUE):-1;
const AliMultiplicity *mult = esd->GetMultiplicity();
for(Int_t ilay=0; ilay<2; ilay++){
nChips[ilay] = mult->GetNumberOfFiredChips(ilay);
}
-
+
+ spdCorr = AliESDUtils::GetCorrSPD2(nClusters[1],zvtx);
// ***** FMD info
AliESDFMD *fmd = esd->GetFMDData();
// ***** ZDC info
AliESDZDC *esdZDC = esd->GetESDZDC();
- zncEnergy = (Float_t) (esdZDC->GetZDCN1Energy());
- zpcEnergy = (Float_t) (esdZDC->GetZDCP1Energy());
- znaEnergy = (Float_t) (esdZDC->GetZDCN2Energy());
- zpaEnergy = (Float_t) (esdZDC->GetZDCP2Energy());
- zem1Energy = (Float_t) (esdZDC->GetZDCEMEnergy(0));
- zem2Energy = (Float_t) (esdZDC->GetZDCEMEnergy(1));
+ zncEnergy = (Float_t) (esdZDC->GetZDCN1Energy())/8.;
+ zpcEnergy = (Float_t) (esdZDC->GetZDCP1Energy())/8.;
+ znaEnergy = (Float_t) (esdZDC->GetZDCN2Energy())/8.;
+ zpaEnergy = (Float_t) (esdZDC->GetZDCP2Energy())/8.;
+ zem1Energy = (Float_t) (esdZDC->GetZDCEMEnergy(0))/8.;
+ zem2Energy = (Float_t) (esdZDC->GetZDCEMEnergy(1))/8.;
}
else if(fAnalysisInput.CompareTo("AOD")==0){
}
// ***** Centrality Selection
- if(fHtempV0M) fCentV0M = fHtempV0M->GetBinContent(fHtempV0M->FindBin((multV0A+multV0C)));
+ if(fHtempV0M) fCentV0M = fHtempV0M->GetBinContent(fHtempV0M->FindBin((v0Corr)));
/// else printf(" Centrality by V0 not available!!!\n\n");
if(fHtempFMD) fCentFMD = fHtempFMD->GetBinContent(fHtempFMD->FindBin((multFMDA+multFMDC)));
// else printf(" Centrality by FMD not available!!!\n\n");
// else printf(" Centrality by TKL not available!!!\n\n");
if(fHtempCL0) fCentCL0 = fHtempCL0->GetBinContent(fHtempCL0->FindBin(nClusters[0]));
// else printf(" Centrality by CL0 not available!!!\n\n");
- if(fHtempCL1) fCentCL1 = fHtempCL1->GetBinContent(fHtempCL1->FindBin(nClusters[1]));
+ if(fHtempCL1) fCentCL1 = fHtempCL1->GetBinContent(fHtempCL1->FindBin(spdCorr));
/// else printf(" Centrality by CL1 not available!!!\n\n");
if(fHtempV0MvsFMD) fCentV0MvsFMD = fHtempV0MvsFMD->GetBinContent(fHtempV0MvsFMD->FindBin((multV0A+multV0C)));
esdCent->SetCentralityV0MvsFMD(fCentV0MvsFMD);
esdCent->SetCentralityTKLvsV0M(fCentTKLvsV0M);
esdCent->SetCentralityZEMvsZDC(fCentZEMvsZDC);
-}
-
-//________________________________________________________________________
-void AliCentralitySelectionTask::ReadCentralityHistos()
-{
-// Read centrality histograms
- TDirectory *owd = gDirectory;
- fFile = TFile::Open(fCentfilename);
- owd->cd();
- fHtempV0M = (TH1F*) (fFile->Get("hmultV0_percentile"));
- fHtempFMD = (TH1F*) (fFile->Get("hmultFMD_percentile"));
- fHtempTRK = (TH1F*) (fFile->Get("hNtracks_percentile"));
- fHtempTKL = (TH1F*) (fFile->Get("hNtracklets_percentile"));
- fHtempCL0 = (TH1F*) (fFile->Get("hNclusters0_percentile"));
- fHtempCL1 = (TH1F*) (fFile->Get("hNclusters1_percentile"));
-}
-//________________________________________________________________________
-void AliCentralitySelectionTask::ReadCentralityHistos2()
-{
-// Read centrality histograms
- TDirectory *owd = gDirectory;
- fFile2 = TFile::Open(fCentfilename2);
- owd->cd();
- fHtempV0MvsFMD = (TH1F*) (fFile2->Get("hmultV0vsmultFMD_all_percentile"));
- fHtempTKLvsV0M = (TH1F*) (fFile2->Get("hNtrackletsvsmultV0_all_percentile"));
- fHtempZEMvsZDC = (TH1F*) (fFile2->Get("hEzemvsEzdc_all_percentile"));
+ fHOutCentV0M->Fill(fCentV0M);
+ fHOutCentFMD->Fill(fCentFMD);
+ fHOutCentTRK->Fill(fCentTRK);
+ fHOutCentTKL->Fill(fCentTKL);
+ fHOutCentCL0->Fill(fCentCL0);
+ fHOutCentCL1->Fill(fCentCL1);
+ fHOutCentV0MvsFMD->Fill(fCentV0MvsFMD);
+ fHOutCentTKLvsV0M->Fill(fCentTKLvsV0M);
+ fHOutCentZEMvsZDC->Fill(fCentZEMvsZDC);
+ fHOutMultV0M->Fill(v0Corr);
+ fHOutMultV0R->Fill(multV0A+multV0C);
+ fHOutMultFMD->Fill((multFMDA+multFMDC));
+ fHOutMultTRK->Fill(nTracks);
+ fHOutMultTKL->Fill(nTracklets);
+ fHOutMultCL0->Fill(nClusters[0]);
+ fHOutMultCL1->Fill(spdCorr);
+ fHOutMultV0MvsZDC->Fill(v0Corr,(zncEnergy+znaEnergy+zpcEnergy+zpaEnergy));
+ fHOutMultZEMvsZDC->Fill((zem1Energy+zem2Energy),(zncEnergy+znaEnergy+zpcEnergy+zpaEnergy));
+ fHOutMultV0MvsCL1->Fill(v0Corr,spdCorr);
+ fHOutMultV0MvsTRK->Fill(v0Corr,nTracks);
+ fHOutMultTRKvsCL1->Fill(nTracks,spdCorr);
+
+ PostData(1, fOutputList);
}
//________________________________________________________________________
-void AliCentralitySelectionTask::SetPercentileFile(TString filename)
+void AliCentralitySelectionTask::ReadCentralityHistos(TString fCentfilename)
{
-// Set the percentile file name
- fCentfilename = filename;
- ReadCentralityHistos();
-}
+ // Read centrality histograms
+ TDirectory *owd = gDirectory;
+ // Check if the file is present
+ TString path = gSystem->ExpandPathName(fCentfilename.Data());
+ if (gSystem->AccessPathName(path)) {
+ AliError(Form("File %s does not exist", path.Data()));
+ return;
+ }
+ fFile = TFile::Open(fCentfilename);
+ owd->cd();
+ fHtempV0M = (TH1F*) (fFile->Get("hmultV0_percentile"));
+ fHtempFMD = (TH1F*) (fFile->Get("hmultFMD_percentile"));
+ fHtempTRK = (TH1F*) (fFile->Get("hNtracks_percentile"));
+ fHtempTKL = (TH1F*) (fFile->Get("hNtracklets_percentile"));
+ fHtempCL0 = (TH1F*) (fFile->Get("hNclusters0_percentile"));
+ fHtempCL1 = (TH1F*) (fFile->Get("hNclusters1_percentile"));
+ owd->cd();
+}
//________________________________________________________________________
-void AliCentralitySelectionTask::SetPercentileFile2(TString filename)
+void AliCentralitySelectionTask::ReadCentralityHistos2(TString fCentfilename2)
{
-// Set the percentile file name
- fCentfilename2 = filename;
- ReadCentralityHistos2();
+ // Read centrality histograms
+ TDirectory *owd = gDirectory;
+ TString path = gSystem->ExpandPathName(fCentfilename2.Data());
+ if (gSystem->AccessPathName(path)) {
+ AliError(Form("File %s does not exist", path.Data()));
+ return;
+ }
+ fFile2 = TFile::Open(fCentfilename2);
+ owd->cd();
+ fHtempV0MvsFMD = (TH1F*) (fFile2->Get("hmultV0vsmultFMD_all_percentile"));
+ fHtempTKLvsV0M = (TH1F*) (fFile2->Get("hNtrackletsvsmultV0_all_percentile"));
+ fHtempZEMvsZDC = (TH1F*) (fFile2->Get("hEzemvsEzdc_all_percentile"));
+ owd->cd();
}
//________________________________________________________________________
AliInfo(Form("Setup Centrality Selection for run %d\n",fCurrentRun));
- Int_t runNo = fCurrentRun;
+ fRunNo = fCurrentRun;
// CHANGE HERE FOR RUN RANGES
- if ( runNo == 137162 ) runNo = 137161;
- else if ( runNo == 137365 ) runNo = 137366;
+ if ( fRunNo <= 137162 ) fRunNo = 137161;
+ else if ( fRunNo == 137365 ) fRunNo = 137366;
+ else if ( fRunNo >= 137366 ) fRunNo = 137366;
// CHANGE HERE FOR RUN RANGES
-
- TString runName(Form("%d", runNo));
- TString fileName("");
- Bool_t isRunKnown = kFALSE;
-
- // Check if run is in fileList
- // if not, take the last name in the list
- for ( Int_t idx=0 ; idx < fFileList->GetEntries(); ++idx ) {
-
- TString str((dynamic_cast<TObjString*>(fFileList->At(idx)))->GetString());
- if (str.Contains(runName)) {
- fileName += str;
- isRunKnown = kTRUE;
- break;
- }
- }
-
- if (!isRunKnown) {
- if (fFileList->Last()) {
- fileName += (dynamic_cast<TObjString*>(fFileList->Last()))->GetString();
- AliError(Form("Run %d not known to centrality selection!", fCurrentRun));
- }
- }
-
- if (fileName.Contains(".root")) {
- AliInfo(Form("Centrality Selection for run %d is initialized with %s", fCurrentRun, fileName.Data()));
- SetPercentileFile(fileName.Data());
- return 0;
- }
- return -1;
+ TString fileName(Form("$ALICE_ROOT/ANALYSIS/macros/AliCentralityBy1D_%d.root", fRunNo));
+ TString fileName2(Form("$ALICE_ROOT/ANALYSIS/macros/AliCentralityByFunction_%d.root", fRunNo));
+
+ AliInfo(Form("Centrality Selection for run %d is initialized with %s", fCurrentRun, fileName.Data()));
+ ReadCentralityHistos(fileName.Data());
+ ReadCentralityHistos2(fileName2.Data());
+ if (!fFile && !fFile2) {
+ AliFatal(Form("Run %d not known to centrality selection!", fCurrentRun));
+ return -1;
+ }
+ return 0;
}