35 #ifndef ExG4HbookH2Manager_h 
   36 #define ExG4HbookH2Manager_h 1 
   41 #include <tools/hbook/h2> 
   46 class ExG4HbookFileManager;
 
   75   friend class ExG4HbookAnalysisManager;
 
   79     virtual ~ExG4HbookH2Manager();
 
   88     G4int  GetH2HbookIdOffset() 
const;
 
   91     void SetFileManager(ExG4HbookFileManager* fileManager);
 
   94     tools::hbook::h2*  GetH2(
G4int id, 
G4bool warn = 
true,
 
   95                              G4bool onlyIfActive = 
true) 
const;
 
  109                            const G4String& xbinScheme = 
"linear",
 
  110                            const G4String& ybinScheme = 
"linear");
 
  113                            const std::vector<G4double>& xedges,
 
  114                            const std::vector<G4double>& yedges,
 
  127                            const G4String& xbinScheme = 
"linear",
 
  128                            const G4String& ybinScheme = 
"linear");
 
  131                            const std::vector<G4double>& xedges,
 
  132                            const std::vector<G4double>& yedges,
 
  175     static const G4int fgkDefaultH2HbookIdOffset;
 
  179     void SetH2HbookIdOffset();
 
  180     void CreateH2sFromBooking();
 
  183     virtual h2_booking* GetH2Booking(
G4int id, 
G4bool warn = 
true) 
const;
 
  185     virtual tools::hbook::h2*  GetH2InFunction(
G4int id, 
G4String function,
 
  187                                       G4bool onlyIfActive = 
true) 
const;
 
  191     ExG4HbookFileManager*  fFileManager;
 
  192     G4int fH2HbookIdOffset;
 
  193     std::vector<tools::hbook::h2*>  fH2Vector;            
 
  194     std::vector<h2_booking*>  fH2BookingVector;            
 
  195     std::map<G4String, G4int>  fH2NameIdMap;            
 
  200 inline void ExG4HbookH2Manager::SetFileManager(ExG4HbookFileManager* fileManager)
 
  201 { fFileManager = fileManager; }
 
  203 inline G4int ExG4HbookH2Manager::GetH2HbookIdOffset()
 const {
 
  204   return fH2HbookIdOffset;
 
virtual G4bool SetH2YAxisTitle(G4int id, const G4String &title)=0
 
virtual G4String GetH2Title(G4int id) const =0
 
virtual G4double GetH2Xmax(G4int id) const =0
 
virtual G4int GetH2Nybins(G4int id) const =0
 
virtual G4bool ScaleH2(G4int id, G4double factor)=0
 
virtual G4bool WriteOnAscii(std::ofstream &output)=0
 
virtual G4bool SetH2ZAxisTitle(G4int id, const G4String &title)=0
 
virtual G4int GetH2Nxbins(G4int id) const =0
 
virtual G4double GetH2Xmin(G4int id) const =0
 
virtual G4bool SetH2Title(G4int id, const G4String &title)=0
 
virtual G4double GetH2YWidth(G4int id) const =0
 
virtual G4int CreateH2(const G4String &name, const G4String &title, G4int nxbins, G4double xmin, G4double xmax, G4int nybins, G4double ymin, G4double ymax, const G4String &xunitName="none", const G4String &yunitName="none", const G4String &xfcnName="none", const G4String &yfcnName="none", const G4String &xbinScheme="linear", const G4String &ybinScheme="linear")=0
 
virtual G4bool SetH2(G4int id, G4int nxbins, G4double xmin, G4double xmax, G4int nybins, G4double ymin, G4double ymax, const G4String &xunitName="none", const G4String &yunitName="none", const G4String &xfcnName="none", const G4String &yfcnName="none", const G4String &xbinScheme="linear", const G4String &ybinScheme="linear")=0
 
virtual G4double GetH2Ymin(G4int id) const =0
 
virtual G4String GetH2ZAxisTitle(G4int id) const =0
 
virtual G4String GetH2YAxisTitle(G4int id) const =0
 
virtual G4int GetH2Id(const G4String &name, G4bool warn=true) const =0
 
virtual G4String GetH2XAxisTitle(G4int id) const =0
 
virtual G4bool FillH2(G4int id, G4double xvalue, G4double yvalue, G4double weight=1.0)=0
 
virtual G4double GetH2XWidth(G4int id) const =0
 
virtual G4bool SetH2XAxisTitle(G4int id, const G4String &title)=0
 
virtual G4double GetH2Ymax(G4int id) const =0