]> git.uio.no Git - u/mrichter/AliRoot.git/blob - STEER/AliESDpid.h
changing msg to aliinfo
[u/mrichter/AliRoot.git] / STEER / AliESDpid.h
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
6 /* $Id$ */
7
8 //-------------------------------------------------------
9 //                    Combined PID class
10 //           for the Event Summary Data class
11 //   Origin: Iouri Belikov, CERN, Jouri.Belikov@cern.ch 
12 //   Modified: Jens Wiechula, Uni Tuebingen, jens.wiechula@cern.ch
13 //-------------------------------------------------------
14 #include <Rtypes.h>
15 #include "AliESDtrack.h" // Needed for inline functions
16
17 //#include "HMPID/AliHMPID.h"
18 //#include "TRD/AliTRDpidESD.h"
19
20 #include "AliPIDResponse.h"
21
22 class AliESDEvent;
23 class AliVEvent;
24 class AliVParticle;
25
26 class AliESDpid : public AliPIDResponse  {
27 public:
28   AliESDpid(Bool_t forMC=kFALSE): AliPIDResponse(forMC), fRange(5.), fRangeTOFMismatch(5.), fITSPIDmethod(kITSTruncMean) {;}
29   virtual ~AliESDpid() {}
30   
31   Int_t MakePID(AliESDEvent *event, Bool_t TPCOnly = kFALSE, Float_t timeZeroTOF=9999) const;
32   void MakeTPCPID(AliESDtrack *track) const;
33   void MakeITSPID(AliESDtrack *track) const;
34   void MakeTOFPID(AliESDtrack *track, Float_t /*timeZeroTOF*/) const;
35   Bool_t CheckTOFMatching(AliESDtrack *track) const;
36   //  void MakeHMPIDPID(AliESDtrack *track);
37   void MakeTRDPID(AliESDtrack *track) const;
38   void CombinePID(AliESDtrack *track) const;
39
40   enum ITSPIDmethod { kITSTruncMean, kITSLikelihood };
41   void SetITSPIDmethod(ITSPIDmethod pmeth) { fITSPIDmethod = pmeth; }
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);
47
48   void SetNMaxSigmaTOFTPCMismatch(Float_t range) {fRangeTOFMismatch=range;}
49   Float_t GetNMaxSigmaTOFTPCMismatch() const {return fRangeTOFMismatch;}
50
51 private:
52   Float_t           fRange;          // nSigma max in likelihood
53   Float_t           fRangeTOFMismatch; // nSigma max for TOF matching with TPC
54   ITSPIDmethod      fITSPIDmethod;   // 0 = trunc mean; 1 = likelihood 
55
56   ClassDef(AliESDpid,6)  // PID calculation class
57 };
58
59
60 inline Float_t AliESDpid::NumberOfSigmasTOF(const AliVParticle *vtrack, AliPID::EParticleType type, const Float_t /*timeZeroTOF*/) const {
61   AliESDtrack *track=(AliESDtrack*)vtrack;
62   Double_t times[AliPID::kSPECIES];
63   track->GetIntegratedTimes(times);
64   return (track->GetTOFsignal() - fTOFResponse.GetStartTime(track->GetP()) - times[type])/fTOFResponse.GetExpectedSigma(track->GetP(),times[type],AliPID::ParticleMass(type));
65 }
66
67 #endif
68
69