]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWG/FLOW/Tasks/AliFlowBayesianPID.h
Merge branch 'feature-movesplit'
[u/mrichter/AliRoot.git] / PWG / FLOW / Tasks / AliFlowBayesianPID.h
index 2253bd18f6e46c4127e71accdaf4a9811361f60e..4e89773c5eb247235fc9b7636def47ea59118b27 100644 (file)
@@ -19,8 +19,7 @@ class AliAODTrack;
 class TH2D;
 class TSpline3;
 class TF1;
-class AliTOFGeometry;
-class AliTOFT0maker;
+class TH1D;
 
 /*
 HOW TO
@@ -77,11 +76,11 @@ class AliFlowBayesianPID : public AliPIDResponse{
   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;};
@@ -105,26 +104,30 @@ class AliFlowBayesianPID : public AliPIDResponse{
   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
@@ -139,8 +142,6 @@ class AliFlowBayesianPID : public AliPIDResponse{
   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 
 
@@ -155,9 +156,18 @@ class AliFlowBayesianPID : public AliPIDResponse{
 
   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
 
 
+