00001 #ifndef SoStat_SoHistogramCnv_h 00002 #define SoStat_SoHistogramCnv_h 00003 00004 // Inheritance : 00005 #include <GaudiKernel/Converter.h> 00006 00007 namespace AIDA { 00008 class IHistogram; 00009 class IHistogram1D; 00010 class IHistogram2D; 00011 } 00012 00013 class IUserInterfaceSvc; 00014 //#601 class IRootSvc; 00015 00016 template <class T> class CnvFactory; 00017 00018 class SoHistogramCnv : public Converter { 00019 friend class CnvFactory<SoHistogramCnv>; 00020 public: 00021 SoHistogramCnv(ISvcLocator*); 00022 virtual StatusCode initialize(); 00023 virtual StatusCode finalize(); 00024 virtual long repSvcType() const; 00025 virtual StatusCode createRep(DataObject*,IOpaqueAddress*&); 00026 public: 00027 static const CLID& classID(); 00028 static const unsigned char storageType(); 00029 protected: 00030 IUserInterfaceSvc* fUISvc; 00031 //#601 IRootSvc* fRootSvc; 00032 }; 00033 00034 // Inheritance : 00035 #include <HEPVis/SbPlottableThings.h> 00036 00037 class SoHistogramRep1D : public SbPlottableBins1D { 00038 public: //SbPlottableObject 00039 virtual bool isValid() const; 00040 virtual const char* getName(); 00041 virtual int getDimension() const; 00042 virtual const char* getLabel(); 00043 virtual void* cast(const char*) const; 00044 virtual void* nativeObject() const; 00045 virtual const char* nativeObjectClass() const; 00046 virtual const char* getInfos(const char*); 00047 virtual const char* getLegend(); 00048 public: //SbPlottableBins1D 00049 virtual void getBinsSumOfWeightsRange(float&,float&) const; 00050 virtual int getAxisNumberOfBins() const; 00051 virtual float getAxisMinimum() const; 00052 virtual float getAxisMaximum() const; 00053 virtual float getBinLowerEdge(int) const; 00054 virtual float getBinUpperEdge(int) const; 00055 virtual int getBinNumberOfEntries(int) const; 00056 virtual float getBinSumOfWeights(int) const; 00057 virtual float getBinBar(int) const; 00058 public: 00059 SoHistogramRep1D(const std::string&,const AIDA::IHistogram1D*); 00060 virtual ~SoHistogramRep1D(); 00061 private: 00062 std::string fName; 00063 std::string fTitle; 00064 const AIDA::IHistogram1D* fHistogram; 00065 std::string fDataClass; 00066 std::string fInfos; 00067 std::string fLegend; 00068 }; 00069 00070 class SoHistogramRep2D : public SbPlottableBins2D { 00071 public: //SbPlottableObject 00072 virtual bool isValid() const; 00073 virtual const char* getName(); 00074 virtual int getDimension() const; 00075 virtual const char* getLabel(); 00076 virtual void* cast(const char*) const; 00077 virtual void* nativeObject() const; 00078 virtual const char* nativeObjectClass() const; 00079 virtual const char* getInfos(const char*); 00080 virtual const char* getLegend(); 00081 public: //SbPlottableBins2D 00082 virtual void getBinsSumOfWeightsRange(float&,float&) const; 00083 virtual int getAxisNumberOfBinsX() const; 00084 virtual float getAxisMinimumX() const; 00085 virtual float getAxisMaximumX() const; 00086 virtual int getAxisNumberOfBinsY() const; 00087 virtual float getAxisMinimumY() const; 00088 virtual float getAxisMaximumY() const; 00089 virtual float getBinLowerEdgeX(int) const; 00090 virtual float getBinUpperEdgeX(int) const; 00091 virtual float getBinLowerEdgeY(int) const; 00092 virtual float getBinUpperEdgeY(int) const; 00093 virtual int getBinNumberOfEntries(int,int) const; 00094 virtual float getBinSumOfWeights(int,int) const; 00095 virtual float getBinBar(int,int) const; 00096 public: 00097 SoHistogramRep2D(const std::string&,const AIDA::IHistogram2D*); 00098 virtual ~SoHistogramRep2D(); 00099 private: 00100 std::string fName; 00101 std::string fTitle; 00102 const AIDA::IHistogram2D* fHistogram; 00103 std::string fDataClass; 00104 std::string fInfos; 00105 std::string fLegend; 00106 }; 00107 00108 #endif