]> git.uio.no Git - u/mrichter/AliRoot.git/blame - STEER/STEERBase/AliITSPIDResponse.h
New MFT analysis tools
[u/mrichter/AliRoot.git] / STEER / STEERBase / AliITSPIDResponse.h
CommitLineData
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 17class AliVTrack;
18
10d100d4 19class AliITSPIDResponse : public TObject {
20
21public:
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
65private:
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