]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HBTAN/AliHBTWeightTheorFctn.h
Coding Violations Corrected.
[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
25 {
26
27   public:
28   AliHBTWeightTheorQInvFctn(Int_t nbins = 100, Double_t maxXval = 0.15, Double_t minXval = 0.0);
29   virtual  ~AliHBTWeightTheorQInvFctn(){}
30
31   TH1* GetResult(); 
32   void   ProcessSameEventParticles(AliHBTPair* partpair);
33       
34   Double_t GetValue(AliHBTPair* partpair)
35     { return partpair->GetQInv();} 
36
37   ClassDef(AliHBTWeightTheorQInvFctn,1)
38 };
39
40 class AliHBTWeightTheorQOutFctn: public AliHBTOnePairFctn1D
41 {
42
43   public:
44   AliHBTWeightTheorQOutFctn(Int_t nbins = 100, Double_t maxXval = 0.15, Double_t minXval = 0.0);
45   virtual  ~AliHBTWeightTheorQOutFctn(){}
46
47   TH1* GetResult(); 
48   void   ProcessSameEventParticles(AliHBTPair* partpair);
49       
50   Double_t GetValue(AliHBTPair* partpair)
51     { return partpair->GetQOutCMSLC();}
52
53   ClassDef(AliHBTWeightTheorQOutFctn,1)
54 };
55
56 class AliHBTWeightTheorQSideFctn: public AliHBTOnePairFctn1D
57 {
58
59   public:
60   AliHBTWeightTheorQSideFctn(Int_t nbins = 100, Double_t maxXval = 0.15, Double_t minXval = 0.0);
61   virtual  ~AliHBTWeightTheorQSideFctn(){}
62
63   TH1* GetResult(); 
64   void   ProcessSameEventParticles(AliHBTPair* partpair);
65       
66   Double_t GetValue(AliHBTPair* partpair)
67     { return partpair->GetQSideCMSLC();} 
68
69   ClassDef(AliHBTWeightTheorQSideFctn,1)
70 };
71
72 class AliHBTWeightTheorQLongFctn: public AliHBTOnePairFctn1D
73 {
74
75   public:
76   AliHBTWeightTheorQLongFctn(Int_t nbins = 100, Double_t maxXval = 0.15, Double_t minXval = 0.0);
77   virtual  ~AliHBTWeightTheorQLongFctn(){}
78
79   TH1* GetResult(); 
80   void   ProcessSameEventParticles(AliHBTPair* partpair);
81       
82   Double_t GetValue(AliHBTPair* partpair)
83     { return partpair->GetQLongCMSLC();} 
84
85   ClassDef(AliHBTWeightTheorQLongFctn,1)
86 };
87
88 class AliHBTWeightTheorOSLFctn: public AliHBTOnePairFctn3D
89 {
90
91   public:
92     AliHBTWeightTheorOSLFctn(Int_t nXbins = 100, Double_t maxXval = 0.15, Double_t minXval = 0.0,
93                              Int_t nYbins = 100, Double_t maxYval = 0.15, Double_t minYval = 0.0,
94                  Int_t nZbins = 100, Double_t maxZval = 0.15, Double_t minZval = 0.0);
95     virtual  ~AliHBTWeightTheorOSLFctn(){}
96
97   TH1* GetResult();
98   void   ProcessSameEventParticles(AliHBTPair* partpair);
99   
100   void GetValues(AliHBTPair* pair, Double_t& x, Double_t& y, Double_t& z)
101     { x=TMath::Abs(pair->GetQOutCMSLC()); y=TMath::Abs(pair->GetQSideCMSLC()); z=TMath::Abs(pair->GetQLongCMSLC());} 
102
103   ClassDef(AliHBTWeightTheorOSLFctn,1)
104 };
105     
106 #endif