Geant4.10
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions | Protected Member Functions | Protected Attributes
G4VSensitiveDetector Class Referenceabstract

#include <G4VSensitiveDetector.hh>

Inheritance diagram for G4VSensitiveDetector:
B2TrackerSD B2TrackerSD B2TrackerSD B4cCalorimeterSD B5DriftChamberSD B5EmCalorimeterSD B5HadCalorimeterSD B5HodoscopeSD CCaloSD CheckVolumeSD CheckVolumeSD CML2DummySD CML2SDWithParticle CML2SDWithVoxels demo.ScoreSD DMXPmtSD DMXScintSD Em10CalorimeterSD eRositaTrackerSD ExGflashSensitiveDetector ExN02TrackerSD ExN04CalorimeterSD ExN04CalorimeterSD ExN04DummySD ExN04DummySD ExN04MuonSD ExN04MuonSD ExN04TrackerSD ExN04TrackerSD ExP01TrackerSD ExTGTrackerSD F01CalorimeterSD F02CalorimeterSD F03CalorimeterSD FCALEMModuleSD FCALHadModuleSD FCALTestbeamSetupSD G04SensitiveDetector G4HumanDummyLeftBreastSD G4HumanDummyRightBreastSD G4HumanPhantomSD G4MultiFunctionalDetector GammaRayTelAnticoincidenceSD GammaRayTelCalorimeterSD GammaRayTelDummySD GammaRayTelTrackerSD H02MuonSD HadrontherapyDetectorSD HadrontherapyDummySD IORTDetectorSD IORTDummySD LXePMTSD LXeScintSD Par01CalorimeterSD PhantomSD pyG4VSensitiveDetector::CB_G4VSensitiveDetector RE01CalorimeterSD RE01TrackerSD RE05CalorimeterSD RE05DummySD RE05MuonSD RE05TrackerSD RMC01SD SensitiveDetector TargetSD TargetSD TargetSD TargetSD UltraPMTSD VoxelSD WLSPhotonDetSD XAluminumElectrodeSensitivity XrayFluoHPGeSD XrayFluoSD

Public Member Functions

 G4VSensitiveDetector (G4String name)
 
 G4VSensitiveDetector (const G4VSensitiveDetector &right)
 
virtual ~G4VSensitiveDetector ()
 
const G4VSensitiveDetectoroperator= (const G4VSensitiveDetector &right)
 
G4int operator== (const G4VSensitiveDetector &right) const
 
G4int operator!= (const G4VSensitiveDetector &right) const
 
virtual void Initialize (G4HCofThisEvent *)
 
virtual void EndOfEvent (G4HCofThisEvent *)
 
virtual void clear ()
 
virtual void DrawAll ()
 
virtual void PrintAll ()
 
G4bool Hit (G4Step *aStep)
 
void SetROgeometry (G4VReadOutGeometry *value)
 
void SetFilter (G4VSDFilter *value)
 
G4int GetNumberOfCollections () const
 
G4String GetCollectionName (G4int id) const
 
void SetVerboseLevel (G4int vl)
 
void Activate (G4bool activeFlag)
 
G4bool isActive () const
 
G4String GetName () const
 
G4String GetPathName () const
 
G4String GetFullPathName () const
 
G4VReadOutGeometryGetROgeometry () const
 
G4VSDFilterGetFilter () const
 
virtual G4VSensitiveDetectorClone () const
 

Protected Member Functions

virtual G4bool ProcessHits (G4Step *aStep, G4TouchableHistory *ROhist)=0
 
virtual G4int GetCollectionID (G4int i)
 

Protected Attributes

G4CollectionNameVector collectionName
 
G4String SensitiveDetectorName
 
G4String thePathName
 
G4String fullPathName
 
G4int verboseLevel
 
G4bool active
 
G4VReadOutGeometryROgeometry
 
G4VSDFilterfilter
 

Detailed Description

Definition at line 50 of file G4VSensitiveDetector.hh.

Constructor & Destructor Documentation

G4VSensitiveDetector::G4VSensitiveDetector ( G4String  name)

Definition at line 33 of file G4VSensitiveDetector.cc.

