Geant4-11
Public Member Functions | Protected Member Functions | Protected Attributes
G4VSensitiveDetector Class Referenceabstract

#include <G4VSensitiveDetector.hh>

Inheritance diagram for G4VSensitiveDetector:
G4MultiFunctionalDetector G4MultiSensitiveDetector demo.ScoreSD pyG4VSensitiveDetector::CB_G4VSensitiveDetector

Public Member Functions

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

Protected Member Functions

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

Protected Attributes

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

Detailed Description

Definition at line 49 of file G4VSensitiveDetector.hh.

Constructor & Destructor Documentation

◆ G4VSensitiveDetector() [1/2]

G4VSensitiveDetector::G4VSensitiveDetector ( G4String  name)

Definition at line 32 of file G4VSensitiveDetector.cc.

33 : verboseLevel(0)
34 , active(true)
35 , ROgeometry(nullptr)
36 , filter(nullptr)
37{
38 size_t sLast = name.rfind('/');
39 if(sLast == std::string::npos)
40 { // detector name only
42 thePathName = "/";
43 }
44 else
45 { // name conatin the directory path
47 SensitiveDetectorName.erase(0, sLast + 1);
49 thePathName.erase(sLast + 1);
50 if(thePathName[0] != '/')
51 thePathName.insert(0, "/");
52 }
54}
G4VReadOutGeometry * ROgeometry
const char * name(G4int ptype)

References fullPathName, G4InuclParticleNames::name(), SensitiveDetectorName, and thePathName.

◆ G4VSensitiveDetector() [2/2]

G4VSensitiveDetector::G4VSensitiveDetector ( const G4VSensitiveDetector right)

◆ ~G4VSensitiveDetector()

G4VSensitiveDetector::~G4VSensitiveDetector ( )
virtual

Definition at line 67 of file G4VSensitiveDetector.cc.

67{}

Member Function Documentation

◆ Activate()

void G4VSensitiveDetector::Activate ( G4bool  activeFlag)
inline

Definition at line 148 of file G4VSensitiveDetector.hh.

148{ active = activeFlag; }

References active.

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

◆ clear()

void G4VSensitiveDetector::clear ( )
virtual

Reimplemented in G4MultiFunctionalDetector, and G4MultiSensitiveDetector.

Definition at line 117 of file G4VSensitiveDetector.cc.

117{}

Referenced by export_G4VSensitiveDetector().

◆ Clone()

G4VSensitiveDetector * G4VSensitiveDetector::Clone ( ) const
virtual

Reimplemented in G4MultiSensitiveDetector.

Definition at line 69 of file G4VSensitiveDetector.cc.

70{
72 msg << "Derived class does not implement cloning,\n"
73 << "but Clone method called.\n"
74 << "Cannot continue;";
75 G4Exception("G4VSensitiveDetector::Clone", "Det0010", FatalException, msg);
76 return nullptr;
77}
@ FatalException
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *description)
Definition: G4Exception.cc:35
std::ostringstream G4ExceptionDescription
Definition: G4Exception.hh:40

References FatalException, and G4Exception().

Referenced by G4VUserDetectorConstruction::CloneSD().

◆ DrawAll()

void G4VSensitiveDetector::DrawAll ( )
virtual

Reimplemented in G4MultiFunctionalDetector, and G4MultiSensitiveDetector.

Definition at line 119 of file G4VSensitiveDetector.cc.

119{}

Referenced by export_G4VSensitiveDetector().

◆ EndOfEvent()

void G4VSensitiveDetector::EndOfEvent ( G4HCofThisEvent )
virtual

Reimplemented in G4MultiFunctionalDetector, and G4MultiSensitiveDetector.

Definition at line 115 of file G4VSensitiveDetector.cc.

115{}

Referenced by export_G4VSensitiveDetector().

◆ GetCollectionID()

G4int G4VSensitiveDetector::GetCollectionID ( G4int  i)
protectedvirtual

Reimplemented in G4MultiSensitiveDetector.

Definition at line 104 of file G4VSensitiveDetector.cc.

105{
107 "/" + collectionName[i]);
108}
static G4SDManager * GetSDMpointer()
Definition: G4SDManager.cc:38
G4int GetCollectionID(G4String colName)
Definition: G4SDManager.cc:142
G4CollectionNameVector collectionName

References collectionName, G4SDManager::GetCollectionID(), G4SDManager::GetSDMpointer(), and SensitiveDetectorName.

