fAnalysisInput("ESD"),
fIsMCInput(kFALSE),
fFile(0),
+ fFile2(0),
fCentfilename(0),
- fMethod(0),
- fCent(0),
- fHtemp(0)
+ fCentfilename2(0),
+ fCentV0M(0),
+ fCentFMD(0),
+ fCentTRK(0),
+ fCentTKL(0),
+ fCentCL0(0),
+ fCentV0MvsFMD(0),
+ fCentTKLvsV0M(0),
+ fCentZEMvsZDC(0),
+ fHtempV0M(0),
+ fHtempFMD(0),
+ fHtempTRK(0),
+ fHtempTKL(0),
+ fHtempCL0(0),
+ fHtempV0MvsFMD(0),
+ fHtempTKLvsV0M(0),
+ fHtempZEMvsZDC(0)
{
// Default constructor
}
fAnalysisInput("ESD"),
fIsMCInput(kFALSE),
fFile(0),
+ fFile2(0),
fCentfilename(0),
- fMethod(0),
- fCent(0),
- fHtemp(0)
+ fCentfilename2(0),
+ fCentV0M(0),
+ fCentFMD(0),
+ fCentTRK(0),
+ fCentTKL(0),
+ fCentCL0(0),
+ fCentV0MvsFMD(0),
+ fCentTKLvsV0M(0),
+ fCentZEMvsZDC(0),
+ fHtempV0M(0),
+ fHtempFMD(0),
+ fHtempTRK(0),
+ fHtempTKL(0),
+ fHtempCL0(0),
+ fHtempV0MvsFMD(0),
+ fHtempTKLvsV0M(0),
+ fHtempZEMvsZDC(0)
{
// Default constructor
}
fAnalysisInput(ana.fDebug),
fIsMCInput(ana.fIsMCInput),
fFile(ana.fFile),
+ fFile2(ana.fFile2),
fCentfilename(ana.fCentfilename),
- fMethod(ana.fMethod),
- fCent(ana.fCent),
- fHtemp(ana.fHtemp)
+ fCentfilename2(ana.fCentfilename2),
+ fCentV0M(ana.fCentV0M),
+ fCentFMD(ana.fCentFMD),
+ fCentTRK(ana.fCentTRK),
+ fCentTKL(ana.fCentTKL),
+ fCentCL0(ana.fCentCL0),
+ fCentV0MvsFMD(ana.fCentV0MvsFMD),
+ fCentTKLvsV0M(ana.fCentTKLvsV0M),
+ fCentZEMvsZDC(ana.fCentZEMvsZDC),
+ fHtempV0M(ana.fHtempV0M),
+ fHtempFMD(ana.fHtempFMD),
+ fHtempTRK(ana.fHtempTRK),
+ fHtempTKL(ana.fHtempTKL),
+ fHtempCL0(ana.fHtempCL0),
+ fHtempV0MvsFMD(ana.fHtempV0MvsFMD),
+ fHtempTKLvsV0M(ana.fHtempTKLvsV0M),
+ fHtempZEMvsZDC(ana.fHtempZEMvsZDC)
{
// Copy Constructor
}
// 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 zem1Energy; // ZEM1 Energy
- Float_t zem2Energy; // ZEM2 Energy
+ Float_t zncEnergy; // ZNC Energy
+ Float_t zpcEnergy; // ZPC Energy
+ Float_t znaEnergy; // ZNA Energy
+ Float_t zpaEnergy; // ZPA Energy
+ Float_t zem1Energy = 0.; // ZEM1 Energy
+ Float_t zem2Energy = 0.; // ZEM2 Energy
- Int_t nTracks = 0; // no. tracks
- 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
+ Int_t nTracks = 0; // no. tracks
+ 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 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
+ 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
AliESDCentrality *esdCent = 0;
AliVEvent* event = InputEvent();
AliESDEvent* esd = dynamic_cast<AliESDEvent*>(event);
-
+
esdCent = esd->GetCentrality();
// ***** V0 info
// ***** 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());
+ 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));
return;
}
- // ***** Centrality Selection
- if(fMethod.CompareTo("V0")==0){
- fCent = fHtemp->GetBinContent(fHtemp->FindBin((multV0A+multV0C)));
- }
- if(fMethod.CompareTo("FMD")==0){
- fCent = fHtemp->GetBinContent(fHtemp->FindBin((multFMDA+multFMDC)));
- }
- if(fMethod.CompareTo("TRACKS")==0) {
- fCent = fHtemp->GetBinContent(fHtemp->FindBin(nTracks));
- }
- if(fMethod.CompareTo("TRACKLETS")==0){
- fCent = fHtemp->GetBinContent(fHtemp->FindBin(nTracklets));
- }
- if(fMethod.CompareTo("CLUSTERS")==0) {
- fCent = fHtemp->GetBinContent(fHtemp->FindBin(nClusters[0]));
- }
- printf(" **** centrality is %3.2f \n", fCent);
+ // ***** Centrality Selection
+ fCentV0M = fHtempV0M->GetBinContent(fHtempV0M->FindBin((multV0A+multV0C)));
+ fCentFMD = fHtempFMD->GetBinContent(fHtempFMD->FindBin((multFMDA+multFMDC)));
+ fCentTRK = fHtempTRK->GetBinContent(fHtempTRK->FindBin(nTracks));
+ fCentTKL = fHtempTKL->GetBinContent(fHtempTKL->FindBin(nTracklets));
+ fCentCL0 = fHtempCL0->GetBinContent(fHtempCL0->FindBin(nClusters[0]));
+
+ fCentV0MvsFMD = fHtempV0MvsFMD->GetBinContent(fHtempV0MvsFMD->FindBin((multV0A+multV0C)));
+ fCentTKLvsV0M = fHtempTKLvsV0M->GetBinContent(fHtempTKLvsV0M->FindBin(nTracklets));
+ fCentZEMvsZDC = fHtempZEMvsZDC->GetBinContent(fHtempZEMvsZDC->FindBin((zem1Energy+zem2Energy)/1000.));
- esdCent->SetCentrality(fCent);
+ esdCent->SetCentralityV0M(fCentV0M);
+ esdCent->SetCentralityFMD(fCentFMD);
+ esdCent->SetCentralityTRK(fCentTRK);
+ esdCent->SetCentralityTKL(fCentTKL);
+ esdCent->SetCentralityCL0(fCentCL0);
+ esdCent->SetCentralityV0MvsFMD(fCentV0MvsFMD);
+ esdCent->SetCentralityTKLvsV0M(fCentTKLvsV0M);
+ esdCent->SetCentralityZEMvsZDC(fCentZEMvsZDC);
}
//________________________________________________________________________
-void AliCentralitySelectionTask::SetCentralityMethod(const char* x)
+void AliCentralitySelectionTask::ReadCentralityHistos()
{
- fMethod = x;
-
fFile = new TFile(fCentfilename);
+ fHtempV0M = (TH1D*) (fFile->Get("hmultV0_percentile"));
+ fHtempFMD = (TH1D*) (fFile->Get("hmultFMD_percentile"));
+ fHtempTRK = (TH1D*) (fFile->Get("hNtracks_percentile"));
+ fHtempTKL = (TH1D*) (fFile->Get("hNtracklets_percentile"));
+ fHtempCL0 = (TH1D*) (fFile->Get("hNclusters0_percentile"));
+}
- if(fMethod.CompareTo("V0")==0)
- fHtemp = (TH1D*) (fFile->Get("hmultV0_percentile"));
-
- if(fMethod.CompareTo("FMD")==0)
- fHtemp = (TH1D*) (fFile->Get("hmultFMD_percentile"));
-
- if(fMethod.CompareTo("TRACKS")==0)
- fHtemp = (TH1D*) (fFile->Get("hNtracks_percentile"));
-
- if(fMethod.CompareTo("TRACKLETS")==0)
- fHtemp = (TH1D*) (fFile->Get("hNtracklets_percentile"));
-
- if(fMethod.CompareTo("CLUSTERS")==0)
- fHtemp = (TH1D*) (fFile->Get("hNclusters0_percentile"));
-
+void AliCentralitySelectionTask::ReadCentralityHistos2()
+{
+ fFile2 = new TFile(fCentfilename2);
+ fHtempV0MvsFMD = (TH1D*) (fFile2->Get("hmultV0vsmultFMD_all_percentile"));
+ fHtempTKLvsV0M = (TH1D*) (fFile2->Get("hNtrackletsvsmultV0_all_percentile"));
+ fHtempZEMvsZDC = (TH1D*) (fFile2->Get("hEzemvsEzdc_all_percentile"));
+}
+
+void AliCentralitySelectionTask::SetPercentileFile(TString filename)
+{
+ fCentfilename = filename;
+ ReadCentralityHistos();
+}
+
+void AliCentralitySelectionTask::SetPercentileFile2(TString filename)
+{
+ fCentfilename2 = filename;
+ ReadCentralityHistos2();
}
//________________________________________________________________________
{
// Terminate analysis
fFile->Close();
+ fFile2->Close();
}
//________________________________________________________________________
void SetInput(const char* input) {fAnalysisInput = input;}
void SetMCInput() {fIsMCInput = kTRUE;}
- void SetPercentileFile(TString filename) {fCentfilename = filename;}
- void SetCentralityMethod(const char* x);
+ void SetPercentileFile(TString filename);
+ void SetPercentileFile2(TString filename);
+ void ReadCentralityHistos();
+ void ReadCentralityHistos2();
private:
Int_t fDebug; // Debug flag
TString fAnalysisInput; // "ESD", "AOD"
Bool_t fIsMCInput; // true when input is MC
- TFile *fFile; // file that holds the centrality vs multiplicity
- TString fCentfilename; // name of this file
- TString fMethod; // method to select centrality
- Float_t fCent; // percentile centrality
- TH1D *fHtemp; // histogram with centrality vs multiplicity
-
-
+ TFile *fFile; // file that holds the centrality vs multiplicity 1d
+ TFile *fFile2; // file that holds the centrality vs multiplicity 2d
+ TString fCentfilename; // name of this file 1d
+ TString fCentfilename2; // name of this file 2d
+
+ Float_t fCentV0M; // percentile centrality from V0
+ Float_t fCentFMD; // percentile centrality from FMD
+ Float_t fCentTRK; // percentile centrality from tracks
+ Float_t fCentTKL; // percentile centrality from tracklets
+ Float_t fCentCL0; // percentile centrality from clusters in layer 0
+ Float_t fCentV0MvsFMD; // percentile centrality from V0 vs FMD
+ Float_t fCentTKLvsV0M; // percentile centrality from tracklets vs V0
+ Float_t fCentZEMvsZDC; // percentile centrality from ZEM vs ZDC
+
+ TH1D *fHtempV0M; // histogram with centrality vs multiplicity using V0
+ TH1D *fHtempFMD; // histogram with centrality vs multiplicity using FMD
+ TH1D *fHtempTRK; // histogram with centrality vs multiplicity using tracks
+ TH1D *fHtempTKL; // histogram with centrality vs multiplicity using tracklets
+ TH1D *fHtempCL0; // histogram with centrality vs multiplicity using clusters in layer 0
+ TH1D *fHtempV0MvsFMD; // histogram with centrality vs multiplicity using V0 vs FMD
+ TH1D *fHtempTKLvsV0M; // histogram with centrality vs multiplicity using tracklets vs V0
+ TH1D *fHtempZEMvsZDC; // histogram with centrality vs multiplicity using ZEM vs ZDC
+
ClassDef(AliCentralitySelectionTask,1);
};
-/**************************************************************************\r
- * Copyright(c) 1998-2008, ALICE Experiment at CERN, All rights reserved. *\r
- * *\r
- * Author: The ALICE Off-line Project. *\r
- * Contributors are mentioned in the code where appropriate. *\r
- * *\r
- * Permission to use, copy, modify and distribute this software and its *\r
- * documentation strictly for non-commercial purposes is hereby granted *\r
- * without fee, provided that the above copyright notice appears in all *\r
- * copies and that both the copyright notice and this permission notice *\r
- * appear in the supporting documentation. The authors make no claims *\r
- * about the suitability of this software for any purpose. It is *\r
- * provided "as is" without express or implied warranty. *\r
- **************************************************************************/\r
-\r
-//*****************************************************\r
-// Class AliCentralitySelectionTask\r
-// author: Alberica Toia\r
-//*****************************************************\r
-/// A container for the centrality stored in the ESD.\r
- \r
-#include "AliESDCentrality.h"\r
-\r
-ClassImp(AliESDCentrality)\r
-\r
-AliESDCentrality::AliESDCentrality() : TNamed("ESDCentrality", "Centrality"),\r
-fCentrality(0)\r
-{\r
- /// constructor\r
-}\r
-\r
-AliESDCentrality::AliESDCentrality(const AliESDCentrality& cnt) : \r
- TNamed(cnt), fCentrality(cnt.fCentrality)\r
-{\r
- /// Copy constructor\r
-}\r
-\r
-AliESDCentrality& AliESDCentrality::operator=(const AliESDCentrality& c)\r
-{\r
- /// Assignment operator\r
- if (this!=&c) {\r
- TNamed::operator=(c);\r
- fCentrality = c.fCentrality;\r
- }\r
-\r
- return *this;\r
-}\r
-\r
-AliESDCentrality::~AliESDCentrality()\r
-{\r
- /// destructor\r
-}\r
-\r
-Float_t AliESDCentrality::GetCentralityPercentile()\r
-{\r
- return fCentrality;\r
-}\r
-\r
-Int_t AliESDCentrality::GetCentralityClass10()\r
-{\r
- return (Int_t) fCentrality / 10.0;\r
-}\r
-\r
-Int_t AliESDCentrality::GetCentralityClass5()\r
-{\r
- return (Int_t) fCentrality / 5.0;\r
-}\r
-\r
-Bool_t AliESDCentrality::IsEventInCentralityClass(Float_t a, Float_t b)\r
-{\r
- if (fCentrality >=a && fCentrality < b) return kTRUE;\r
- else return kFALSE;\r
-}\r
-\r
+/**************************************************************************
+ * Copyright(c) 1998-2008, ALICE Experiment at CERN, All rights reserved. *
+ * *
+ * Author: The ALICE Off-line Project. *
+ * Contributors are mentioned in the code where appropriate. *
+ * *
+ * Permission to use, copy, modify and distribute this software and its *
+ * documentation strictly for non-commercial purposes is hereby granted *
+ * without fee, provided that the above copyright notice appears in all *
+ * copies and that both the copyright notice and this permission notice *
+ * appear in the supporting documentation. The authors make no claims *
+ * about the suitability of this software for any purpose. It is *
+ * provided "as is" without express or implied warranty. *
+ **************************************************************************/
+
+//*****************************************************
+// Class AliCentralitySelectionTask
+// author: Alberica Toia
+//*****************************************************
+/// A container for the centrality stored in the ESD.
+
+#include "AliESDCentrality.h"
+
+ClassImp(AliESDCentrality)
+
+AliESDCentrality::AliESDCentrality() : TNamed("ESDCentrality", "Centrality"),
+ fCentralityV0M(0),
+ fCentralityFMD(0),
+ fCentralityTRK(0),
+ fCentralityTKL(0),
+ fCentralityCL0(0),
+ fCentralityV0MvsFMD(0),
+ fCentralityTKLvsV0M(0),
+ fCentralityZEMvsZDC(0)
+{
+ /// constructor
+}
+
+AliESDCentrality::AliESDCentrality(const AliESDCentrality& cnt) :
+ TNamed(cnt),
+ fCentralityV0M(cnt.fCentralityV0M),
+ fCentralityFMD(cnt.fCentralityFMD),
+ fCentralityTRK(cnt.fCentralityTRK),
+ fCentralityTKL(cnt.fCentralityTKL),
+ fCentralityCL0(cnt.fCentralityCL0),
+ fCentralityV0MvsFMD(cnt.fCentralityV0MvsFMD),
+ fCentralityTKLvsV0M(cnt.fCentralityTKLvsV0M),
+ fCentralityZEMvsZDC(cnt.fCentralityZEMvsZDC)
+{
+ /// Copy constructor
+}
+
+AliESDCentrality& AliESDCentrality::operator=(const AliESDCentrality& c)
+{
+ /// Assignment operator
+ if (this!=&c) {
+ TNamed::operator=(c);
+ fCentralityV0M = c.fCentralityV0M;
+ fCentralityFMD = c.fCentralityFMD;
+ fCentralityTRK = c.fCentralityTRK;
+ fCentralityTKL = c.fCentralityTKL;
+ fCentralityCL0 = c.fCentralityCL0;
+ fCentralityV0MvsFMD = c.fCentralityV0MvsFMD;
+ fCentralityTKLvsV0M = c.fCentralityTKLvsV0M;
+ fCentralityZEMvsZDC = c.fCentralityZEMvsZDC;
+ }
+
+ return *this;
+}
+
+AliESDCentrality::~AliESDCentrality()
+{
+ /// destructor
+}
+
+Float_t AliESDCentrality::GetCentralityPercentile(const char *x)
+{
+ TString method = x;
+ if(method.CompareTo("V0M")==0) return fCentralityV0M;
+ if(method.CompareTo("FMD")==0) return fCentralityFMD;
+ if(method.CompareTo("TRK")==0) return fCentralityTRK;
+ if(method.CompareTo("TKL")==0) return fCentralityTKL;
+ if(method.CompareTo("CL0")==0) return fCentralityCL0;
+ if(method.CompareTo("V0MvsFMD")==0) return fCentralityV0MvsFMD;
+ if(method.CompareTo("TKLvsV0M")==0) return fCentralityTKLvsV0M;
+ if(method.CompareTo("ZENvsZDC")==0) return fCentralityZEMvsZDC;
+ return -1;
+}
+
+Int_t AliESDCentrality::GetCentralityClass10(const char *x)
+{
+ TString method = x;
+ if(method.CompareTo("V0M")==0) return (Int_t) (fCentralityV0M / 10.0);
+ if(method.CompareTo("FMD")==0) return (Int_t) (fCentralityFMD / 10.0);
+ if(method.CompareTo("TRK")==0) return (Int_t) (fCentralityTRK / 10.0);
+ if(method.CompareTo("TKL")==0) return (Int_t) (fCentralityTKL / 10.0);
+ if(method.CompareTo("CL0")==0) return (Int_t) (fCentralityCL0 / 10.0);
+ if(method.CompareTo("V0MvsFMD")==0) return (Int_t) (fCentralityV0MvsFMD / 10.0);
+ if(method.CompareTo("TKLvsV0M")==0) return (Int_t) (fCentralityTKLvsV0M / 10.0);
+ if(method.CompareTo("ZENvsZDC")==0) return (Int_t) (fCentralityZEMvsZDC / 10.0);
+ return -1;
+}
+
+Int_t AliESDCentrality::GetCentralityClass5(const char *x)
+{
+ TString method = x;
+ if(method.CompareTo("V0M")==0) return (Int_t) (fCentralityV0M / 5.0);
+ if(method.CompareTo("FMD")==0) return (Int_t) (fCentralityFMD / 5.0);
+ if(method.CompareTo("TRK")==0) return (Int_t) (fCentralityTRK / 5.0);
+ if(method.CompareTo("TKL")==0) return (Int_t) (fCentralityTKL / 5.0);
+ if(method.CompareTo("CL0")==0) return (Int_t) (fCentralityCL0 / 5.0);
+ if(method.CompareTo("V0MvsFMD")==0) return (Int_t) (fCentralityV0MvsFMD / 5.0);
+ if(method.CompareTo("TKLvsV0M")==0) return (Int_t) (fCentralityTKLvsV0M / 5.0);
+ if(method.CompareTo("ZENvsZDC")==0) return (Int_t) (fCentralityZEMvsZDC / 5.0);
+ return -1;
+}
+
+Bool_t AliESDCentrality::IsEventInCentralityClass(Float_t a, Float_t b, const char *x)
+{
+ TString method = x;
+ if ((method.CompareTo("V0M")==0) && (fCentralityV0M >=a && fCentralityV0M < b)) return kTRUE;
+ if ((method.CompareTo("FMD")==0) && (fCentralityFMD >=a && fCentralityFMD < b)) return kTRUE;
+ if ((method.CompareTo("TRK")==0) && (fCentralityTRK >=a && fCentralityTRK < b)) return kTRUE;
+ if ((method.CompareTo("TKL")==0) && (fCentralityTKL >=a && fCentralityTKL < b)) return kTRUE;
+ if ((method.CompareTo("CL0")==0) && (fCentralityCL0 >=a && fCentralityCL0 < b)) return kTRUE;
+ if ((method.CompareTo("V0MvsFMD")==0) && (fCentralityV0MvsFMD >=a && fCentralityV0MvsFMD < b)) return kTRUE;
+ if ((method.CompareTo("TKLvsV0M")==0) && (fCentralityTKLvsV0M >=a && fCentralityTKLvsV0M < b)) return kTRUE;
+ if ((method.CompareTo("ZEMvsZDC")==0) && (fCentralityZEMvsZDC >=a && fCentralityZEMvsZDC < b)) return kTRUE;
+ else return kFALSE;
+}
+
+
+
-//-*- Mode: C++ -*-\r
-#ifndef ALIESDCentrality_H\r
-#define ALIESDCentrality_H\r
-/* This file is property of and copyright by the ALICE HLT Project *\r
- * ALICE Experiment at CERN, All rights reserved. *\r
- * See cxx source for full Copyright notice */\r
-\r
-//*****************************************************\r
-// Class AliCentralitySelectionTask\r
-// author: Alberica Toia\r
-//*****************************************************\r
-\r
-#include "TNamed.h"\r
-\r
-class AliESDCentrality : public TNamed\r
-{\r
- public:\r
-\r
- AliESDCentrality(); /// constructor\r
- ~AliESDCentrality(); /// destructor\r
- AliESDCentrality(const AliESDCentrality& cnt); /// copy constructor\r
- AliESDCentrality& operator=(const AliESDCentrality& cnt); /// assignment operator\r
-\r
- /// set centrality result\r
- void SetCentrality(Float_t cent) {fCentrality = cent;}\r
-\r
- /// get centrality result\r
- Float_t GetCentralityPercentile();\r
- Int_t GetCentralityClass10();\r
- Int_t GetCentralityClass5();\r
- Bool_t IsEventInCentralityClass(Float_t a, Float_t b);\r
-\r
- private:\r
- Float_t fCentrality; // Centrality\r
-\r
- ClassDef(AliESDCentrality, 1)\r
-};\r
-#endif //ALIESDCENTRALITY_H\r
+//-*- Mode: C++ -*-
+#ifndef ALIESDCentrality_H
+#define ALIESDCentrality_H
+/* This file is property of and copyright by the ALICE HLT Project *
+ * ALICE Experiment at CERN, All rights reserved. *
+ * See cxx source for full Copyright notice */
+
+//*****************************************************
+// Class AliCentralitySelectionTask
+// author: Alberica Toia
+//*****************************************************
+
+#include "TNamed.h"
+
+class AliESDCentrality : public TNamed
+{
+ public:
+
+ AliESDCentrality(); /// constructor
+ ~AliESDCentrality(); /// destructor
+ AliESDCentrality(const AliESDCentrality& cnt); /// copy constructor
+ AliESDCentrality& operator=(const AliESDCentrality& cnt); /// assignment operator
+
+ /// set centrality result
+ void SetCentralityV0M(Float_t cent) {fCentralityV0M = cent;}
+ void SetCentralityFMD(Float_t cent) {fCentralityFMD = cent;}
+ void SetCentralityTRK(Float_t cent) {fCentralityTRK = cent;}
+ void SetCentralityTKL(Float_t cent) {fCentralityTKL = cent;}
+ void SetCentralityCL0(Float_t cent) {fCentralityCL0 = cent;}
+ void SetCentralityV0MvsFMD(Float_t cent) {fCentralityV0MvsFMD = cent;}
+ void SetCentralityTKLvsV0M(Float_t cent) {fCentralityTKLvsV0M = cent;}
+ void SetCentralityZEMvsZDC(Float_t cent) {fCentralityZEMvsZDC = cent;}
+
+ /// get centrality result
+ Float_t GetCentralityPercentile(const char *method);
+ Int_t GetCentralityClass10(const char *method);
+ Int_t GetCentralityClass5(const char *method);
+ Bool_t IsEventInCentralityClass(Float_t a, Float_t b, const char *method);
+
+ private:
+ Float_t fCentralityV0M; // Centrality from V0
+ Float_t fCentralityFMD; // Centrality from FMD
+ Float_t fCentralityTRK; // Centrality from tracks
+ Float_t fCentralityTKL; // Centrality from tracklets
+ Float_t fCentralityCL0; // Centrality from Clusters in layer 0
+ Float_t fCentralityV0MvsFMD; // Centrality from V0 vs FMD
+ Float_t fCentralityTKLvsV0M; // Centrality from tracklets vs V0
+ Float_t fCentralityZEMvsZDC; // Centrality from ZEM vs ZDC
+
+ ClassDef(AliESDCentrality, 1)
+};
+#endif //ALIESDCENTRALITY_H