References fullPathName, G4String::last(), G4String::prepend(), G4String::remove(), SensitiveDetectorName, and thePathName.

34 :verboseLevel(0),active(true),ROgeometry(0),filter(0)
35 {
36  size_t sLast = name.last('/');
37  if(sLast==std::string::npos)
38  { // detector name only
40  thePathName = "/";
41  }
42  else
43  { // name conatin the directory path
45  SensitiveDetectorName.remove(0,sLast+1);
46  thePathName = name;
47  thePathName.remove(sLast+1,name.length()-sLast);
48  if(thePathName(0)!='/') thePathName.prepend("/");
49  }
51 }
G4String & remove(str_size)
const XML_Char * name
G4String & prepend(const char *)
G4VReadOutGeometry * ROgeometry
G4int last(char) const
G4VSensitiveDetector::G4VSensitiveDetector ( const G4VSensitiveDetector right)
G4VSensitiveDetector::~G4VSensitiveDetector ( )
virtual

Definition at line 64 of file G4VSensitiveDetector.cc.

65 {
66 }

Member Function Documentation

void G4VSensitiveDetector::Activate ( G4bool  activeFlag)
inline

Definition at line 142 of file G4VSensitiveDetector.hh.

References active.

Referenced by G4SDStructure::Activate(), and export_G4VSensitiveDetector().

143  { active = activeFlag; }
void G4VSensitiveDetector::clear ( void  )
virtual
G4VSensitiveDetector * G4VSensitiveDetector::Clone ( ) const
virtual

Definition at line 68 of file G4VSensitiveDetector.cc.

References FatalException, and G4Exception().

Referenced by G4VUserDetectorConstruction::CloneSD().

69 {
71  msg << "Derived class does not implement cloning,\n"
72  << "but Clone method called.\n"
73  << "Cannot continue;";
74  G4Exception("G4VSensitiveDetector::Clone","Det0010",FatalException,msg);
75  return NULL;
76 }
std::ostringstream G4ExceptionDescription
Definition: globals.hh:76
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
Definition: G4Exception.cc:41
void G4VSensitiveDetector::DrawAll ( void  )
virtual
void G4VSensitiveDetector::EndOfEvent ( G4HCofThisEvent )
virtual
G4int G4VSensitiveDetector::GetCollectionID ( G4int  i)
protectedvirtual
G4String G4VSensitiveDetector::GetCollectionName ( G4int  id) const
inline

Definition at line 138 of file G4VSensitiveDetector.hh.

References collectionName.

Referenced by G4SDManager::AddNewDetector(), export_G4VSensitiveDetector(), and G4HCtable::GetCollectionID().

139  { return collectionName[id]; }
G4CollectionNameVector collectionName
G4VSDFilter* G4VSensitiveDetector::GetFilter ( ) const
inline

Definition at line 154 of file G4VSensitiveDetector.hh.

References filter.

155  { return filter; }
G4String G4VSensitiveDetector::GetFullPathName ( ) const
inline

Definition at line 150 of file G4VSensitiveDetector.hh.

References fullPathName.

Referenced by G4VUserDetectorConstruction::CloneSD(), and export_G4VSensitiveDetector().

151  { return fullPathName; }
G4String G4VSensitiveDetector::GetName ( void  ) const
inline

Definition at line 146 of file G4VSensitiveDetector.hh.

References SensitiveDetectorName.

