2#ifndef SIMCORE_BIASOPERATORS_PHOTONUCLEAR_H_
3#define SIMCORE_BIASOPERATORS_PHOTONUCLEAR_H_
5#include "SimCore/XsecBiasingOperator.h"
8namespace biasoperators {
27 const G4BiasingProcessInterface* callingProcess)
override;
45 h.
setIntParameter(
"BiasOperators::PhotoNuclear::Only Children Of Primary",
Class encapsulating parameters for configuring a processor.
Our specialization of the biasing operator used with Geant4.
Bias the Photon-Nuclear process.
double factor_
factor to bias PN by
bool only_children_of_primary_
Should we restrict biasing to only children of primary?
G4BOptnChangeCrossSection * emXsecOperation
Cross-section biasing operation for conversion process.
std::string getVolumeToBias() const override
return the volume we want to bias within
bool down_bias_conv_
Should we down-bias the gamma conversion process?
std::string getProcessToBias() const override
return the process we want to bias
std::string getParticleToBias() const override
return the particle that we want to bias
G4VBiasingOperation * ProposeOccurenceBiasingOperation(const G4Track *track, const G4BiasingProcessInterface *callingProcess) override
void StartRun() override
Method called at the beginning of a run.
double threshold_
minimum kinetic energy [MeV] for a track to be biased
static const std::string CONVERSION_PROCESS
Geant4 gamma conversion process name.
double pnXsecUnbiased_
Unbiased photonuclear xsec.
double pnXsecBiased_
Biased photonuclear xsec.
std::string volume_
Volume we are going to bias within.
void RecordConfig(ldmx::RunHeader &h) const override
record the configuration into the run header