23efe5f1 |
1 | #ifndef ALIITSPID_H |
2 | #define ALIITSPID_H |
e75c69cd |
3 | |
23efe5f1 |
4 | #include <TObject.h> |
e75c69cd |
5 | |
6 | class TClonesArray; |
7 | class TVector; |
8057c644 |
8 | class AliITSIOTrack; |
e75c69cd |
9 | class AliTPCtrack; |
10 | class AliITStrackV2; |
11 | class TF1; |
12 | |
8057c644 |
13 | |
14 | class AliITSPid : public TObject { |
23efe5f1 |
15 | |
16 | public: |
17 | AliITSPid(Int_t ntrs=1000); |
18 | virtual ~AliITSPid(){} |
8057c644 |
19 | |
23efe5f1 |
20 | void SetEdep(Int_t track,Float_t Edep); |
21 | void SetPmom(Int_t track,Float_t Pmom); |
22 | void SetPcod(Int_t track,Int_t Pcod); |
23 | void Print(Int_t track); |
24 | void Tab(void); |
25 | void Reset(void); |
26 | void SetVec(Int_t track,TVector info); |
8057c644 |
27 | TVector* GetVec(Int_t track) const; |
e75c69cd |
28 | Int_t GetPcode(TClonesArray* rps,Float_t pm); |
29 | Int_t GetPcode(Float_t p,Float_t pm); |
30 | Int_t GetPcode(AliTPCtrack* track); |
31 | Int_t GetPcode(AliITSIOTrack* track); |
32 | Int_t GetPcode(AliITStrackV2* track); |
33 | void SetCut(Int_t n,Float_t pm,Float_t pilo,Float_t pihi, |
34 | Float_t klo,Float_t khi,Float_t plo,Float_t phi); |
35 | void SetAProb(Int_t ivar,Int_t icut,Float_t apro){ fAprob[ivar][icut]=apro; } |
8057c644 |
36 | Float_t GetAProb(Int_t ivar,Int_t icut) const { return fAprob[ivar][icut]; } |
37 | Float_t GetWpi() const {return fWpi;} |
38 | Float_t GetWk() const {return fWk;} |
39 | Float_t GetWp() const {return fWp;} |
40 | Int_t GetPid() const {return fPcode;}; |
23efe5f1 |
41 | protected: |
8057c644 |
42 | // copy constructor and assignment operator are protected |
43 | // since they are not allowed |
44 | AliITSPid(const AliITSPid &source); // copy constructor. |
45 | AliITSPid& operator=(const AliITSPid& /* source */); // = operator. |
e75c69cd |
46 | |
8057c644 |
47 | int Qcomp(Float_t* qa,Float_t* qb) const {return qa[0]>qb[0]?1:0;} |
e75c69cd |
48 | Float_t Qtrm(Int_t track); |
8057c644 |
49 | Float_t Qtrm(Float_t qarr[6],Int_t narr) const; |
e75c69cd |
50 | Int_t Wpik(Float_t pm,Float_t q); |
51 | Int_t Wpikp(Float_t pm,Float_t q); |
52 | Int_t Pion(){return fWpi=1.,fPcode=211;} |
53 | Int_t Kaon(){return fWk=1.,fPcode=321;} |
54 | Int_t Proton(){return fWp=1.,fPcode=2212;} |
8057c644 |
55 | //================ Data members ======================== |
56 | Float_t fCut[13][7],fAprob[3][8]; //Cuts and prior probs tables |
57 | Int_t fMxtrs; //Maximum tracks limit |
58 | TClonesArray *fTrs; //Tracks set under investigation |
59 | Float_t fWpi,fWk,fWp; //Probabilities for pions,kaons,protons |
60 | Float_t fRpik,fRppi,fRpka,fRp; //Signal ratios |
61 | Int_t fPcode; //Particle code |
62 | Float_t fSigmin; // Tuning parameter |
63 | Int_t fSilent; // Output suppresion flag |
64 | TF1* fCutKa; // Pions-kaons cut function |
65 | TF1* fCutPr; // Kaons-protons cut function |
66 | TF1* fGGpi[6];// Pions signal parametrization for Hijing |
67 | TF1* fGGka[3];// Kaons --//-- |
68 | TF1* fGGpr[3];// Protons --//-- |
69 | TF1* fggpi; // Pions signal for given momentum |
70 | TF1* fggka; // Kaons --//-- |
71 | TF1* fggpr; // Protons --//-- |
e6727e13 |
72 | ClassDef(AliITSPid,2) // Class for ITS PID |
23efe5f1 |
73 | }; |
74 | |
75 | #endif |
76 | |
77 | |
78 | |
79 | |