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 G4VSensitiveDetector * Clone () const
 
virtual void DrawAll ()
 
virtual void EndOfEvent (G4HCofThisEvent *)
 
 G4VSensitiveDetector (const G4VSensitiveDetector &right)
 
 G4VSensitiveDetector (G4String name)
 
G4String GetCollectionName (G4int id) const
 
G4VSDFilter * GetFilter () const
 
G4String GetFullPathName () const
 
G4String GetName () const
 
G4int GetNumberOfCollections () const
 
G4String GetPathName () const
 
G4VReadOutGeometry * GetROgeometry () const
 
G4bool Hit (G4Step *aStep)
 
virtual void Initialize (G4HCofThisEvent *)
 
G4bool isActive () const
 
G4bool operator!= (const G4VSensitiveDetector &right) const
 
G4VSensitiveDetector & operator= (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
 
G4VSDFilter * filter
 
G4String fullPathName
 
G4VReadOutGeometry * ROgeometry
 
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: