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_ ;
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