GeoModel - GeoModelCore
Public Member Functions | Private Attributes | List of all members
GeoPhysVol Class Reference

A GeoPhysVol is a physical volume for normal recursive access only. This means, normally, that it represents a piece of detector that nobody cares about except for tracing engines like GEANT. More specifically: More...

#include <GeoPhysVol.h>

Inheritance diagram for GeoPhysVol:
GeoVPhysVol GeoGraphNode RCBase

Public Member Functions

 GeoPhysVol (const GeoLogVol *LogVol)
 
 GeoPhysVol (const GeoPhysVol &right)=delete
 
GeoPhysVol & operator= (const GeoPhysVol &right)=delete
 
void add (GeoGraphNode *graphNode)
 
virtual unsigned int getNChildVols () const override final
 Returns the number of child physical volumes.
 
virtual PVConstLink getChildVol (unsigned int index) const override final
 Returns the ith child volume.
 
virtual GeoTrf::Transform3D getXToChildVol (unsigned int index, const GeoVAlignmentStore *store=nullptr) const override final
 Returns the transform to the ith volume.
 
virtual GeoTrf::Transform3D getDefXToChildVol (unsigned int index, const GeoVAlignmentStore *store=nullptr) const override final
 Returns the default transform to the ith volume.
 
virtual void exec (GeoNodeAction *action) const override final
 Executes a GeoNodeAction.
 
virtual std::string getNameOfChildVol (unsigned int i) const override final
 Returns the name of the child.
 
virtual Query< int > getIdOfChildVol (unsigned int i) const override final
 Returns the id of the child.
 
virtual unsigned int getNChildVolAndST () const override final
 Returns the number of child physical volumes and Serial Transformers.
 
virtual GeoTrf::Transform3D getX (const GeoVAlignmentStore *store=nullptr) const override final
 
virtual GeoTrf::Transform3D getDefX (const GeoVAlignmentStore *store=nullptr) const override final
 
virtual unsigned int getNChildNodes () const override final
 
virtual const GeoGraphNode *const * getChildNode (unsigned int i) const override final
 
virtual const GeoGraphNode *const * findChildNode (const GeoGraphNode *n) const override final
 
- Public Member Functions inherited from GeoVPhysVol
 GeoVPhysVol (const GeoLogVol *LogVol)
 
 GeoVPhysVol (const GeoVPhysVol &right)=delete
 
GeoVPhysVol & operator= (const GeoVPhysVol &right)=delete
 
bool isShared () const
 
Query< unsigned int > indexOf (PVConstLink daughter) const
 
PVConstLink getParent () const
 Gets the parent, if the parent is unique, and otherwise returns a nullptr pointer.
 
const GeoLogVol * getLogVol () const
 Returns the logical volume.
 
void apply (GeoVolumeAction *action) const
 
virtual void dockTo (GeoVPhysVol *parent)
 
- Public Member Functions inherited from RCBase
void ref () const
 
void unref () const
 
unsigned int refCount () const
 

Private Attributes

std::vector< const GeoGraphNode * > m_daughters
 
std::mutex m_muxVec
 

Detailed Description

A GeoPhysVol is a physical volume for normal recursive access only. This means, normally, that it represents a piece of detector that nobody cares about except for tracing engines like GEANT. More specifically:

The position of the physical volume is not kept with the physical volume. It can easily be obtained by traversing detector graph (ComputeTransformAction), but it cannot be obtained in constant time. If you need to know the absolute default and/or aligned position of the detector, you need to use a different kind of physical volume called a GeoRAPhysicalVolume, which has a higher memory cost.

Definition at line 31 of file GeoPhysVol.h.


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