16#ifndef _RMG_INNER_BREMSSTRAHLUNG_PROCESS_HH
17#define _RMG_INNER_BREMSSTRAHLUNG_PROCESS_HH
19#include "G4GenericMessenger.hh"
20#include "G4ParticleDefinition.hh"
21#include "G4Positron.hh"
24#include "G4VParticleChange.hh"
25#include "G4WrapperProcess.hh"
39 const G4String& aNamePrefix =
"RMG_IB",
40 G4ProcessType aType = fDecay
90 [[nodiscard]]
bool IsEnabled()
const {
return fEnabled; }
115 double PhiFunction(
double W_prime,
double omega);
123 double CalculateIBProbability(
double electron_energy);
131 double SamplePhotonEnergy(
double electron_energy);
139 void GenerateInnerBremsstrahlungForSecondaries(
150 bool IsBetaElectron(
G4Track* track);
152 bool fEnabled =
true;
153 double fBiasingFactor = 1.0;
156 std::unique_ptr<G4GenericMessenger> fMessenger;
157 void DefineCommands();
RMGInnerBremsstrahlungProcess(const G4String &aNamePrefix="RMG_IB", G4ProcessType aType=fDecay)
Constructs a new RMG Inner Bremsstrahlung wrapper process.
Definition RMGInnerBremsstrahlungProcess.cc:37
G4VParticleChange * PostStepDoIt(const G4Track &aTrack, const G4Step &aStep) override
Applies Inner Bremsstrahlung generation after radioactive decay during step.
Definition RMGInnerBremsstrahlungProcess.cc:60
G4VParticleChange * AtRestDoIt(const G4Track &aTrack, const G4Step &aStep) override
Applies Inner Bremsstrahlung generation after radioactive decay.
Definition RMGInnerBremsstrahlungProcess.cc:45
bool IsEnabled() const
Checks if Inner Bremsstrahlung generation is enabled.
Definition RMGInnerBremsstrahlungProcess.hh:90
void SetBiasingFactor(double factor)
Sets a scaling factor for IB probability (for systematic studies).
Definition RMGInnerBremsstrahlungProcess.hh:97
double GetBiasingFactor() const
Gets the current IB probability scaling factor.
Definition RMGInnerBremsstrahlungProcess.hh:104
virtual ~RMGInnerBremsstrahlungProcess()=default
Virtual destructor.
void SetEnabled(bool enabled)
Enables or disables Inner Bremsstrahlung generation.
Definition RMGInnerBremsstrahlungProcess.hh:83