File indexing completed on 2026-03-28 07:51:05
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 #include "ExGflashHistoManager.hh"
0030
0031 #include "ExGflashDetectorConstruction.hh"
0032
0033 #include "G4SystemOfUnits.hh"
0034 #include "G4UnitsTable.hh"
0035
0036
0037
0038 ExGflashHistoManager::ExGflashHistoManager(ExGflashDetectorConstruction* myDet)
0039 : fFileName("gflash01"), fDet(myDet)
0040 {
0041 Book();
0042 }
0043
0044
0045
0046 ExGflashHistoManager::~ExGflashHistoManager() = default;
0047
0048
0049
0050 void ExGflashHistoManager::Book()
0051 {
0052 G4AnalysisManager* fAnalysisManager = G4AnalysisManager::Instance();
0053 fAnalysisManager->SetDefaultFileType("root");
0054 fAnalysisManager->SetFileName(fFileName);
0055 fAnalysisManager->SetVerboseLevel(1);
0056 fAnalysisManager->SetActivation(true);
0057
0058
0059
0060 G4int nLbin = fDet->GetnLtot();
0061 G4int nRbin = fDet->GetnRtot();
0062 G4double dLradl = fDet->GetdLradl();
0063 G4double dRradl = fDet->GetdRradl();
0064 fVerbose = fDet->GetVerbose();
0065
0066 fAnalysisManager->CreateH1("h0", "total energy deposit(percent of Einc)", 100, 85., 105.);
0067
0068 fAnalysisManager->CreateH1("h1", "The number of Hits per event", 200, 0., 4.0e5);
0069
0070 fAnalysisManager->CreateH1("h2", "The energy of Hit (in MeV)", 200, 0., 10.);
0071
0072 fAnalysisManager->CreateP1("p0", "longit energy profile (% of E inc)", nLbin, 0., nLbin * dLradl,
0073 0., 2000.);
0074
0075 fAnalysisManager->CreateP1("p1", "radial energy profile (% of E inc)", nRbin, 0., nRbin * dRradl,
0076 0., 2000.);
0077
0078 fAnalysisManager->CreateP1("p2", "Comul longit energy profile (% of E inc)", nLbin, 0.,
0079 nLbin * dLradl, 0., 20000.);
0080
0081 fAnalysisManager->CreateP1("p3", "Cuml radial energy profile (% of E inc)", nRbin, 0.,
0082 nRbin * dRradl, 0., 20000.);
0083
0084 if (fVerbose > 1) G4cout << "\n----> Histogram file " << fFileName << G4endl;
0085 }
0086
0087
0088
0089 void ExGflashHistoManager::SetBinning()
0090 {
0091 G4int nLbin = fDet->GetnLtot();
0092 G4int nRbin = fDet->GetnRtot();
0093 G4double dLradl = fDet->GetdLradl();
0094 G4double dRradl = fDet->GetdRradl();
0095
0096
0097 auto analysisManager = G4AnalysisManager::Instance();
0098
0099
0100 analysisManager->SetP1(0, nLbin, 0., nLbin * dLradl, 0., 2000.);
0101 analysisManager->SetP1(1, nRbin, 0., nRbin * dRradl, 0., 2000.);
0102 analysisManager->SetP1(2, nLbin, 0., nLbin * dLradl, 0., 2000.);
0103 analysisManager->SetP1(3, nRbin, 0., nRbin * dRradl, 0., 2000.);
0104 }