//AliRoot includes
class AliESDEvent ;
-#include "AliPID.h"
+#include "AliEMCALPIDUtils.h"
-class AliEMCALPID : public TTask {
+class AliEMCALPID : public AliEMCALPIDUtils {
public:
AliEMCALPID();
AliEMCALPID(Bool_t reconstructor);
- virtual ~AliEMCALPID() { }
+ //virtual ~AliEMCALPID() { }
- void RunPID(AliESDEvent *esd);
- void ComputePID(Double_t energy, Double_t lambda0); // give the PID of a cluster
-
- void InitParameters();
- void SetLowFluxParam();
- void SetHighFluxParam();
-
- TArrayD DistLambda0(const Double_t energy, const Int_t nature) ; // compute lambda0 distributions
-
- Double_t DistEnergy(const Double_t energy, const Int_t nature) ;
-
- Double_t GetPID(Int_t idx) const {if (idx>=0&&idx<3) return fPID[idx]; else return 0.;}
- Double_t GetPIDFinal(Int_t idx) const {if (idx>=0&&idx<AliPID::kSPECIESN) return fPIDFinal[idx]; else return 0.;}
- Double_t GetPIDWeight(Int_t idx) const {if (idx>=0&&idx<3) return fPIDWeight[idx]; else return 0.;}
-
- void SetPID(Double_t val, Int_t idx) {if (idx>=0&&idx<3) fPID[idx] = val;}
- void SetPIDFinal(Double_t val, Int_t idx) {if (idx>=0&&idx<AliPID::kSPECIESN) fPIDFinal[idx] = val;}
- void SetPIDWeight(Double_t val, Int_t idx) {if (idx>=0&&idx<3) fPIDWeight[idx] = val;}
- void SetPrintInfo(Bool_t yesno) {fPrintInfo = yesno;}
+ void RunPID(AliESDEvent *esd);
+ void InitParameters();
void SetReconstructor(Bool_t yesno) {fReconstructor = yesno;}
private:
- Double_t Polynomial(const Double_t x, const Double_t *params) const ;
- Double_t Polynomialinv(const Double_t x, const Double_t *params) const ;
- Double_t PolynomialMixed1(const Double_t x, const Double_t *params) const ;
- Double_t PolynomialMixed2(const Double_t x, const Double_t *params) const ;
- Double_t Polynomial0(const Double_t *params) const ;
- Double_t PowerExp(const Double_t x, const Double_t *params) const ;
-
- Bool_t fPrintInfo; // flag to decide if details about PID must be printed
-
- Double_t fGamma[6][6]; // Parameter to Compute PID for photons
- Double_t fGamma1to10[6][6]; // Parameter to Compute PID not used
- Double_t fHadron[6][6]; // Parameter to Compute PID for hadrons, 1 to 10 GeV
- Double_t fHadron1to10[6][6]; // Parameter to Compute PID for hadrons, 1 to 10 GeV
- Double_t fPiZero[6][6]; // Parameter to Compute PID for pi0
- Double_t fHadronEnergyProb[6]; // Parameter to Compute PID for energy ponderation for hadrons
- Double_t fPiZeroEnergyProb[6]; // Parameter to Compute PID for energy ponderation for Pi0
- Double_t fGammaEnergyProb[6]; // Parameter to Compute PID for energy ponderation for gamma
-
- Float_t fPID[3];
-
- Float_t fPIDFinal[AliPID::kSPECIESN+1]; // final PID format
- Float_t fPIDWeight[3]; // order: gamma, pi0, hadrons,
- Double_t fProbGamma; // probility to be a Gamma
- Double_t fProbPiZero; // probility to be a PiO
- Double_t fProbHadron; // probility to be a Hadron
- Double_t fWeightHadronEnergy; // Weight for a a Hadron to have a given energy (parametr from a flat distrib from 0 to 100)
- Double_t fWeightGammaEnergy; // Weight for a Gamma to have a given energy (for the moment =1.)
- Double_t fWeightPiZeroEnergy; // Weight for a Pi0 Hadron to have a given energy (for the moment =1.)
Bool_t fReconstructor; // Fill esdcalocluster when called from EMCALReconstructor
- ClassDef(AliEMCALPID, 4)
+ ClassDef(AliEMCALPID, 5)
+
};
+
#endif // ALIEMCALPID_H
+