]> git.uio.no Git - u/mrichter/AliRoot.git/blame - ITS/AliITSPident.h
Default changed: geometry file (.det) is not read by default
[u/mrichter/AliRoot.git] / ITS / AliITSPident.h
CommitLineData
e62c1aea 1#ifndef ALIITSPIDENT_H
2#define ALIITSPIDENT_H
3
4/////////////////////////////////////////////////////////////////////////
5//Class for PID in the ITS //
6//The PID is based on the likelihood of all the four ITS' layers, //
7//without using the truncated mean for the dE/dx. The response //
8//functions for each layer are convoluted Landau-Gaussian functions. //
9// Origin: Elena Bruna bruna@to.infn.it, Massimo Masera masera@to.infn.it//
10////////////////////////////////////////////////////////////////////////
11#include "AliITStrackV2.h"
12#include <TObject.h>
13#include <Riostream.h>
14#include <TF1.h>
15#include <TTree.h>
16#include "AliITSPidParItem.h"
17#include "AliITSSteerPid.h"
18class AliITSPident : public TObject{
19
20 public:
21 AliITSPident();
22 AliITSPident(Double_t mom,Double_t invPt,Double_t dEdx,AliITSSteerPid *sp,Float_t *Qlay,Float_t priorip=0.066,Float_t priorik=0.103,Float_t prioripi=0.83,Float_t priorie=0.001);
23
24 AliITSPident(AliITStrackV2 *trackITS,AliITSSteerPid *sp,Float_t *Qlay,Float_t priorip=0.066,Float_t priorik=0.103,Float_t prioripi=0.83,Float_t priorie=0.001);
25
26 virtual ~AliITSPident();
27 Float_t GetP() const {return fMom;}//local momentum (GeV/c)
28 Double_t GetdEdx() const {return fdEdx;} //dEdx (ADC units)
29 Double_t GetCondFunPro(Int_t lay) const {
30 return fCondFunProLay[lay];
31 }
32 Double_t GetProdCondFunPro() const {
33 Double_t rv=1.; for(Int_t i=0;i<4;i++)rv*=GetCondFunPro(i);
34 return rv;
35 }
36 Double_t GetCondFunK(Int_t lay) const {
37 return fCondFunKLay[lay];
38 }
39 Double_t GetProdCondFunK() const {
40 Double_t rv=1.; for(Int_t i=0;i<4;i++)rv*=GetCondFunK(i);
41 return rv;
42 }
43 Double_t GetCondFunPi(Int_t lay) const {
44 return fCondFunPiLay[lay];
45 }
46 Double_t GetProdCondFunPi() const {
47 Double_t rv=1.; for(Int_t i=0;i<4;i++)rv*=GetCondFunPi(i);
48 return rv;
49 }
50 Float_t GetInvPt() const {return fInvPt;}
51 void PrintParameters() const;
52 Float_t GetPBayesp()const {return fPBayesp;}
53 Float_t GetPBayesk()const {return fPBayesk;}
54 Float_t GetPBayespi()const {return fPBayespi;}
55 Float_t GetPPriorip() const {return fPPriorip;}
56 Float_t GetPPriorik() const {return fPPriorik;}
57 Float_t GetPPrioripi() const {return fPPrioripi;}
58 Float_t GetPPriorie() const {return fPPriorie;}
59
60 static Double_t Langaufun(Double_t *x, Double_t *par);
61 static Double_t Langaufun2(Double_t *x, Double_t *par);
62 static Double_t Langaufunnorm(Double_t *x, Double_t *par);
63 static Double_t Gaus2(Double_t *x, Double_t *par);
64
65 private:
66
67 void CookFunItsLay(Int_t lay,Int_t opt,Double_t *par,Double_t dedx,Double_t mom,Double_t rangei,Double_t rangef,TString comment);
68 void CookBayes(Double_t *condfun,Float_t *prior);
69 Float_t CookCombinedBayes(Double_t condfun[][3],Float_t *prior,Int_t part)const;
70 Float_t CookProd(Double_t condfun[][3],Int_t part) const;
71 Float_t CookSum(Double_t condfun[][3],Float_t *prior) const;
72 AliITSPident(const AliITSPident &ob); // copy constructor
73 AliITSPident& operator=(const AliITSPident & /* source */); // ass. op.
74
75 Float_t fMom; // Particle momentum
76 Double_t fdEdx; // Particle dE/dx
77 Double_t fCondFunProLay[4]; // one for each silicon layer
78 Double_t fCondFunKLay[4]; // cond. prob. function kaons per layer
79 Double_t fCondFunPiLay[4]; // cond. prob. function pions per layer
80 Float_t fPBayesp; // Bayes prob.
81 Float_t fPBayesk; // Bayes prob. for kaons
82 Float_t fPBayespi; // Bayes prob. for pions
83 Float_t fPPriorip; // Priori prob.
84 Float_t fPPriorik; // Priori prob. for kaons
85 Float_t fPPrioripi; // Priori prob. for pions
86 Float_t fPPriorie; // Priori prob. for electrons
87 Float_t fInvPt; // Particle Inverse Transverse momentum
88
89 ClassDef(AliITSPident,1);
90};
91#endif