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