File indexing completed on 2026-09-15 08:28:17
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029 #ifndef HistoManager_h
0030 #define HistoManager_h 1
0031
0032 #include "G4AnalysisManager.hh"
0033 #include "g4hntools_defs.hh"
0034 #include "globals.hh"
0035
0036
0037
0038 class HistoMessenger;
0039
0040 const G4int kMaxHisto = 30;
0041
0042
0043
0044 class HistoManager
0045 {
0046 public:
0047 HistoManager();
0048 ~HistoManager();
0049
0050 void Book();
0051 void Save();
0052 void SetHisto(G4int, G4int, G4double, G4double, const G4String& unit = "none");
0053 void FillHisto(G4int id, G4double e, G4double weight = 1.0);
0054 void Normalize(G4int id, G4double fac);
0055 void PrintHisto(G4int);
0056
0057 inline void SetFileName(const G4String& name) { fileName[0] = name; };
0058 inline G4bool HistoExist(G4int id) { return fExist[id]; }
0059 inline G4String GetTitle(G4int id) { return fTitle[id]; }
0060 inline G4int GetNbins(G4int id) { return fNbins[id]; }
0061 inline G4double GetVmin(G4int id) { return fVmin[id]; }
0062 inline G4double GetVmax(G4int id) { return fVmax[id]; }
0063 inline G4double GetHistoUnit(G4int id) { return fUnit[id]; }
0064 inline G4double GetBinWidth(G4int id) { return fWidth[id]; }
0065 inline G4int GetHistoID(G4int id) { return fHistId[id]; }
0066
0067 private:
0068 void SaveAscii();
0069
0070 G4String fileName[2];
0071 G4bool factoryOn;
0072
0073 G4int fNbHist;
0074 G4int fHistId[kMaxHisto];
0075 G4H1* fHistPt[kMaxHisto];
0076 G4bool fExist[kMaxHisto];
0077 G4String fLabel[kMaxHisto];
0078 G4String fTitle[kMaxHisto];
0079 G4int fNbins[kMaxHisto];
0080 G4double fVmin[kMaxHisto];
0081 G4double fVmax[kMaxHisto];
0082 G4double fUnit[kMaxHisto];
0083 G4double fWidth[kMaxHisto];
0084 G4bool fAscii[kMaxHisto];
0085
0086 HistoMessenger* fHistoMessenger;
0087 };
0088
0089
0090
0091 #endif