14#include "BesMucHit.hh"
15#include "G4UnitsTable.hh"
16#include "G4VVisManager.hh"
19#include "G4VisAttributes.hh"
35 m_TrackIndex = trIndex;
44 m_TrackID = right.m_TrackID;
45 m_TrackIndex = right.m_TrackIndex;
46 m_PDGCode = right.m_PDGCode;
47 m_Edep = right.m_Edep;
48 m_Energy = right.m_Energy;
49 m_Time = right.m_Time;
51 m_PosLocal = right.m_PosLocal;
53 m_Momentum = right.m_Momentum;
54 m_Volume = right.m_Volume;
55 m_VolumeName = right.m_VolumeName;
56 m_Part = right.m_Part;
59 m_Panel = right.m_Panel;
60 m_GasChamber = right.m_GasChamber;
61 m_Strip = right.m_Strip;
66 m_TrackID = right.m_TrackID;
67 m_TrackIndex = right.m_TrackIndex;
68 m_PDGCode = right.m_PDGCode;
69 m_Edep = right.m_Edep;
70 m_Energy = right.m_Energy;
71 m_Time = right.m_Time;
73 m_PosLocal = right.m_PosLocal;
75 m_Momentum = right.m_Momentum;
76 m_Volume = right.m_Volume;
77 m_VolumeName = right.m_VolumeName;
78 m_Part = right.m_Part;
81 m_Panel = right.m_Panel;
82 m_GasChamber = right.m_GasChamber;
83 m_Strip = right.m_Strip;
89 return (
this==&right) ? 1 : 0;
95 m_VolumeName = pv->GetLogicalVolume()->GetName();
97 G4LogicalVolume *lvGap = pv->GetMotherLogical();
98 G4String GapName = lvGap->GetName();
114 G4String strPart = m_VolumeName.substr(5,1);
115 G4String strSeg = GapName.substr(7,1);
116 G4String strGap = m_VolumeName.substr(9,1);
117 G4String strGasChamber = m_VolumeName.substr(11,1);
118 G4String strPanel = m_VolumeName.substr(14,1);
125 std::istrstream partBuf(strPart.c_str(), strlen(strPart.c_str()));
126 std::istrstream segBuf(strSeg.c_str(), strlen(strSeg.c_str()));
127 std::istrstream gapBuf(strGap.c_str(), strlen(strGap.c_str()));
128 std::istrstream panelBuf(strPanel.c_str(), strlen(strPanel.c_str()));
129 std::istrstream gasChamberBuf(strGasChamber.c_str(), strlen(strGasChamber.c_str()));
135 gasChamberBuf >> m_GasChamber;
141 G4VVisManager* pVVisManager = G4VVisManager::GetConcreteInstance();
144 G4Circle circle(m_Pos);
145 circle.SetScreenSize(4.);
146 circle.SetFillStyle(G4Circle::filled);
147 G4Colour colour(0.,0.,1.);
148 G4VisAttributes attribs(colour);
149 circle.SetVisAttributes(attribs);
150 pVVisManager->Draw(circle);
177 G4cout <<
" Track id: " << m_TrackID
178 <<
" pdg code: " << m_PDGCode
180 <<
" energy deposit: " << G4BestUnit(m_Edep,
"Energy")
181 <<
" pos: " << G4BestUnit(m_Pos,
"Length")
182 <<
" posLocal: " << G4BestUnit(m_PosLocal,
"Length")
184 <<
" energy: " << G4BestUnit(m_Energy,
"Energy")
185 <<
" direction: " << m_Dir
186 <<
" time: " << G4BestUnit(m_Time,
"Time")
187 <<
" volume name: " << m_VolumeName
G4Allocator< BesMucHit > BesMucHitAllocator
void SetVolume(G4VPhysicalVolume *pv)
int operator==(const BesMucHit &) const
const BesMucHit & operator=(const BesMucHit &)