G4DarkBreM  v2.1.0
Geant4 Dark Bremmstrahlung from MadGraph
g4db::PrototypeModel Class Referenceabstract

Abstract class representing a model for dark brem. More...

#include <PrototypeModel.h>

Inheritance diagram for g4db::PrototypeModel:
[legend]

Public Member Functions

 PrototypeModel (bool muons)
 Constructor. More...
 
virtual ~PrototypeModel ()=default
 Destructor, nothing on purpose.
 
void SetVerboseLevel (int l)
 Define the verbose level. More...
 
int GetVerboseLevel () const
 Get the verbose level of the model. More...
 
bool DarkBremOffMuons () const
 Check if we are bremming off muons. More...
 
virtual void PrintInfo () const =0
 Print the configuration of this model. More...
 
virtual G4double ComputeCrossSectionPerAtom (G4double leptonKE, G4double atomicA, G4double atomicZ)=0
 Calculate the cross section given the input parameters. More...
 
virtual void GenerateChange (G4ParticleChange &particleChange, const G4Track &track, const G4Step &step, const G4Element &element)=0
 Generate the change in the particle now that we can assume the interaction is occuring. More...
 

Protected Attributes

bool muons_
 whether muons (true) or electrons (false) are dark bremming
 
int verbose_level_ {0}
 verbose level for this model
 

Detailed Description

Abstract class representing a model for dark brem.

The model is what actually determines two important things:

  1. How the cross section is calculated
  2. What the particle change is when the process happens

This class is the base class that shows what is necessary for the model to function properly.

Constructor & Destructor Documentation

◆ PrototypeModel()

g4db::PrototypeModel::PrototypeModel ( bool  muons)
inline

Constructor.

Configures the model based on the passed parameters

Names the logger after the name for this model.

Member Function Documentation

◆ ComputeCrossSectionPerAtom()

virtual G4double g4db::PrototypeModel::ComputeCrossSectionPerAtom ( G4double  leptonKE,
G4double  atomicA,
G4double  atomicZ 
)
pure virtual

Calculate the cross section given the input parameters.

See also
G4DarkBremmstrahlung::GetMeanFreePath
Parameters
[in]leptonKEcurrent lepton kinetic energy
[in]atomicAatomic-mass number for the element the lepton is in
[in]atomicZatomic-number for the element the lepton is in
Returns
cross section with units incorporated as a G4double

Implemented in g4db::G4DarkBreMModel.

◆ DarkBremOffMuons()

bool g4db::PrototypeModel::DarkBremOffMuons ( ) const
inline

Check if we are bremming off muons.

If false, assume we are bremming off electrons.

Returns
true if dark bremming of muons

◆ GenerateChange()

virtual void g4db::PrototypeModel::GenerateChange ( G4ParticleChange &  particleChange,
const G4Track &  track,
const G4Step &  step,
const G4Element &  element 
)
pure virtual

Generate the change in the particle now that we can assume the interaction is occuring.

Note
The input particleChange has already been cleared and then initialized, so there is no need for the model to do those steps.
See also
G4DarkBremmstrahlung::PostStepDoIt
Parameters
[in,out]particleChangeparticle change class that stores information
[in]trackcurrent track that needs the change
[in]stepcurrent step of the track
[in]elementthe element selected to dark brem off of

Implemented in g4db::G4DarkBreMModel.

◆ GetVerboseLevel()

int g4db::PrototypeModel::GetVerboseLevel ( ) const
inline

Get the verbose level of the model.

Use this in model functions to decide if a printout should be done or not.

Returns
integer level (higher means more detail)

◆ PrintInfo()

virtual void g4db::PrototypeModel::PrintInfo ( ) const
pure virtual

Print the configuration of this model.

Helpful for debugging and keeping the process compliant with the other Geant4 processes.

Implemented in g4db::G4DarkBreMModel.

◆ SetVerboseLevel()

void g4db::PrototypeModel::SetVerboseLevel ( int  l)
inline

Define the verbose level.

This is called after the model is passed into the process so that the model and the process have the same verbose level. Only call this if you wish the model and the process to not have the same verbose level.

Parameters
[in]lverbose leve

The documentation for this class was generated from the following file: