00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015 #ifndef MinvLikeSignCorrFctn_hh
00016 #define MinvLikeSignCorrFctn_hh
00017
00018 #include "StHbtMaker/Infrastructure/StHbtAnalysis.h"
00019 #include "StHbtMaker/Base/StHbtLikeSignCorrFctn.hh"
00020 #include "StHbtMaker/Cut/mikesEventCut.h"
00021
00022 #ifdef __ROOT__
00023 #include "StHbtMaker/Infrastructure/StHbtTagWriter.hh"
00024 #endif
00025
00026 class MinvLikeSignCorrFctn : public StHbtLikeSignCorrFctn {
00027 public:
00028 MinvLikeSignCorrFctn(const MinvLikeSignCorrFctn& );
00029 MinvLikeSignCorrFctn(char* title1, char* title2, const int& nbins, const float& MinvLo, const float& MinvHi);
00030 virtual ~MinvLikeSignCorrFctn();
00031
00032 virtual StHbtString Report();
00033 virtual void AddRealPair(const StHbtPair*);
00034 virtual void AddMixedPair(const StHbtPair*);
00035 virtual void AddLikeSignPositivePair(const StHbtPair*);
00036 virtual void AddLikeSignNegativePair(const StHbtPair*);
00037 virtual void Finish();
00038 MinvLikeSignCorrFctn* Clone();
00039
00040 StHbt1DHisto* Numerator();
00041 StHbt1DHisto* MixedEventDenominator();
00042 StHbt1DHisto* PositiveDenominator();
00043 StHbt1DHisto* NegativeDenominator();
00044 StHbt1DHisto* MixedEventDifference();
00045 StHbt1DHisto* LikeSignDifference();
00046
00047 private:
00048 StHbt1DHisto* mNumerator;
00049 StHbt1DHisto* mMixedEventDenominator;
00050 StHbt1DHisto* mPositiveDenominator;
00051 StHbt1DHisto* mNegativeDenominator;
00052 StHbt1DHisto* mMixedEventDifference;
00053 StHbt1DHisto* mLikeSignDifference;
00054
00055
00056 #ifdef __ROOT__
00057 StHbtTagWriter* mTagWriter;
00058 ClassDef(MinvLikeSignCorrFctn, 1)
00059 #endif
00060 };
00061
00062
00063 inline StHbt1DHisto* MinvLikeSignCorrFctn::Numerator(){return mNumerator;}
00064 inline StHbt1DHisto* MinvLikeSignCorrFctn::MixedEventDenominator(){return mMixedEventDenominator;}
00065 inline StHbt1DHisto* MinvLikeSignCorrFctn::PositiveDenominator(){return mPositiveDenominator;}
00066 inline StHbt1DHisto* MinvLikeSignCorrFctn::NegativeDenominator(){return mNegativeDenominator;}
00067 inline StHbt1DHisto* MinvLikeSignCorrFctn::MixedEventDifference(){return mMixedEventDifference;}
00068 inline StHbt1DHisto* MinvLikeSignCorrFctn::LikeSignDifference(){return mLikeSignDifference;}
00069
00070 inline MinvLikeSignCorrFctn* MinvLikeSignCorrFctn::Clone() { MinvLikeSignCorrFctn* c = new MinvLikeSignCorrFctn(*this); return c;}
00071 inline MinvLikeSignCorrFctn::MinvLikeSignCorrFctn(const MinvLikeSignCorrFctn& fctn) :StHbtLikeSignCorrFctn() {
00072 #ifdef __ROOT__
00073 mTagWriter = StHbtTagWriter::Instance();
00074 #endif
00075 mNumerator = new StHbt1DHisto(*(fctn.mNumerator));
00076 mMixedEventDenominator= new StHbt1DHisto(*(fctn.mMixedEventDenominator));
00077 mPositiveDenominator= new StHbt1DHisto(*(fctn.mPositiveDenominator));
00078 mNegativeDenominator= new StHbt1DHisto(*(fctn.mNegativeDenominator));
00079 mMixedEventDifference = new StHbt1DHisto(*(fctn.mMixedEventDifference));
00080 mLikeSignDifference = new StHbt1DHisto(*(fctn.mLikeSignDifference));
00081 }
00082
00083
00084 #endif
00085