00001 #ifndef QoslCMSCorrFctnRPkT_hh
00002 #define QoslCMSCorrFctnRPkT_hh
00003
00004 #include "StHbtMaker/Base/StHbtCorrFctn.hh"
00005 #include "StHbtMaker/Base/StHbtPairCut.h"
00006 #include "StHbtMaker/Infrastructure/StHbtCoulomb.h"
00007
00008 class TH3S;
00009
00010 class QoslCMSCorrFctnRPkT : public StHbtCorrFctn {
00011 public:
00012 QoslCMSCorrFctnRPkT(char* title, const int& nbinso, const float& QoLo, const float& QoHi,
00013 const int& nbinss, const float& QsLo, const float& QsHi,
00014 const int& nbinsl, const float& QlLo, const float& QlHi, const int& rpBins);
00015 virtual ~QoslCMSCorrFctnRPkT();
00016
00017 virtual StHbtString Report();
00018 virtual void AddRealPair(const StHbtPair*);
00019 virtual void AddMixedPair(const StHbtPair*);
00020 void SetCorrection(StHbtCoulomb*);
00021 void SetSpecificPairCut(StHbtPairCut*);
00022
00023 virtual void Finish();
00024
00025 float qMax;
00026
00027 int nRPbins;
00028 int nKtBins;
00029
00030 TH3S* Numerator3D(const int& rpBin, const int& ktBin);
00031 TH3S* Denominator3D(const int& rpBin, const int& ktBin);
00032 StHbt3DHisto* QinvHisto3D(const int& rpBin, const int& ktBin);
00033 StHbt3DHisto* CoulHisto3D(const int& rpBin, const int& ktBin);
00034
00035 private:
00036 TH3S* mNumerator[12][4];
00037 TH3S* mDenominator[12][4];
00038 StHbt3DHisto* mQinvHisto[12][4];
00039 StHbt3DHisto* mCoulHisto[12][4];
00040
00041 StHbtCoulomb* mCorrection;
00042 StHbtPairCut* mPairCut;
00043
00044 int GetRPBin(const StHbtPair*);
00045 int GetKtBin(const StHbtPair*);
00046
00047 #ifdef __ROOT__
00048 ClassDef(QoslCMSCorrFctnRPkT, 1)
00049 #endif
00050 };
00051
00052 inline TH3S* QoslCMSCorrFctnRPkT::Numerator3D(const int& rpBin, const int& ktBin){return mNumerator[rpBin][ktBin];}
00053 inline TH3S* QoslCMSCorrFctnRPkT::Denominator3D(const int& rpBin, const int& ktBin){return mDenominator[rpBin][ktBin];}
00054 inline StHbt3DHisto* QoslCMSCorrFctnRPkT::QinvHisto3D(const int& rpBin, const int& ktBin){return mQinvHisto[rpBin][ktBin];}
00055 inline StHbt3DHisto* QoslCMSCorrFctnRPkT::CoulHisto3D(const int& rpBin, const int& ktBin){return mCoulHisto[rpBin][ktBin];}
00056 inline void QoslCMSCorrFctnRPkT::SetSpecificPairCut(StHbtPairCut* pc){mPairCut=pc;}
00057
00058 #endif
00059