]> git.uio.no Git - u/mrichter/AliRoot.git/blob - ITS/AliITSPid.h
material 84 changed to mixture 84
[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 AliKalmanTrack;
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         virtual void Print(Option_t *option="") const {TObject::Print(option);}
25         void    Tab(void);
26         void    Reset(void);
27         void    SetVec(Int_t track,TVector info);
28         TVector* GetVec(Int_t track) const;
29         Int_t   GetPcode(TClonesArray* rps,Float_t pm);
30         Int_t   GetPcode(Float_t p,Float_t pm);
31         Int_t   GetPcode(AliKalmanTrack* track);
32         Int_t   GetPcode(AliITSIOTrack* track); 
33         Int_t   GetPcode(AliITStrackV2* track);
34         void    SetCut(Int_t n,Float_t pm,Float_t pilo,Float_t pihi,
35                        Float_t klo,Float_t khi,Float_t plo,Float_t phi);
36         void    SetAProb(Int_t ivar,Int_t icut,Float_t apro){ fAprob[ivar][icut]=apro; } 
37         Float_t GetAProb(Int_t ivar,Int_t icut) const { return fAprob[ivar][icut]; } 
38         Float_t GetWpi() const {return fWpi;}
39         Float_t GetWk() const {return fWk;}
40         Float_t GetWp() const {return fWp;}
41         Int_t   GetPid() const {return fPcode;};
42 protected:
43         // copy constructor and assignment operator are protected
44         // since they are not allowed
45         AliITSPid(const AliITSPid &source); // copy constructor. 
46         AliITSPid& operator=(const AliITSPid& /* source */); // = operator.
47
48         int     Qcomp(Float_t* qa,Float_t* qb) const {return qa[0]>qb[0]?1:0;}
49         Float_t Qtrm(Int_t track);
50         Float_t Qtrm(Float_t qarr[6],Int_t narr) const;
51         Int_t   Wpik(Float_t pm,Float_t q);
52         Int_t   Wpikp(Float_t pm,Float_t q);
53         Int_t   Pion(){return fWpi=1.,fPcode=211;}
54         Int_t   Kaon(){return fWk=1.,fPcode=321;}
55         Int_t   Proton(){return fWp=1.,fPcode=2212;}
56         //================ Data members ========================
57         Float_t fCut[13][7],fAprob[3][8]; //Cuts and prior probs tables
58         Int_t       fMxtrs; //Maximum tracks limit
59         TClonesArray *fTrs; //Tracks set under investigation
60         Float_t fWpi,fWk,fWp; //Probabilities for pions,kaons,protons        
61         Float_t fRpik,fRppi,fRpka,fRp; //Signal ratios
62         Int_t   fPcode;  //Particle code
63         Float_t fSigmin; // Tuning parameter
64         Int_t   fSilent; // Output suppresion flag
65         TF1*    fCutKa;  // Pions-kaons cut function
66         TF1*    fCutPr;  // Kaons-protons cut function
67         TF1*    fGGpi[6];// Pions signal parametrization for Hijing
68         TF1*    fGGka[3];// Kaons          --//--
69         TF1*    fGGpr[3];// Protons        --//--
70         TF1*    fggpi;   // Pions signal for given momentum
71         TF1*    fggka;   // Kaons          --//--
72         TF1*    fggpr;   // Protons        --//--
73   ClassDef(AliITSPid,2) // Class for ITS PID
74 };
75
76 #endif  
77
78
79
80