ROOT logo
AliRoot » PWG » CALOTRACKCORRBASE » AliCaloPID

class AliCaloPID: public TObject

 Class for PID selection with calorimeters
 The Output of the main method GetIdentifiedParticleType is a PDG number identifying the cluster,
 being kPhoton, kElectron, kPi0 ... as defined in the header file
   - GetIdentifiedParticleType(const AliVCluster * cluster)
      Assignes a PID tag to the cluster, right now there is the possibility to : use bayesian weights from reco,
      recalculate them (EMCAL) or use other procedures not used in reco.
      In order to recalculate Bayesian, it is necessary to load the EMCALUtils library
      and do SwitchOnBayesianRecalculation().
      To change the PID parameters from Low to High like the ones by default, use the constructor
      AliCaloPID(flux)
      where flux is AliCaloPID::kLow or AliCaloPID::kHigh
      If it is necessary to change the parameters use the constructor
      AliCaloPID(AliEMCALPIDUtils *utils) and set the parameters before.

Function Members (Methods)

public:
AliCaloPID()
AliCaloPID(Int_t particleFlux)
AliCaloPID(const TNamed* emcalpid)
virtual~AliCaloPID()
voidTObject::AbstractMethod(const char* method) const
virtual voidTObject::AppendPad(Option_t* option = "")
virtual voidTObject::Browse(TBrowser* b)
static TClass*Class()
virtual const char*TObject::ClassName() const
virtual voidTObject::Clear(Option_t* = "")
virtual TObject*TObject::Clone(const char* newname = "") const
virtual Int_tTObject::Compare(const TObject* obj) const
virtual voidTObject::Copy(TObject& object) const
virtual voidTObject::Delete(Option_t* option = "")MENU
virtual Int_tTObject::DistancetoPrimitive(Int_t px, Int_t py)
virtual voidTObject::Draw(Option_t* option = "")
virtual voidTObject::DrawClass() constMENU
virtual TObject*TObject::DrawClone(Option_t* option = "") constMENU
virtual voidTObject::Dump() constMENU
virtual voidTObject::Error(const char* method, const char* msgfmt) const
virtual voidTObject::Execute(const char* method, const char* params, Int_t* error = 0)
virtual voidTObject::Execute(TMethod* method, TObjArray* params, Int_t* error = 0)
virtual voidTObject::ExecuteEvent(Int_t event, Int_t px, Int_t py)
virtual voidTObject::Fatal(const char* method, const char* msgfmt) const
virtual TObject*TObject::FindObject(const char* name) const
virtual TObject*TObject::FindObject(const TObject* obj) const
Int_tGetClusterSplittingMinNCells() const
TList*GetCreateOutputObjects()
Int_tGetDebug() const
virtual Option_t*TObject::GetDrawOption() const
static Long_tTObject::GetDtorOnly()
Float_tGetEMCALChargeWeight() const
Float_tGetEMCALDEtaCut() const
Float_tGetEMCALDPhiCut() const
Float_tGetEMCALElectronWeight() const
Float_tGetEMCALLambda0CutMax() const
Float_tGetEMCALLambda0CutMin() const
Float_tGetEMCALNeutralWeight() const
Float_tGetEMCALPhotonWeight() const
Float_tGetEMCALPi0Weight() const
AliEMCALPIDUtils*GetEMCALPIDUtils()
Float_tGetEtaMaxMass() const
Float_tGetEtaMinMass() const
virtual const char*TObject::GetIconName() const
Int_tGetIdentifiedParticleType(AliVCluster* cluster)
Int_tGetIdentifiedParticleTypeFromBayesWeights(Bool_t isEMCAL, Double_t* pid, Float_t energy)
Int_tGetIdentifiedParticleTypeFromClusterSplitting(AliVCluster* cluster, AliVCaloCells* cells, AliCalorimeterUtils* caloutils, Double_t* vertex, Int_t& nLocMax, Double_t& mass, Double_t& angle, TLorentzVector& l1, TLorentzVector& l2, Int_t& absId1, Int_t& absId2, Float_t& distbad1, Float_t& distbad2, Bool_t& fidcut1, Bool_t& fidcut2) const
virtual const char*TObject::GetName() const
virtual char*TObject::GetObjectInfo(Int_t px, Int_t py) const
static Bool_tTObject::GetObjectStat()
virtual Option_t*TObject::GetOption() const
Float_tGetPHOSChargeWeight() const
Float_tGetPHOSDispersionCut() const
Float_tGetPHOSElectronWeight() const
Float_tGetPHOSNeutralWeight() const
Float_tGetPHOSPhotonWeight() const
TFormula*GetPHOSPhotonWeightFormula()
TStringGetPHOSPhotonWeightFormulaExpression() const
Float_tGetPHOSPi0Weight() const
TFormula*GetPHOSPi0WeightFormula()
TStringGetPHOSPi0WeightFormulaExpression() const
Float_tGetPHOSRCut() const
Float_tGetPhotonMaxMass() const
Float_tGetPhotonMinMass() const
Float_tGetPi0MaxMass() const
Float_tGetPi0MinMass() const
TStringGetPIDParametersList()
Float_tGetSplitEnergyFractionMinimum(Int_t i) const
Float_tGetSubClusterEnergyMinimum(Int_t i) const
virtual const char*TObject::GetTitle() const
Float_tGetTOFCut() const
virtual UInt_tTObject::GetUniqueID() const
virtual Bool_tTObject::HandleTimer(TTimer* timer)
virtual ULong_tTObject::Hash() const
virtual voidTObject::Info(const char* method, const char* msgfmt) const
virtual Bool_tTObject::InheritsFrom(const char* classname) const
virtual Bool_tTObject::InheritsFrom(const TClass* cl) const
voidInitParameters()
virtual voidTObject::Inspect() constMENU
voidTObject::InvertBit(UInt_t f)
virtual TClass*IsA() const
virtual Bool_tTObject::IsEqual(const TObject* obj) const
virtual Bool_tTObject::IsFolder() const
Bool_tIsInConM02Range(Float_t energy, Float_t m02, Int_t nlm) const
Bool_tIsInEtaM02Range(Float_t energy, Float_t m02, Int_t nlm) const
Bool_tIsInM02Range(Float_t m02) const
Bool_tIsInPi0M02Range(Float_t energy, Float_t m02, Int_t nlm) const
Bool_tIsInPi0SplitAsymmetryRange(Float_t energy, Float_t asy, Int_t nlm) const
Bool_tIsInPi0SplitMassRange(Float_t energy, Float_t mass, Int_t nlm) const
Bool_tTObject::IsOnHeap() const
Bool_tIsPHOSPIDWeightFormulaOn() const
virtual Bool_tTObject::IsSortable() const
Bool_tIsSplitAsymmetryCutOn()
Bool_tIsSplitShowerShapeCutOn()
Bool_tIsTrackMatched(AliVCluster* cluster, AliCalorimeterUtils* cu, AliVEvent* event) const
Bool_tTObject::IsZombie() const
virtual voidTObject::ls(Option_t* option = "") const
voidTObject::MayNotUse(const char* method) const
virtual Bool_tTObject::Notify()
voidTObject::Obsolete(const char* method, const char* asOfVers, const char* removedFromVers) const
static voidTObject::operator delete(void* ptr)
static voidTObject::operator delete(void* ptr, void* vp)
static voidTObject::operator delete[](void* ptr)
static voidTObject::operator delete[](void* ptr, void* vp)
void*TObject::operator new(size_t sz)
void*TObject::operator new(size_t sz, void* vp)
void*TObject::operator new[](size_t sz)
void*TObject::operator new[](size_t sz, void* vp)
virtual voidTObject::Paint(Option_t* option = "")
virtual voidTObject::Pop()
virtual voidPrint(Option_t* opt) const
voidPrintClusterPIDWeights(const Double_t* pid) const
virtual Int_tTObject::Read(const char* name)
virtual voidTObject::RecursiveRemove(TObject* obj)
voidTObject::ResetBit(UInt_t f)
virtual voidTObject::SaveAs(const char* filename = "", Option_t* option = "") constMENU
virtual voidTObject::SavePrimitive(basic_ostream<char,char_traits<char> >& out, Option_t* option = "")
voidSetAsymmetryMinimumSelectionParameters(Int_t inlm, Int_t iparam, Float_t param)
voidTObject::SetBit(UInt_t f)
voidTObject::SetBit(UInt_t f, Bool_t set)
voidSetClusterSplittingM02Cut(Float_t min = 0, Float_t max = 100)
voidSetClusterSplittingMinNCells(Int_t c)
voidSetDebug(Int_t deb)
virtual voidTObject::SetDrawOption(Option_t* option = "")MENU
static voidTObject::SetDtorOnly(void* obj)
voidSetEMCALChargeWeight(Float_t w)
voidSetEMCALDEtaCut(Float_t dcut)
voidSetEMCALDPhiCut(Float_t dcut)
voidSetEMCALElectronWeight(Float_t w)
voidSetEMCALLambda0CutMax(Float_t lcut)
voidSetEMCALLambda0CutMin(Float_t lcut)
voidSetEMCALNeutralWeight(Float_t w)
voidSetEMCALPhotonWeight(Float_t w)
voidSetEMCALPi0Weight(Float_t w)
voidSetEtaMassRange(Float_t min, Float_t max)
voidSetHighParticleFlux()
voidSetLowParticleFlux()
voidSetM02MaximumSelectionParameters(Int_t inlm, Int_t iparam, Float_t param)
voidSetM02MaximumShiftForNLMN(Int_t shift)
voidSetM02MinimumSelectionParameters(Int_t inlm, Int_t iparam, Float_t param)
static voidTObject::SetObjectStat(Bool_t stat)
voidSetPHOSChargeWeight(Float_t w)
voidSetPHOSDispersionCut(Float_t dcut)
voidSetPHOSElectronWeight(Float_t w)
voidSetPHOSNeutralWeight(Float_t w)
voidSetPHOSPhotonWeight(Float_t w)
voidSetPHOSPhotonWeightFormulaExpression(TString ph)
voidSetPHOSPi0Weight(Float_t w)
voidSetPHOSPi0WeightFormulaExpression(TString pi)
voidSetPHOSRCut(Float_t rcut)
voidSetPhotonMassRange(Float_t min, Float_t max)
voidSetPi0MassRange(Float_t min, Float_t max)
voidSetPi0MassSelectionParameters(Int_t inlm, Int_t iparam, Float_t param)
voidSetPi0MassShiftHighECell(Float_t s)
voidSetPi0WidthSelectionParameters(Int_t inlm, Int_t iparam, Float_t param)
voidSetPIDBits(AliVCluster* cluster, AliAODPWG4Particle* aodph, AliCalorimeterUtils* cu, AliVEvent* event)
voidSetSplitEnergyFractionMinimum(Int_t i, Float_t min)
voidSetSplitWidthSigma(Float_t s)
voidSetSubClusterEnergyMinimum(Int_t i, Float_t min)
voidSetTOFCut(Float_t tcut)
virtual voidTObject::SetUniqueID(UInt_t uid)
virtual voidShowMembers(TMemberInspector&)
virtual voidStreamer(TBuffer&)
voidStreamerNVirtual(TBuffer& ClassDef_StreamerNVirtual_b)
voidSwitchOffBayesian()
voidSwitchOffBayesianRecalculation()
voidSwitchOffSimpleSplitM02Cut()
voidSwitchOffSimpleSplitMassCut()
voidSwitchOffSplitAsymmetryCut()
voidSwitchOffSplitShowerShapeCut()
voidSwitchOnBayesian()
voidSwitchOnBayesianRecalculation()
voidSwitchOnSimpleSplitM02Cut()
voidSwitchOnSimpleSplitMassCut()
voidSwitchOnSplitAsymmetryCut()
voidSwitchOnSplitShowerShapeCut()
virtual voidTObject::SysError(const char* method, const char* msgfmt) const
Bool_tTObject::TestBit(UInt_t f) const
Int_tTObject::TestBits(UInt_t f) const
Float_tTestPHOSChargedVeto(Double_t dx, Double_t dz, Double_t ptTrack, Int_t chargeTrack, Double_t mf) const
Float_tTestPHOSDispersion(Double_t pt, Double_t m20, Double_t m02) const
virtual voidTObject::UseCurrentStyle()
voidUsePHOSPIDWeightFormula(Bool_t ok)
virtual voidTObject::Warning(const char* method, const char* msgfmt) const
virtual Int_tTObject::Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0)
virtual Int_tTObject::Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0) const
protected:
virtual voidTObject::DoError(int level, const char* location, const char* fmt, va_list va) const
voidTObject::MakeZombie()
private:
AliCaloPID(const AliCaloPID& cpid)
AliCaloPID&operator=(const AliCaloPID& cpid)

