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 "SimCore/G4User/UserEventInformation.h"
18
19// Geant4
20#include "G4Electron.hh"
21#include "G4EventManager.hh"
22#include "G4ProcessManager.hh"
23#include "G4VPhysicsConstructor.hh"
24
25namespace simcore {
26
42class APrimePhysics : public G4VPhysicsConstructor {
43 public:
51 static const std::string NAME;
52
59
65 virtual ~APrimePhysics() = default;
66
79 void ConstructParticle();
80
92 void ConstructProcess();
93
94 private:
96 G4double ap_mass_;
97
99 bool enable_;
100
109
110 std::unique_ptr<G4DarkBremsstrahlung> process_;
111
115 enableLogging("APrimePhysics")
116};
117
118} // namespace simcore
119
120#endif
Class encapsulating parameters for configuring a processor.
Definition Parameters.h:29
Defines basic APrime physics.
virtual ~APrimePhysics()=default
Class destructor.
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.
bool enable_
is dark brem enabled for this run?
void ConstructProcess()
Construct the process.
Dynamically loadable photonuclear models either from SimCore or external libraries implementing this ...