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