]>
Commit | Line | Data |
---|---|---|
1423bac9 | 1 | #ifndef ALIAODPIDUTIL_H |
2 | #define ALIAODPIDUTIL_H | |
3 | /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * | |
4 | * See cxx source for full Copyright notice */ | |
5 | ||
6 | /* $Id: AliAODpidUtil.h 38493 2010-01-26 16:33:03Z hristov $ */ | |
7 | ||
8 | //------------------------------------------------------- | |
9 | // Combined PID class | |
10 | // for the AOD class | |
11 | // Origin: Rosa Romita, GSI, r.romita@gsi.de | |
9006fe9c | 12 | // Modified: Jens Wiechula, Uni Tuebingen, jens.wiechula@cern.ch |
1423bac9 | 13 | //------------------------------------------------------- |
14 | #include <Rtypes.h> | |
15 | #include <TMatrixD.h> | |
16 | #include "AliAODTrack.h" // Needed for inline functions | |
17 | #include "AliAODPid.h" // Needed for inline functions | |
1423bac9 | 18 | //#include "HMPID/AliHMPID.h" |
19 | ||
9006fe9c | 20 | #include "AliPIDResponse.h" |
21 | ||
1423bac9 | 22 | class AliAODEvent; |
9006fe9c | 23 | class AliVParticle; |
1423bac9 | 24 | |
9006fe9c | 25 | class AliAODpidUtil : public AliPIDResponse { |
1423bac9 | 26 | public: |
9006fe9c | 27 | //TODO: isMC??? |
28 | AliAODpidUtil(Bool_t isMC = kFALSE): AliPIDResponse(isMC), fRange(5.) {;} | |
1423bac9 | 29 | virtual ~AliAODpidUtil() {;} |
30 | ||
1c2fc6e0 | 31 | Int_t MakePID(AliAODTrack *track,Double_t *p) const; |
5e6a3170 | 32 | void MakeTPCPID(const AliAODTrack *track,Double_t *p) const; |
33 | void MakeITSPID(const AliAODTrack *track,Double_t *p) const; | |
34 | void MakeTOFPID(const AliAODTrack *track,Double_t *p) const; | |
1423bac9 | 35 | // void MakeHMPIDPID(AliESDtrack *track); |
5e6a3170 | 36 | void MakeTRDPID(const AliAODTrack *track,Double_t *p) const; |
1423bac9 | 37 | |
9006fe9c | 38 | virtual Float_t NumberOfSigmasTOF(const AliVParticle *vtrack, AliPID::EParticleType type) const; |
39 | ||
1423bac9 | 40 | private: |
41 | Float_t fRange; // nSigma max in likelihood | |
01f931c1 | 42 | |
9006fe9c | 43 | ClassDef(AliAODpidUtil,2) // PID calculation class |
1423bac9 | 44 | }; |
45 | ||
9006fe9c | 46 | inline Float_t AliAODpidUtil::NumberOfSigmasTOF(const AliVParticle *vtrack, AliPID::EParticleType type) const { |
47 | AliAODTrack *track=(AliAODTrack*)vtrack; | |
48 | Double_t times[AliPID::kSPECIES]; | |
49 | Double_t sigmaTOFPid[AliPID::kSPECIES]; | |
50 | AliAODPid *pidObj = track->GetDetPid(); | |
51 | if (!pidObj) return -999.; | |
52 | pidObj->GetIntegratedTimes(times); | |
53 | pidObj->GetTOFpidResolution(sigmaTOFPid); | |
54 | if (sigmaTOFPid[type]>0) return (pidObj->GetTOFsignal() - times[type])/sigmaTOFPid[type]; | |
55 | else return (pidObj->GetTOFsignal() - times[type])/fTOFResponse.GetExpectedSigma(track->P(),times[type],AliPID::ParticleMass(type)); | |
56 | } | |
57 | ||
1423bac9 | 58 | #endif |
59 | ||
60 |