File indexing completed on 2026-09-22 08:51:06
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029
0030
0031
0032
0033
0034
0035
0036
0037
0038
0039
0040
0041
0042
0043
0044 #ifndef G4EmExtraPhysics_h
0045 #define G4EmExtraPhysics_h 1
0046
0047 #include "G4VPhysicsConstructor.hh"
0048 #include "globals.hh"
0049
0050 #include "G4EmMessenger.hh"
0051
0052 class G4CascadeInterface;
0053 class G4HadronInelasticProcess;
0054
0055 class G4EmExtraPhysics : public G4VPhysicsConstructor
0056 {
0057 public:
0058
0059 G4EmExtraPhysics(G4int ver = 1);
0060
0061
0062 G4EmExtraPhysics(const G4String& name);
0063
0064 ~G4EmExtraPhysics() override;
0065
0066 void ConstructParticle() override;
0067 void ConstructProcess() override;
0068
0069 void Synch(G4bool val);
0070 void SynchAll(G4bool val);
0071 void GammaNuclear(G4bool val);
0072 void LENDGammaNuclear(G4bool val);
0073 void ElectroNuclear(G4bool val);
0074 void MuonNuclear(G4bool val);
0075 void GammaToMuMu(G4bool val);
0076 void MuonToMuMu(G4bool val);
0077 void PositronToMuMu(G4bool val);
0078 void PositronToHadrons(G4bool val);
0079 void GammaToMuMuFactor(G4double val);
0080 void PositronToMuMuFactor(G4double val);
0081 void PositronToHadronsFactor(G4double val);
0082 void GammaNuclearLEModelLimit(G4double val);
0083 void SetUseGammaNuclearXS(G4bool val);
0084
0085 G4EmExtraPhysics& operator=(const G4EmExtraPhysics& right) = delete;
0086 G4EmExtraPhysics(const G4EmExtraPhysics&) = delete;
0087
0088 private:
0089
0090 void ConstructGammaElectroNuclear();
0091
0092 G4bool gnActivated{true};
0093 G4bool eActivated{true};
0094 G4bool gLENDActivated{false};
0095 G4bool munActivated{true};
0096 G4bool synActivated{false};
0097 G4bool synActivatedForAll{false};
0098 G4bool gmumuActivated{false};
0099 G4bool mmumuActivated{false};
0100 G4bool pmumuActivated{false};
0101 G4bool phadActivated{false};
0102 G4bool fUseGammaNuclearXS{true};
0103
0104 G4double gmumuFactor{1.0};
0105 G4double pmumuFactor{1.0};
0106 G4double phadFactor{1.0};
0107 G4double fGNLowEnergyLimit;
0108
0109 G4EmMessenger* theMessenger;
0110 G4int verbose;
0111 };
0112
0113 #endif