Data Members

public:
enum PidType { kPhoton
kPi0
kEta
kElectron
kEleCon
kNeutralHadron
kChargedHadron
kNeutralUnknown
kChargedUnknown
};
enum TagType { kPi0Decay
kEtaDecay
kOtherDecay
kConversion
kNoTag
};
enum eventType { kLow
kHigh
};
enum TObject::EStatusBits { kCanDelete
kMustCleanup
kObjInCanvas
kIsReferenced
kHasUUID
kCannotPick
kNoContextMenu
kInvalidObject
};
enum TObject::[unnamed] { kIsOnHeap
kNotDeleted
kZombie
kBitMask
kSingleKey
kOverwrite
kWriteDelete
};
private:
Float_tfAsyMinParam[2][4]3 param for fit on asymmetry minimum, for 2 cases, NLM=1 and NLM>=2
Int_tfDebugDebug level
Float_tfEMCALChargeWeightBayesian PID weight for charged hadrons in EMCAL
Float_tfEMCALDEtaCutTrack matching cut on Dz
Float_tfEMCALDPhiCutTrack matching cut on Dx
Float_tfEMCALElectronWeightBayesian PID weight for electrons in EMCAL
Float_tfEMCALL0CutMaxMax Cut on shower shape lambda0, used in PID evaluation, only EMCAL
Float_tfEMCALL0CutMinMin Cut on shower shape lambda0, used in PID evaluation, only EMCAL
Float_tfEMCALNeutralWeightBayesian PID weight for neutral hadrons in EMCAL
AliEMCALPIDUtils*fEMCALPIDUtilsPointer to EMCALPID to redo the PID Bayesian calculation
Float_tfEMCALPhotonWeightBayesian PID weight for photons in EMCAL
Float_tfEMCALPi0WeightBayesian PID weight for pi0 in EMCAL
Float_tfM02MaxParam[2][5]5 param for expo + pol fit on M02 maximum for pi0 selection
Float_tfM02MaxParamShiftNLMNshift of max M02 for NLM>2
Float_tfM02MinParam[2][5]5 param for expo + pol fit on M02 minimum for pi0 selection (maximum for conversions)
Float_tfMassEtaMaxMax Eta mass
Float_tfMassEtaMinMin Eta mass
Float_tfMassPhoMaxMin Photon mass
Float_tfMassPhoMinMin Photon mass
Float_tfMassPi0MaxMin Pi0 mass // simple cut case
Float_tfMassPi0MinMin Pi0 mass // simple cut case
Float_tfMassPi0Param[2][6]mean mass param, 2 regions in energy
Float_tfMassShiftHighECellShift cuts 5 MeV for Ecell > 150 MeV, default Ecell > 50 MeV
Float_tfPHOSChargeWeightBayesian PID weight for charged hadrons in PHOS
Float_tfPHOSDispersionCutShower shape elipse radious cut
Float_tfPHOSElectronWeightBayesian PID weight for electrons in PHOS
Float_tfPHOSNeutralWeightBayesian PID weight for neutral hadrons in PHOS
Float_tfPHOSPhotonWeightBayesian PID weight for photons in PHOS
TFormula*fPHOSPhotonWeightFormulaFormula for photon weight
TStringfPHOSPhotonWeightFormulaExpressionPhoton weight formula in string
Float_tfPHOSPi0WeightBayesian PID weight for pi0 in PHOS
TFormula*fPHOSPi0WeightFormulaFormula for pi0 weight
TStringfPHOSPi0WeightFormulaExpressionPi0 weight formula in string
Float_tfPHOSRCutTrack-Cluster distance cut for track matching in PHOS
Bool_tfPHOSWeightFormulaUse parametrized weight threshold, function of energy
Int_tfParticleFluxParticle flux for setting PID parameters
Bool_tfRecalculateBayesianRecalculate PID bayesian or use simple PID?
Float_tfSplitEFracMin[3]Do not use clusters with too large energy in cluster compared
Float_tfSplitM02MaxCutStudy clusters with l0 smaller than cut
Float_tfSplitM02MinCutStudy clusters with l0 larger than cut // simple case
Int_tfSplitMinNCellsStudy clusters with ncells larger than cut
Float_tfSplitWidthSigmaCut on mass+-width*fSplitWidthSigma
Float_tfSubClusterEMin[3]Do not use sub-clusters with too low energy depeding on NLM
Float_tfTOFCutCut on TOF, used in PID evaluation
Bool_tfUseBayesianWeightsSelect clusters based on weights calculated in reconstruction
Bool_tfUseSimpleM02CutUse simple min-max M02 cut
Bool_tfUseSimpleMassCutUse simple min-max pi0 mass cut
Bool_tfUseSplitAsyCutRemove splitted clusters with too large asymmetry
Bool_tfUseSplitSSCutRemove splitted clusters out of shower shape band
Float_tfWidthPi0Param[2][6]width param, 2 regions in energy

