#include <BesMucHit.hh>
Public Member Functions | |
BesMucHit (const BesMucHit &) | |
BesMucHit (int prt, int seg, int lay, int str, int trId, int trIndex) | |
BesMucHit () | |
BesMucHit (const BesMucHit &) | |
BesMucHit (int prt, int seg, int lay, int str, int trId, int trIndex) | |
BesMucHit () | |
void | Draw () |
void | Draw () |
G4ThreeVector | GetDir () |
G4ThreeVector | GetDir () |
G4double | GetEdep () |
G4double | GetEdep () |
G4double | GetEnergy () |
G4double | GetEnergy () |
G4int | GetGap () |
G4int | GetGap () |
G4int | GetGasChamber () |
G4int | GetGasChamber () |
G4ThreeVector | GetMomentum () |
G4ThreeVector | GetMomentum () |
G4int | GetPanel () |
G4int | GetPanel () |
G4int | GetPart () |
G4int | GetPart () |
G4int | GetPDGCode () |
G4int | GetPDGCode () |
G4ThreeVector | GetPos () |
G4ThreeVector | GetPos () |
G4ThreeVector | GetPosLocal () |
G4ThreeVector | GetPosLocal () |
G4int | GetSeg () |
G4int | GetSeg () |
G4int | GetStrip () |
G4int | GetStrip () |
G4double | GetTime () |
G4double | GetTime () |
G4int | GetTrackID () |
G4int | GetTrackID () |
G4int | GetTrackIndex () |
G4int | GetTrackIndex () |
G4VPhysicalVolume * | GetVolume () |
G4VPhysicalVolume * | GetVolume () |
G4String | GetVolumeName () |
G4String | GetVolumeName () |
void | operator delete (void *) |
void | operator delete (void *) |
void * | operator new (size_t) |
void * | operator new (size_t) |
const BesMucHit & | operator= (const BesMucHit &) |
const BesMucHit & | operator= (const BesMucHit &) |
int | operator== (const BesMucHit &) const |
int | operator== (const BesMucHit &) const |
void | Print () |
void | Print () |
void | SetDir (G4ThreeVector dir) |
void | SetDir (G4ThreeVector dir) |
void | SetEdep (G4double de) |
void | SetEdep (G4double de) |
void | SetEnergy (G4double energy) |
void | SetEnergy (G4double energy) |
void | SetGap (G4int gap) |
void | SetGap (G4int gap) |
void | SetMomentum (G4ThreeVector momentum) |
void | SetMomentum (G4ThreeVector momentum) |
void | SetPart (G4int part) |
void | SetPart (G4int part) |
void | SetPDGCode (G4int pdg) |
void | SetPDGCode (G4int pdg) |
void | SetPos (G4ThreeVector xyz) |
void | SetPos (G4ThreeVector xyz) |
void | SetPosLocal (G4ThreeVector xyzLocal) |
void | SetPosLocal (G4ThreeVector xyzLocal) |
void | SetSeg (G4int seg) |
void | SetSeg (G4int seg) |
void | SetStrip (G4int strip) |
void | SetStrip (G4int strip) |
void | SetTime (G4double t) |
void | SetTime (G4double t) |
void | SetTrackID (G4int track) |
void | SetTrackID (G4int track) |
void | SetTrackIndex (G4int index) |
void | SetTrackIndex (G4int index) |
void | SetVolume (G4VPhysicalVolume *pv) |
void | SetVolume (G4VPhysicalVolume *pv) |
~BesMucHit () | |
~BesMucHit () | |
Private Attributes | |
G4ThreeVector | m_Dir |
G4double | m_Edep |
G4double | m_Energy |
G4int | m_Gap |
G4int | m_GasChamber |
G4ThreeVector | m_Momentum |
G4int | m_Panel |
G4int | m_Part |
G4int | m_PDGCode |
G4ThreeVector | m_Pos |
G4ThreeVector | m_PosLocal |
G4int | m_Seg |
G4int | m_Strip |
G4double | m_Time |
G4int | m_TrackID |
G4int | m_TrackIndex |
G4VPhysicalVolume * | m_Volume |
G4VPhysicalVolume * | m_Volume |
G4String | m_VolumeName |
|
00026 { }
|
|
00029 { 00030 m_Part = prt; 00031 m_Seg = seg; 00032 m_Gap = lay; 00033 m_Strip = str; 00034 m_TrackID = trId; 00035 m_TrackIndex = trIndex; 00036 }
|
|
00039 { }
|
|
00042 :G4VHit() 00043 { 00044 m_TrackID = right.m_TrackID; 00045 m_TrackIndex = right.m_TrackIndex; 00046 m_PDGCode = right.m_PDGCode; 00047 m_Edep = right.m_Edep; 00048 m_Energy = right.m_Energy; 00049 m_Time = right.m_Time; 00050 m_Pos = right.m_Pos; 00051 m_PosLocal = right.m_PosLocal; 00052 m_Dir = right.m_Dir; 00053 m_Momentum = right.m_Momentum; 00054 m_Volume = right.m_Volume; 00055 m_VolumeName = right.m_VolumeName; 00056 m_Part = right.m_Part; 00057 m_Seg = right.m_Seg; 00058 m_Gap = right.m_Gap; 00059 m_Panel = right.m_Panel; 00060 m_GasChamber = right.m_GasChamber; //now it means up or down RPC! 2006.10.17 00061 m_Strip = right.m_Strip; 00062 }
|
|
|
|
|
|
|
|
|
|
|
|
00140 { 00141 G4VVisManager* pVVisManager = G4VVisManager::GetConcreteInstance(); 00142 if(pVVisManager) 00143 { 00144 G4Circle circle(m_Pos); 00145 circle.SetScreenSize(4.); 00146 circle.SetFillStyle(G4Circle::filled); 00147 G4Colour colour(0.,0.,1.); 00148 G4VisAttributes attribs(colour); 00149 circle.SetVisAttributes(attribs); 00150 pVVisManager->Draw(circle); 00151 00152 //re-visualize a physical volume where a hit is detected 00153 // 00154 // 00155 /* const G4ThreeVector& thrVector=G4ThreeVector(1.,0.,0.); 00156 const G4RotationMatrix &rot = 00157 G4RotationMatrix(thrVector,0.*deg); 00158 00159 G4Transform3D trans(rot, pos); 00160 G4VisAttributes att; 00161 const G4VPhysicalVolume* pPhys= detector->GetPhysicalTrap(); 00162 const G4LogicalVolume* logVol= 00163 pPhys->GetLogicalVolume(); 00164 const G4VisAttributes* pVA=logVol->GetVisAttributes(); 00165 if(pVA) att=*pVA; 00166 G4Colour col(1.,0.,0.); 00167 att.SetColour(col); 00168 att.SetForceSolid(true); 00169 00170 pVVisManager->Draw(*pPhys,att,trans);*/ 00171 } 00172 }
|
|
00070 { return m_Dir; };
|
|
00070 { return m_Dir; };
|
|
00065 { return m_Edep; };
|
|
00065 { return m_Edep; };
|
|
00066 { return m_Energy; };
|
|
00066 { return m_Energy; };
|
|
00076 { return m_Gap; };
|
|
00076 { return m_Gap; };
|
|
00079 { return m_GasChamber; };
|
|
00079 { return m_GasChamber; };
|
|
00071 { return m_Momentum; };
|
|
00071 { return m_Momentum; };
|
|
00078 { return m_Panel; };
|
|
00078 { return m_Panel; };
|
|
00074 { return m_Part; };
|
|
00074 { return m_Part; };
|
|
00064 { return m_PDGCode; };
|
|
00064 { return m_PDGCode; };
|
|
00068 { return m_Pos; };
|
|
00068 { return m_Pos; };
|
|
00069 { return m_PosLocal; };
|
|
00069 { return m_PosLocal; };
|
|
00075 { return m_Seg; };
|
|
00075 { return m_Seg; };
|
|
00077 { return m_Strip; };
|
|
00077 { return m_Strip; };
|
|
00067 { return m_Time; };
|
|
00067 { return m_Time; };
|
|
00062 { return m_TrackID; };
|
|
00062 { return m_TrackID; };
|
|
00063 { return m_TrackIndex;};
|
|
00063 { return m_TrackIndex;};
|
|
00072 { return m_Volume; };
|
|
00072 { return m_Volume; };
|
|
00073 { return m_VolumeName; };
|
|
00073 { return m_VolumeName; };
|
|
|
|
00116 { 00117 BesMucHitAllocator.FreeSingle((BesMucHit*) aHit); 00118 }
|
|
|
|
00109 { 00110 void *aHit; 00111 aHit = (void *) BesMucHitAllocator.MallocSingle(); 00112 return aHit; 00113 }
|
|
|
|
00065 { 00066 m_TrackID = right.m_TrackID; 00067 m_TrackIndex = right.m_TrackIndex; 00068 m_PDGCode = right.m_PDGCode; 00069 m_Edep = right.m_Edep; 00070 m_Energy = right.m_Energy; 00071 m_Time = right.m_Time; 00072 m_Pos = right.m_Pos; 00073 m_PosLocal = right.m_PosLocal; 00074 m_Dir = right.m_Dir; 00075 m_Momentum = right.m_Momentum; 00076 m_Volume = right.m_Volume; 00077 m_VolumeName = right.m_VolumeName; 00078 m_Part = right.m_Part; 00079 m_Seg = right.m_Seg; 00080 m_Gap = right.m_Gap; 00081 m_Panel = right.m_Panel; 00082 m_GasChamber = right.m_GasChamber; 00083 m_Strip = right.m_Strip; 00084 return *this; 00085 }
|
|
|
|
00088 { 00089 return (this==&right) ? 1 : 0; 00090 }
|
|
|
|
00175 { 00176 00177 G4cout << " Track id: " << m_TrackID 00178 << " pdg code: " << m_PDGCode 00179 << G4endl 00180 << " energy deposit: " << G4BestUnit(m_Edep, "Energy") 00181 << " pos: " << G4BestUnit(m_Pos, "Length") 00182 << " posLocal: " << G4BestUnit(m_PosLocal, "Length") 00183 << G4endl 00184 << " energy: " << G4BestUnit(m_Energy, "Energy") 00185 << " direction: " << m_Dir 00186 << " time: " << G4BestUnit(m_Time,"Time") 00187 << " volume name: " << m_VolumeName 00188 << G4endl; 00189 }
|
|
00053 { m_Dir = dir; };
|
|
00053 { m_Dir = dir; };
|
|
00048 { m_Edep = de; };
|
|
00048 { m_Edep = de; };
|
|
00049 { m_Energy = energy; };
|
|
00049 { m_Energy = energy; };
|
|
00058 { m_Gap = gap; };
|
|
00058 { m_Gap = gap; };
|
|
00054 { m_Momentum = momentum; };
|
|
00054 { m_Momentum = momentum; };
|
|
00056 { m_Part = part; };
|
|
00056 { m_Part = part; };
|
|
00047 { m_PDGCode = pdg; };
|
|
00047 { m_PDGCode = pdg; };
|
|
00051 { m_Pos = xyz; };
|
|
00051 { m_Pos = xyz; };
|
|
00052 { m_PosLocal = xyzLocal; };
|
|
00052 { m_PosLocal = xyzLocal; };
|
|
00057 { m_Seg = seg; };
|
|
00057 { m_Seg = seg; };
|
|
00059 { m_Strip = strip; };
|
|
00059 { m_Strip = strip; };
|
|
00050 { m_Time = t; };
|
|
00050 { m_Time = t; };
|
|
00045 { m_TrackID = track; };
|
|
00045 { m_TrackID = track; };
|
|
00046 { m_TrackIndex = index;};
|
|
00046 { m_TrackIndex = index;};
|
|
|
|
00093 { 00094 m_Volume = pv; 00095 m_VolumeName = pv->GetLogicalVolume()->GetName(); 00096 00097 G4LogicalVolume *lvGap = pv->GetMotherLogical(); 00098 G4String GapName = lvGap->GetName(); 00099 00100 //G4cout<<" in BesMucHit ---- "<<m_VolumeName<<" "<<GapName<<G4endl; 00101 // // "logicalMucPart1Seg0Gap4Panel1GasChamber0" 00102 // // "logicalMucPart1Seg4Gap0" 00103 // G4String strPart = m_VolumeName.substr(14,1); 00104 // G4String strSeg = GapName.substr(18,1); 00105 // G4String strGap = m_VolumeName.substr(22,1); 00106 // G4String strPanel = m_VolumeName.substr(28,1); 00107 // G4String strGasChamber = m_VolumeName.substr(39,1); 00108 00109 // "logicalMucPart0Seg0Gap0RpcUpDown0Panel0GasChamber" 2006.10.17 liangyt 00110 // "logicalMucPart0Seg0Gap0" 00111 00112 // "lMucP0S0G0R0Pn0C" 2006.12.05 liangyt 00113 // "lMucP0S0G0" 00114 G4String strPart = m_VolumeName.substr(5,1); 00115 G4String strSeg = GapName.substr(7,1); 00116 G4String strGap = m_VolumeName.substr(9,1); 00117 G4String strGasChamber = m_VolumeName.substr(11,1); //same as rpcupdown 00118 G4String strPanel = m_VolumeName.substr(14,1); 00119 // G4String strPart = m_VolumeName.substr(14,1); 00120 // G4String strSeg = GapName.substr(18,1); 00121 // G4String strGap = m_VolumeName.substr(22,1); 00122 // G4String strGasChamber = m_VolumeName.substr(32,1); //same as rpcupdown 00123 // G4String strPanel = m_VolumeName.substr(38,1); 00124 00125 std::istrstream partBuf(strPart.c_str(), strlen(strPart.c_str())); 00126 std::istrstream segBuf(strSeg.c_str(), strlen(strSeg.c_str())); 00127 std::istrstream gapBuf(strGap.c_str(), strlen(strGap.c_str())); 00128 std::istrstream panelBuf(strPanel.c_str(), strlen(strPanel.c_str())); 00129 std::istrstream gasChamberBuf(strGasChamber.c_str(), strlen(strGasChamber.c_str())); 00130 00131 partBuf >> m_Part ; 00132 segBuf >> m_Seg; 00133 gapBuf >> m_Gap; 00134 panelBuf >> m_Panel; 00135 gasChamberBuf >> m_GasChamber; 00136 }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|