00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027 #ifndef BPLCMSFrame3DCorrFctn_SIM_hh
00028 #define BPLCMSFrame3DCorrFctn_SIM_hh
00029
00030 #include "StHbtMaker/Base/StHbtCorrFctn.hh"
00031 #include "StHbtMaker/Infrastructure/StHbtCoulomb.h"
00032 #include "StHbtMaker/Base/StHbtPairCut.h"
00033
00034
00035 class StHbtSmearPair;
00036
00037 class BPLCMSFrame3DCorrFctn_SIM : public StHbtCorrFctn {
00038 public:
00039 BPLCMSFrame3DCorrFctn_SIM(char* title, const int& nbins, const float& QLo, const float& QHi);
00040 virtual ~BPLCMSFrame3DCorrFctn_SIM();
00041
00042 virtual StHbtString Report();
00043 virtual void AddRealPair(const StHbtPair*);
00044 virtual void AddMixedPair(const StHbtPair*);
00045
00046 virtual void Finish();
00047
00048 StHbt3DHisto* Numerator();
00049 StHbt3DHisto* Denominator();
00050 StHbt3DHisto* Ratio();
00051
00052 StHbt2DHisto* ResolutionPlot(int index);
00053
00054
00055
00056
00057 void SetNormRangeLo(float qLo);
00058 void SetNormRangeHi(float qHi);
00059 float GetNormRangeLo();
00060 float GetNormRangeHi();
00061
00062 void SetCoulombCorrection(StHbtCoulomb* Correction);
00063
00064 void SetSpecificPairCut(StHbtPairCut*);
00065
00066 void SetLambda(float lam);
00067 void SetRout(float Rout);
00068 void SetRside(float Rside);
00069 void SetRlong(float Rlong);
00070
00071 void SetRoutAlpha(float alpha);
00072 void SetRsideAlpha(float alpha);
00073 void SetRlongAlpha(float alpha);
00074
00075
00076 void SetSmearPair(StHbtSmearPair* smearer);
00077
00078 private:
00079 StHbt3DHisto* mNumerator;
00080 StHbt3DHisto* mDenominator;
00081 StHbt3DHisto* mRatio;
00082
00083 StHbtPairCut* mPairCut;
00084
00085
00086 float mQinvNormLo;
00087 float mQinvNormHi;
00088
00089
00090 unsigned long int mNumRealsNorm;
00091 unsigned long int mNumMixedNorm;
00092
00093 StHbtCoulomb* mCorrection;
00094
00095 float mLambda;
00096 float mRout2;
00097 float mRside2;
00098 float mRlong2;
00099
00100
00101
00102
00103
00104 float mRout_alpha;
00105 float mRside_alpha;
00106 float mRlong_alpha;
00107
00108
00109 StHbtSmearPair* mSmearPair;
00110
00111 StHbt2DHisto* mResolutionHistos[4];
00112
00113 bool mToggleNumDen;
00114
00115 #ifdef __ROOT__
00116 ClassDef(BPLCMSFrame3DCorrFctn_SIM, 0)
00117 #endif
00118 };
00119
00120 inline StHbt2DHisto* BPLCMSFrame3DCorrFctn_SIM::ResolutionPlot(int index){return mResolutionHistos[index];}
00121
00122 inline void BPLCMSFrame3DCorrFctn_SIM::SetSmearPair(StHbtSmearPair* smearer){mSmearPair = smearer;}
00123
00124 inline StHbt3DHisto* BPLCMSFrame3DCorrFctn_SIM::Numerator(){return mNumerator;}
00125 inline StHbt3DHisto* BPLCMSFrame3DCorrFctn_SIM::Denominator(){return mDenominator;}
00126 inline StHbt3DHisto* BPLCMSFrame3DCorrFctn_SIM::Ratio(){return mRatio;}
00127 inline void BPLCMSFrame3DCorrFctn_SIM::SetNormRangeLo(float qLo){mQinvNormLo = qLo;}
00128 inline void BPLCMSFrame3DCorrFctn_SIM::SetNormRangeHi(float qHi){mQinvNormHi = qHi;}
00129 inline float BPLCMSFrame3DCorrFctn_SIM::GetNormRangeLo(){return mQinvNormLo;}
00130 inline float BPLCMSFrame3DCorrFctn_SIM::GetNormRangeHi(){return mQinvNormHi;}
00131 inline void BPLCMSFrame3DCorrFctn_SIM::SetCoulombCorrection(StHbtCoulomb* Correction){mCorrection = Correction;}
00132 inline void BPLCMSFrame3DCorrFctn_SIM::SetSpecificPairCut(StHbtPairCut* pc){mPairCut=pc;}
00133
00134 inline void BPLCMSFrame3DCorrFctn_SIM::SetLambda(float lam){mLambda = lam;}
00135 inline void BPLCMSFrame3DCorrFctn_SIM::SetRout(float Rout){mRout2 = Rout*Rout;}
00136 inline void BPLCMSFrame3DCorrFctn_SIM::SetRside(float Rside){mRside2 = Rside*Rside;}
00137 inline void BPLCMSFrame3DCorrFctn_SIM::SetRlong(float Rlong){mRlong2 = Rlong*Rlong;}
00138
00139 inline void BPLCMSFrame3DCorrFctn_SIM::SetRoutAlpha(float alpha){mRout_alpha = alpha;}
00140 inline void BPLCMSFrame3DCorrFctn_SIM::SetRsideAlpha(float alpha){mRside_alpha = alpha;}
00141 inline void BPLCMSFrame3DCorrFctn_SIM::SetRlongAlpha(float alpha){mRlong_alpha = alpha;}
00142
00143
00144
00145 #endif
00146