35 #ifndef ExG4HbookH1Manager_h 
   36 #define ExG4HbookH1Manager_h 1 
   42 #include <tools/hbook/h1> 
   47 class ExG4HbookFileManager;
 
   56   h1_booking(
const std::vector<G4double>& edges)
 
   62     for (
G4int i=0; i<=
G4int(edges.size()); ++i) fEdges.push_back(edges[i]);
 
   68   std::vector<G4double> fEdges;
 
   79   friend class ExG4HbookAnalysisManager;
 
   83     virtual ~ExG4HbookH1Manager();
 
   96     G4int  GetH1HbookIdOffset() 
const;
 
   99     void SetFileManager(ExG4HbookFileManager* fileManager);
 
  103     tools::hbook::h1*  GetH1(
G4int id, 
G4bool warn = 
true,
 
  104                              G4bool onlyIfActive = 
true) 
const;
 
  115                            const G4String& binSchemeName = 
"linear");
 
  117                            const std::vector<G4double>& edges,
 
  125                            const G4String& binSchemeName = 
"linear");
 
  127                            const std::vector<G4double>& edges,
 
  163     void SetH1HbookIdOffset();
 
  169     G4int CreateH1FromBooking(h1_booking* h1Booking, 
 
  172                           h1_booking* h1Booking);
 
  180                          h1_booking* h1Booking,
 
  187     void CreateH1sFromBooking();
 
  189     virtual h1_booking* GetH1Booking(
G4int id, 
G4bool warn = 
true) 
const;
 
  191     virtual tools::hbook::h1*  GetH1InFunction(
G4int id, 
G4String function,
 
  193                                       G4bool onlyIfActive = 
true) 
const;
 
  197     ExG4HbookFileManager*  fFileManager;
 
  198     G4int fH1HbookIdOffset;
 
  199     std::vector<tools::hbook::h1*>  fH1Vector;            
 
  200     std::vector<h1_booking*>  fH1BookingVector;            
 
  201     std::map<G4String, G4int>  fH1NameIdMap;            
 
  206 inline void ExG4HbookH1Manager::SetFileManager(ExG4HbookFileManager* fileManager)
 
  207 { fFileManager = fileManager; }
 
  209 inline G4int ExG4HbookH1Manager::GetH1HbookIdOffset()
 const {
 
  210   return fH1HbookIdOffset;
 
virtual G4bool SetH1YAxisTitle(G4int id, const G4String &title)=0
 
virtual G4double GetH1Width(G4int id) const =0
 
virtual G4String GetH1Title(G4int id) const =0
 
virtual G4String GetH1YAxisTitle(G4int id) const =0
 
virtual G4double GetH1Xmin(G4int id) const =0
 
virtual G4int GetH1Nbins(G4int id) const =0
 
virtual G4double GetH1Xmax(G4int id) const =0
 
virtual G4int GetH1Id(const G4String &name, G4bool warn=true) const =0
 
virtual G4bool SetH1XAxisTitle(G4int id, const G4String &title)=0
 
virtual G4bool FillH1(G4int id, G4double value, G4double weight=1.0)=0
 
virtual G4String GetH1XAxisTitle(G4int id) const =0
 
virtual G4bool SetH1Title(G4int id, const G4String &title)=0
 
virtual G4bool SetH1(G4int id, G4int nbins, G4double xmin, G4double xmax, const G4String &unitName="none", const G4String &fcnName="none", const G4String &binSchemeName="linear")=0
 
virtual G4bool ScaleH1(G4int id, G4double factor)=0
 
virtual G4bool WriteOnAscii(std::ofstream &output)=0
 
virtual G4int CreateH1(const G4String &name, const G4String &title, G4int nbins, G4double xmin, G4double xmax, const G4String &unitName="none", const G4String &fcnName="none", const G4String &binSchemeName="linear")=0