LDMX Software
APrimePhysics.h
Go to the documentation of this file.
1
8#ifndef SIMCORE_DARKBREM_APRIMEPHYSICS_H_
9#define SIMCORE_DARKBREM_APRIMEPHYSICS_H_
10
11// LDMX
12#include "Framework/Configure/Parameters.h"
13#include "Framework/Logger.h"
14#include "G4DarkBreM/G4DarkBremsstrahlung.h"
16
17// Geant4
18#include "G4VPhysicsConstructor.hh"
19
20namespace simcore {
21
37class APrimePhysics : public G4VPhysicsConstructor {
38 public:
46 static const std::string NAME;
47
54
60 virtual ~APrimePhysics() = default;
61
74 void ConstructParticle();
75
90 void ConstructProcess();
91
92 private:
94 G4double ap_mass_;
95
97 bool enable_;
98
101
103 G4double fcp_mass_;
104
106 G4double fcp_charge_;
107
110
119
120 std::unique_ptr<G4DarkBremsstrahlung> process_;
121
125
129 enableLogging("APrimePhysics")
130};
131
132} // namespace simcore
133
134#endif
A' -> fcp+ fcp- conversion in a nuclear field.
Class encapsulating parameters for configuring a processor.
Definition Parameters.h:26
Discrete process for A' -> fcp+ fcp- conversion in a nuclear field.
Defines basic APrime physics.
bool fcp_enable_
is A' -> fcp conversion enabled for this run?
virtual ~APrimePhysics()=default
Class destructor.
APrimeConversionToFCPs * fcp_conversion_process_
A' -> fcp conversion process (owned by G4 process manager after registration)
G4double fcp_xsec_factor_
cross section biasing factor for A' -> fcp conversion
framework::config::Parameters parameters_
Dark brem parameters to pass to the process (if enabled)
void ConstructParticle()
Construct particle.
G4double ap_mass_
the mass of the A' for this run
static const std::string NAME
The name of this physics constructor.
APrimePhysics(const framework::config::Parameters &params)
Class constructor.
G4double fcp_mass_
mass of the fcp in MeV
bool enable_
is dark brem enabled for this run?
G4double fcp_charge_
charge of the fcp in units of e
void ConstructProcess()
Construct the process.
Dynamically loadable photonuclear models either from SimCore or external libraries implementing this ...