Referenced by G4SDStructure::AddNewDetector(), G4SDManager::AddNewDetector(), CCalSensAssign::assign(), G4VUserDetectorConstruction::CloneSD(), export_G4VSensitiveDetector(), G4HCtable::GetCollectionID(), G4VPrimitiveScorer::GetCollectionID(), G4SDStructure::GetSD(), G4PSCellCharge::Initialize(), G4PSEnergyDeposit::Initialize(), G4PSDoseDeposit::Initialize(), G4PSNofStep::Initialize(), G4PSTermination::Initialize(), G4PSTrackCounter::Initialize(), G4PSNofCollision::Initialize(), G4PSMinKinEAtGeneration::Initialize(), G4PSPassageTrackLength::Initialize(), G4PSPopulation::Initialize(), CexmcSimpleEnergyDeposit::Initialize(), G4PSPassageCellCurrent::Initialize(), CexmcTrackPoints::Initialize(), G4PSPassageCellFlux::Initialize(), G4PSTrackLength::Initialize(), G4PSNofSecondary::Initialize(), G4PSCellFlux::Initialize(), G4PSSphereSurfaceCurrent::Initialize(), G4PSCylinderSurfaceFlux::Initialize(), G4PSSphereSurfaceFlux::Initialize(), G4PSFlatSurfaceCurrent::Initialize(), G4PSCylinderSurfaceCurrent::Initialize(), G4PSFlatSurfaceFlux::Initialize(), G4SDStructure::ListTree(), G3DetTable::PrintAll(), G4PSEnergyDeposit::PrintAll(), G4PSCellCharge::PrintAll(), G4PSDoseDeposit::PrintAll(), G4PSNofStep::PrintAll(), G4PSPassageTrackLength::PrintAll(), G4PSTermination::PrintAll(), G4PSTrackCounter::PrintAll(), G4PSNofCollision::PrintAll(), G4PSPassageCellCurrent::PrintAll(), G4PSPopulation::PrintAll(), G4PSPassageCellFlux::PrintAll(), G4PSTrackLength::PrintAll(), G4PSCellFlux::PrintAll(), G4PSSphereSurfaceCurrent::PrintAll(), G4PSCylinderSurfaceFlux::PrintAll(), G4PSSphereSurfaceFlux::PrintAll(), G4PSFlatSurfaceCurrent::PrintAll(), G4PSCylinderSurfaceCurrent::PrintAll(), G4PSFlatSurfaceFlux::PrintAll(), CexmcPrimitiveScorer::PrintHeader(), H02MuonSD::ProcessHits(), SensitiveDetector::ProcessHits(), HadrontherapyDetectorSD::ProcessHits(), IORTDetectorSD::ProcessHits(), G4ASCIITreeSceneHandler::RequestPrimitives(), CCalSensitiveDetectors::setSensitive(), G4VUserParallelWorld::SetSensitiveDetector(), and G4VUserDetectorConstruction::SetSensitiveDetector().

147  { return SensitiveDetectorName; }
G4int G4VSensitiveDetector::GetNumberOfCollections ( ) const
inline

Definition at line 136 of file G4VSensitiveDetector.hh.

References collectionName.

Referenced by G4SDManager::AddNewDetector(), export_G4VSensitiveDetector(), and G4HCtable::GetCollectionID().

137  { return collectionName.size(); }
G4CollectionNameVector collectionName
G4String G4VSensitiveDetector::GetPathName ( ) const
inline

Definition at line 148 of file G4VSensitiveDetector.hh.

References thePathName.

Referenced by G4SDManager::AddNewDetector(), and export_G4VSensitiveDetector().

149  { return thePathName; }
G4VReadOutGeometry* G4VSensitiveDetector::GetROgeometry ( ) const
inline
G4bool G4VSensitiveDetector::Hit ( G4Step aStep)
inline

Definition at line 114 of file G4VSensitiveDetector.hh.

References G4VSDFilter::Accept(), G4VReadOutGeometry::CheckROVolume(), filter, isActive(), ProcessHits(), and ROgeometry.

Referenced by G4ParallelWorldProcess::AtRestDoIt(), G4ParallelWorldScoringProcess::AtRestDoIt(), export_G4VSensitiveDetector(), G4ParallelWorldProcess::PostStepDoIt(), G4ScoreSplittingProcess::PostStepDoIt(), G4ParallelWorldScoringProcess::PostStepDoIt(), and G4SteppingManager::Stepping().

