Functions for handling PID purity added
[u/mrichter/AliRoot.git] / HBTAN / AliHBTPIDPurityFctns.h
1 #ifndef ALIHBTPIDPURITYFCTNS_H
2 #define ALIHBTPIDPURITYFCTNS_H
3 //_______________________________________________________________________________
4 /////////////////////////////////////////////////////////////////////////////////
5 //
6 // class AliHBTMonPIDPurityVsPtFctn;
7 // class AliHBTMonThetaResolutionVsPtFctn;
8 //
9 // file: AliHBTPIDPurityFctns.cxx AliHBTPIDPurityFctns.h
10 //
11 // Caution: On 2D plots on X axis in simulated values
12 // That is contrary to two-particle resolutions where it is reconstructed one
13 //
14 // added by Piotr.Skowronski@cern.ch
15 // 
16 //
17 //////////////////////////////////////////////////////////////////////////////////
18
19 #include "AliHBTFunction.h"
20 #include "AliHBTMonitorFunction.h"
21
22 class AliHBTMonPIDPurityVsPtFctn: public AliHBTMonTwoParticleFctn1D
23 {
24   public: 
25     AliHBTMonPIDPurityVsPtFctn(Int_t nbins = 20, Double_t maxXval = 2.0, Double_t minXval = 0.0);
26     virtual ~AliHBTMonPIDPurityVsPtFctn();
27     void Init();
28     void Write();
29     void Rename(const Char_t * name);
30     void Rename(const Char_t * name, const Char_t * title);
31     TH1* GetResult();
32     Double_t GetValue(AliHBTParticle * /*track*/,AliHBTParticle * /*part*/) { return 0.0; }
33     void Process(AliHBTParticle * track,AliHBTParticle * part);
34   protected:
35     TH1D* fGood;
36     ClassDef(AliHBTMonPIDPurityVsPtFctn,1)
37 };
38 /***********************************************************************/
39
40 class AliHBTMonPIDContaminationVsPtFctn: public AliHBTMonTwoParticleFctn1D, public AliHBTCorrelFunction
41 {
42   public: 
43     AliHBTMonPIDContaminationVsPtFctn(Int_t nbins = 20, Double_t maxXval = 2.0, Double_t minXval = 0.0);
44     virtual ~AliHBTMonPIDContaminationVsPtFctn();
45     void Init();
46     void Write();
47     void Rename(const Char_t * name);
48     void Rename(const Char_t * name, const Char_t * title);
49     TH1* GetResult();
50     Double_t GetValue(AliHBTParticle * /*track*/,AliHBTParticle * /*part*/) { return 0.0; }
51     void Process(AliHBTParticle * track,AliHBTParticle * part);
52   protected:
53     TH1D* fWrong;  
54     ClassDef(AliHBTMonPIDContaminationVsPtFctn,1)
55 };
56 /*************************************************************************************/
57
58 class AliHBTPairPIDProbVsQInvFctn: public AliHBTOnePairFctn1D, public AliHBTCorrelFunction
59 {
60 //Q Invaraint Correlation Function
61 //1D two particle function
62  public:
63    AliHBTPairPIDProbVsQInvFctn(Int_t nbins = 100, Double_t maxXval = 0.15, Double_t minXval = 0.0);
64    virtual ~AliHBTPairPIDProbVsQInvFctn(){};
65    void ProcessSameEventParticles(AliHBTPair* pair);
66    void ProcessDiffEventParticles(AliHBTPair* pair);
67    TH1* GetResult();
68  protected:
69    Double_t GetValue(AliHBTPair * pair){return pair->GetQInv();}
70  private:
71    ClassDef(AliHBTPairPIDProbVsQInvFctn,1)
72 };
73 /*************************************************************************************/
74 class AliHBTPairPIDProbVsQOutSQideQLongFctn: public AliHBTOnePairFctn3D, public AliHBTCorrelFunction
75 {
76
77   public:
78     AliHBTPairPIDProbVsQOutSQideQLongFctn(Int_t nXbins = 100, Double_t maxXval = 0.15, Double_t minXval = 0.0,
79                              Int_t nYbins = 100, Double_t maxYval = 0.15, Double_t minYval = 0.0,
80                  Int_t nZbins = 100, Double_t maxZval = 0.15, Double_t minZval = 0.0);
81     virtual  ~AliHBTPairPIDProbVsQOutSQideQLongFctn(){}
82
83     TH1* GetResult();
84     void ProcessSameEventParticles(AliHBTPair* part);
85     void ProcessDiffEventParticles(AliHBTPair* pair);
86
87   protected:
88     void GetValues(AliHBTPair* /*pair*/, Double_t& /*x*/, Double_t& /*y*/, Double_t& /*z*/){}
89
90     ClassDef(AliHBTPairPIDProbVsQOutSQideQLongFctn,1)
91 };
92
93
94 #endif