38 class TLorentzVector ;
46 class AliAODPWG4Particle;
47 class AliEMCALPIDUtils;
97 Int_t & nLocMax, Double_t &
mass, Double_t & angle,
98 TLorentzVector & l1 , TLorentzVector & l2,
99 Int_t & absId1, Int_t & absId2,
100 Float_t & distbad1, Float_t & distbad2,
101 Bool_t & fidcut1, Bool_t & fidcut2 )
const;
109 void SetPIDBits(AliVCluster * cluster, AliAODPWG4Particle *aodph,
112 void Print(
const Option_t * opt)
const;
119 Int_t chargeTrack, Double_t mf)
const ;
259 {
if(iparam < 5 && inlm < 2)
fM02MaxParam[inlm][iparam] = param ; }
264 {
if(iparam < 5 && inlm < 2)
fM02MinParam[inlm][iparam] = param ; }
267 {
if(iparam < 4 && inlm < 2)
fAsyMinParam[inlm][iparam] = param ; }
353 #endif //ALICALOPID_H
void SetPHOSPi0Weight(Float_t w)
TString fPHOSPhotonWeightFormulaExpression
Photon weight formula in string.
Float_t GetSplitEnergyFractionMinimum(Int_t i) const
Bool_t IsInEtaM02Range(Float_t energy, Float_t m02, Int_t nlm) const
void SetM02MaximumShiftForNLMN(Int_t shift)
Float_t fTOFCut
Cut on TOF, used in PID evaluation.
void SetTOFCut(Float_t tcut)
Float_t fMassPhoMin
Min Photon mass.
TFormula * GetPHOSPi0WeightFormula()
Float_t fPHOSNeutralWeight
Bayesian PID weight for neutral hadrons in PHOS.
Bool_t fUseBayesianWeights
Select clusters based on weights calculated in reconstruction.
Bool_t IsInPi0SplitAsymmetryRange(Float_t energy, Float_t asy, Int_t nlm) const
Float_t fMassPhoMax
Min Photon mass.
Float_t GetPi0MinMass() const
Float_t fMassPi0Max
Min Pi0 mass, simple cut case.
void SetSplitWidthSigma(Float_t s)
void SwitchOnBayesianRecalculation()
Float_t fEMCALElectronWeight
Bayesian PID weight for electrons in EMCAL.
void SetClusterSplittingM02Cut(Float_t min=0, Float_t max=100)
Float_t GetEMCALLambda0CutMax() const
Float_t GetEMCALDPhiCut() const
void SwitchOnSplitShowerShapeCut()
Float_t GetEMCALPi0Weight() const
Float_t fPHOSPhotonWeight
Bayesian PID weight for photons in PHOS.
void SwitchOffSplitShowerShapeCut()
void SetClusterSplittingMinNCells(Int_t c)
Float_t fSplitEFracMin[3]
Float_t fM02MaxParamShiftNLMN
shift of max M02 for NLM>2.
Float_t fWidthPi0Param[2][6]
Width param, 2 regions in energy.
Bool_t fUseSplitAsyCut
Remove splitted clusters with too large asymmetry.
Float_t GetPHOSPhotonWeight() const
Float_t fEMCALPi0Weight
Bayesian PID weight for pi0 in EMCAL.
Float_t GetPhotonMaxMass() const
Float_t GetEMCALPhotonWeight() const
TString GetPHOSPi0WeightFormulaExpression() const
Float_t fEMCALPhotonWeight
Bayesian PID weight for photons in EMCAL.
Float_t fSubClusterEMin[3]
Do not use sub-clusters with too low energy depeding on NLM.
Float_t GetPHOSChargeWeight() const
Float_t fMassEtaMax
Max Eta mass.
Float_t GetEMCALElectronWeight() const
void SwitchOffSplitAsymmetryCut()
Bool_t IsPHOSPIDWeightFormulaOn() const
void SetPHOSPi0WeightFormulaExpression(TString pi)
TString fPHOSPi0WeightFormulaExpression
Pi0 weight formula in string.
TFormula * GetPHOSPhotonWeightFormula()
Float_t fEMCALDEtaCut
Track matching cut on Dz.
void SetPi0MassSelectionParameters(Int_t inlm, Int_t iparam, Float_t param)
void SetPHOSElectronWeight(Float_t w)
void SetHighParticleFlux()
Not really used, only for bayesian recalculation in EMCAL, but could be useful in future...
void UsePHOSPIDWeightFormula(Bool_t ok)
AliCaloPID & operator=(const AliCaloPID &cpid)
Copy constructor not implemented.
Float_t fMassPi0Min
Min Pi0 mass, simple cut case.
void SetPHOSChargeWeight(Float_t w)
Float_t GetPi0MaxMass() const
Float_t fPHOSChargeWeight
Bayesian PID weight for charged hadrons in PHOS.
Float_t GetPHOSRCut() const
Float_t fMassPi0Param[2][6]
Mean mass param, 2 regions in energy.
TString GetPIDParametersList()
Put data member values in string to keep in output container.
void SetPHOSRCut(Float_t rcut)
void SetEMCALDPhiCut(Float_t dcut)
void SetM02MaximumSelectionParameters(Int_t inlm, Int_t iparam, Float_t param)
void Print(const Option_t *opt) const
Print some relevant parameters set for the analysis.
Float_t fM02MaxParam[2][5]
5 param for expo + pol fit on M02 maximum for pi0 selection.
Float_t GetEMCALDEtaCut() const
void SetEMCALElectronWeight(Float_t w)
Bool_t fRecalculateBayesian
Recalculate PID bayesian or use simple PID?
Float_t GetEMCALNeutralWeight() const
Float_t GetPHOSElectronWeight() const
Float_t fSplitWidthSigma
Cut on mass+-width*fSplitWidthSigma.
void SetLowParticleFlux()
Not really used, only for bayesian recalculation in EMCAL, but could be useful in future...
void SwitchOnSplitAsymmetryCut()
void SetSplitEnergyFractionMinimum(Int_t i, Float_t min)
void SetPi0MassShiftHighECell(Float_t s)
Bool_t IsInPi0M02Range(Float_t energy, Float_t m02, Int_t nlm) const
void SwitchOffSimpleSplitMassCut()
void SetEMCALNeutralWeight(Float_t w)
Float_t fSplitM02MaxCut
Study clusters with l0 smaller than cut.
void SetEMCALPi0Weight(Float_t w)
Float_t TestPHOSDispersion(Double_t pt, Double_t m20, Double_t m02) const
Bool_t fPHOSWeightFormula
Use parametrized weight threshold, function of energy.
Int_t GetClusterSplittingMinNCells() const
Float_t GetPHOSPi0Weight() const
Float_t TestPHOSChargedVeto(Double_t dx, Double_t dz, Double_t ptTrack, Int_t chargeTrack, Double_t mf) const
void SwitchOffSimpleSplitM02Cut()
void SetPIDBits(AliVCluster *cluster, AliAODPWG4Particle *aodph, AliCalorimeterUtils *cu, AliVEvent *event)
Set Bits for PID selection.
void SwitchOnSimpleSplitMassCut()
Float_t fEMCALNeutralWeight
Bayesian PID weight for neutral hadrons in EMCAL.
Float_t fPHOSRCut
Track-Cluster distance cut for track matching in PHOS.
void SetPHOSPhotonWeightFormulaExpression(TString ph)
Float_t GetPHOSNeutralWeight() const
Int_t GetIdentifiedParticleType(AliVCluster *cluster)
void SetEtaMassRange(Float_t min, Float_t max)
void SwitchOffBayesianRecalculation()
Bool_t fUseSplitSSCut
Remove splitted clusters out of shower shape band.
void SetPi0MassRange(Float_t min, Float_t max)
void SetEMCALLambda0CutMax(Float_t lcut)
TString GetPHOSPhotonWeightFormulaExpression() const
Float_t GetEtaMinMass() const
Float_t fMassShiftHighECell
Shift cuts 5 MeV for Ecell > 150 MeV, default Ecell > 50 MeV.
Float_t GetTOFCut() const
Float_t GetEMCALChargeWeight() const
void SetPHOSDispersionCut(Float_t dcut)
Bool_t IsInPi0SplitMassRange(Float_t energy, Float_t mass, Int_t nlm) const
Float_t fPHOSElectronWeight
Bayesian PID weight for electrons in PHOS.
void SetPHOSPhotonWeight(Float_t w)
Float_t fEMCALDPhiCut
Track matching cut on Dx.
Float_t fEMCALL0CutMax
Max Cut on shower shape lambda0, used in PID evaluation, only EMCAL.
Int_t GetIdentifiedParticleTypeFromClusterSplitting(AliVCluster *cluster, AliVCaloCells *cells, AliCalorimeterUtils *caloutils, Double_t vertex[3], 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
TFormula * fPHOSPhotonWeightFormula
Formula for photon weight.
Bool_t IsInConM02Range(Float_t energy, Float_t m02, Int_t nlm) const
Float_t fPHOSDispersionCut
Shower shape elipse radious cut.
Bool_t IsSplitShowerShapeCutOn()
void SetEMCALChargeWeight(Float_t w)
Int_t GetIdentifiedParticleTypeFromBayesWeights(Bool_t isEMCAL, Double_t *pid, Float_t energy)
void SetPi0WidthSelectionParameters(Int_t inlm, Int_t iparam, Float_t param)
Float_t GetEtaMaxMass() const
Float_t GetPhotonMinMass() const
void SetAsymmetryMinimumSelectionParameters(Int_t inlm, Int_t iparam, Float_t param)
void SetPHOSNeutralWeight(Float_t w)
Bool_t fUseSimpleM02Cut
Use simple min-max M02 cut.
void SetEMCALPhotonWeight(Float_t w)
Class for PID selection with calorimeters.
Float_t fEMCALL0CutMin
Min Cut on shower shape lambda0, used in PID evaluation, only EMCAL.
AliEMCALPIDUtils * GetEMCALPIDUtils()
Float_t fMassEtaMin
Min Eta mass.
Class with utils specific to calorimeter clusters/cells.
Float_t GetSubClusterEnergyMinimum(Int_t i) const
Float_t fEMCALChargeWeight
Bayesian PID weight for charged hadrons in EMCAL.
AliEMCALPIDUtils * fEMCALPIDUtils
Pointer to EMCALPID to redo the PID Bayesian calculation.
Float_t GetEMCALLambda0CutMin() const
void SetEMCALLambda0CutMin(Float_t lcut)
Int_t fParticleFlux
Particle flux for setting PID parameters.
Float_t fM02MinParam[2][5]
5 param for expo + pol fit on M02 minimum for pi0 selection (maximum for conversions).
void PrintClusterPIDWeights(const Double_t *pid) const
Bool_t fUseSimpleMassCut
Use simple min-max pi0 mass cut.
void SetSubClusterEnergyMinimum(Int_t i, Float_t min)
Bool_t IsSplitAsymmetryCutOn()
void SetEMCALDEtaCut(Float_t dcut)
Float_t GetPHOSDispersionCut() const
void SetPhotonMassRange(Float_t min, Float_t max)
Float_t fPHOSPi0Weight
Bayesian PID weight for pi0 in PHOS.
TFormula * fPHOSPi0WeightFormula
Formula for pi0 weight.
Bool_t IsInM02Range(Float_t m02) const
Int_t fSplitMinNCells
Study clusters with ncells larger than cut.
void SetM02MinimumSelectionParameters(Int_t inlm, Int_t iparam, Float_t param)
Bool_t IsTrackMatched(AliVCluster *cluster, AliCalorimeterUtils *cu, AliVEvent *event) const
Float_t fSplitM02MinCut
Study clusters with l0 larger than cut, simple case.
Float_t fAsyMinParam[2][4]
4 param for fit on asymmetry minimum, for 2 cases, NLM=1 and NLM>=2.
void SwitchOnSimpleSplitM02Cut()