1#include "SimCore/BiasOperators/XsecBiasingOperator.h"
3#include "Framework/Exception/Exception.h"
9 : G4VBiasingOperator(name),
10 the_log_{
framework::logging::makeLogger(name)} {}
21 G4KaonZeroLong::KaonZeroLongDefinition()->GetProcessManager();
23 EXCEPTION_RAISE(
"BiasSetup",
"Invalid particle type '" +
33 EXCEPTION_RAISE(
"BiasSetup",
35 " is not found in list of biased processes!");
42 const G4BiasingProcessSharedData* shared_data =
45 for (
size_t iprocess = 0;
46 iprocess < (shared_data->GetPhysicsBiasingProcessInterfaces()).size();
48 const G4BiasingProcessInterface* wrapper_process =
49 (shared_data->GetPhysicsBiasingProcessInterfaces())[iprocess];
51 if (wrapper_process->GetWrappedProcess()->GetProcessName().compareTo(
#define DEFINE_FACTORY(classtype)
This should go into an implementation file for your prototype class.
Class encapsulating parameters for configuring a processor.
Our specialization of the biasing operator used with Geant4.
virtual std::string getProcessToBias() const =0
Return the process whose cross-section will be biased.
void StartRun()
Method called at the beginning of a run.
XsecBiasingOperator(std::string name, const framework::config::Parameters ¶meters)
Constructor.
bool processIsBiased(std::string process)
Check if the given processed is being biased.
G4ProcessManager * process_manager_
Process manager associated with the particle of interest.
virtual std::string getParticleToBias() const =0
Return the particle which should be biased.
G4BOptnChangeCrossSection * xsec_operation_
Cross-section biasing operation.
All classes in the ldmx-sw project use this namespace.
Dynamically loadable photonuclear models either from SimCore or external libraries implementing this ...