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