X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=ITS%2FAliITSPid.h;h=e8e393537b387e7dd0229f0d97220d719a880a1e;hb=5a03f353382f242b9ae50f18d5c276f0a54118ce;hp=8de43be4142da155c7644ded3222f6dd229955fb;hpb=79b921e1bbf42c0699dfc59d56f41c8817e4dc57;p=u%2Fmrichter%2FAliRoot.git diff --git a/ITS/AliITSPid.h b/ITS/AliITSPid.h index 8de43be4142..e8e393537b3 100644 --- a/ITS/AliITSPid.h +++ b/ITS/AliITSPid.h @@ -1,61 +1,81 @@ #ifndef ALIITSPID_H #define ALIITSPID_H +///////////////////////////////////////////////////////////////// +// Class for identification of pions,kaons and protons in ITS // +// Prior particles population (probabilities) are taken from // +// Hijing event generator. // +///////////////////////////////////////////////////////////////// + #include -#include -#include -#include "../TPC/AliTPCtrack.h" -#include "AliITSIOTrack.h" -#include "AliITStrackV2.h" -#include -//#include -//___________________________________________________________________________ -class AliITSPid : - public TObject { +#include + +class TClonesArray; +class AliITSIOTrack; +class AliKalmanTrack; +class AliITStrackV2; +class TF1; + + +class AliITSPid : public TObject { public: AliITSPid(Int_t ntrs=1000); virtual ~AliITSPid(){} + void SetEdep(Int_t track,Float_t Edep); void SetPmom(Int_t track,Float_t Pmom); void SetPcod(Int_t track,Int_t Pcod); void Print(Int_t track); + virtual void Print(Option_t *option="") const {TObject::Print(option);} void Tab(void); void Reset(void); - void SetVec(Int_t track,TVector info); - TVector* GetVec(Int_t track); - Int_t GetPcode(TClonesArray*,Float_t); - Int_t GetPcode(Float_t,Float_t); - Int_t GetPcode(AliTPCtrack*); // For PID TPC -// Int_t GetPcode(AliITSIOTrack*); // For PID ITS tracking V1 - Int_t GetPcode(AliITStrackV2*); // For PID ITS tracking V2 - void SetCut(Int_t,Float_t,Float_t,Float_t, - Float_t,Float_t,Float_t,Float_t); - Float_t GetWpi(){return fWpi;} - Float_t GetWk(){return fWk;} - Float_t GetWp(){return fWp;} - Int_t GetPid(){return fPcode;}; + void SetVec(Int_t track,const TVector& info) const; + TVector* GetVec(Int_t track) const; + Int_t GetPcode(TClonesArray* rps,Float_t pm); + Int_t GetPcode(Float_t p,Float_t pm); + Int_t GetPcode(AliKalmanTrack* track); + Int_t GetPcode(AliITSIOTrack* track); + Int_t GetPcode(AliITStrackV2* track); + void SetCut(Int_t n,Float_t pm,Float_t pilo,Float_t pihi, + Float_t klo,Float_t khi,Float_t plo,Float_t phi); + void SetAProb(Int_t ivar,Int_t icut,Float_t apro){ fAprob[ivar][icut]=apro; } + Float_t GetAProb(Int_t ivar,Int_t icut) const { return fAprob[ivar][icut]; } + Float_t GetWpi() const {return fWpi;} + Float_t GetWk() const {return fWk;} + Float_t GetWp() const {return fWp;} + Int_t GetPid() const {return fPcode;}; protected: -public: - Float_t cut[13][7]; - Int_t mxtrs; - TClonesArray *trs; - Float_t qtot; - Float_t fWpi,fWk,fWp; - Float_t fRpik,fRppi,fRpka,fRp; - Int_t fPcode; -//private: -public: - Float_t qcorr(Float_t); - int qcomp(Float_t* qa,Float_t* qb){return qa[0]>qb[0]?1:0;} - Float_t qtrm(Int_t track); - Float_t qtrm(Float_t qarr[6],Int_t narr); - Int_t wpik(Int_t,Float_t); - Int_t wpikp(Int_t,Float_t); - Int_t pion(){return fWpi=1.,fPcode=211;} - Int_t kaon(){return fWk=1.,fPcode=321;} - Int_t proton(){return fWp=1.,fPcode=2212;} -public: - ClassDef(AliITSPid,1) // Class for ITS PID + // copy constructor and assignment operator are protected + // since they are not allowed + AliITSPid(const AliITSPid &source); // copy constructor. + AliITSPid& operator=(const AliITSPid& source); // = operator. + + int Qcomp(Float_t* qa,Float_t* qb) const {return qa[0]>qb[0]?1:0;} + Float_t Qtrm(Int_t track); + Float_t Qtrm(Float_t qarr[6],Int_t narr) const; + Int_t Wpik(Float_t pm,Float_t q); + Int_t Wpikp(Float_t pm,Float_t q); + Int_t Pion(){return fWpi=1.,fPcode=211;} + Int_t Kaon(){return fWk=1.,fPcode=321;} + Int_t Proton(){return fWp=1.,fPcode=2212;} + //================ Data members ======================== + Float_t fCut[13][7],fAprob[3][8]; //Cuts and prior probs tables + Int_t fMxtrs; //Maximum tracks limit + TClonesArray *fTrs; //Tracks set under investigation + Float_t fWpi,fWk,fWp; //Probabilities for pions,kaons,protons + Float_t fRpik,fRppi,fRpka,fRp; //Signal ratios + Int_t fPcode; //Particle code + Float_t fSigmin; // Tuning parameter + Int_t fSilent; // Output suppresion flag + TF1* fCutKa; // Pions-kaons cut function + TF1* fCutPr; // Kaons-protons cut function + TF1* fGGpi[6];// Pions signal parametrization for Hijing + TF1* fGGka[3];// Kaons --//-- + TF1* fGGpr[3];// Protons --//-- + TF1* fggpi; // Pions signal for given momentum + TF1* fggka; // Kaons --//-- + TF1* fggpr; // Protons --//-- + ClassDef(AliITSPid,2) // Class for ITS PID }; #endif