]>
Commit | Line | Data |
---|---|---|
8c6a71ab | 1 | #ifndef ALIESDPID_H |
2 | #define ALIESDPID_H | |
3 | /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * | |
4 | * See cxx source for full Copyright notice */ | |
5 | ||
4f679a16 | 6 | /* $Id$ */ |
7 | ||
8c6a71ab | 8 | //------------------------------------------------------- |
9 | // Combined PID class | |
4f679a16 | 10 | // for the Event Summary Data class |
8c6a71ab | 11 | // Origin: Iouri Belikov, CERN, Jouri.Belikov@cern.ch |
fca752cb | 12 | // Modified: Jens Wiechula, Uni Tuebingen, jens.wiechula@cern.ch |
8c6a71ab | 13 | //------------------------------------------------------- |
14 | #include <Rtypes.h> | |
10d100d4 | 15 | #include "AliESDtrack.h" // Needed for inline functions |
fca752cb | 16 | |
10d100d4 | 17 | //#include "HMPID/AliHMPID.h" |
18 | //#include "TRD/AliTRDpidESD.h" | |
8c6a71ab | 19 | |
fca752cb | 20 | #include "AliPIDResponse.h" |
21 | ||
af885e0f | 22 | class AliESDEvent; |
fca752cb | 23 | class AliVEvent; |
24 | class AliVParticle; | |
8c6a71ab | 25 | |
fca752cb | 26 | class AliESDpid : public AliPIDResponse { |
8c6a71ab | 27 | public: |
fca752cb | 28 | AliESDpid(Bool_t forMC=kFALSE): AliPIDResponse(forMC), fRange(5.), fRangeTOFMismatch(5.), fITSPIDmethod(kITSTruncMean) {;} |
44ce6bbe | 29 | virtual ~AliESDpid() {} |
fca752cb | 30 | |
f858b00e | 31 | Int_t MakePID(AliESDEvent *event, Bool_t TPCOnly = kFALSE, Float_t timeZeroTOF=9999) const; |
10d100d4 | 32 | void MakeTPCPID(AliESDtrack *track) const; |
33 | void MakeITSPID(AliESDtrack *track) const; | |
f858b00e | 34 | void MakeTOFPID(AliESDtrack *track, Float_t /*timeZeroTOF*/) const; |
35 | Bool_t CheckTOFMatching(AliESDtrack *track) const; | |
10d100d4 | 36 | // void MakeHMPIDPID(AliESDtrack *track); |
b439f460 | 37 | void MakeTRDPID(AliESDtrack *track) const; |
10d100d4 | 38 | void CombinePID(AliESDtrack *track) const; |
7ef60110 | 39 | |
40 | enum ITSPIDmethod { kITSTruncMean, kITSLikelihood }; | |
41 | void SetITSPIDmethod(ITSPIDmethod pmeth) { fITSPIDmethod = pmeth; } | |
fca752cb | 42 | |
43 | virtual Float_t NumberOfSigmasTOF(const AliVParticle *vtrack, AliPID::EParticleType type, const Float_t timeZeroTOF) const; | |
44 | virtual Float_t NumberOfSigmasTOF(const AliVParticle *vtrack, AliPID::EParticleType type) const {return NumberOfSigmasTOF(vtrack,type,0); } | |
45 | ||
46 | void SetTOFResponse(AliVEvent *vevent,EStartTimeType_t option); | |
10d100d4 | 47 | |
7170298c | 48 | void SetNMaxSigmaTOFTPCMismatch(Float_t range) {fRangeTOFMismatch=range;} |
49 | Float_t GetNMaxSigmaTOFTPCMismatch() const {return fRangeTOFMismatch;} | |
50 | ||
8c6a71ab | 51 | private: |
10d100d4 | 52 | Float_t fRange; // nSigma max in likelihood |
7170298c | 53 | Float_t fRangeTOFMismatch; // nSigma max for TOF matching with TPC |
10d100d4 | 54 | ITSPIDmethod fITSPIDmethod; // 0 = trunc mean; 1 = likelihood |
10d100d4 | 55 | |
29d9710e | 56 | ClassDef(AliESDpid,6) // PID calculation class |
8c6a71ab | 57 | }; |
58 | ||
10d100d4 | 59 | |
fca752cb | 60 | inline Float_t AliESDpid::NumberOfSigmasTOF(const AliVParticle *vtrack, AliPID::EParticleType type, const Float_t /*timeZeroTOF*/) const { |
61 | AliESDtrack *track=(AliESDtrack*)vtrack; | |
10d100d4 | 62 | Double_t times[AliPID::kSPECIES]; |
63 | track->GetIntegratedTimes(times); | |
2150d133 | 64 | return (track->GetTOFsignal() - fTOFResponse.GetStartTime(track->GetP()) - times[type])/fTOFResponse.GetExpectedSigma(track->GetP(),times[type],AliPID::ParticleMass(type)); |
10d100d4 | 65 | } |
66 | ||
8c6a71ab | 67 | #endif |
68 | ||
69 |