StRoot  1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
BPLabFrame3DCorrFctn.h
1 /***************************************************************************
2  *
3  * $Id: BPLabFrame3DCorrFctn.h,v 1.3 2000/10/26 19:48:50 rcwells Exp $
4  *
5  * Author: Mike Lisa, Ohio State, lisa@mps.ohio-state.edu
6  ***************************************************************************
7  *
8  * Description: part of STAR HBT Framework: StHbtMaker package
9  * This one does 3D Bertsch-Pratt decomposition in the Lab (STAR c.m.) frame
10  *
11  ***************************************************************************
12  *
13  * $Log: BPLabFrame3DCorrFctn.h,v $
14  * Revision 1.3 2000/10/26 19:48:50 rcwells
15  * Added functionality for Coulomb correction of <qInv> in 3D correltions
16  *
17  * Revision 1.2 2000/08/02 01:25:10 lisa
18  * Add Coulomb correction capability to 3D Bertsch-Pratt CorrFctn
19  *
20  * Revision 1.1 2000/07/31 01:19:23 lisa
21  * add PairCut which contains collection of PairCuts - also 3D bertsch-pratt CorrFctn
22  *
23  *
24  **************************************************************************/
25 
26 #ifndef BPLabFrame3DCorrFctn_hh
27 #define BPLabFrame3DCorrFctn_hh
28 
29 #include "StHbtMaker/Base/StHbtCorrFctn.hh"
30 #include "StHbtMaker/Infrastructure/StHbtCoulomb.h"
31 //#include "StHbtMaker/Infrastructure/StHbtHisto.hh"
32 
34 public:
35  BPLabFrame3DCorrFctn(char* title, const int& nbins, const float& QLo, const float& QHi);
36  virtual ~BPLabFrame3DCorrFctn();
37 
38  virtual StHbtString Report();
39  virtual void AddRealPair(const StHbtPair*);
40  virtual void AddMixedPair(const StHbtPair*);
41 
42  virtual void Finish();
43 
44  StHbt3DHisto* Numerator();
45  StHbt3DHisto* Denominator();
46  StHbt3DHisto* Ratio();
47  StHbt3DHisto* QinvHisto();
48 
49  // here are get and set for the range over which the correlation function
50  // is normalized (in Qinv). The range is set to 0.15..0.18 in the constuctor
51  // by default, but the Set's below override this
52  void SetNormRangeLo(float qLo);
53  void SetNormRangeHi(float qHi);
54  float GetNormRangeLo();
55  float GetNormRangeHi();
56 
57  void SetCoulombCorrection(StHbtCoulomb* Correction);
58 
59 
60 private:
61  StHbt3DHisto* mNumerator;
62  StHbt3DHisto* mDenominator;
63  StHbt3DHisto* mRatio;
64  StHbt3DHisto* mQinvHisto;
65 
66  // upper and lower bounds of Qinv region where to do normalization
67  float mQinvNormLo;
68  float mQinvNormHi;
69 
70  // and here are the number of pairs in that region...
71  unsigned long int mNumRealsNorm;
72  unsigned long int mNumMixedNorm;
73 
74  StHbtCoulomb* mCorrection;
75 
76 
77 #ifdef __ROOT__
78  ClassDef(BPLabFrame3DCorrFctn, 1)
79 #endif
80 };
81 
82 inline StHbt3DHisto* BPLabFrame3DCorrFctn::Numerator(){return mNumerator;}
83 inline StHbt3DHisto* BPLabFrame3DCorrFctn::Denominator(){return mDenominator;}
84 inline StHbt3DHisto* BPLabFrame3DCorrFctn::Ratio(){return mRatio;}
85 inline StHbt3DHisto* BPLabFrame3DCorrFctn::QinvHisto(){return mQinvHisto;}
86 inline void BPLabFrame3DCorrFctn::SetNormRangeLo(float qLo){mQinvNormLo = qLo;}
87 inline void BPLabFrame3DCorrFctn::SetNormRangeHi(float qHi){mQinvNormHi = qHi;}
88 inline float BPLabFrame3DCorrFctn::GetNormRangeLo(){return mQinvNormLo;}
89 inline float BPLabFrame3DCorrFctn::GetNormRangeHi(){return mQinvNormHi;}
90 inline void BPLabFrame3DCorrFctn::SetCoulombCorrection(StHbtCoulomb* Correction){mCorrection = Correction;}
91 
92 #endif
93