34 #include "RunAction.hh"
35 #include "DetectorConstruction.hh"
36 #include "PhysicsList.hh"
38 #include "PrimaryGeneratorAction.hh"
40 #include "HistoManager.hh"
53 fDetector(det),fPhysics(phys),fPrimary(kin),fRun(0),fHistoManager(0)
70 fRun =
new Run(fDetector);
81 G4Random::showEngineStatus();
87 if ( analysisManager->IsActive() ) {
88 analysisManager->OpenFile();
91 if (!fPrimary)
return;
106 csdaRange = emCalculator.
GetCSDARange(energy,particle,material);
114 if (analysisManager->GetH1Activation(ih))
115 stepMax = analysisManager->GetH1Width(ih)*analysisManager->GetH1Unit(ih);
117 if (analysisManager->GetH1Activation(ih)) {
119 stepMax =
std::min(stepMax, width*csdaRange);
135 if ( analysisManager->IsActive() ) {
136 analysisManager->Write();
137 analysisManager->CloseFile();
141 if (
isMaster) G4Random::showEngineStatus();
The primary generator action class with particle gun.
G4StepLimiter * GetStepMaxProcess()
void BeginOfRunAction(const G4Run *)
void SetCsdaRange(G4int i, G4double value)
G4double GetCSDARange(G4double kinEnergy, const G4ParticleDefinition *, const G4Material *, const G4Region *r=nullptr)
virtual G4Run * GenerateRun()
G4Material * GetAbsorMaterial(G4int i)
void EndOfRunAction(const G4Run *)
G4ParticleGun * GetParticleGun()
G4double energy(const ThreeVector &p, const G4double m)
static G4EmParameters * Instance()
T min(const T t1, const T t2)
brief Return the smallest of the two arguments
G4ParticleDefinition * GetParticleDefinition() const
Detector construction class to define materials and geometry.
void SetPrimary(G4ParticleDefinition *particle, G4double energy)
G4double GetPDGCharge() const
G4CsvAnalysisManager G4AnalysisManager
G4double GetParticleEnergy() const