Class Charts

Inheritance Chart:
TObject
AliCaloPID

Function documentation

AliCaloPID()
Bayesian
PID calculation
Split
Ctor
AliCaloPID(Int_t particleFlux)
Bayesian
PID calculation
Split
Ctor
AliCaloPID(const TNamed* emcalpid)
Bayesian
PID calculation
Split
Ctor
~AliCaloPID()
Dtor
void InitParameters()
Initialize the parameters of the PID.
Bool_t IsInPi0SplitAsymmetryRange(Float_t energy, Float_t asy, Int_t nlm) const
 Select the appropriate mass range for pi0 selection in splitting method
 No used yet in splitting ID decision
Bool_t IsInPi0SplitMassRange(Float_t energy, Float_t mass, Int_t nlm) const
 Select the appropriate mass range for pi0 selection in splitting method
Bool_t IsInM02Range(Float_t m02) const
 Select the appropriate m02 range, fix cut, not E dependent
Bool_t IsInPi0M02Range(Float_t energy, Float_t m02, Int_t nlm) const
 Select the appropriate m02 range in splitting method for pi0
Bool_t IsInEtaM02Range(Float_t energy, Float_t m02, Int_t nlm) const
 Select the appropriate m02 range in splitting method to select eta's
 Use same parametrization as pi0, just shift the distributions (to be tuned)
