Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-04-10 07:50:34

0001 #pragma once
0002 
0003 struct sphoton ; 
0004 class G4StepPoint ; 
0005 
0006 #include <string>
0007 #include "plog/Severity.h"
0008 #include "U4_API_EXPORT.hh"
0009 
0010 enum { 
0011    U4StepPoint_Undefined, 
0012    U4StepPoint_NoProc, 
0013    U4StepPoint_Transportation, 
0014    U4StepPoint_OpRayleigh, 
0015    U4StepPoint_OpAbsorption, 
0016    U4StepPoint_OpFastSim, 
0017    U4StepPoint_OTHER 
0018 };  
0019 
0020 struct U4_API U4StepPoint
0021 {
0022     static const plog::Severity LEVEL ; 
0023     static void Update(sphoton& photon, const G4StepPoint* point);
0024     static std::string DescPositionTime(const G4StepPoint* point ); 
0025 
0026     static constexpr const char* Undefined_      = "Undefined" ; 
0027     static constexpr const char* NoProc_         = "NoProc" ; 
0028     static constexpr const char* Transportation_ = "Transportation" ; 
0029     static constexpr const char* OpRayleigh_     = "OpRayleigh" ; 
0030     static constexpr const char* OpAbsorption_   = "OpAbsorption" ; 
0031     static constexpr const char* OTHER_          = "OTHER" ; 
0032     static           const char* OpFastSim_ ;  // default "fast_sim_man" configurable by envvar U4StepPoint_OpFastSim 
0033 
0034     static const char* ProcessName(const G4StepPoint* point); 
0035     static unsigned ProcessDefinedStepType(const G4StepPoint* point); 
0036     static unsigned ProcessDefinedStepType(const char* name); 
0037     static const char* ProcessDefinedStepTypeName(unsigned type); 
0038 
0039     static unsigned BoundaryFlag(unsigned status) ; 
0040 
0041 
0042     template <typename T>
0043     static bool IsTransportationBoundary(const G4StepPoint* point);  
0044 
0045     template <typename T>
0046     static unsigned Flag(const G4StepPoint* point, bool warn, bool& tir ); 
0047 
0048 
0049     template <typename T>
0050     static std::string Desc(const G4StepPoint* point); 
0051 
0052 }; 
0053 
0054