X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=ANALYSIS%2FAliCentralitySelectionTask.cxx;h=b219971943583ad8096186a1da8e00f1923886b1;hb=03335324d0c5cbf370e225e19c1a77352e468245;hp=87674f73c1794d801b9d569edf8c39cd573b4ace;hpb=9f14d90a5e5ed35238f5ed43ca2298d45dc3b4fd;p=u%2Fmrichter%2FAliRoot.git diff --git a/ANALYSIS/AliCentralitySelectionTask.cxx b/ANALYSIS/AliCentralitySelectionTask.cxx index 87674f73c17..b2199719435 100644 --- a/ANALYSIS/AliCentralitySelectionTask.cxx +++ b/ANALYSIS/AliCentralitySelectionTask.cxx @@ -19,6 +19,8 @@ // author: Alberica Toia //***************************************************** +#include "AliCentralitySelectionTask.h" + #include #include #include @@ -30,6 +32,7 @@ #include #include #include +#include #include #include "AliAnalysisManager.h" @@ -42,9 +45,11 @@ #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" @@ -59,7 +64,7 @@ #include "AliPhysicsSelectionTask.h" #include "AliPhysicsSelection.h" #include "AliBackgroundSelection.h" -#include "AliCentralitySelectionTask.h" +#include "AliESDUtils.h" ClassImp(AliCentralitySelectionTask) @@ -72,11 +77,9 @@ AliAnalysisTaskSE(), 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), @@ -94,12 +97,31 @@ AliAnalysisTaskSE(), 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."); } @@ -111,11 +133,9 @@ AliCentralitySelectionTask::AliCentralitySelectionTask(const char *name): 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), @@ -133,13 +153,33 @@ AliCentralitySelectionTask::AliCentralitySelectionTask(const char *name): 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()); } //________________________________________________________________________ @@ -160,11 +200,9 @@ AliCentralitySelectionTask::AliCentralitySelectionTask(const AliCentralitySelect 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), @@ -182,7 +220,29 @@ AliCentralitySelectionTask::AliCentralitySelectionTask(const AliCentralitySelect 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 } @@ -190,19 +250,9 @@ AliCentralitySelectionTask::AliCentralitySelectionTask(const AliCentralitySelect //________________________________________________________________________ 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; } //________________________________________________________________________ @@ -210,12 +260,59 @@ void AliCentralitySelectionTask::UserCreateOutputObjects() { // 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); } //________________________________________________________________________ @@ -224,10 +321,10 @@ void AliCentralitySelectionTask::UserExec(Option_t */*option*/) // 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 @@ -235,21 +332,29 @@ void AliCentralitySelectionTask::UserExec(Option_t */*option*/) 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(event); - - if (SetupRun(esd)) - return; + + if (fRunNo<=0) { + if (SetupRun(esd)<0) + AliFatal("Centrality File not available for this run"); + } esdCent = esd->GetCentrality(); @@ -257,9 +362,18 @@ void AliCentralitySelectionTask::UserExec(Option_t */*option*/) 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(); @@ -272,7 +386,8 @@ void AliCentralitySelectionTask::UserExec(Option_t */*option*/) 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(); @@ -310,12 +425,12 @@ void AliCentralitySelectionTask::UserExec(Option_t */*option*/) // ***** 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){ @@ -326,7 +441,7 @@ void AliCentralitySelectionTask::UserExec(Option_t */*option*/) } // ***** 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"); @@ -336,7 +451,7 @@ void AliCentralitySelectionTask::UserExec(Option_t */*option*/) // 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))); @@ -355,49 +470,70 @@ void AliCentralitySelectionTask::UserExec(Option_t */*option*/) 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(); } //________________________________________________________________________ @@ -425,41 +561,23 @@ Int_t AliCentralitySelectionTask::SetupRun(AliESDEvent* esd) 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(fFileList->At(idx)))->GetString()); - if (str.Contains(runName)) { - fileName += str; - isRunKnown = kTRUE; - break; - } - } - - if (!isRunKnown) { - if (fFileList->Last()) { - fileName += (dynamic_cast(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; }