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 */
6 //-------------------------------------------------------
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 //-------------------------------------------------------
15 #include <TObjArray.h>
19 class AliTPCPIDResponse {
22 AliTPCPIDResponse(const Double_t *param);
23 virtual ~AliTPCPIDResponse() {}
24 void SetSigma(Float_t res0, Float_t resN2);
25 void SetBetheBlochParameters(Double_t kp1,
31 void SetMip(Float_t mip) { fMIP = mip; } // Set overall normalisation; mean dE/dx for MIP
32 Double_t Bethe(Double_t bg) const;
33 void SetUseDatabase(Bool_t useDatabase) { fUseDatabase = useDatabase;}
35 void SetResponseFunction(AliPID::EParticleType type, TObject * const o) { fResponseFunctions.AddAt(o,(Int_t)type); }
36 const TObject * const GetResponseFunction(AliPID::EParticleType type) { return fResponseFunctions.At((Int_t)type); }
38 Double_t GetExpectedSignal(const Float_t mom,
39 AliPID::EParticleType n=AliPID::kKaon) const;
40 Double_t GetExpectedSigma(const Float_t mom, const Int_t nPoints,
41 AliPID::EParticleType n=AliPID::kKaon) const;
42 Float_t GetNumberOfSigmas(const Float_t mom, const Float_t dEdx,
44 AliPID::EParticleType n=AliPID::kKaon) const {
46 Double_t bethe=GetExpectedSignal(mom,n);
47 Double_t sigma=GetExpectedSigma(mom,nPoints,n);
48 return (dEdx-bethe)/sigma;
51 Double_t GetMIP() const { return fMIP;}
53 Float_t fMIP; // dEdx for MIP
54 Float_t fRes0; // relative dEdx resolution rel sigma = fRes0*sqrt(1+fResN2/npoint)
55 Float_t fResN2; // relative Npoint dependence rel sigma = fRes0*sqrt(1+fResN2/npoint)
57 Double_t fKp1; // Parameters
59 Double_t fKp3; // the ALEPH
60 Double_t fKp4; // Bethe-Bloch
61 Double_t fKp5; // formula
63 Bool_t fUseDatabase; // flag if fine-tuned database-response or simple ALEPH BB should be used
64 TObjArray fResponseFunctions; //! ObjArray of response functions individually for each particle
66 ClassDef(AliTPCPIDResponse,3) // TPC PID class