StRoot  1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
BPLCMSFrame3DCorrFctnKt.h
1 /***************************************************************************
2  *
3  * $Id: BPLCMSFrame3DCorrFctnKt.h,v 1.1 2002/05/17 14:25:17 mercedes Exp $
4  *
5  * Author: Mercedes Lopez Noriega, OSU, mercedes@pacific.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 LCMS frame,
10  * for kt between ktLo and ktHi max for a given number of bins (nCFs)
11  * kt is the transverse four-momentum of the pair
12  *
13  ***************************************************************************
14  *
15  * $Log: BPLCMSFrame3DCorrFctnKt.h,v $
16  * Revision 1.1 2002/05/17 14:25:17 mercedes
17  * N 3D Bertsch-Pratt decomposition (kt bins) between ktmin and ktmax (LCMSFrame)
18  *
19  *
20  **************************************************************************/
21 
22 #ifndef BPLCMSFrame3DCorrFctnKt_hh
23 #define BPLCMSFrame3DCorrFctnKt_hh
24 
25 #include "StHbtMaker/Base/StHbtCorrFctn.hh"
26 #include "StHbtMaker/Base/StHbtPairCut.h"
27 #include "StHbtMaker/Infrastructure/StHbtCoulomb.h"
28 
30 public:
31  BPLCMSFrame3DCorrFctnKt(char* title, const int& nbins, const float& QLo, const float& QHi,
32  const int& nCFs=20, const float& KtLo=0.0, const float& KtHi=1.0);
33  virtual ~BPLCMSFrame3DCorrFctnKt();
34 
35  virtual StHbtString Report();
36  virtual void AddRealPair(const StHbtPair*);
37  virtual void AddMixedPair(const StHbtPair*);
38 
39  virtual void Finish();
40 
41  StHbt3DHisto* Numerator(int j);
42  StHbt3DHisto* Denominator(int j);
43  StHbt3DHisto* Ratio(int j);
44  StHbt3DHisto* QinvHisto(int j);
45 
46  // here are get and set for the range over which the correlation function
47  // is normalized (in Qinv). The range is set to 0.15..0.18 in the constuctor
48  // by default, but the Set's below override this
49  void SetNormRangeLo(float qLo);
50  void SetNormRangeHi(float qHi);
51  float GetNormRangeLo();
52  float GetNormRangeHi();
53 
54  void SetCoulombCorrection(StHbtCoulomb* Correction);
55 
56 private:
57  StHbt3DHisto* mNumerator;
58  StHbt3DHisto* mDenominator;
59  StHbt3DHisto* mRatio;
60  StHbt3DHisto* mQinvHisto;
61 
62  //for the kt binning:
63  int mNumberCFs;
64  float mKtMin;
65  float mKtMax;
66 
67  int* mIndex;
68  float mDeltaKt;
69 
70  // upper and lower bounds of Qinv region where to do normalization
71  float mQinvNormLo;
72  float mQinvNormHi;
73 
74  // and here are the number of pairs in that region...
75  unsigned long int mNumRealsNorm;
76  unsigned long int mNumMixedNorm;
77 
78  StHbtCoulomb* mCorrection;
79 
80 #ifdef __ROOT__
81  ClassDef(BPLCMSFrame3DCorrFctnKt, 1)
82 #endif
83 };
84 
85 inline StHbt3DHisto* BPLCMSFrame3DCorrFctnKt::Numerator(int j){return &mNumerator[j];}
86 inline StHbt3DHisto* BPLCMSFrame3DCorrFctnKt::Denominator(int j){return &mDenominator[j];}
87 inline StHbt3DHisto* BPLCMSFrame3DCorrFctnKt::Ratio(int j){return &mRatio[j];}
88 inline StHbt3DHisto* BPLCMSFrame3DCorrFctnKt::QinvHisto(int j){return &mQinvHisto[j];}
89 inline void BPLCMSFrame3DCorrFctnKt::SetNormRangeLo(float qLo){mQinvNormLo = qLo;}
90 inline void BPLCMSFrame3DCorrFctnKt::SetNormRangeHi(float qHi){mQinvNormHi = qHi;}
91 inline float BPLCMSFrame3DCorrFctnKt::GetNormRangeLo(){return mQinvNormLo;}
92 inline float BPLCMSFrame3DCorrFctnKt::GetNormRangeHi(){return mQinvNormHi;}
93 inline void BPLCMSFrame3DCorrFctnKt::SetCoulombCorrection(StHbtCoulomb* Correction){mCorrection = Correction;}
94 
95 #endif
96