885104bef729b014e73463279bc3a7a00bcf70f9
[u/mrichter/AliRoot.git] / HBTAN / AliHBTLLWeightFctn.h
1 //This function allows to obtain Q_inv correlation function with weights
2 //calculated by Lednicky's alghorithm.
3 //Numerator is filled with weighted events. Weights are attributed to reconstructed tracks.
4 //Weights are calculated with corresponding simulated particles momenta.
5 //Denominator is filled with mixing unweighted reconstructed tracks.
6 //One needs both pairs 
7 //(simulated and recontructed), thus function is of class AliHBTTwoPairFctn1D.
8
9 #ifndef ALIHBTLLWEIGHTFCTN_H
10 #define ALIHBTLLWEIGHTFCTN_H
11 #include "AliHBTFunction.h"
12
13
14 class AliHBTLLWeights;
15
16 class AliHBTLLWeightQInvFctn: public AliHBTTwoPairFctn1D
17 {
18 //  friend class AliHBTOnePairFctn1D;
19
20   public:
21       AliHBTLLWeightQInvFctn(Int_t nbins = 100, Double_t maxXval = 0.15, Double_t minXval = 0.0);
22       virtual  ~AliHBTLLWeightQInvFctn(){};
23       TH1* GetResult(); 
24
25       void   ProcessSameEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair);
26       void   ProcessDiffEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair);
27       
28       Double_t GetValue(AliHBTPair* trackpair, AliHBTPair* partpair)         
29            { return trackpair->GetQInv()-partpair->GetQInv();} //isn't use                                                                    
30         
31
32   protected:
33
34   private:
35   public:
36      ClassDef(AliHBTLLWeightQInvFctn,1)
37 };
38 /*************************************************************************************/ 
39 /*************************************************************************************/ 
40 /*************************************************************************************/ 
41 /*************************************************************************************/ 
42
43 class AliHBTLLWeightQOutFctn: public AliHBTTwoPairFctn1D
44 {
45
46  friend class AliHBTOnePairFctn1D;
47  public:
48    AliHBTLLWeightQOutFctn(Int_t nbins = 100, Double_t maxXval = 0.15, Double_t minXval = 0.0):
49                         AliHBTTwoPairFctn1D(nbins,maxXval,minXval){}
50    virtual ~AliHBTLLWeightQOutFctn(){};
51    TH1* GetResult();
52  protected:
53    void   ProcessSameEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair);
54    void   ProcessDiffEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair);
55       
56     Double_t GetValue(AliHBTPair* trackpair, AliHBTPair* partpair)         
57            { return trackpair->GetQOutCMSLC()-partpair->GetQOutCMSLC();} //isn't use                                                                    
58   public:
59     ClassDef(AliHBTLLWeightQOutFctn,1)
60  
61 };
62 /*************************************************************************************/ 
63 class AliHBTLLWeightQLongFctn: public AliHBTTwoPairFctn1D
64 {
65
66  friend class AliHBTOnePairFctn1D;
67  public:
68    AliHBTLLWeightQLongFctn(Int_t nbins = 100, Double_t maxXval = 0.15, Double_t minXval = 0.0):
69                         AliHBTTwoPairFctn1D(nbins,maxXval,minXval){}
70    virtual ~AliHBTLLWeightQLongFctn(){};
71    TH1* GetResult();
72  protected:
73    void   ProcessSameEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair);
74    void   ProcessDiffEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair);
75       
76     Double_t GetValue(AliHBTPair* trackpair, AliHBTPair* partpair)         
77            { return trackpair->GetQLongCMSLC()-partpair->GetQLongCMSLC();} //isn't use                                                                    
78   public:
79     ClassDef(AliHBTLLWeightQLongFctn,1)
80  
81 };
82 /*************************************************************************************/ 
83 class AliHBTLLWeightQSideFctn: public AliHBTTwoPairFctn1D
84 {
85
86  friend class AliHBTOnePairFctn1D;
87  public:
88    AliHBTLLWeightQSideFctn(Int_t nbins = 100, Double_t maxXval = 0.15, Double_t minXval = 0.0):
89                         AliHBTTwoPairFctn1D(nbins,maxXval,minXval){}
90    virtual ~AliHBTLLWeightQSideFctn(){};
91    TH1* GetResult();
92  protected:
93    void   ProcessSameEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair);
94    void   ProcessDiffEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair);
95       
96     Double_t GetValue(AliHBTPair* trackpair, AliHBTPair* partpair)         
97            { return trackpair->GetQLongCMSLC()-partpair->GetQLongCMSLC();} //isn't use                                                                    
98   public:
99     ClassDef(AliHBTLLWeightQSideFctn,1) 
100 };
101 /*************************************************************************************/ 
102 class AliHBTLLWeightTwoKStarFctn: public AliHBTTwoPairFctn1D
103 {
104
105  friend class AliHBTOnePairFctn1D;
106  public:
107    AliHBTLLWeightTwoKStarFctn(Int_t nbins = 100, Double_t maxXval = 0.15, Double_t minXval = 0.0):
108                         AliHBTTwoPairFctn1D(nbins,maxXval,minXval){}
109    virtual ~AliHBTLLWeightTwoKStarFctn(){};
110    TH1* GetResult();
111  protected:
112    void   ProcessSameEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair);
113    void   ProcessDiffEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair);
114       
115     Double_t GetValue(AliHBTPair* trackpair, AliHBTPair* partpair)         
116            { return trackpair->GetKStar()-partpair->GetKStar();} //isn't use                                                                    
117   public:
118     ClassDef(AliHBTLLWeightTwoKStarFctn,1) 
119 };
120
121   
122 #endif