0e53d073f1d5ae12588c61b5ae009ebb7b504551
[u/mrichter/AliRoot.git] / STEER / AliTPCPIDResponse.h
1 #ifndef ALITPCPIDRESPONSE_H
2 #define ALITPCPIDRESPONSE_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6 //-------------------------------------------------------
7 //                    TPC PID class
8 // A very naive design... Should be made better by the detector experts...
9 //   Origin: Iouri Belikov, CERN, Jouri.Belikov@cern.ch 
10 // With many additions and modifications suggested by
11 //      Alexander Kalweit, GSI, alexander.philipp.kalweit@cern.ch
12 //      Dariusz Miskowiec, GSI, D.Miskowiec@gsi.de
13 //-------------------------------------------------------
14 #include <Rtypes.h>
15
16 #include "AliPID.h"
17
18 class AliTPCPIDResponse {
19 public:
20   AliTPCPIDResponse();
21   AliTPCPIDResponse(Double_t *param);
22   virtual ~AliTPCPIDResponse() {}
23   void SetSigma(Float_t res0, Float_t resN2);
24   void SetBetheBlochParameters(Double_t kp1,
25                                Double_t kp2,
26                                Double_t kp3,
27                                Double_t kp4,
28                                Double_t kp5
29                                );
30   void SetMip(Float_t mip) { fMIP = mip; } // Set overall normalisation; mean dE/dx for MIP
31   Double_t Bethe(Double_t bg) const;
32
33
34   Double_t GetExpectedSignal(const Float_t mom,
35                      AliPID::EParticleType n=AliPID::kKaon) const;
36   Double_t GetExpectedSigma(const Float_t mom, const Int_t nPoints,
37                      AliPID::EParticleType n=AliPID::kKaon) const;
38   Float_t  GetNumberOfSigmas(const Float_t mom, const Float_t dEdx, 
39                              const Int_t nPoints,
40                      AliPID::EParticleType n=AliPID::kKaon) const {
41
42     Double_t bethe=GetExpectedSignal(mom,n);
43     Double_t sigma=GetExpectedSigma(mom,nPoints,n);
44     return (dEdx-bethe)/sigma;
45   }
46
47   Double_t GetMIP() const { return fMIP;} 
48 private:
49   Float_t fMIP;          // dEdx for MIP
50   Float_t fRes0;         // relative dEdx resolution  rel sigma = fRes0*sqrt(1+fResN2/npoint)
51   Float_t fResN2;        // relative Npoint dependence rel  sigma = fRes0*sqrt(1+fResN2/npoint)
52
53   Double_t fKp1;   // Parameters
54   Double_t fKp2;   //    of
55   Double_t fKp3;   // the ALEPH
56   Double_t fKp4;   // Bethe-Bloch
57   Double_t fKp5;   // formula
58
59   ClassDef(AliTPCPIDResponse,2)   // TPC PID class
60 };
61
62 #endif
63
64