Import Geant4 10.0.0 source tree
This commit is contained in:
@@ -47,17 +47,11 @@
|
||||
#include "DMXRunAction.hh"
|
||||
|
||||
#include "G4Run.hh"
|
||||
#include "G4UImanager.hh"
|
||||
#include "G4VVisManager.hh"
|
||||
#include "G4ios.hh"
|
||||
|
||||
#include <fstream>
|
||||
#include <iomanip>
|
||||
#include <vector>
|
||||
|
||||
#ifdef G4ANALYSIS_USE
|
||||
#include "DMXAnalysisManager.hh"
|
||||
#endif
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
@@ -66,9 +60,7 @@ DMXRunAction::DMXRunAction()
|
||||
runMessenger = new DMXRunActionMessenger(this);
|
||||
savehitsFile = "hits.out";
|
||||
savepmtFile = "pmt.out";
|
||||
savehistFile = "dmx.his";
|
||||
plotevent = false;
|
||||
interactplot = false;
|
||||
savehistFile = "dmx";
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
@@ -87,27 +79,98 @@ void DMXRunAction::BeginOfRunAction(const G4Run* aRun)
|
||||
|
||||
G4cout << "### Run " << aRun->GetRunID() << " start." << G4endl;
|
||||
|
||||
if (G4VVisManager::GetConcreteInstance()) {
|
||||
G4UImanager* UI = G4UImanager::GetUIpointer();
|
||||
UI->ApplyCommand("/vis/scene/notifyHandlers");
|
||||
}
|
||||
|
||||
#ifdef G4ANALYSIS_USE
|
||||
// Book histograms and ntuples
|
||||
DMXAnalysisManager* analysis = DMXAnalysisManager::getInstance();
|
||||
analysis->book(savehistFile, plotevent);
|
||||
// analysis->PlotHistosInit();
|
||||
#endif
|
||||
Book();
|
||||
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
void DMXRunAction::EndOfRunAction(const G4Run*)
|
||||
{
|
||||
if (G4VVisManager::GetConcreteInstance()) {
|
||||
G4UImanager::GetUIpointer()->ApplyCommand("/vis/viewer/update");
|
||||
}
|
||||
{;}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
void DMXRunAction::Book()
|
||||
{
|
||||
// Get/create analysis manager
|
||||
G4AnalysisManager* man = G4AnalysisManager::Instance();
|
||||
|
||||
// Open an output file
|
||||
man->OpenFile(savehistFile);
|
||||
man->SetFirstHistoId(1);
|
||||
man->SetFirstNtupleId(1);
|
||||
|
||||
|
||||
// ---- primary ntuple ------
|
||||
// id==1
|
||||
man->CreateNtuple("tree1", "Particle Source Energy");
|
||||
man->CreateNtupleDColumn("energy");
|
||||
man->FinishNtuple();
|
||||
|
||||
// ---- secondary ntuple ------
|
||||
//id==2
|
||||
man->CreateNtuple("tree2", "Scintillation Hits Info");
|
||||
man->CreateNtupleDColumn("Event");
|
||||
man->CreateNtupleDColumn("e_prim");
|
||||
man->CreateNtupleDColumn("tot_e");
|
||||
man->CreateNtupleDColumn("s_hits");
|
||||
man->CreateNtupleDColumn("xe_time");
|
||||
man->CreateNtupleDColumn("num_ph");
|
||||
man->CreateNtupleDColumn("avphtime");
|
||||
man->CreateNtupleDColumn("firstpart");
|
||||
man->CreateNtupleDColumn("firstparte");
|
||||
man->CreateNtupleDColumn("gamma");
|
||||
man->CreateNtupleDColumn("neutron");
|
||||
man->CreateNtupleDColumn("posi");
|
||||
man->CreateNtupleDColumn("elec");
|
||||
man->CreateNtupleDColumn("other");
|
||||
man->CreateNtupleDColumn("seed1");
|
||||
man->CreateNtupleDColumn("seed2");
|
||||
man->FinishNtuple();
|
||||
|
||||
// ---- tertiary ntuple ------
|
||||
//id==3
|
||||
man->CreateNtuple("tree3", "PMT Hits Info");
|
||||
man->CreateNtupleDColumn("event");
|
||||
man->CreateNtupleDColumn("hits");
|
||||
man->CreateNtupleDColumn("xpos");
|
||||
man->CreateNtupleDColumn("ypos");
|
||||
man->CreateNtupleDColumn("zpos");
|
||||
man->FinishNtuple();
|
||||
|
||||
// Creating 1-dimensional histograms
|
||||
man->CreateH1("h1","Source Energy /keV", 1000,0.,10000.);
|
||||
man->CreateH1("h2","Energy Deposit /keV", 1000,0.,1000.);
|
||||
man->CreateH1("h3","Nuclear Recoil Edep /keV", 100,0.,100.);
|
||||
man->CreateH1("h4","Number of Photons - LowE", 200,0.,200.);
|
||||
man->CreateH1("h5","Number of Photons - HighE", 100,0.,10000.);
|
||||
man->CreateH1("h6","Average Photon Arrival/ns", 200,0.,200.);
|
||||
man->CreateH1("h7","1st event Photon Arrival", 200,0.,200.);
|
||||
man->CreateH1("h8","Gamma Energy Deposit/keV", 1000,0.,1000.);
|
||||
man->CreateH1("h9","Neutron Ener Deposit/keV", 1000,0.,1000.);
|
||||
man->CreateH1("h10","Electron Ener Deposit/keV",1000,0.,1000.);
|
||||
man->CreateH1("h11","Positron Ener Deposit/keV",1000,0.,1000.);
|
||||
man->CreateH1("h12","Other Ener Deposit/keV", 1000,0.,1000.);
|
||||
|
||||
//Creating 2-dimensional histograms
|
||||
man->CreateH2("hh1","PMT Hit Pattern",
|
||||
300 ,-30.,30.,300,-30.,30.);
|
||||
man->CreateH2("hh2","1st event PMT Hit Pattern",
|
||||
300 ,-30.,30.,300,-30.,30.);
|
||||
|
||||
return;
|
||||
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
void DMXRunAction::Finish()
|
||||
{
|
||||
// Save histograms
|
||||
G4AnalysisManager* man = G4AnalysisManager::Instance();
|
||||
man->Write();
|
||||
man->CloseFile();
|
||||
// Complete clean-up
|
||||
delete G4AnalysisManager::Instance();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user