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 "G4VPhysicsConstructor.hh"
17
18namespace simcore {
19
30class FCPPhysics : public G4VPhysicsConstructor {
31 public:
32 static const std::string NAME;
33
34 FCPPhysics(const G4String& name,
35 const framework::config::Parameters& parameters);
36
37 virtual ~FCPPhysics() = default;
38
43 void ConstructParticle() override;
44
49 void ConstructProcess() override;
50
51 private:
53 bool enable_;
54
56 G4double fcp_mass_;
57
59 G4double fcp_charge_;
60
63
67
68 enableLogging("FCPPhysics")
69};
70
71} // namespace simcore
72
73#endif
gamma -> fcp+ fcp- conversion in a nuclear field.
Class encapsulating parameters for configuring a processor.
Definition Parameters.h:26
Physics constructor for fractionally charged particles.
Definition FCPPhysics.h:30
G4double fcp_mass_
mass of the fcp in MeV
Definition FCPPhysics.h:56
int fcp_pdg_id_
PDG ID for the fcp particles.
Definition FCPPhysics.h:62
bool enable_
is this physics constructor enabled?
Definition FCPPhysics.h:53
GammaConversionToFCPs * gamma_fcp_process_
gamma -> fcp conversion process (owned by G4 process manager after registration)
Definition FCPPhysics.h:66
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:59
Discrete process for gamma -> fcp+ fcp- conversion in a nuclear field.
Dynamically loadable photonuclear models either from SimCore or external libraries implementing this ...