]>
Commit | Line | Data |
---|---|---|
10d100d4 | 1 | #ifndef ALIITSPIDRESPONSE_H |
2 | #define ALIITSPIDRESPONSE_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 | // ITS PID response class | |
10 | // | |
11 | // | |
12 | //------------------------------------------------------- | |
13 | //#include <Rtypes.h> | |
14 | #include <TObject.h> | |
10d100d4 | 15 | #include "AliPID.h" |
16 | ||
567624b5 | 17 | class AliVTrack; |
18 | ||
10d100d4 | 19 | class AliITSPIDResponse : public TObject { |
20 | ||
21 | public: | |
15e979c9 | 22 | AliITSPIDResponse(Bool_t isMC=kFALSE); |
56576f1e | 23 | //AliITSPIDResponse(Double_t *param); |
10d100d4 | 24 | ~AliITSPIDResponse() {} |
99daa709 | 25 | |
26 | void SetBetheBlochParamsITSTPC(Double_t* param){ | |
27 | for(Int_t iPar=0; iPar<5; iPar++) fBBtpcits[iPar]=param[iPar]; | |
28 | } | |
41cab740 | 29 | void SetBetheBlochParamsITSTPCDeuteron(Double_t* param){ |
30 | for(Int_t iPar=0; iPar<5; iPar++) fBBdeu[iPar]=param[iPar]; | |
31 | } | |
32 | void SetBetheBlochParamsITSTPCTriton(Double_t* param){ | |
33 | for(Int_t iPar=0; iPar<5; iPar++) fBBtri[iPar]=param[iPar]; | |
34 | } | |
99daa709 | 35 | void SetBetheBlochParamsITSsa(Double_t* param){ |
36 | for(Int_t iPar=0; iPar<5; iPar++) fBBsa[iPar]=param[iPar]; | |
37 | } | |
62ccfebf | 38 | void SetBetheBlochHybridParamsITSsa(Double_t* param){ |
39 | for(Int_t iPar=0; iPar<9; iPar++) fBBsaHybrid[iPar]=param[iPar]; | |
40 | } | |
88f46717 | 41 | void SetElectronBetheBlochParamsITSsa(Double_t* param){ |
42 | for(Int_t iPar=0; iPar<5; iPar++) fBBsaElectron[iPar]=param[iPar]; | |
43 | } | |
99daa709 | 44 | |
15e979c9 | 45 | Double_t BetheAleph(Double_t p,Double_t mass) const; |
bb40433d | 46 | Double_t Bethe(Double_t p, Double_t mass, Bool_t isSA=kFALSE) const; |
4bd62e52 | 47 | Double_t Bethe(Double_t p, AliPID::EParticleType species, Bool_t isSA=kFALSE) const; |
62ccfebf | 48 | Double_t BetheITSsaHybrid(Double_t p, Double_t mass) const; |
41cab740 | 49 | Double_t GetResolution(Double_t bethe, Int_t nPtsForPid=4, Bool_t isSA=kFALSE,Double_t p=0., AliPID::EParticleType type=AliPID::kPion) const; |
b52bfc67 | 50 | void GetITSProbabilities(Float_t mom, Double_t qclu[4], Double_t condprobfun[AliPID::kSPECIES],Bool_t isMC=kFALSE) const; |
567624b5 | 51 | |
52 | Double_t GetNumberOfSigmas( const AliVTrack* track, AliPID::EParticleType species) const; | |
53 | ||
1d59271b | 54 | Double_t GetSignalDelta( const AliVTrack* track, AliPID::EParticleType species, Bool_t ratio=kFALSE) const; |
567624b5 | 55 | |
15e979c9 | 56 | Float_t GetNumberOfSigmas(Float_t mom, Float_t signal, AliPID::EParticleType type, Int_t nPtsForPid=4, Bool_t isSA=kFALSE) const { |
bb40433d | 57 | if(type==AliPID::kDeuteron && mom<0.4) return -999.; |
58 | if(type==AliPID::kTriton && mom<0.55) return -999.; | |
00a38d07 | 59 | const Double_t chargeFactor = TMath::Power(AliPID::ParticleCharge(type),2.); |
4bd62e52 | 60 | Float_t bethe = Bethe(mom,type,isSA)*chargeFactor; |
41cab740 | 61 | return (signal - bethe)/GetResolution(bethe,nPtsForPid,isSA,mom,type); |
15e979c9 | 62 | } |
8abeb05b | 63 | Int_t GetParticleIdFromdEdxVsP(Float_t mom, Float_t signal, Bool_t isSA=kFALSE) const; |
10d100d4 | 64 | |
65 | private: | |
66 | ||
15e979c9 | 67 | |
10d100d4 | 68 | // Data members for truncated mean method |
15e979c9 | 69 | Float_t fRes; // relative dEdx resolution |
10d100d4 | 70 | Double_t fKp1; // ALEPH BB param 1 |
71 | Double_t fKp2; // ALEPH BB param 2 | |
72 | Double_t fKp3; // ALEPH BB param 3 | |
73 | Double_t fKp4; // ALEPH BB param 4 | |
15e979c9 | 74 | Double_t fKp5; // ALEPH BB param |
62ccfebf | 75 | Double_t fBBsa[5]; // parameters of BB for SA tracks |
76 | Double_t fBBsaHybrid[9]; // parameters of Hybrid BB for SA tracks, PHOB + Polinomial al low beta*gamma | |
77 | Double_t fBBsaElectron[5];// parameters of electron BB for SA tracks | |
15e979c9 | 78 | Double_t fBBtpcits[5]; // parameters of BB for TPC+ITS tracks |
41cab740 | 79 | Double_t fBBdeu[5]; // parameters of deuteron BB for TPC+ITS tracks |
80 | Double_t fBBtri[5]; // parameters of triton BB for TPC+ITS tracks | |
15e979c9 | 81 | Float_t fResolSA[5]; // resolutions vs. n. of SDD/SSD points |
82 | Float_t fResolTPCITS[5]; // resolutions vs. n. of SDD/SSD points | |
41cab740 | 83 | Double_t fResolTPCITSDeu3[3]; // deuteron resolutions vs. p for tracks with 3 SDD/SSD points |
84 | Double_t fResolTPCITSDeu4[3]; // deuteron resolutions vs. p for tracks with 4 SDD/SSD points | |
85 | Double_t fResolTPCITSTri3[3]; // triton resolutions vs. p for tracks with 3 SDD/SSD points | |
86 | Double_t fResolTPCITSTri4[3]; // triton resolutions vs. p for tracks with 4 SDD/SSD points | |
10d100d4 | 87 | |
4bd62e52 | 88 | Double_t Bethe(Double_t bg, const Double_t * const par, Bool_t isNuclei) const; |
89 | ClassDef(AliITSPIDResponse,5) // ITS PID class | |
10d100d4 | 90 | }; |
91 | ||
92 | #endif | |
93 | ||
94 |