Bug corrections
[u/mrichter/AliRoot.git] / HBTAN / AliHBTWeightTheorFctn.h
1 #ifndef ALIHBTWeightTHEORFCTN_H
2 #define ALIHBTWeightTHEORFCTN_H
3 /* $Id$ */
4 //_____________________________________________________________________________
5 ///////////////////////////////////////////////////////////////////////////////
6 //
7 // class AliHBTWeightTheorQInvFctn
8 //
9 // This function allows to obtain Q_inv correlation function with weights
10 // calculated by Lednicky's alghorithm.
11 // Numerator is filled with weighted events. Weights are attributed to simulated particles.
12 // Weights are calculated with corresponding simulated particles momenta.
13 // Denominator is filled with mixing unweighted simulated particles.
14 // One needs only simulated pairs, so 
15 // this function is of class AliHBTOnePairFctn1D.
16 // Author Ludmila Malinina JINR (malinina@sunhe.jinr.ru)
17 //
18 ///////////////////////////////////////////////////////////////////////////////
19
20 #include "AliHBTFunction.h"
21
22 class AliHBTWeights;
23
24 class AliHBTWeightTheorQInvFctn: public AliHBTOnePairFctn1D, public AliHBTCorrelFunction
25 {
26   public:
27     AliHBTWeightTheorQInvFctn(Int_t nbins = 100, Double_t maxXval = 0.15, Double_t minXval = 0.0);
28     virtual  ~AliHBTWeightTheorQInvFctn(){}
29
30     TH1* GetResult(); 
31     void   ProcessSameEventParticles(AliHBTPair* partpair);
32
33   protected:
34     Double_t GetValue(AliHBTPair* partpair)
35       { return partpair->GetQInv();} 
36
37     ClassDef(AliHBTWeightTheorQInvFctn,1)
38 };
39 /*************************************************************/
40
41 class AliHBTWeightTheorQOutFctn: public AliHBTOnePairFctn1D, public AliHBTCorrelFunction
42 {
43
44   public:
45     AliHBTWeightTheorQOutFctn(Int_t nbins = 100, Double_t maxXval = 0.15, Double_t minXval = 0.0);
46     virtual  ~AliHBTWeightTheorQOutFctn(){}
47
48     TH1* GetResult(); 
49     void   ProcessSameEventParticles(AliHBTPair* partpair);
50
51   protected:
52     Double_t GetValue(AliHBTPair* partpair)
53       { return partpair->GetQOutCMSLC();}
54
55     ClassDef(AliHBTWeightTheorQOutFctn,1)
56 };
57 /*************************************************************/
58
59 class AliHBTWeightTheorQSideFctn: public AliHBTOnePairFctn1D, public AliHBTCorrelFunction
60 {
61   public:
62     AliHBTWeightTheorQSideFctn(Int_t nbins = 100, Double_t maxXval = 0.15, Double_t minXval = 0.0);
63     virtual  ~AliHBTWeightTheorQSideFctn(){}
64
65     TH1* GetResult(); 
66     void   ProcessSameEventParticles(AliHBTPair* partpair);
67     
68   protected:
69     Double_t GetValue(AliHBTPair* partpair)
70       { return partpair->GetQSideCMSLC();} 
71
72     ClassDef(AliHBTWeightTheorQSideFctn,1)
73 };
74 /*************************************************************/
75
76 class AliHBTWeightTheorQLongFctn: public AliHBTOnePairFctn1D, public AliHBTCorrelFunction
77 {
78   public:
79     AliHBTWeightTheorQLongFctn(Int_t nbins = 100, Double_t maxXval = 0.15, Double_t minXval = 0.0);
80     virtual  ~AliHBTWeightTheorQLongFctn(){}
81
82     TH1* GetResult(); 
83     void   ProcessSameEventParticles(AliHBTPair* partpair);
84   
85   protected:
86     Double_t GetValue(AliHBTPair* partpair)
87       { return partpair->GetQLongCMSLC();} 
88
89     ClassDef(AliHBTWeightTheorQLongFctn,1)
90 };
91 /*************************************************************/
92
93 class AliHBTWeightTheorOSLFctn: public AliHBTOnePairFctn3D, public AliHBTCorrelFunction
94 {
95
96   public:
97     AliHBTWeightTheorOSLFctn(Int_t nXbins = 100, Double_t maxXval = 0.15, Double_t minXval = 0.0,
98                              Int_t nYbins = 100, Double_t maxYval = 0.15, Double_t minYval = 0.0,
99                  Int_t nZbins = 100, Double_t maxZval = 0.15, Double_t minZval = 0.0);
100     virtual  ~AliHBTWeightTheorOSLFctn(){}
101
102     TH1* GetResult();
103     void   ProcessSameEventParticles(AliHBTPair* partpair);
104   
105   protected:
106     void GetValues(AliHBTPair* pair, Double_t& x, Double_t& y, Double_t& z)
107       { x=TMath::Abs(pair->GetQOutCMSLC()); y=TMath::Abs(pair->GetQSideCMSLC()); z=TMath::Abs(pair->GetQLongCMSLC());} 
108
109     ClassDef(AliHBTWeightTheorOSLFctn,1)
110 };
111     
112 #endif