◆ GetCollectionName()

G4String G4VSensitiveDetector::GetCollectionName ( G4int  id) const
inline

Definition at line 143 of file G4VSensitiveDetector.hh.

144 {
145 return collectionName[id];
146 }

References collectionName.

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

◆ GetFilter()

G4VSDFilter * G4VSensitiveDetector::GetFilter ( ) const
inline

Definition at line 154 of file G4VSensitiveDetector.hh.

154{ return filter; }

References filter.

◆ GetFullPathName()

G4String G4VSensitiveDetector::GetFullPathName ( ) const
inline

Definition at line 152 of file G4VSensitiveDetector.hh.

152{ return fullPathName; }

References fullPathName.

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

◆ GetName()

G4String G4VSensitiveDetector::GetName ( ) const
inline

Definition at line 150 of file G4VSensitiveDetector.hh.

150{ return SensitiveDetectorName; }

References SensitiveDetectorName.

Referenced by G4SDManager::AddNewDetector(), G4SDStructure::AddNewDetector(), G4MultiSensitiveDetector::Clone(), G4VUserDetectorConstruction::CloneSD(), export_G4VSensitiveDetector(), G4GDMLWriteStructure::ExportSD(), G4MultiSensitiveDetector::G4MultiSensitiveDetector(), G4MultiSensitiveDetector::GetCollectionID(), G4VPrimitiveScorer::GetCollectionID(), G4HCtable::GetCollectionID(), G4PSCellCharge::Initialize(), G4PSCellFlux::Initialize(), G4PSCylinderSurfaceCurrent::Initialize(), G4PSFlatSurfaceCurrent::Initialize(), G4PSMinKinEAtGeneration::Initialize(), G4PSNofCollision::Initialize(), G4PSNofSecondary::Initialize(), G4PSNofStep::Initialize(), G4PSPassageCellCurrent::Initialize(), G4PSPassageCellFlux::Initialize(), G4PSPassageTrackLength::Initialize(), G4PSPopulation::Initialize(), G4PSSphereSurfaceCurrent::Initialize(), G4PSSphereSurfaceFlux::Initialize(), G4PSTermination::Initialize(), G4PSTrackCounter::Initialize(), G4PSTrackLength::Initialize(), G4PSCellCharge::PrintAll(), G4PSCellFlux::PrintAll(), G4PSCylinderSurfaceCurrent::PrintAll(), G4PSCylinderSurfaceFlux::PrintAll(), G4PSDoseDeposit::PrintAll(), G4PSEnergyDeposit::PrintAll(), G4PSFlatSurfaceCurrent::PrintAll(), G4PSFlatSurfaceFlux::PrintAll(), G4PSNofCollision::PrintAll(), G4PSNofStep::PrintAll(), G4PSPassageCellCurrent::PrintAll(), G4PSPassageCellFlux::PrintAll(), G4PSPassageTrackLength::PrintAll(), G4PSPopulation::PrintAll(), G4PSSphereSurfaceCurrent::PrintAll(), G4PSSphereSurfaceFlux::PrintAll(), G4PSTermination::PrintAll(), G4PSTrackCounter::PrintAll(), G4PSTrackLength::PrintAll(), G4PSVolumeFlux::PrintAll(), G3DetTable::PrintAll(), G4MultiSensitiveDetector::ProcessHits(), G4ASCIITreeSceneHandler::RequestPrimitives(), G4VUserDetectorConstruction::SetSensitiveDetector(), G4VUserParallelWorld::SetSensitiveDetector(), and G4MultiSensitiveDetector::~G4MultiSensitiveDetector().

◆ GetNumberOfCollections()

G4int G4VSensitiveDetector::GetNumberOfCollections ( ) const
inline

Definition at line 139 of file G4VSensitiveDetector.hh.

140 {
141 return G4int(collectionName.size());
142 }
int G4int
Definition: G4Types.hh:85

References collectionName.

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

◆ GetPathName()

G4String G4VSensitiveDetector::GetPathName ( ) const
inline

Definition at line 151 of file G4VSensitiveDetector.hh.

151{ return thePathName; }

References thePathName.

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

◆ GetROgeometry()

G4VReadOutGeometry * G4VSensitiveDetector::GetROgeometry ( ) const
inline

◆ Hit()

G4bool G4VSensitiveDetector::Hit ( G4Step aStep)
inline

Definition at line 112 of file G4VSensitiveDetector.hh.

