1#ifndef SIMCORE_SIMULATOR_BASE_H_
2#define SIMCORE_SIMULATOR_BASE_H_
4#include <G4CascadeParameters.hh>
5#include <G4GeometryManager.hh>
6#include <G4UImanager.hh>
7#include <G4UIsession.hh>
9#include "Framework/Configure/Parameters.h"
10#include "Framework/EventFile.h"
13#include "Framework/Logger.h"
14#include "SimCore/ConditionsInterface.h"
15#include "SimCore/DetectorConstruction.h"
18#include "SimCore/G4User/UserEventInformation.h"
19#include "SimCore/Geo/Parser.h"
21#include "SimCore/SDs/SensitiveDetector.h"
64 std::vector<std::string> pre_init_commands_;
66 std::vector<std::string> post_init_commands_;
103 void buildGeometry();
112 void verifyParameters()
const;
118 enableLogging(
"SimulatorBase")
Base classes for all user event processing components to extend.
Classes which redirect the output of G4cout and G4cerr.
Class providing a Geant4 run manager implementation.
Class which implements the user tracking action.
Implements an event buffer system for storing event data.
Class which represents the process under execution.
Base class for a module which produces a data product.
virtual void process(Event &event) final
Processing an event for a Producer is calling produce.
Class encapsulating parameters for configuring a processor.
Handle to the conditions system, provided at construction to classes which require it.
std::unique_ptr< LoggedSession > session_handle_
Handle to the G4Session -> how to deal with G4cout and G4cerr.
G4UImanager * ui_manager_
User interface handle.
std::unique_ptr< RunManager > run_manager_
Manager controlling G4 simulation run.
ConditionsInterface conditions_intf_
Conditions interface.
virtual void produce(framework::Event &event) override=0
Process the event and put new data products into it.
void configure(framework::config::Parameters ¶meters) override
Callback for the EventProcessor to configure itself from the given set of parameters.
void onProcessStart() override
Initialization of simulation.
static const std::vector< std::string > INVALID_COMMANDS
Commands not allowed to be passed from python config file This is because Simulator already runs them...
void onProcessEnd() override
Callback called once processing is complete.
framework::config::Parameters parameters_
The parameters used to configure the simulation.
Dynamically loadable photonuclear models either from SimCore or external libraries implementing this ...