Import Geant4 10.0.0 source tree

This commit is contained in:
Gabriele Cosmo
2016-06-10 11:51:14 +02:00
parent e2d2f9810a
commit 286caacf06
12421 changed files with 730077 additions and 502383 deletions
@@ -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();
}