File indexing completed on 2026-04-09 07:50:00
0001 #pragma once
0002
0003
0004
0005
0006
0007
0008
0009
0010 #include <cstdlib>
0011 #include <string>
0012 #include <sstream>
0013
0014 #include "plog/Severity.h"
0015 #include "G4VUserPhysicsList.hh"
0016
0017 class Local_G4Cerenkov_modified ;
0018 class Local_DsG4Scintillation ;
0019
0020 #ifdef DEBUG_TAG
0021 class ShimG4OpAbsorption ;
0022 class ShimG4OpRayleigh ;
0023 #else
0024 class G4OpAbsorption ;
0025 class G4OpRayleigh ;
0026 #endif
0027
0028 class G4VProcess ;
0029 class G4ProcessManager ;
0030 class G4FastSimulationManagerProcess ;
0031
0032
0033 #include "U4_API_EXPORT.hh"
0034
0035 struct U4_API U4Physics : public G4VUserPhysicsList
0036 {
0037 static const plog::Severity LEVEL ;
0038 static int EInt(const char* key, const char* fallback="0");
0039
0040 Local_G4Cerenkov_modified* fCerenkov ;
0041 Local_DsG4Scintillation* fScintillation ;
0042
0043 #ifdef DEBUG_TAG
0044 ShimG4OpAbsorption* fAbsorption ;
0045 ShimG4OpRayleigh* fRayleigh ;
0046 #else
0047 G4OpAbsorption* fAbsorption ;
0048 G4OpRayleigh* fRayleigh ;
0049 #endif
0050
0051 G4VProcess* fBoundary ;
0052 G4FastSimulationManagerProcess* fFastSim ;
0053
0054 std::string desc() const ;
0055 static std::string Desc();
0056 static std::string Switches();
0057
0058 U4Physics();
0059
0060 void ConstructParticle();
0061 void ConstructProcess();
0062 void ConstructEM();
0063 void ConstructOp();
0064 void ConstructOp_opticalphoton(G4ProcessManager* pmanager, const G4String& particleName);
0065 static G4VProcess* CreateBoundaryProcess();
0066
0067 static constexpr const char* _Cerenkov_DISABLE = "U4Physics__ConstructOp_Cerenkov_DISABLE" ;
0068 static constexpr const char* _Scintillation_DISABLE = "U4Physics__ConstructOp_Scintillation_DISABLE" ;
0069 static constexpr const char* _OpAbsorption_DISABLE = "U4Physics__ConstructOp_OpAbsorption_DISABLE" ;
0070 static constexpr const char* _OpRayleigh_DISABLE = "U4Physics__ConstructOp_OpRayleigh_DISABLE" ;
0071 static constexpr const char* _OpBoundaryProcess_DISABLE = "U4Physics__ConstructOp_OpBoundaryProcess_DISABLE" ;
0072 static constexpr const char* _OpBoundaryProcess_LASTPOST = "U4Physics__ConstructOp_OpBoundaryProcess_LASTPOST" ;
0073 static constexpr const char* _FastSim_ENABLE = "U4Physics__ConstructOp_FastSim_ENABLE" ;
0074
0075 int Cerenkov_DISABLE = 0 ;
0076 int Scintillation_DISABLE = 0 ;
0077 int OpAbsorption_DISABLE = 0 ;
0078 int OpRayleigh_DISABLE = 0 ;
0079 int OpBoundaryProcess_DISABLE = 0 ;
0080 int OpBoundaryProcess_LASTPOST = 0 ;
0081 int FastSim_ENABLE = 0 ;
0082 };
0083
0084