Bool_t IsInConM02Range(Float_t energy, Float_t m02, Int_t nlm) const
 Select the appropriate m02 range in splitting method for converted photons
 Just min limit for pi0s is max for conversion.
AliEMCALPIDUtils * GetEMCALPIDUtils()
 return pointer to AliEMCALPIDUtils, create it if needed
Int_t GetIdentifiedParticleType(AliVCluster* cluster)
 Returns a PDG number corresponding to the likely ID of the cluster
Int_t GetIdentifiedParticleTypeFromBayesWeights(Bool_t isEMCAL, Double_t* pid, Float_t energy)
Return most probable identity of the particle after bayesian weights calculated in reconstruction
Int_t GetIdentifiedParticleTypeFromClusterSplitting(AliVCluster* cluster, AliVCaloCells* cells, AliCalorimeterUtils* caloutils, Double_t* vertex, Int_t& nLocMax, Double_t& mass, Double_t& angle, TLorentzVector& l1, TLorentzVector& l2, Int_t& absId1, Int_t& absId2, Float_t& distbad1, Float_t& distbad2, Bool_t& fidcut1, Bool_t& fidcut2) const
 Split the cluster in 2, do invariant mass, get the mass and decide
 if this is a photon, pi0, eta, ...
TString GetPIDParametersList()
Put data member values in string to keep in output container
void Print(Option_t* opt) const
void PrintClusterPIDWeights(const Double_t* pid) const
 print PID of cluster, (AliVCluster*)cluster->GetPID()
