Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-04-09 07:50:00

0001 #pragma once
0002 /**
0003 tests/U4Physics.hh : Not remotely reusable so consigned to tests folder together with DsG4Scintillation
0004 =========================================================================================================
0005 
0006 This is intended solely for use from U4AppTest 
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