]>
Commit | Line | Data |
---|---|---|
e62c1aea | 1 | #ifndef ALIITSPIDENT_H |
2 | #define ALIITSPIDENT_H | |
3 | ||
4 | ///////////////////////////////////////////////////////////////////////// | |
5 | //Class for PID in the ITS // | |
6 | //The PID is based on the likelihood of all the four ITS' layers, // | |
7 | //without using the truncated mean for the dE/dx. The response // | |
8 | //functions for each layer are convoluted Landau-Gaussian functions. // | |
9 | // Origin: Elena Bruna bruna@to.infn.it, Massimo Masera masera@to.infn.it// | |
10 | //////////////////////////////////////////////////////////////////////// | |
11 | #include "AliITStrackV2.h" | |
12 | #include <TObject.h> | |
13 | #include <Riostream.h> | |
14 | #include <TF1.h> | |
15 | #include <TTree.h> | |
16 | #include "AliITSPidParItem.h" | |
17 | #include "AliITSSteerPid.h" | |
18 | class AliITSPident : public TObject{ | |
19 | ||
20 | public: | |
21 | AliITSPident(); | |
22 | AliITSPident(Double_t mom,Double_t invPt,Double_t dEdx,AliITSSteerPid *sp,Float_t *Qlay,Float_t priorip=0.066,Float_t priorik=0.103,Float_t prioripi=0.83,Float_t priorie=0.001); | |
23 | ||
24 | AliITSPident(AliITStrackV2 *trackITS,AliITSSteerPid *sp,Float_t *Qlay,Float_t priorip=0.066,Float_t priorik=0.103,Float_t prioripi=0.83,Float_t priorie=0.001); | |
25 | ||
26 | virtual ~AliITSPident(); | |
27 | Float_t GetP() const {return fMom;}//local momentum (GeV/c) | |
28 | Double_t GetdEdx() const {return fdEdx;} //dEdx (ADC units) | |
29 | Double_t GetCondFunPro(Int_t lay) const { | |
30 | return fCondFunProLay[lay]; | |
31 | } | |
32 | Double_t GetProdCondFunPro() const { | |
33 | Double_t rv=1.; for(Int_t i=0;i<4;i++)rv*=GetCondFunPro(i); | |
34 | return rv; | |
35 | } | |
36 | Double_t GetCondFunK(Int_t lay) const { | |
37 | return fCondFunKLay[lay]; | |
38 | } | |
39 | Double_t GetProdCondFunK() const { | |
40 | Double_t rv=1.; for(Int_t i=0;i<4;i++)rv*=GetCondFunK(i); | |
41 | return rv; | |
42 | } | |
43 | Double_t GetCondFunPi(Int_t lay) const { | |
44 | return fCondFunPiLay[lay]; | |
45 | } | |
46 | Double_t GetProdCondFunPi() const { | |
47 | Double_t rv=1.; for(Int_t i=0;i<4;i++)rv*=GetCondFunPi(i); | |
48 | return rv; | |
49 | } | |
50 | Float_t GetInvPt() const {return fInvPt;} | |
51 | void PrintParameters() const; | |
52 | Float_t GetPBayesp()const {return fPBayesp;} | |
53 | Float_t GetPBayesk()const {return fPBayesk;} | |
54 | Float_t GetPBayespi()const {return fPBayespi;} | |
55 | Float_t GetPPriorip() const {return fPPriorip;} | |
56 | Float_t GetPPriorik() const {return fPPriorik;} | |
57 | Float_t GetPPrioripi() const {return fPPrioripi;} | |
58 | Float_t GetPPriorie() const {return fPPriorie;} | |
59 | ||
60 | static Double_t Langaufun(Double_t *x, Double_t *par); | |
61 | static Double_t Langaufun2(Double_t *x, Double_t *par); | |
62 | static Double_t Langaufunnorm(Double_t *x, Double_t *par); | |
63 | static Double_t Gaus2(Double_t *x, Double_t *par); | |
64 | ||
65 | private: | |
66 | ||
67 | void CookFunItsLay(Int_t lay,Int_t opt,Double_t *par,Double_t dedx,Double_t mom,Double_t rangei,Double_t rangef,TString comment); | |
68 | void CookBayes(Double_t *condfun,Float_t *prior); | |
69 | Float_t CookCombinedBayes(Double_t condfun[][3],Float_t *prior,Int_t part)const; | |
70 | Float_t CookProd(Double_t condfun[][3],Int_t part) const; | |
71 | Float_t CookSum(Double_t condfun[][3],Float_t *prior) const; | |
72 | AliITSPident(const AliITSPident &ob); // copy constructor | |
73 | AliITSPident& operator=(const AliITSPident & /* source */); // ass. op. | |
74 | ||
75 | Float_t fMom; // Particle momentum | |
76 | Double_t fdEdx; // Particle dE/dx | |
77 | Double_t fCondFunProLay[4]; // one for each silicon layer | |
78 | Double_t fCondFunKLay[4]; // cond. prob. function kaons per layer | |
79 | Double_t fCondFunPiLay[4]; // cond. prob. function pions per layer | |
80 | Float_t fPBayesp; // Bayes prob. | |
81 | Float_t fPBayesk; // Bayes prob. for kaons | |
82 | Float_t fPBayespi; // Bayes prob. for pions | |
83 | Float_t fPPriorip; // Priori prob. | |
84 | Float_t fPPriorik; // Priori prob. for kaons | |
85 | Float_t fPPrioripi; // Priori prob. for pions | |
86 | Float_t fPPriorie; // Priori prob. for electrons | |
87 | Float_t fInvPt; // Particle Inverse Transverse momentum | |
88 | ||
89 | ClassDef(AliITSPident,1); | |
90 | }; | |
91 | #endif |