Coding conventions
[u/mrichter/AliRoot.git] / ITS / AliITSPid.h
1 #ifndef ALIITSPID_H
2 #define ALIITSPID_H
3
4 #include <TObject.h>
5
6 class TClonesArray;
7 class TVector;
8 class AliITSIOTrack;
9 class AliTPCtrack;
10 class AliITStrackV2;
11 class TF1;
12
13
14 class  AliITSPid : public TObject {
15
16 public:
17                 AliITSPid(Int_t ntrs=1000);
18                 virtual ~AliITSPid(){}
19
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);
27         TVector* GetVec(Int_t track) const;
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; } 
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;};
41 protected:
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.
46
47         int     Qcomp(Float_t* qa,Float_t* qb) const {return qa[0]>qb[0]?1:0;}
48         Float_t Qtrm(Int_t track);
49         Float_t Qtrm(Float_t qarr[6],Int_t narr) const;
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;}
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        --//--
72   ClassDef(AliITSPid,2) // Class for ITS PID
73 };
74
75 #endif  
76
77
78
79