]>
Commit | Line | Data |
---|---|---|
23efe5f1 | 1 | #ifndef ALIITSPID_H |
2 | #define ALIITSPID_H | |
7d62fb64 | 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 | ///////////////////////////////////////////////////////////////// | |
e75c69cd | 8 | |
23efe5f1 | 9 | #include <TObject.h> |
e8d02863 | 10 | #include <TVectorfwd.h> |
e75c69cd | 11 | |
12 | class TClonesArray; | |
8057c644 | 13 | class AliITSIOTrack; |
5aa865de | 14 | class AliKalmanTrack; |
e75c69cd | 15 | class AliITStrackV2; |
16 | class TF1; | |
17 | ||
8057c644 | 18 | |
19 | class AliITSPid : public TObject { | |
23efe5f1 | 20 | |
21 | public: | |
22 | AliITSPid(Int_t ntrs=1000); | |
23 | virtual ~AliITSPid(){} | |
8057c644 | 24 | |
23efe5f1 | 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); | |
d2f55a22 | 29 | virtual void Print(Option_t *option="") const {TObject::Print(option);} |
23efe5f1 | 30 | void Tab(void); |
31 | void Reset(void); | |
e8d02863 | 32 | void SetVec(Int_t track,const TVector& info) const; |
8057c644 | 33 | TVector* GetVec(Int_t track) const; |
e75c69cd | 34 | Int_t GetPcode(TClonesArray* rps,Float_t pm); |
35 | Int_t GetPcode(Float_t p,Float_t pm); | |
5aa865de | 36 | Int_t GetPcode(AliKalmanTrack* track); |
e75c69cd | 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; } | |
8057c644 | 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;}; | |
23efe5f1 | 47 | protected: |
8057c644 | 48 | // copy constructor and assignment operator are protected |
49 | // since they are not allowed | |
50 | AliITSPid(const AliITSPid &source); // copy constructor. | |
8221b41b | 51 | AliITSPid& operator=(const AliITSPid& source); // = operator. |
e75c69cd | 52 | |
8057c644 | 53 | int Qcomp(Float_t* qa,Float_t* qb) const {return qa[0]>qb[0]?1:0;} |
e75c69cd | 54 | Float_t Qtrm(Int_t track); |
8057c644 | 55 | Float_t Qtrm(Float_t qarr[6],Int_t narr) const; |
e75c69cd | 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;} | |
8057c644 | 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 --//-- | |
e6727e13 | 78 | ClassDef(AliITSPid,2) // Class for ITS PID |
23efe5f1 | 79 | }; |
80 | ||
81 | #endif | |
82 | ||
83 | ||
84 | ||
85 |