new functions 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, public AliHBTCorrelFunction
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*/) const { return 0.0; }
33     void Process(AliHBTParticle * track,AliHBTParticle * part);
34   protected:
35     TH1D* fGood;
36     TH1D* fAll;
37     ClassDef(AliHBTMonPIDPurityVsPtFctn,1)
38 };
39 /***********************************************************************/
40
41 class AliHBTMonPIDContaminationVsPtFctn: public AliHBTMonTwoParticleFctn1D, public AliHBTCorrelFunction
42 {
43   public: 
44     AliHBTMonPIDContaminationVsPtFctn(Int_t nbins = 20, Double_t maxXval = 2.0, Double_t minXval = 0.0);
45     virtual ~AliHBTMonPIDContaminationVsPtFctn();
46     void Init();
47     void Write();
48     void Rename(const Char_t * name);
49     void Rename(const Char_t * name, const Char_t * title);
50     TH1* GetResult();
51     Double_t GetValue(AliHBTParticle * /*track*/,AliHBTParticle * /*part*/) const { return 0.0; }
52     void Process(AliHBTParticle * track,AliHBTParticle * part);
53   protected:
54     TH1D* fWrong;  
55     TH1D* fAll;
56     ClassDef(AliHBTMonPIDContaminationVsPtFctn,1)
57 };
58 /*************************************************************************************/
59
60 class AliHBTQInvCorrelFctnPerfectPID: public AliHBTTwoPairFctn1D, public AliHBTCorrelFunction
61 {
62 //Q Invaraint Correlation Function
63 //1D two particle function
64 //Fills the function only for correctly reconstructed PID
65 //Together with 
66  public:
67    AliHBTQInvCorrelFctnPerfectPID(Int_t nbins = 100, Double_t maxXval = 0.15, Double_t minXval = 0.0);
68    virtual ~AliHBTQInvCorrelFctnPerfectPID(){};
69    void ProcessSameEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair);
70    void ProcessDiffEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair);
71    TH1* GetResult();
72  protected:
73    Double_t GetValue(AliHBTPair* trackpair, AliHBTPair* /*partpair*/) const {return trackpair->GetQInv();}
74  private:
75    ClassDef(AliHBTQInvCorrelFctnPerfectPID,1)
76 };
77
78 /*************************************************************************************/
79
80 class AliHBTWeightQInvCorrelFctnPerfectPID: public AliHBTTwoPairFctn1D, public AliHBTCorrelFunction
81 {
82 //Weight Q Invaraint Correlation Function
83 //1D two particle function
84 //Fills the function only for correctly reconstructed PID
85 //Together with regular 
86  public:
87    AliHBTWeightQInvCorrelFctnPerfectPID(Int_t nbins = 100, Double_t maxXval = 0.15, Double_t minXval = 0.0);
88    virtual ~AliHBTWeightQInvCorrelFctnPerfectPID(){};
89    void ProcessSameEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair);
90    void ProcessDiffEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair);
91    TH1* GetResult();
92  protected:
93    Double_t GetValue(AliHBTPair* trackpair, AliHBTPair* /*partpair*/) const {return trackpair->GetQInv();}
94  private:
95    ClassDef(AliHBTWeightQInvCorrelFctnPerfectPID,1)
96 };
97 /*************************************************************************************/
98 class AliHBTWeightQOutSQideQLongFctnPerfectPID: public AliHBTTwoPairFctn3D, public AliHBTCorrelFunction
99 {
100
101   public:
102     AliHBTWeightQOutSQideQLongFctnPerfectPID(Int_t nXbins = 100, Double_t maxXval = 0.15, Double_t minXval = 0.0,
103                                             Int_t nYbins = 100, Double_t maxYval = 0.15, Double_t minYval = 0.0,
104                                             Int_t nZbins = 100, Double_t maxZval = 0.15, Double_t minZval = 0.0);
105     virtual  ~AliHBTWeightQOutSQideQLongFctnPerfectPID(){}
106
107     TH1* GetResult();
108     void ProcessSameEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair);
109     void ProcessDiffEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair);
110
111   protected:
112     void GetValues(AliHBTPair* /*trackpair*/, AliHBTPair* /*partpair*/, Double_t& /*x*/, Double_t& /*y*/, Double_t& /*z*/) const {}
113
114     ClassDef(AliHBTWeightQOutSQideQLongFctnPerfectPID,1)
115 };
116
117 /*************************************************************************************/
118 class AliHBTQOutSQideQLongFctnPerfectPID: public AliHBTTwoPairFctn3D, public AliHBTCorrelFunction
119 {
120
121   public:
122     AliHBTQOutSQideQLongFctnPerfectPID(Int_t nXbins = 100, Double_t maxXval = 0.15, Double_t minXval = 0.0,
123                                             Int_t nYbins = 100, Double_t maxYval = 0.15, Double_t minYval = 0.0,
124                                             Int_t nZbins = 100, Double_t maxZval = 0.15, Double_t minZval = 0.0);
125     virtual  ~AliHBTQOutSQideQLongFctnPerfectPID(){}
126
127     TH1* GetResult();
128     void ProcessSameEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair);
129     void ProcessDiffEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair);
130
131   protected:
132     void GetValues(AliHBTPair* /*trackpair*/, AliHBTPair* /*partpair*/, Double_t& /*x*/, Double_t& /*y*/, Double_t& /*z*/) const {}
133
134     ClassDef(AliHBTQOutSQideQLongFctnPerfectPID,1)
135 };
136
137
138 /*************************************************************************************/
139
140 class AliHBTPairPIDProbVsQInvFctn: public AliHBTOnePairFctn1D, public AliHBTCorrelFunction
141 {
142 //Q Invaraint Correlation Function
143 //1D two particle function
144  public:
145    AliHBTPairPIDProbVsQInvFctn(Int_t nbins = 100, Double_t maxXval = 0.15, Double_t minXval = 0.0);
146    virtual ~AliHBTPairPIDProbVsQInvFctn(){};
147    void ProcessSameEventParticles(AliHBTPair* pair);
148    void ProcessDiffEventParticles(AliHBTPair* pair);
149    TH1* GetResult();
150  protected:
151    Double_t GetValue(AliHBTPair * pair) const {return pair->GetQInv();}
152  private:
153    ClassDef(AliHBTPairPIDProbVsQInvFctn,1)
154 };
155 /*************************************************************************************/
156 class AliHBTPairPIDProbVsQOutSQideQLongFctn: public AliHBTOnePairFctn3D, public AliHBTCorrelFunction
157 {
158
159   public:
160     AliHBTPairPIDProbVsQOutSQideQLongFctn(Int_t nXbins = 100, Double_t maxXval = 0.15, Double_t minXval = 0.0,
161                              Int_t nYbins = 100, Double_t maxYval = 0.15, Double_t minYval = 0.0,
162                  Int_t nZbins = 100, Double_t maxZval = 0.15, Double_t minZval = 0.0);
163     virtual  ~AliHBTPairPIDProbVsQOutSQideQLongFctn(){}
164
165     TH1* GetResult();
166     void ProcessSameEventParticles(AliHBTPair* part);
167     void ProcessDiffEventParticles(AliHBTPair* pair);
168
169   protected:
170     void GetValues(AliHBTPair* /*pair*/, Double_t& /*x*/, Double_t& /*y*/, Double_t& /*z*/) const {}
171
172     ClassDef(AliHBTPairPIDProbVsQOutSQideQLongFctn,1)
173 };
174
175
176 #endif