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