GEARS
Geant4 Example Application with Rich features and Small footprints
Classes | Functions
gears.cc File Reference
#include <vector>
#include <G4SteppingVerbose.hh>
#include <G4SteppingManager.hh>
#include <G4AnalysisManager.hh>
#include <G4NavigationHistory.hh>
#include <G4OpticalSurface.hh>
#include <G4tgrLineProcessor.hh>
#include <G4NistManager.hh>
#include <G4tgbMaterialMgr.hh>
#include <G4UImessenger.hh>
#include <G4tgrUtils.hh>
#include <G4tgbDetectorBuilder.hh>
#include <G4tgrVolumeMgr.hh>
#include <G4tgrFileReader.hh>
#include <G4tgbVolumeMgr.hh>
#include <G4LogicalBorderSurface.hh>
#include <G4UIdirectory.hh>
#include <G4UIcmdWithAString.hh>
#include <G4UIcmdWith3VectorAndUnit.hh>
#include <G4VUserDetectorConstruction.hh>
#include <G4UserLimits.hh>
#include <G4FieldManager.hh>
#include <G4UniformMagField.hh>
#include <G4LogicalVolumeStore.hh>
#include <G4TransportationManager.hh>
#include "G4Box.hh"
#include "G4PVPlacement.hh"
#include <G4VUserPrimaryGeneratorAction.hh>
#include <G4GeneralParticleSource.hh>
#include <G4RunManagerFactory.hh>
#include <G4UserRunAction.hh>
#include <G4Run.hh>
#include <G4UserEventAction.hh>
#include <G4UserStackingAction.hh>
#include <G4UIcmdWithADoubleAndUnit.hh>
#include <G4VUserActionInitialization.hh>
#include <G4StepLimiterPhysics.hh>
#include <G4PhysListFactory.hh>
#include <G4ScoringManager.hh>
#include <G4VisExecutive.hh>
#include <G4UIExecutive.hh>
#include <G4UImanager.hh>
Include dependency graph for gears.cc:

Go to the source code of this file.

Classes

class  Output
 Dump simulation results to screen or a file. More...
 
struct  BorderSurface
 A link list of G4LogicalBorderSurface. More...
 
class  LineProcessor
 Extension to default text geometry file line processor. More...
 
class  TextDetectorBuilder
 Construct detector based on text geometry description. More...
 
class  Detector
 Construct detector geometry. More...
 
class  Generator
 Call Geant4 General Particle Source to generate particles. More...
 
class  RunAction
 Book keeping before and after a run. More...
 
class  EventAction
 Book keeping before and after an event. More...
 
class  StackingAction
 Split a radioactive decay chain to different events based on a time window. More...
 
class  Action
 

Functions

void SaveAndResetEvent ()
 save and then reset an event More...
 
int main (int argc, char **argv)
 The main function that calls individual components. More...
 

Function Documentation

◆ main()

int main ( int  argc,
char **  argv 
)

The main function that calls individual components.

Definition at line 650 of file gears.cc.

651 {
652  // inherit G4SteppingVerbose instead of G4UserSteppingAction to record data
653  G4VSteppingVerbose::SetInstance(new Output); // must be before run manager
654  auto run=G4RunManagerFactory::CreateRunManager(G4RunManagerType::SerialOnly);
655  G4PhysListFactory factory; auto physics=factory.ReferencePhysList();
656  physics->RegisterPhysics(new G4StepLimiterPhysics());
657  run->SetUserInitialization(physics); // initialize physics
658  run->SetUserInitialization(new Detector); // initialize detector
659  run->SetUserInitialization(new Action); // initialize user actions
660  G4ScoringManager::GetScoringManager(); // enable built-in scoring cmds
661  G4UIExecutive* ui = nullptr; // assume batch mode
662  if (argc==1) { ui = new G4UIExecutive(argc, argv); } // interactive mode
663  auto vis = new G4VisExecutive("quiet"); // visualization
664  vis->Initialize(); // do this after ui mode is decided
665  if (ui) { // interactive mode
666  ui->SessionStart(); // do this after vis
667  delete ui;
668  } else { // batch mode
669  G4String cmd = "/control/execute ";
670  G4UImanager::GetUIpointer()->ApplyCommand(cmd+argv[1]);
671  }
672  delete vis; delete run;
673  return 0;
674 }
Definition: gears.cc:630
Construct detector geometry.
Definition: gears.cc:413
Dump simulation results to screen or a file.
Definition: gears.cc:12

◆ SaveAndResetEvent()

void SaveAndResetEvent ( )

save and then reset an event

Definition at line 568 of file gears.cc.