35 #include "HistoManager.hh"
58 analysisManager->SetVerboseLevel(1);
61 analysisManager->SetHistoDirectoryName(
"histo");
62 analysisManager->SetNtupleDirectoryName(
"ntuple");
66 G4bool fileOpen = analysisManager->OpenFile(
"AnaEx01");
68 G4cerr <<
"\n---> HistoManager::Book(): cannot open "
69 << analysisManager->GetFileName() <<
G4endl;
79 analysisManager->CreateH1(
"EAbs",
"Edep in absorber (MeV)", 100, 0., 800*
MeV);
81 analysisManager->CreateH1(
"EGap",
"Edep in gap (MeV)", 100, 0., 100*
MeV);
83 analysisManager->CreateH1(
"LAbs",
"trackL in absorber (mm)", 100, 0., 1*
m);
85 analysisManager->CreateH1(
"LGap",
"trackL in gap (mm)", 100, 0., 50*
cm);
93 analysisManager->CreateNtuple(
"Ntuple1",
"Edep");
94 analysisManager->CreateNtupleDColumn(
"Eabs");
95 analysisManager->CreateNtupleDColumn(
"Egap");
96 analysisManager->FinishNtuple();
100 analysisManager->CreateNtuple(
"Ntuple2",
"TrackL");
101 analysisManager->CreateNtupleDColumn(
"Labs");
102 analysisManager->CreateNtupleDColumn(
"Lgap");
103 analysisManager->FinishNtuple();
107 G4cout <<
"\n----> Output file is open in "
108 << analysisManager->GetFileName() <<
"."
109 << analysisManager->GetFileType() <<
G4endl;
119 analysisManager->Write();
120 analysisManager->CloseFile();
122 G4cout <<
"\n----> Histograms and ntuples are saved\n" <<
G4endl;
124 delete G4AnalysisManager::Instance();
133 analysisManager->FillH1(ih, xbin, weight);
141 G4H1* h1 = analysisManager->GetH1(ih);
142 if (h1) h1->scale(fac);
152 analysisManager->FillNtupleDColumn(0, 0, energyAbs);
153 analysisManager->FillNtupleDColumn(0, 1, energyGap);
154 analysisManager->AddNtupleRow(0);
156 analysisManager->FillNtupleDColumn(1, 0, trackLAbs);
157 analysisManager->FillNtupleDColumn(1, 1, trackLGap);
158 analysisManager->AddNtupleRow(1);
169 G4cout <<
"\n ----> print histograms statistic \n" <<
G4endl;
170 for (
G4int i=0; i<analysisManager->GetNofH1s(); ++i ) {
172 G4H1* h1 = analysisManager->GetH1(i);
175 if (name[0U] ==
'E' ) unitCategory =
"Energy";
176 if (name[0U] ==
'L' ) unitCategory =
"Length";
181 <<
": mean = " <<
G4BestUnit(h1->mean(), unitCategory)
182 <<
" rms = " <<
G4BestUnit(h1->rms(), unitCategory )
void FillHisto(G4int id, G4double e, G4double weight=1.0)
#define G4BestUnit(a, b)
#define G4_USE_G4BESTUNIT_FOR_VERBOSE 1
void Normalize(G4int id, G4double fac)
G4GLOB_DLL std::ostream G4cout
ExG4HbookAnalysisManager G4AnalysisManager
static const G4double fac
void FillNtuple(G4double EnergyAbs, G4double EnergyGap, G4double TrackLAbs, G4double TrackLGap)
G4GLOB_DLL std::ostream G4cerr