113 {
114 G4TouchableHistory* ROhis = 0;
115 if(!isActive())
116 return false;
117 if(filter)
118 {
119 if(!(filter->Accept(aStep)))
120 return false;
121 }
122 if(ROgeometry)
123 {
124 if(!(ROgeometry->CheckROVolume(aStep, ROhis)))
125 return false;
126 }
127 return ProcessHits(aStep, ROhis);
128 }
virtual G4bool CheckROVolume(G4Step *, G4TouchableHistory *&)
virtual G4bool Accept(const G4Step *) const =0
virtual G4bool ProcessHits(G4Step *aStep, G4TouchableHistory *ROhist)=0

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

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

◆ Initialize()

void G4VSensitiveDetector::Initialize ( G4HCofThisEvent )
virtual

Reimplemented in G4MultiFunctionalDetector, and G4MultiSensitiveDetector.

Definition at line 113 of file G4VSensitiveDetector.cc.

113{}

Referenced by export_G4VSensitiveDetector().

◆ isActive()

G4bool G4VSensitiveDetector::isActive ( ) const
inline

◆ operator!=()

G4bool G4VSensitiveDetector::operator!= ( const G4VSensitiveDetector right) const

Definition at line 99 of file G4VSensitiveDetector.cc.

100{
101 return (this != &right);
102}

◆ operator=()

G4VSensitiveDetector & G4VSensitiveDetector::operator= ( const G4VSensitiveDetector right)

Definition at line 79 of file G4VSensitiveDetector.cc.

81{
82 if(this == &right)
83 return *this;
88 active = right.active;
89 ROgeometry = right.ROgeometry;
90 filter = right.filter;
91 return *this;
92}

References active, filter, fullPathName, ROgeometry, SensitiveDetectorName, thePathName, and verboseLevel.

Referenced by G4MultiSensitiveDetector::operator=().

◆ operator==()

G4bool G4VSensitiveDetector::operator== ( const G4VSensitiveDetector right) const

Definition at line 94 of file G4VSensitiveDetector.cc.

95{
96 return (this == &right);
97}

◆ PrintAll()

void G4VSensitiveDetector::PrintAll ( )
virtual

Reimplemented in G4MultiFunctionalDetector, and G4MultiSensitiveDetector.

Definition at line 121 of file G4VSensitiveDetector.cc.

121{}

Referenced by export_G4VSensitiveDetector().

◆ ProcessHits()

virtual G4bool G4VSensitiveDetector::ProcessHits ( G4Step aStep,
G4TouchableHistory ROhist 
)
protectedpure virtual

◆ SetFilter()

void G4VSensitiveDetector::SetFilter ( G4VSDFilter value)
inline

Definition at line 135 of file G4VSensitiveDetector.hh.

135{ filter = value; }

References filter.

◆ SetROgeometry()

void G4VSensitiveDetector::SetROgeometry ( G4VReadOutGeometry value)
inline

Definition at line 133 of file G4VSensitiveDetector.hh.

133{ ROgeometry = value; }

References ROgeometry.

Referenced by export_G4VSensitiveDetector().

◆ SetVerboseLevel()

void G4VSensitiveDetector::SetVerboseLevel ( G4int  vl)
inline

Definition at line 147 of file G4VSensitiveDetector.hh.

147{ verboseLevel = vl; }

References verboseLevel.

Referenced by export_G4VSensitiveDetector().

Field Documentation

◆ active

G4bool G4VSensitiveDetector::active
protected

Definition at line 107 of file G4VSensitiveDetector.hh.

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

◆ collectionName

G4CollectionNameVector G4VSensitiveDetector::collectionName
protected

◆ filter

G4VSDFilter* G4VSensitiveDetector::filter
protected

Definition at line 109 of file G4VSensitiveDetector.hh.

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

◆ fullPathName

G4String G4VSensitiveDetector::fullPathName
protected

Definition at line 105 of file G4VSensitiveDetector.hh.

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

◆ ROgeometry

G4VReadOutGeometry* G4VSensitiveDetector::ROgeometry
protected

◆ SensitiveDetectorName

G4String G4VSensitiveDetector::SensitiveDetectorName
protected

◆ thePathName

G4String G4VSensitiveDetector::thePathName
protected

Definition at line 104 of file G4VSensitiveDetector.hh.

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

◆ verboseLevel

G4int G4VSensitiveDetector::verboseLevel
protected

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