]> git.uio.no Git - u/mrichter/AliRoot.git/blob - STEER/STEERBase/AliITSPIDResponse.h
option to switch CR off
[u/mrichter/AliRoot.git] / STEER / STEERBase / AliITSPIDResponse.h
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>
15 #include "AliPID.h"
16
17 class AliVTrack;
18
19 class AliITSPIDResponse : public TObject {
20
21 public:
22   AliITSPIDResponse(Bool_t isMC=kFALSE);
23   //AliITSPIDResponse(Double_t *param);
24  ~AliITSPIDResponse() {}
25
26  void SetBetheBlochParamsITSTPC(Double_t* param){
27    for(Int_t iPar=0; iPar<5; iPar++) fBBtpcits[iPar]=param[iPar];
28  }
29  void SetBetheBlochParamsITSsa(Double_t* param){
30    for(Int_t iPar=0; iPar<5; iPar++) fBBsa[iPar]=param[iPar];
31  }
32  
33  void SetBetheBlochHybridParamsITSsa(Double_t* param){
34    for(Int_t iPar=0; iPar<9; iPar++) fBBsaHybrid[iPar]=param[iPar];
35  }
36  void SetElectronBetheBlochParamsITSsa(Double_t* param){
37    for(Int_t iPar=0; iPar<5; iPar++) fBBsaElectron[iPar]=param[iPar];
38  }
39
40  Double_t BetheAleph(Double_t p,Double_t mass) const;
41  Double_t Bethe(Double_t p, Double_t mass, Bool_t iSA=kFALSE) const;
42  Double_t BetheITSsaHybrid(Double_t p, Double_t mass) const;
43  Double_t GetResolution(Double_t bethe, Int_t nPtsForPid=4, Bool_t isSA=kFALSE) const;
44  void GetITSProbabilities(Float_t mom, Double_t qclu[4], Double_t condprobfun[AliPID::kSPECIES],Bool_t isMC=kFALSE) const;
45
46  Double_t GetNumberOfSigmas( const AliVTrack* track, AliPID::EParticleType species) const;
47
48  Double_t GetSignalDelta( const AliVTrack* track, AliPID::EParticleType species, Bool_t ratio=kFALSE) const;
49  
50  Float_t GetNumberOfSigmas(Float_t mom, Float_t signal, AliPID::EParticleType type, Int_t nPtsForPid=4, Bool_t isSA=kFALSE) const {
51    const Double_t chargeFactor = TMath::Power(AliPID::ParticleCharge(type),2.);
52    Float_t bethe = Bethe(mom,AliPID::ParticleMassZ(type),isSA)*chargeFactor;
53    return (signal - bethe)/GetResolution(bethe,nPtsForPid,isSA);
54  }
55  Int_t GetParticleIdFromdEdxVsP(Float_t mom, Float_t signal, Bool_t isSA=kFALSE) const;
56
57 private:
58
59
60   // Data members for truncated mean method
61   Float_t  fRes;             // relative dEdx resolution
62   Double_t fKp1;             // ALEPH BB param 1
63   Double_t fKp2;             // ALEPH BB param 2
64   Double_t fKp3;             // ALEPH BB param 3
65   Double_t fKp4;             // ALEPH BB param 4
66   Double_t fKp5;             // ALEPH BB param 
67   Double_t  fBBsa[5];        // parameters of BB for SA tracks
68   Double_t  fBBsaHybrid[9];  // parameters of Hybrid BB for SA tracks, PHOB + Polinomial al low beta*gamma
69   Double_t  fBBsaElectron[5];// parameters of electron BB for SA tracks
70   Double_t  fBBtpcits[5];     // parameters of BB for TPC+ITS tracks
71   Float_t  fResolSA[5];      // resolutions vs. n. of SDD/SSD points
72   Float_t  fResolTPCITS[5];  // resolutions vs. n. of SDD/SSD points
73
74   ClassDef(AliITSPIDResponse,4)   // ITS PID class
75 };
76
77 #endif
78
79