LDMX Software
FCPPhysics.h
Go to the documentation of this file.
1
9#ifndef SIMCORE_FCPPHYSICS_H_
10#define SIMCORE_FCPPHYSICS_H_
11
12#include "Framework/Configure/Parameters.h"
13#include "Framework/Logger.h"
14#include "G4DarkBreM/G4FractionallyCharged.h"
15#include "G4Gamma.hh"
16#include "G4ProcessManager.hh"
17#include "G4VPhysicsConstructor.hh"
19
20namespace simcore {
21
32class FCPPhysics : public G4VPhysicsConstructor {
33 public:
34 static const std::string NAME;
35
36 FCPPhysics(const G4String& name,
37 const framework::config::Parameters& parameters);
38
39 virtual ~FCPPhysics() = default;
40
45 void ConstructParticle() override;
46
51 void ConstructProcess() override;
52
53 private:
55 bool enable_;
56
58 G4double fcp_mass_;
59
61 G4double fcp_charge_;
62
65
69
70 enableLogging("FCPPhysics")
71};
72
73} // namespace simcore
74
75#endif
gamma -> fcp+ fcp- conversion in a nuclear field.
Class encapsulating parameters for configuring a processor.
Definition Parameters.h:29
Physics constructor for fractionally charged particles.
Definition FCPPhysics.h:32
G4double fcp_mass_
mass of the fcp in MeV
Definition FCPPhysics.h:58
int fcp_pdg_id_
PDG ID for the fcp particles.
Definition FCPPhysics.h:64
bool enable_
is this physics constructor enabled?
Definition FCPPhysics.h:55
GammaConversionToFCPs * gamma_fcp_process_
gamma -> fcp conversion process (owned by G4 process manager after registration)
Definition FCPPhysics.h:68
void ConstructParticle() override
Construct fcp+/fcp- particles and register them in the Geant4 particle table.
void ConstructProcess() override
Register gamma -> fcp+ fcp- conversion process on the photon if enabled.
G4double fcp_charge_
charge of the fcp in units of e
Definition FCPPhysics.h:61
Discrete process for gamma -> fcp+ fcp- conversion in a nuclear field.
Dynamically loadable photonuclear models either from SimCore or external libraries implementing this ...