20#ifndef VolumeTreeNavigator_H
21#define VolumeTreeNavigator_H
32class G4TouchableHistory;
33class G4VPhysicalVolume;
35typedef std::pair<G4VPhysicalVolume*,int>
VolID;
46 bool Ascend(
int levels = 1);
75 std::ostringstream
ss;
83 std::string s =
stringify(std::move(obj));
84 std::string::size_type col = s.find_first_of(
":");
85 while (col != std::string::npos) {
86 (s.substr(col,2) ==
"::") ? s.replace(col,2,
"_") : s.replace(col,1,
"-");
87 col = s.find_first_of(
":");
89 std::string::size_type
sp = s.find_first_of(
" ");
90 while (
sp != std::string::npos) {
92 sp = s.find_first_of(
" ");
std::vector< VolID > VolTree
std::pair< G4VPhysicalVolume *, int > VolID
std::string cleanstr(T obj)
std::string stringify(T obj)
AthMessaging(IMessageSvc *msgSvc, const std::string &name)
Constructor.
bool KillProcesses(const int, const char *,...)
int m_stepNo
depth of volume tree, step number
int GetStepNumber() const
bool Ascend(int levels=1)
VolNav m_h_end
specifies cut termination in history
G4VPhysicalVolume * GetVolume(int rel=0) const
const G4StepPoint * GetPostStepPoint() const
const G4Track * GetTrack() const
int GetCopyNumber(int rel=0) const
VolTree m_history
full volume history, cast as const after preparation
void SetDepthCutDetail(const char *)
bool Descend(int levels=1)
G4Track * m_track
current track
const VolTree & GetHistory() const
const G4TouchableHistory * m_preHistory
touchable history containing current volume's history
void SetDepthCutSimple(const int, const int, const int, const int)
VolumeTreeNavigator(const G4Step *)
G4StepPoint * m_preStepPoint
volume/process/etc.
G4StepPoint * m_postStepPoint
volume/process/etc.
VolNav m_h_nav
VolTree iterator with no access below cut.
const G4StepPoint * GetPreStepPoint() const