7#ifndef SIMCORE_GENIE_GENERATOR_H
8#define SIMCORE_GENIE_GENERATOR_H
14#include "TRandomGen.h"
22#include "GENIE/Framework/EventGen/GEVGDriver.h"
23#include "GENIE/Framework/EventGen/HepMC3Converter.h"
28#include "Framework/Logger.h"
29#include "SimCore/G4User/UserEventInformation.h"
79 genie::HepMC3Converter hep_mc3_converter_;
82 std::vector<int> targets_;
83 std::vector<double> abundances_;
84 std::vector<double> position_;
85 std::vector<double> beam_size_;
86 float target_thickness_;
88 std::vector<double> direction_;
91 std::string spline_file_;
93 std::string message_threshold_file_;
95 std::vector<float> ev_weighting_integral_;
96 size_t n_events_generated_;
97 std::vector<size_t> n_events_by_target_;
98 std::vector<float> xsec_by_target_;
109 enableLogging(
"GenieGenerator")
Header file for PrimaryGenerator.
Class encapsulating parameters for configuring a processor.
Interface that defines a simulation primary generator.
Class that uses GENIE's GEVGDriver to generator eN interactions.
void calculateTotalXS()
GENIE initialization.
void initializeGENIE()
simple validation check on configuration params
void RecordConfig(const std::string &id, ldmx::RunHeader &rh) final override
Record the configuration of the primary generator into the run header.
~GenieGenerator()
Destructor.
genie::GEVGDriver evg_driver_
The GENIE event generator driver and convertor to HepMC3GenEvent.
GenieGenerator(const std::string &name, const framework::config::Parameters ¶meters)
Constructor.
bool validateConfig()
fill the configuration
void GeneratePrimaryVertex(G4Event *event) final override
Generate the primary vertices in the Geant4 event.
Dynamically loadable photonuclear models either from SimCore or external libraries implementing this ...