File indexing completed on 2025-10-14 08:09:02
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
0030 #ifndef ANALYSIS_MANAGER_H
0031 #define ANALYSIS_MANAGER_H
0032
0033 #include "G4ThreeVector.hh"
0034
0035 #include <tools/histo/h1d>
0036 #include <tools/histo/h2d>
0037
0038 #define DISALLOW_COPY_AND_ASSIGN(TypeName) \
0039 TypeName(const TypeName&); \
0040 void operator=(const TypeName&)
0041
0042 class Analysis
0043 {
0044 public:
0045 ~Analysis();
0046
0047 static Analysis* GetAnalysis();
0048
0049 void Book();
0050 void EndOfRun();
0051
0052 void OpenFile(const G4String& fname);
0053 void Save();
0054 void Close(G4bool reset = true);
0055
0056 void FillIncident(const G4ThreeVector& p);
0057 void FillDose(const G4ThreeVector& p, G4double dedx);
0058
0059 void ClearIncidentFlag();
0060
0061 void SetUseNtuple(G4bool useNtuple)
0062 {
0063 G4cout << "Set useNtuple: " << useNtuple << G4endl;
0064 fUseNtuple = useNtuple;
0065 }
0066
0067 void SetMergeNtuple(G4bool mergeNtuple)
0068 {
0069 G4cout << "Set mergeNtuple: " << mergeNtuple << G4endl;
0070 fMergeNtuple = mergeNtuple;
0071 }
0072
0073 private:
0074 Analysis();
0075 DISALLOW_COPY_AND_ASSIGN(Analysis);
0076
0077 G4bool fUseNtuple;
0078 G4bool fMergeNtuple;
0079
0080
0081 G4int fincident_x_hist;
0082 G4int fincident_map;
0083 G4int fdose_hist;
0084 G4int fdose_map;
0085 G4int fdose_prof;
0086 G4int fdose_map_prof;
0087 G4int fdose_map3d;
0088
0089 static G4ThreadLocal G4int fincidentFlag;
0090 };
0091
0092
0093 inline void Analysis::ClearIncidentFlag()
0094 {
0095 fincidentFlag = false;
0096 }
0097
0098 #endif