#ifndef HEPHISTCOMBINER_H #define HEPHISTCOMBINER_H // ---------------------------------------------------------------------- // // HepHistCombiner.cc - definition of class HepHistCombiner // // Intended to give the user access to the histogram (1D, 2D and Prof) // objects being combined by HepFileManager::combine. The strategy is that // this is implemented as a base class with nearly do-nothing, virtual // member functions. The user should write a descendent class which // overrides these member functions with whatever form of combination // may be appropriate for his/her application. The test that the two // histograms are compatible is implemented in the base class functions // and may be called explicitely by the user. It is *not* called implicitely // if these functions are overridden. Note that incompatible histogram // objects ZMthrow warning level (i. e., non-fatal) ZMexceptions. // // 1-Mar-2001 J. Marraffino Initial definition // // ---------------------------------------------------------------------- #ifndef ZMENVIRONMENT_H #include "ZMutility/ZMenvironment.h" #endif #ifndef HEPHIST1D_H #include "HepTuple/HepHist1D.h" #endif #ifndef HEPHIST2D_H #include "HepTuple/HepHist2D.h" #endif #ifndef HEPHISTPROF_H #include "HepTuple/HepHistProf.h" #endif ZM_BEGIN_NAMESPACE( zmht ) /* namespace zmht { */ class HepHistCombiner { public: virtual void combine( HepHist1D & targetHist, const HepHist1D & sourceHist ); virtual void combine( HepHist2D & targetHist, const HepHist2D & sourceHist ); virtual void combine( HepHistProf & targetHist, const HepHistProf & sourceHist ); }; // HepHistCombiner ZM_END_NAMESPACE( zmht ) /* } // namespace zmht */ #endif // HEPHISTCOMBINER_H