115  {
116  G4TouchableHistory* ROhis = 0;
117  if(!isActive()) return false;
118  if(filter)
119  { if(!(filter->Accept(aStep))) return false; }
120  if(ROgeometry)
121  { if(!(ROgeometry->CheckROVolume(aStep,ROhis))) return false; }
122  return ProcessHits(aStep,ROhis);
123  }
G4VReadOutGeometry * ROgeometry
virtual G4bool CheckROVolume(G4Step *, G4TouchableHistory *&)
virtual G4bool Accept(const G4Step *) const =0
virtual G4bool ProcessHits(G4Step *aStep, G4TouchableHistory *ROhist)=0
void G4VSensitiveDetector::Initialize ( G4HCofThisEvent )
virtual
G4bool G4VSensitiveDetector::isActive ( ) const
inline
G4int G4VSensitiveDetector::operator!= ( const G4VSensitiveDetector right) const

Definition at line 95 of file G4VSensitiveDetector.cc.

96 {
97  return (this!=&right);
98 }
const G4VSensitiveDetector & G4VSensitiveDetector::operator= ( const G4VSensitiveDetector right)
G4int G4VSensitiveDetector::operator== ( const G4VSensitiveDetector right) const

Definition at line 90 of file G4VSensitiveDetector.cc.

91 {
92  return (this==&right);
93 }
void G4VSensitiveDetector::PrintAll ( void  )
virtual
virtual G4bool G4VSensitiveDetector::ProcessHits ( G4Step aStep,
G4TouchableHistory ROhist 
)
protectedpure virtual
void G4VSensitiveDetector::SetFilter ( G4VSDFilter value)
inline
void G4VSensitiveDetector::SetROgeometry ( G4VReadOutGeometry value)
inline
void G4VSensitiveDetector::SetVerboseLevel ( G4int  vl)
inline

Definition at line 140 of file G4VSensitiveDetector.hh.

References verboseLevel.

Referenced by export_G4VSensitiveDetector().

141  { verboseLevel = vl; }

Field Documentation

G4bool G4VSensitiveDetector::active
protected

Definition at line 109 of file G4VSensitiveDetector.hh.

Referenced by Activate(), G4VSensitiveDetector(), isActive(), and operator=().

G4CollectionNameVector G4VSensitiveDetector::collectionName
protected

Definition at line 99 of file G4VSensitiveDetector.hh.