void SetPIDBits(AliVCluster* cluster, AliAODPWG4Particle* aodph, AliCalorimeterUtils* cu, AliVEvent* event)
Set Bits for PID selection
Bool_t IsTrackMatched(AliVCluster* cluster, AliCalorimeterUtils* cu, AliVEvent* event) const
Check if there is any track attached to this cluster
Float_t TestPHOSDispersion(Double_t pt, Double_t m20, Double_t m02) const
Check if cluster photon-like. Uses photon cluster parameterization in real pp data
Returns distance in sigmas. Recommended cut 2.5
Float_t TestPHOSChargedVeto(Double_t dx, Double_t dz, Double_t ptTrack, Int_t chargeTrack, Double_t mf) const
Checks distance to the closest track. Takes into account
non-perpendicular incidence of tracks.
returns distance in sigmas. Recommended cut: 2.
Requires (sign) of magnetic filed. onc can find it for example as following
  Double_t mf=0. ;
  AliESDEvent *event = dynamic_cast<AliESDEvent*>(InputEvent());
  if(event)
    mf = event->GetMagneticField(); //Positive for ++ and negative for --
AliCaloPID()
TList * GetCreateOutputObjects()
 Main methods
void SetDebug(Int_t deb)
 Setters, getters
{ fDebug = deb ; }
Int_t GetDebug() const
{ return fDebug ; }
void SetLowParticleFlux()
void SetHighParticleFlux()
 not really used, only for bayesian recalculation in EMCAL, but could be useful in future
