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, const Float_t /*timeZeroTOF*/) const { return NumberOfSigmasTOF(track,type); }
+ virtual Float_t NumberOfSigmasTOF (const AliVParticle *track, AliPID::EParticleType type, Float_t /*timeZeroTOF*/) const { return NumberOfSigmasTOF(track,type); }
virtual Float_t NumberOfSigmasHMPID(const AliVParticle *track, AliPID::EParticleType type) const;
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;
// pid status
EDetPidStatus CheckPIDStatus(EDetector detCode, const AliVTrack *track) const;
- Float_t GetTOFMismatchProbability(const AliVTrack *track) const;
-
+ AliTOFPIDParams *GetTOFPIDParams() const {return fTOFPIDParams;}
+ 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;}
// event info
Float_t GetCurrentCentrality() const {return fCurrCentrality;};
-
+ void SetCurrentCentrality(Float_t centrality) {fCurrCentrality=centrality;fEMCALResponse.SetCentrality(fCurrCentrality);};
// TPC setting
void SetUseTPCEtaCorrection(Bool_t useEtaCorrection = kTRUE) { fUseTPCEtaCorrection = useEtaCorrection; };
Bool_t UseTPCEtaCorrection() const { return fUseTPCEtaCorrection; };
Int_t GetTunedOnDataMask() const {return fTuneMConDataMask;};
void SetTunedOnDataMask(Int_t detMask) {fTuneMConDataMask = detMask;}
+ // Utilities
+ TString GetChecksum(const TObject* obj) const;
+
AliPIDResponse(const AliPIDResponse &other);
AliPIDResponse& operator=(const AliPIDResponse &other);
-
+
protected:
AliITSPIDResponse fITSResponse; //PID response function of the ITS
AliTPCPIDResponse fTPCResponse; //PID response function of the TPC
//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