]> git.uio.no Git - u/mrichter/AliRoot.git/blame_incremental - ITS/AliITSPid.h
Double check if SM is running added. Some redundant output removed from SM
[u/mrichter/AliRoot.git] / ITS / AliITSPid.h
... / ...
CommitLineData
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
12class TClonesArray;
13class AliITSIOTrack;
14class AliKalmanTrack;
15class AliITStrackV2;
16class TF1;
17
18
19class AliITSPid : public TObject {
20
21public:
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;};
47protected:
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