00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015 #ifndef StHbtThCorrFctn_hh
00016 #define StHbtThCorrFctn_hh
00017
00018 #include "StHbtMaker/Base/StHbtCorrFctn.hh"
00019 #include "StHbtMaker/Infrastructure/StHbtNamed.hh"
00020 #include "StHbtMaker/Infrastructure/StHbtPair.hh"
00021 #include "StHbtMaker/Base/StHbtThPair.hh"
00022 #include "StHbtMaker/ThCorrFctn/StHbtThPairDummy.h"
00023
00024 class StHbtThCorrFctn : public virtual StHbtCorrFctn ,public virtual StHbtNamed{
00025
00026 public:
00027
00028 StHbtThCorrFctn() :StHbtCorrFctn(),StHbtNamed() {};
00029 StHbtThCorrFctn(const char* aName) :StHbtCorrFctn(),StHbtNamed(aName) {};
00030 StHbtThCorrFctn(const StHbtThCorrFctn& aCf ) :StHbtCorrFctn(aCf),StHbtNamed(aCf) {};
00031 virtual ~StHbtThCorrFctn() {};
00032
00033
00034 void AddRealPair(const StHbtPair*);
00035 void AddMixedPair(const StHbtPair*);
00036
00037 virtual void AddNum(StHbtThPair*)=0;
00038 virtual void AddDen(StHbtThPair*)=0;
00039
00040 virtual StHbtThCorrFctn* ThClone() const =0;
00041
00042
00043 protected:
00044 StHbtThPairDummy mDefThPair;
00045
00046 };
00047
00048 inline void StHbtThCorrFctn::AddRealPair(const StHbtPair* aPair) {
00049 mDefThPair.Set(aPair);
00050 AddNum(&mDefThPair);
00051 }
00052 inline void StHbtThCorrFctn::AddMixedPair(const StHbtPair* aPair) {
00053 mDefThPair.Set(aPair);
00054 AddDen(&mDefThPair);
00055 }
00056
00057 #endif