Referenced by B2TrackerSD::B2TrackerSD(), B4cCalorimeterSD::B4cCalorimeterSD(), B5DriftChamberSD::B5DriftChamberSD(), B5EmCalorimeterSD::B5EmCalorimeterSD(), B5HadCalorimeterSD::B5HadCalorimeterSD(), B5HodoscopeSD::B5HodoscopeSD(), CCaloSD::CCaloSD(), DMXPmtSD::DMXPmtSD(), DMXScintSD::DMXScintSD(), Em10CalorimeterSD::Em10CalorimeterSD(), Par01CalorimeterSD::EndOfEvent(), F02CalorimeterSD::EndOfEvent(), F01CalorimeterSD::EndOfEvent(), F03CalorimeterSD::EndOfEvent(), Em10CalorimeterSD::EndOfEvent(), XrayFluoHPGeSD::EndOfEvent(), GammaRayTelTrackerSD::EndOfEvent(), GammaRayTelAnticoincidenceSD::EndOfEvent(), GammaRayTelCalorimeterSD::EndOfEvent(), DMXScintSD::EndOfEvent(), DMXPmtSD::EndOfEvent(), UltraPMTSD::EndOfEvent(), XrayFluoSD::EndOfEvent(), eRositaTrackerSD::eRositaTrackerSD(), ExGflashSensitiveDetector::ExGflashSensitiveDetector(), ExN02TrackerSD::ExN02TrackerSD(), ExN04CalorimeterSD::ExN04CalorimeterSD(), ExN04MuonSD::ExN04MuonSD(), ExN04TrackerSD::ExN04TrackerSD(), ExP01TrackerSD::ExP01TrackerSD(), ExTGTrackerSD::ExTGTrackerSD(), F01CalorimeterSD::F01CalorimeterSD(), F02CalorimeterSD::F02CalorimeterSD(), F03CalorimeterSD::F03CalorimeterSD(), G4HumanPhantomSD::G4HumanPhantomSD(), GammaRayTelAnticoincidenceSD::GammaRayTelAnticoincidenceSD(), GammaRayTelCalorimeterSD::GammaRayTelCalorimeterSD(), GammaRayTelTrackerSD::GammaRayTelTrackerSD(), GetCollectionID(), GetCollectionName(), GetNumberOfCollections(), H02MuonSD::H02MuonSD(), HadrontherapyDetectorSD::HadrontherapyDetectorSD(), Par01CalorimeterSD::Initialize(), H02MuonSD::Initialize(), ExN04CalorimeterSD::Initialize(), ExN04MuonSD::Initialize(), ExN04TrackerSD::Initialize(), RE01TrackerSD::Initialize(), RE05CalorimeterSD::Initialize(), RE05MuonSD::Initialize(), RE05TrackerSD::Initialize(), LXeScintSD::Initialize(), ExTGTrackerSD::Initialize(), eRositaTrackerSD::Initialize(), G4HumanPhantomSD::Initialize(), B5HodoscopeSD::Initialize(), RE01CalorimeterSD::Initialize(), ExGflashSensitiveDetector::Initialize(), B5HadCalorimeterSD::Initialize(), B5DriftChamberSD::Initialize(), B5EmCalorimeterSD::Initialize(), SensitiveDetector::Initialize(), WLSPhotonDetSD::Initialize(), LXePMTSD::Initialize(), HadrontherapyDetectorSD::Initialize(), ExN02TrackerSD::Initialize(), F02CalorimeterSD::Initialize(), ExP01TrackerSD::Initialize(), XAluminumElectrodeSensitivity::Initialize(), F03CalorimeterSD::Initialize(), F01CalorimeterSD::Initialize(), IORTDetectorSD::Initialize(), Em10CalorimeterSD::Initialize(), XrayFluoHPGeSD::Initialize(), GammaRayTelAnticoincidenceSD::Initialize(), GammaRayTelCalorimeterSD::Initialize(), GammaRayTelTrackerSD::Initialize(), B2TrackerSD::Initialize(), B4cCalorimeterSD::Initialize(), DMXScintSD::Initialize(), UltraPMTSD::Initialize(), DMXPmtSD::Initialize(), CCaloSD::Initialize(), XrayFluoSD::Initialize(), RMC01SD::Initialize(), IORTDetectorSD::IORTDetectorSD(), LXePMTSD::LXePMTSD(), LXeScintSD::LXeScintSD(), Par01CalorimeterSD::Par01CalorimeterSD(), RE01CalorimeterSD::RE01CalorimeterSD(), RE01TrackerSD::RE01TrackerSD(), RE05CalorimeterSD::RE05CalorimeterSD(), RE05MuonSD::RE05MuonSD(), RE05TrackerSD::RE05TrackerSD(), G4MultiFunctionalDetector::RegisterPrimitive(), G4MultiFunctionalDetector::RemovePrimitive(), RMC01SD::RMC01SD(), SensitiveDetector::SensitiveDetector(), UltraPMTSD::UltraPMTSD(), WLSPhotonDetSD::WLSPhotonDetSD(), XAluminumElectrodeSensitivity::XAluminumElectrodeSensitivity(), XrayFluoHPGeSD::XrayFluoHPGeSD(), and XrayFluoSD::XrayFluoSD().

G4VSDFilter* G4VSensitiveDetector::filter
protected

Definition at line 111 of file G4VSensitiveDetector.hh.

Referenced by G4VSensitiveDetector(), GetFilter(), Hit(), operator=(), and SetFilter().

G4String G4VSensitiveDetector::fullPathName
protected

Definition at line 107 of file G4VSensitiveDetector.hh.

Referenced by G4VSensitiveDetector(), GetFullPathName(), and operator=().

G4VReadOutGeometry* G4VSensitiveDetector::ROgeometry
protected
G4String G4VSensitiveDetector::SensitiveDetectorName
protected
G4String G4VSensitiveDetector::thePathName
protected

Definition at line 106 of file G4VSensitiveDetector.hh.

Referenced by G4VSensitiveDetector(), GetPathName(), and operator=().

G4int G4VSensitiveDetector::verboseLevel
protected

The documentation for this class was generated from the following files: