class TH2D;
class TSpline3;
class TF1;
-class AliTOFGeometry;
-class AliTOFT0maker;
+class TH1D;
/*
HOW TO
virtual ~AliFlowBayesianPID();
// virtual method of AliPIDResponse
- virtual Float_t NumberOfSigmasTOF(const AliVParticle *vtrack, AliPID::EParticleType type) const {if(vtrack) printf("Don't call AliFlowBayesianPID::NumberOfSigmasTOF method (%i)\n",type); return 0.0;} // do not use it
+
// setter
- void SetDetResponse(AliESDEvent *esd,Float_t centrality=-1.0,EStartTimeType_t flagStart=AliESDpid::kTOF_T0,Bool_t recomputeT0TOF=kFALSE);
- void SetDetResponse(AliAODEvent *aod,Float_t centrality=-1.0);
+ void SetDetResponse(AliESDEvent *esd,Float_t centrality=-1.0,EStartTimeType_t flagStart=AliESDpid::kTOF_T0,Bool_t /*recomputeT0TOF*/=kFALSE);
+ void SetDetResponse(AliAODEvent *aod,Float_t centrality=-1.0,EStartTimeType_t flagStart=AliESDpid::kTOF_T0);
void SetNewTrackParam(Bool_t flag=kTRUE){fNewTrackParam=flag;};
void SetDetAND(Int_t idet){if(idet < fgkNdetectors && idet >= 0) fMaskAND[idet] = kTRUE;};
void SetDetOR(Int_t idet){if(idet < fgkNdetectors && idet >= 0) fMaskOR[idet] = kTRUE;};
Bool_t GetDetANDstatus(Int_t idet) const {if(idet < fgkNdetectors && idet >= 0){return fMaskAND[idet];} else{return kFALSE;} };
Bool_t GetDetORstatus(Int_t idet) const {if(idet < fgkNdetectors && idet >= 0){return fMaskOR[idet];} else{return kFALSE;} };
Bool_t GetCurrentMask(Int_t idet) const {if(idet < fgkNdetectors && idet >= 0){return fMaskCurrent[idet];} else{return kFALSE;} };
- Float_t GetExpDeDx(const AliESDtrack *t,Int_t iS) const;
- Float_t GetExpDeDx(const AliAODTrack *t,Int_t iS) const;
+
+ Float_t GetExpDeDx(const AliVTrack *t,Int_t iS) const;
+ Float_t GetExpDeDx(const AliVTrack *t,Float_t m) const;
// methods for Bayesina Combined PID
void ComputeWeights(const AliESDtrack *t);
void ComputeProb(const AliESDtrack *t,Float_t); // obsolete method
void ComputeProb(const AliESDtrack *t){ComputeProb(t,0.0);};
- void ComputeWeights(const AliAODTrack *t,AliAODEvent *aod=NULL);
- void ComputeProb(const AliAODTrack *t,AliAODEvent *aod=NULL); // obsolete method
+ void ComputeWeights(const AliAODTrack *t,const AliAODEvent *aod=NULL);
+ void ComputeProb(const AliAODTrack *t,const AliAODEvent *aod=NULL); // obsolete method
void SetTOFres(Float_t res){fTOFresolution=res;};
+ Float_t GetDeDx() const {return fDedx;};
+
+ void ForceOldDedx(Bool_t status=kTRUE) {fForceOldDedx=status;};
+
private:
void SetPriors();
static const Int_t fgkNdetectors = 2; // Number of detector used for PID
- static const Int_t fgkNspecies = 8;// 0=el, 1=mu, 2=pi, 3=ka, 4=pr, 5=deuteron, 6=triton, 7=He3
+ static const Int_t fgkNspecies = 9;// 0=el, 1=mu, 2=pi, 3=ka, 4=pr, 5=deuteron, 6=triton, 7=He3
static TH2D* fghPriors[fgkNspecies]; // histo with priors (hardcoded)
static TSpline3 *fgMism; // function for mismatch
- static AliTOFGeometry *fgTofGeo; // TOF geometry needed to reproduce mismatch shape
AliESDpid *fPIDesd;//ESDpid object
TDatabasePDG *fDB; // Database pdg
TF1 *fTOFResponseF; // TOF Gaussian+tail response function (tail at 1.1 sigma)
TF1 *fTPCResponseF; // TPC Gaussian+tail response function (tail at 1.8 sigma)
- AliTOFT0maker *fTOFmaker; //TOF-T0 maker object
-
Float_t fWeights[fgkNdetectors][fgkNspecies]; // weights: 0=tpc,1=tof
Float_t fProb[fgkNspecies],fWTofMism,fProbTofMism; // Bayesian Combined PID + mismatch weights and probability
Bool_t fIsMC; // switch for MC analysis
- ClassDef(AliFlowBayesianPID, 6); // example of analysis
+ Bool_t fForceOldDedx; // switch to force to use old 2010 dEdx paramterization (even if PIDResponse is available)
+
+ Float_t fDedx; // dE/dx tuned for MC
+
+ Bool_t fIsTOFheaderAOD; // check the TOF header in AOD
+
+ static TH1D *fgHtofChannelDist; // channel distance from IP
+
+ ClassDef(AliFlowBayesianPID, 10); // example of analysis
};
#endif
+