kDetPHOS = 0x40
};
+ enum EBeamType {
+ kPP = 0,
+ kPPB,
+ kPBPB
+ };
+
enum EStartTimeType_t {kFILL_T0,kTOF_T0, kT0_T0, kBest_T0};
enum ITSPIDmethod { kITSTruncMean, kITSLikelihood };
virtual Float_t NumberOfSigmasITS (const AliVParticle *track, AliPID::EParticleType type) const;
virtual Float_t NumberOfSigmasTPC (const AliVParticle *track, AliPID::EParticleType type) const;
virtual Float_t NumberOfSigmasTPC (const AliVParticle *track, AliPID::EParticleType type, AliTPCPIDResponse::ETPCdEdxSource dedxSource) const;
+ virtual Float_t NumberOfSigmasTRD (const AliVParticle *track, AliPID::EParticleType type) const;
virtual Float_t NumberOfSigmasEMCAL(const AliVParticle *track, AliPID::EParticleType type, Double_t &eop, Double_t showershape[4]) const;
virtual Float_t NumberOfSigmasTOF (const AliVParticle *track, AliPID::EParticleType type) const;
virtual Float_t NumberOfSigmasTOF (const AliVParticle *track, AliPID::EParticleType type, Float_t /*timeZeroTOF*/) const { return NumberOfSigmasTOF(track,type); }
virtual Float_t NumberOfSigmasEMCAL(const AliVParticle *track, AliPID::EParticleType type) const;
Bool_t IdentifiedAsElectronTRD(const AliVTrack *track, Double_t efficiencyLevel,Double_t centrality=-1,AliTRDPIDResponse::ETRDPIDMethod PIDmethod=AliTRDPIDResponse::kLQ1D) const;
+ Bool_t IdentifiedAsElectronTRD(const AliVTrack *track, Int_t &ntracklets, Double_t efficiencyLevel,Double_t centrality=-1,AliTRDPIDResponse::ETRDPIDMethod PIDmethod=AliTRDPIDResponse::kLQ1D) const;
+
// Signal delta
EDetPidStatus GetSignalDelta(EDetector detCode, const AliVParticle *track, AliPID::EParticleType type, Double_t &val, Bool_t ratio=kFALSE) const;
EDetPidStatus CheckPIDStatus(EDetector detCode, const AliVTrack *track) const;
AliTOFPIDParams *GetTOFPIDParams() const {return fTOFPIDParams;}
- Float_t GetTOFMismatchProbability(const AliVTrack *track) const;
-
+ Float_t GetTOFMismatchProbability(const AliVTrack *track = NULL) const; // if empty argument return the value stored during TOF probability computation
+
void SetITSPIDmethod(ITSPIDmethod pmeth) { fITSPIDmethod = pmeth; }
void SetOADBPath(const char* path) {fOADBPath=path;}
//unbuffered PID calculation
virtual Float_t GetNumberOfSigmasTOFold (const AliVParticle */*track*/, AliPID::EParticleType /*type*/) const {return 0;}
virtual Float_t GetSignalDeltaTOFold(const AliVParticle */*track*/, AliPID::EParticleType /*type*/, Bool_t /*ratio*/=kFALSE) const {return -9999.;}
-
+
+ Int_t CalculateTRDResponse(const AliVTrack *track, Double_t p[],AliTRDPIDResponse::ETRDPIDMethod PIDmethod) const;
EDetPidStatus GetComputeTRDProbability (const AliVTrack *track, Int_t nSpecies, Double_t p[],AliTRDPIDResponse::ETRDPIDMethod PIDmethod=AliTRDPIDResponse::kLQ1D) const;
EDetPidStatus GetTOFPIDStatus(const AliVTrack *track) const;
private:
+ static Float_t fgTOFmismatchProb; // TOF mismatch probability (Bayesian)
+
Bool_t fIsMC; // If we run on MC data
Bool_t fCachePID;
AliVEvent *fCurrentEvent; //! event currently being processed
Float_t fCurrCentrality; //! current centrality
-
+
+ EBeamType fBeamTypeNum; //! beam type enum
void ExecNewRun();
Float_t GetNumberOfSigmas(EDetector detCode, const AliVParticle *track, AliPID::EParticleType type) const;
Float_t GetNumberOfSigmasITS (const AliVParticle *track, AliPID::EParticleType type) const;
Float_t GetNumberOfSigmasTPC (const AliVParticle *track, AliPID::EParticleType type) const;
+ Float_t GetNumberOfSigmasTRD (const AliVParticle *track, AliPID::EParticleType type) const;
Float_t GetNumberOfSigmasTOF (const AliVParticle *track, AliPID::EParticleType type) const;
Float_t GetNumberOfSigmasHMPID(const AliVParticle *track, AliPID::EParticleType type) const;
Float_t GetNumberOfSigmasEMCAL(const AliVParticle *track, AliPID::EParticleType type, Double_t &eop, Double_t showershape[4]) const;
// Signal deltas
EDetPidStatus GetSignalDeltaITS(const AliVParticle *track, AliPID::EParticleType type, Double_t &val, Bool_t ratio=kFALSE) const;
EDetPidStatus GetSignalDeltaTPC(const AliVParticle *track, AliPID::EParticleType type, Double_t &val, Bool_t ratio=kFALSE) const;
+ EDetPidStatus GetSignalDeltaTRD(const AliVParticle *track, AliPID::EParticleType type, Double_t &val, Bool_t ratio=kFALSE) const;
EDetPidStatus GetSignalDeltaTOF(const AliVParticle *track, AliPID::EParticleType type, Double_t &val, Bool_t ratio=kFALSE) const;
EDetPidStatus GetSignalDeltaHMPID(const AliVParticle *vtrack, AliPID::EParticleType type, Double_t &val, Bool_t ratio=kFALSE) const;
EDetPidStatus GetPHOSPIDStatus(const AliVTrack *track) const;
EDetPidStatus GetEMCALPIDStatus(const AliVTrack *track) const;
- ClassDef(AliPIDResponse, 12); //PID response handling
+ ClassDef(AliPIDResponse, 13); //PID response handling
};
#endif