G4DarkBreM
v2.1.0
Geant4 Dark Bremmstrahlung from MadGraph
|
Formal class representing the A' (a dark photon) More...
#include <G4APrime.h>
Public Types | |
enum class | DecayMode { NoDecay = 1 , FlatDecay = 2 , GeantDecay = 3 } |
How to handle APrime decays. More... | |
Static Public Member Functions | |
static G4APrime * | APrime () |
Accessor for APrime definition. More... | |
static void | Initialize (double mass, int id=62, double tau=-1.0, DecayMode decay_mode=DecayMode::NoDecay) |
Initialize the APrime particle with the passed configuration. More... | |
static DecayMode | getDecayMode () |
Get the G4APrime::DecayMode that was provided to G4APrime::Initialize. | |
Private Member Functions | |
G4APrime (const G4String &Name, G4double mass, G4double width, G4double charge, G4int iSpin, G4int iParity, G4int iConjugation, G4int iIsospin, G4int iIsospin3, G4int gParity, const G4String &pType, G4int lepton, G4int baryon, G4int encoding, G4bool stable, G4double lifetime, G4DecayTable *decaytable) | |
Constructor. More... | |
virtual | ~G4APrime () |
Destructor. More... | |
Static Private Attributes | |
static G4APrime * | theAPrime = 0 |
Reference to single particle definition of A'. | |
static DecayMode | decay_mode_ = G4APrime::DecayMode::NoDecay |
the G4APrime::DecayMode that was provided to G4APrime::Initialize | |
Formal class representing the A' (a dark photon)
This class follows the standard prototype for all G4ParticleDefinitions where a static private member holds onto the single instance of this particle definition to be shared by everyone. In this case, G4APrime::Initialize needs to be called before any calls to G4APrime::G4APrime so that the simulation has a defined A' mass.
The G4APrime::Initialize call should be done in the ConstructParticle function of a physics constructor.
|
strong |
How to handle APrime decays.
Enumerator | |
---|---|
NoDecay | No decay/stable – this is the default. |
FlatDecay | Flat decay – the decay proper time will be randomly sampled from a uniform distribution whose maximum and minimum are set in the g4db::G4DarkBreMModel::GenerateChange method based on parameters of that class. As with GeantDecay, the APrime will decay to e-/e+. |
GeantDecay | Let Geant4 handle the decay. In this case, the lifetime must be included as a parameter of the constructor. e-/e+ is the only decay channel. |
|
inlineprivate |
Constructor.
Passes all parameters to the base class constructor to register this particle definition with Geant4.
|
static |
Accessor for APrime definition.
std::runtime_error | if the APrime is not initialized yet. |
|
static |
Initialize the APrime particle with the passed configuration.
std::runtime_error | if the APrime has already been initialized |
[in] | mass | The mass of the APrime in MeV |
[in] | id | The PDG ID number to use for the APrime particle |
[in] | tau | The proper lifetime (only used if decay_mode is set to GeantDecay) |
[in] | decay_mode | G4APrime::DecayMode on whether/how to decay the A' |
The default value for the PDG ID is set to 62 and has been arbitrarily chosen from the range defined by 11(c) in the PDG ID numbering scheme, avoiding the already-defined "one-of-a-kind" particles using 39, 41, and 42.
Here are the properties of the formal Geant4 dark photon we define.
Property | Value |
---|---|
short name | A^1 |
mass | configured |
mass width | 0 |
electric charge | 0 |
spin | 0 |
parity | 0 |
conjugation | 0 |
isospin | 0 |
isospin3 | 0 |
Gparity | 0 |
long name | APrime |
lepton number | 0 |
baryon number | 0 |
PDG ID encoding | configured |
is stable (no decay) | depends on DecayMode |
lifetime | depends on DecayMode |
decay table | depends on DecayMode |
|
inlineprivatevirtual |
Destructor.
Does nothing on purpose.