void SwitchOnBayesian()
 Bayesian
void SwitchOffBayesian()
void SwitchOnBayesianRecalculation()
void SwitchOffBayesianRecalculation()
Float_t GetEMCALPhotonWeight() const
Weight getters
{ return fEMCALPhotonWeight ; }
Float_t GetEMCALPi0Weight() const
{ return fEMCALPi0Weight ; }
Float_t GetEMCALElectronWeight() const
Float_t GetEMCALChargeWeight() const
{ return fEMCALChargeWeight ; }
Float_t GetEMCALNeutralWeight() const
{ return fEMCALNeutralWeight ; }
Float_t GetPHOSPhotonWeight() const
{ return fPHOSPhotonWeight ; }
Float_t GetPHOSPi0Weight() const
{ return fPHOSPi0Weight ; }
Float_t GetPHOSElectronWeight() const
{ return fPHOSElectronWeight ; }
Float_t GetPHOSChargeWeight() const
{ return fPHOSChargeWeight ; }
Float_t GetPHOSNeutralWeight() const
{ return fPHOSNeutralWeight ; }
Bool_t IsPHOSPIDWeightFormulaOn() const
{ return fPHOSWeightFormula ; }
TFormula * GetPHOSPhotonWeightFormula()
TFormula * GetPHOSPi0WeightFormula()
TString GetPHOSPhotonWeightFormulaExpression() const
TString GetPHOSPi0WeightFormulaExpression() const
void SetEMCALPhotonWeight(Float_t w)
Weight setters
void SetEMCALPi0Weight(Float_t w)
{ fEMCALPi0Weight = w ; }
void SetEMCALElectronWeight(Float_t w)
void SetEMCALChargeWeight(Float_t w)
void SetEMCALNeutralWeight(Float_t w)
void SetPHOSPhotonWeight(Float_t w)
void SetPHOSPi0Weight(Float_t w)
{ fPHOSPi0Weight = w ; }
void SetPHOSElectronWeight(Float_t w)
void SetPHOSChargeWeight(Float_t w)
void SetPHOSNeutralWeight(Float_t w)
void UsePHOSPIDWeightFormula(Bool_t ok)
void SetPHOSPhotonWeightFormulaExpression(TString ph)
void SetPHOSPi0WeightFormulaExpression(TString pi)
void SetEMCALLambda0CutMax(Float_t lcut)
PID cuts
{ fEMCALL0CutMax = lcut ; }
Float_t GetEMCALLambda0CutMax() const
{ return fEMCALL0CutMax ; }
void SetEMCALLambda0CutMin(Float_t lcut)
{ fEMCALL0CutMin = lcut ; }
Float_t GetEMCALLambda0CutMin() const
{ return fEMCALL0CutMin ; }
void SetEMCALDEtaCut(Float_t dcut)
{ fEMCALDEtaCut = dcut ; }
Float_t GetEMCALDEtaCut() const
{ return fEMCALDEtaCut ; }
void SetEMCALDPhiCut(Float_t dcut)
{ fEMCALDPhiCut = dcut ; }
Float_t GetEMCALDPhiCut() const
{ return fEMCALDPhiCut ; }
void SetTOFCut(Float_t tcut)
{ fTOFCut = tcut ; }
Float_t GetTOFCut() const
{ return fTOFCut ; }
void SetPHOSRCut(Float_t rcut)
{ fPHOSRCut = rcut ; }
Float_t GetPHOSRCut() const
{ return fPHOSRCut ; }
void SetPHOSDispersionCut(Float_t dcut)
{ fPHOSDispersionCut = dcut ; }
Float_t GetPHOSDispersionCut() const
{ return fPHOSDispersionCut ; }
void SwitchOnSimpleSplitMassCut()
 Cluster splitting analysis
void SwitchOffSimpleSplitMassCut()
void SwitchOnSimpleSplitM02Cut()
void SwitchOffSimpleSplitM02Cut()
void SwitchOnSplitAsymmetryCut()
void SwitchOffSplitAsymmetryCut()
Bool_t IsSplitAsymmetryCutOn()
{ return fUseSplitAsyCut ; }
void SwitchOnSplitShowerShapeCut()
void SwitchOffSplitShowerShapeCut()
Bool_t IsSplitShowerShapeCutOn()
{ return fUseSplitSSCut ; }
void SetClusterSplittingM02Cut(Float_t min = 0, Float_t max = 100)
{ fSplitM02MinCut = min ; fSplitM02MaxCut = max ; }
void SetClusterSplittingMinNCells(Int_t c)
{ fSplitMinNCells = c ; }
Int_t GetClusterSplittingMinNCells() const
{ return fSplitMinNCells ; }
void SetSplitEnergyFractionMinimum(Int_t i, Float_t min)
{ if (i < 3 && i >=0 ) fSplitEFracMin[i] = min ; }
Float_t GetSplitEnergyFractionMinimum(Int_t i) const
{ if( i < 3 && i >=0 ) return fSplitEFracMin[i] ; else return 0 ; }
void SetSubClusterEnergyMinimum(Int_t i, Float_t min)
{ if (i < 3 && i >=0 ) fSubClusterEMin[i] = min ; }
Float_t GetSubClusterEnergyMinimum(Int_t i) const
{ if( i < 3 && i >=0 ) return fSubClusterEMin[i]; else return 0 ; }
Float_t GetPi0MinMass() const
{ return fMassPi0Min ; }
Float_t GetEtaMinMass() const
{ return fMassEtaMin ; }
Float_t GetPhotonMinMass() const
{ return fMassPhoMin ; }
Float_t GetPi0MaxMass() const
{ return fMassPi0Max ; }
Float_t GetEtaMaxMass() const
{ return fMassEtaMax ; }
Float_t GetPhotonMaxMass() const
{ return fMassPhoMax ; }
void SetSplitWidthSigma(Float_t s)
void SetPi0MassShiftHighECell(Float_t s)
void SetPi0MassSelectionParameters(Int_t inlm, Int_t iparam, Float_t param)
{ if(iparam < 6 ) fMassPi0Param[inlm][iparam] = param ; }
void SetPi0WidthSelectionParameters(Int_t inlm, Int_t iparam, Float_t param)
{ if(iparam < 6 ) fWidthPi0Param[inlm][iparam] = param ; }
void SetM02MaximumSelectionParameters(Int_t inlm, Int_t iparam, Float_t param)
{ if(iparam < 5 && inlm < 2) fM02MaxParam[inlm][iparam] = param ; }
void SetM02MaximumShiftForNLMN(Int_t shift)
{ fM02MaxParamShiftNLMN = shift ; }
void SetM02MinimumSelectionParameters(Int_t inlm, Int_t iparam, Float_t param)
{ if(iparam < 5 && inlm < 2) fM02MinParam[inlm][iparam] = param ; }
void SetAsymmetryMinimumSelectionParameters(Int_t inlm, Int_t iparam, Float_t param)
{ if(iparam < 4 && inlm < 2) fAsyMinParam[inlm][iparam] = param ; }
void SetPi0MassRange(Float_t min, Float_t max)
{ fMassPi0Min = min ; fMassPi0Max = max ; }
void SetEtaMassRange(Float_t min, Float_t max)
{ fMassEtaMin = min ; fMassEtaMax = max ; }
void SetPhotonMassRange(Float_t min, Float_t max)
{ fMassPhoMin = min ; fMassPhoMax = max ; }