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/G4APrime.h"
15#include "G4DarkBreM/G4DarkBreMModel.h"
16#include "G4DarkBreM/G4DarkBremsstrahlung.h"
17#include "G4DarkBreM/G4FractionallyCharged.h"
19#include "SimCore/G4User/UserEventInformation.h"
20
21// Geant4
22#include "G4Electron.hh"
23#include "G4EventManager.hh"
24#include "G4ProcessManager.hh"
25#include "G4VPhysicsConstructor.hh"
26
27namespace simcore {
28
44class APrimePhysics : public G4VPhysicsConstructor {
45 public:
53 static const std::string NAME;
54
61
67 virtual ~APrimePhysics() = default;
68
81 void ConstructParticle();
82
97 void ConstructProcess();
98
99 private:
101 G4double ap_mass_;
102
105
108
110 G4double fcp_mass_;
111
113 G4double fcp_charge_;
114
117
126
127 std::unique_ptr<G4DarkBremsstrahlung> process_;
128
132
136 enableLogging("APrimePhysics")
137};
138
139} // namespace simcore
140
141#endif
A' -> fcp+ fcp- conversion in a nuclear field.
Class encapsulating parameters for configuring a processor.
Definition Parameters.h:29
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 ...