#include <DetDesc/LogVolBase.h>
Inheritance diagram for LogVolBase:
Public Types | ||||
typedef std::vector< IPVolume * > | PVolumes | |||
general typedefs | ||||
typedef PVolumes::size_type | ReplicaType | |||
typedef std::vector< ReplicaType > | ReplicaPath | |||
typedef std::vector< const IPVolume * > | PVolumePath | |||
typedef std::pair< ISolid::Tick, ISolid::Tick > | Interval | |||
typedefs, specific for calculation of distance in the units of radiation length | ||||
typedef std::pair< Interval, const Material * > | Intersection | |||
typedef std::vector< Intersection > | Intersections | |||
typedef SmartRefVector< Surface > | Surfaces | |||
typedef for surfaces | ||||
SUCCESS | ||||
NO_INTERFACE | ||||
VERSMISMATCH | ||||
LAST_ERROR | ||||
enum | Status | |||
DEFAULT | ||||
ALWAYS_VALID | ||||
FORCE_UPDATE | ||||
enum | UpdateModeFlag { DEFAULT, ALWAYS_VALID, FORCE_UPDATE } | |||
Possible stata of the update flag. More... | ||||
Public Member Functions | ||||
virtual const std::string & | name () const | |||
retrieve the name(identification) of Logical Volume | ||||
virtual PVolumes & | pvolumes () | |||
vector of physical volumes | ||||
virtual const PVolumes & | pvolumes () const | |||
vector of physical volumes (const version) | ||||
virtual ILVolume::ReplicaType | noPVolumes () const | |||
number of Physical(positioned) Volumes | ||||
virtual const IPVolume * | operator[] (const ILVolume::ReplicaType &index) const | |||
daughter (Physical Volume) by index | ||||
virtual const IPVolume * | operator[] (const std::string &name) const | |||
daughter (Physical Volume) by name | ||||
virtual const IPVolume * | pvolume (const ILVolume::ReplicaType &index) const | |||
get daughter (Physical Volume) by index | ||||
virtual const IPVolume * | pvolume (const std::string &name) const | |||
get daughter (Physical Volume) by name | ||||
virtual ILVolume::PVolumes::iterator | pvBegin () | |||
begin iterator for manipulation with daughters | ||||
virtual ILVolume::PVolumes::const_iterator | pvBegin () const | |||
begin iterator for manipulation with daughters (const version) | ||||
virtual ILVolume::PVolumes::iterator | pvEnd () | |||
retrieve end iterator for manipulation with daughters | ||||
virtual ILVolume::PVolumes::const_iterator | pvEnd () const | |||
retrieve end iterator for manipulation with daughters (const version) | ||||
virtual StatusCode | traverse (ILVolume::ReplicaPath::const_iterator pathBegin, ILVolume::ReplicaPath::const_iterator pathEnd, ILVolume::PVolumePath &pVolumePath) const | |||
traverse the sequence of paths transform the sequence of replicas to sequence of physical volumes | ||||
virtual StatusCode | traverse (const ILVolume::ReplicaPath &path, ILVolume::PVolumePath &pVolumePath) const | |||
traverse the sequence of paths transform the sequence of replicas to sequence of physical volumes | ||||
virtual const std::string & | sdName () const | |||
name of sensitive "detector" - needed for simulation | ||||
virtual const std::string & | mfName () const | |||
magnetic properties (if needed for simulation) | ||||
virtual Surfaces & | surfaces () | |||
accessors to surfaces | ||||
virtual const Surfaces & | surfaces () const | |||
accessors to surfaces (const version) | ||||
virtual std::ostream & | printOut (std::ostream &os=std::cout) const | |||
printout to STD/STL stream | ||||
virtual MsgStream & | printOut (MsgStream &os) const | |||
printout to Gaudi MsgStream stream | ||||
virtual ILVolume * | reset () | |||
reset to initial state, clear chaches, etc. | ||||
virtual StatusCode | queryInterface (const InterfaceID &ID, void **ppI) | |||
query the interface | ||||
virtual unsigned long | addRef () | |||
add the reference | ||||
virtual unsigned long | release () | |||
release the interface | ||||
IPVolume * | createPVolume (const std::string &PVname, const std::string &LVnameForPV, const Gaudi::XYZPoint &position=Gaudi::XYZPoint(), const Gaudi::Rotation3D &rotation=Gaudi::Rotation3D()) | |||
create daughter physical volume | ||||
IPVolume * | createPVolume (const std::string &PVname, const std::string &LVnameForPV, const Gaudi::Transform3D &Transform) | |||
create daughter physical volume | ||||
virtual bool | isAssembly () const =0 | |||
is this volume "Assembly" of other volumes? The notion of "Assembly Volume" is imported from Geant4. | ||||
virtual const ISolid * | solid () const =0 | |||
return the solid, associated with the Logical Volume | ||||
virtual const std::string & | materialName () const =0 | |||
return the material(by name), associated with the Logical Volume | ||||
virtual const Material * | material () const =0 | |||
return the material, associated with the Logical Volume for Assembly volumes material name is useless | ||||
virtual bool | isInside (const Gaudi::XYZPoint &LocalPoint) const =0 | |||
check for the given 3D-point. | ||||
virtual StatusCode | belongsTo (const Gaudi::XYZPoint &localPoint, const int level, ILVolume::PVolumePath &volumePath) const =0 | |||
calculate the daughter path containing the Point in Local frame , can be VERY slow for complex geometry, therefore use the appropriate Level for usage | ||||
virtual StatusCode | belongsTo (const Gaudi::XYZPoint &localPoint, const int level, ILVolume::ReplicaPath &replicaPath) const =0 | |||
calculate the daughter path containing the Point in Local frame , can be VERY slow for complex geometry, therefore use the appropriate Level for usage | ||||
virtual unsigned int | intersectLine (const Gaudi::XYZPoint &Point, const Gaudi::XYZVector &Vector, ILVolume::Intersections &intersections, const double threshold) const =0 | |||
intersection of the logical volume with with the line Theine is parametrized in the local reference system of the logical volume by initial Point and direction Vector | ||||
virtual unsigned int | intersectLine (const Gaudi::XYZPoint &Point, const Gaudi::XYZVector &Vector, ILVolume::Intersections &intersections, const ISolid::Tick tickMin, const ISolid::Tick tickMax, const double Threshold) const =0 | |||
intersection of the logical volume with with the line Theine is parametrized in the local reference system of the logical volume by initial Point and direction Vector | ||||
virtual void | update (ValidDataObject &obj) | |||
Update using another instance of this class: deep copy all contents, except for the properties of a generic DataObject. | ||||
virtual StatusCode | update () | |||
Update the current object and all the useds one (children, references, etc) only if needed, of course. | ||||
virtual const CLID & | clID () const | |||
Class ID of this instance. | ||||
virtual std::ostream & | fillStream (std::ostream &s) const | |||
Fill the output stream (ASCII). | ||||
virtual bool | isValid () const | |||
Check if the data object has a well defined validity range. | ||||
virtual bool | isValid (const Gaudi::Time &t) const | |||
Check if the data object is valid at the specified time. | ||||
virtual const Gaudi::Time & | validSince () const | |||
Get start of validity. | ||||
virtual const Gaudi::Time & | validTill () const | |||
Get end of validity. | ||||
virtual void | setValidity (const Gaudi::Time &since, const Gaudi::Time &till) | |||
Set validity range. | ||||
virtual void | setValiditySince (const Gaudi::Time &since) | |||
Set start of validity. | ||||
virtual void | setValidityTill (const Gaudi::Time &till) | |||
Set end of validity. | ||||
virtual const UpdateModeFlag & | updateMode () const | |||
Return the update mode: ValidDataObject::DEFAULT -> use the actual validity ValidDataObject::ALWAYS_VALID -> never update ValidDataObject::FORCE_UPDATE -> force an update even if still valid (then back to DEFAULT behaviour). | ||||
virtual void | setUpdateMode (UpdateModeFlag mode) | |||
Set the mode for update. | ||||
virtual void | defaultUpdateMode () | |||
virtual void | forceUpdateMode () | |||
virtual void | neverUpdateMode () | |||
void | setRegistry (IRegistry *pRegistry) | |||
IRegistry * | registry () const | |||
LinkManager * | linkMgr () const | |||
unsigned char | version () const | |||
void | setVersion (unsigned char vsn) | |||
unsigned long | refCount () const | |||
virtual StreamBuffer & | serialize (StreamBuffer &s) | |||
virtual StreamBuffer & | serialize (StreamBuffer &s) const | |||
Static Public Member Functions | ||||
static const InterfaceID & | interfaceID () | |||
retrieve the unique interface identifier | ||||
static const CLID & | classID () | |||
Class ID of this class. | ||||
Public Attributes | ||||
SUCCESS | ||||
NO_INTERFACE | ||||
VERSMISMATCH | ||||
LAST_ERROR | ||||
Protected Member Functions | ||||
LogVolBase (const std::string &name="", const std::string &sensitivity="", const std::string &magnetic="") | ||||
constructor
| ||||
virtual | ~LogVolBase () | |||
destructor | ||||
IPVolume * | createPVolume () | |||
create EMPTY daughter physical volume | ||||
void | Assert (bool assertion, const std::string &name, const StatusCode &sc=StatusCode::FAILURE) const | |||
Assertion. | ||||
void | Assert (bool assertion, const std::string &name, const GaudiException &Exception, const StatusCode &sc=StatusCode::FAILURE) const | |||
Assertion. | ||||
unsigned int | intersectDaughters (const Gaudi::XYZPoint &Point, const Gaudi::XYZVector &Vector, ILVolume::Intersections &childIntersections, const ISolid::Tick &tickMin, const ISolid::Tick &tickMax, const double Threshold) const | |||
Auxillary method to calculate intersections with daughters
| ||||
unsigned int | intersectDaughters (const Gaudi::XYZPoint &Point, const Gaudi::XYZVector &Vector, ILVolume::Intersections &childIntersections, const double Threshold) const | |||
Auxillary method to calculate intersection with daughters
| ||||
bool | isInsideDaughter (const Gaudi::XYZPoint &LocalPoint) const | |||
check for the given 3D-point inside daughter volume Point coordinates are in the local reference frame of the solid. | ||||
ILVolume::PVolumes::const_iterator | insideDaughter (const Gaudi::XYZPoint &LocalPoint) const | |||
check for the given 3D-point inside daughter volume Point coordinates are in the local reference frame of the solid. | ||||
IDataProviderSvc * | dataSvc () const | |||
accessor to data service used for retriving of the material | ||||
IMessageSvc * | msgSvc () const | |||
accessor to massage service | ||||
Private Member Functions | ||||
LogVolBase (const LogVolBase &lvb) | ||||
copy constructor is private! | ||||
LogVolBase & | operator= (const LogVolBase &lvb) | |||
assignment operator is private! | ||||
Private Attributes | ||||
PVolumes | m_pvolumes | |||
list of daughter physical volumes | ||||
Surfaces | m_surfaces | |||
list attached surfaces | ||||
std::string | m_sdName | |||
name of sensitive detector object | ||||
std::string | m_mfName | |||
name of magnetic field source | ||||
DetDesc::Services * | m_services | |||
reference to services | ||||
Static Private Attributes | ||||
static unsigned long | s_volumeCounter | |||
static volume counter | ||||
Friends | ||||
friend std::ostream & | operator<< (std::ostream &s, const DataObject &obj) |
Sebastien Ponce
Marco Clemencic
Definition at line 35 of file LogVolBase.h.
typedef std::vector<IPVolume*> ILVolume::PVolumes [inherited] |
typedef PVolumes::size_type ILVolume::ReplicaType [inherited] |
Definition at line 43 of file ILVolume.h.
typedef std::vector<ReplicaType> ILVolume::ReplicaPath [inherited] |
Definition at line 44 of file ILVolume.h.
typedef std::vector<const IPVolume*> ILVolume::PVolumePath [inherited] |
Definition at line 45 of file ILVolume.h.
typedef std::pair<ISolid::Tick,ISolid::Tick> ILVolume::Interval [inherited] |
typedefs, specific for calculation of distance in the units of radiation length
Definition at line 50 of file ILVolume.h.
typedef std::pair<Interval,const Material*> ILVolume::Intersection [inherited] |
Definition at line 51 of file ILVolume.h.
typedef std::vector<Intersection> ILVolume::Intersections [inherited] |
Definition at line 52 of file ILVolume.h.
typedef SmartRefVector<Surface> ILVolume::Surfaces [inherited] |
enum ValidDataObject::UpdateModeFlag [inherited] |
Possible stata of the update flag.
Definition at line 102 of file ValidDataObject.h.
00102 { 00103 DEFAULT, 00104 ALWAYS_VALID, 00105 FORCE_UPDATE 00106 };
LogVolBase::LogVolBase | ( | const std::string & | name = "" , |
|
const std::string & | sensitivity = "" , |
|||
const std::string & | magnetic = "" | |||
) | [protected] |
constructor
LVolumeException | wrong paramaters value |
name | name of logical volume | |
sensitivity | name of sensitive detector object (for simulation) | |
magnetic | nam eof magnetic field object (for simulation) |
virtual LogVolBase::~LogVolBase | ( | ) | [protected, virtual] |
destructor
LogVolBase::LogVolBase | ( | const LogVolBase & | lvb | ) | [private] |
copy constructor is private!
virtual const std::string& LogVolBase::name | ( | ) | const [inline, virtual] |
retrieve the name(identification) of Logical Volume
Implements ILVolume.
Definition at line 61 of file LogVolBase.h.
00062 { 00063 static std::string s_empty = ""; 00064 IRegistry* pReg = registry(); 00065 return (0!=pReg) ? pReg->identifier() : s_empty;; 00066 }
virtual PVolumes& LogVolBase::pvolumes | ( | ) | [inline, virtual] |
vector of physical volumes
Implements ILVolume.
Definition at line 72 of file LogVolBase.h.
00072 { return m_pvolumes ; }
virtual const PVolumes& LogVolBase::pvolumes | ( | ) | const [inline, virtual] |
vector of physical volumes (const version)
Implements ILVolume.
Definition at line 78 of file LogVolBase.h.
00078 { return m_pvolumes ; }
virtual ILVolume::ReplicaType LogVolBase::noPVolumes | ( | ) | const [inline, virtual] |
number of Physical(positioned) Volumes
Implements ILVolume.
Definition at line 84 of file LogVolBase.h.
00085 { return m_pvolumes.size() ; }
virtual const IPVolume* LogVolBase::operator[] | ( | const ILVolume::ReplicaType & | index | ) | const [inline, virtual] |
daughter (Physical Volume) by index
index | physical volume index |
Implements ILVolume.
Definition at line 93 of file LogVolBase.h.
00094 { 00095 return m_pvolumes.size() > index ? 00096 *(m_pvolumes.begin()+index) : 0 ; 00097 };
virtual const IPVolume* LogVolBase::operator[] | ( | const std::string & | name | ) | const [inline, virtual] |
daughter (Physical Volume) by name
name | physical volume name |
Implements ILVolume.
Definition at line 105 of file LogVolBase.h.
00106 { 00107 ILVolume::PVolumes::const_iterator pvi = 00108 std::find_if( m_pvolumes.begin () , 00109 m_pvolumes.end () , 00110 IPVolume_byName( name ) ) ; 00111 return m_pvolumes.end() != pvi ? *pvi : 0 ; 00112 };
virtual const IPVolume* LogVolBase::pvolume | ( | const ILVolume::ReplicaType & | index | ) | const [inline, virtual] |
get daughter (Physical Volume) by index
index | physical volume index |
Implements ILVolume.
Definition at line 119 of file LogVolBase.h.
00120 { 00121 return m_pvolumes.size() > index ? 00122 *(m_pvolumes.begin()+index) : 0 ; 00123 };
virtual const IPVolume* LogVolBase::pvolume | ( | const std::string & | name | ) | const [inline, virtual] |
get daughter (Physical Volume) by name
name | physical volume name |
Implements ILVolume.
Definition at line 130 of file LogVolBase.h.
00131 { 00132 ILVolume::PVolumes::const_iterator pvi = 00133 std::find_if( m_pvolumes.begin () , 00134 m_pvolumes.end () , 00135 IPVolume_byName( name ) ) ; 00136 return m_pvolumes.end() != pvi ? *pvi : 0 ; 00137 };
virtual ILVolume::PVolumes::iterator LogVolBase::pvBegin | ( | ) | [inline, virtual] |
begin iterator for manipulation with daughters
Implements ILVolume.
Definition at line 143 of file LogVolBase.h.
00144 { return m_pvolumes.begin () ;}
virtual ILVolume::PVolumes::const_iterator LogVolBase::pvBegin | ( | ) | const [inline, virtual] |
begin iterator for manipulation with daughters (const version)
Implements ILVolume.
Definition at line 150 of file LogVolBase.h.
00151 { return m_pvolumes.begin () ;}
virtual ILVolume::PVolumes::iterator LogVolBase::pvEnd | ( | ) | [inline, virtual] |
retrieve end iterator for manipulation with daughters
Implements ILVolume.
Definition at line 157 of file LogVolBase.h.
00158 { return m_pvolumes.end () ;}
virtual ILVolume::PVolumes::const_iterator LogVolBase::pvEnd | ( | ) | const [inline, virtual] |
retrieve end iterator for manipulation with daughters (const version)
Implements ILVolume.
Definition at line 164 of file LogVolBase.h.
00165 { return m_pvolumes.end () ;}
virtual StatusCode LogVolBase::traverse | ( | ILVolume::ReplicaPath::const_iterator | pathBegin, | |
ILVolume::ReplicaPath::const_iterator | pathEnd, | |||
ILVolume::PVolumePath & | pVolumePath | |||
) | const [virtual] |
virtual StatusCode LogVolBase::traverse | ( | const ILVolume::ReplicaPath & | path, | |
ILVolume::PVolumePath & | pVolumePath | |||
) | const [inline, virtual] |
traverse the sequence of paths
transform the sequence of replicas to sequence of physical volumes
path | replica-Path | |
pVolumePath | vector of physical volumes |
Implements ILVolume.
Definition at line 188 of file LogVolBase.h.
00190 { return traverse( path.begin() , path.end() , pVolumePath ); }
virtual const std::string& LogVolBase::sdName | ( | ) | const [inline, virtual] |
name of sensitive "detector" - needed for simulation
Implements ILVolume.
Definition at line 196 of file LogVolBase.h.
00196 { return m_sdName; } ;
virtual const std::string& LogVolBase::mfName | ( | ) | const [inline, virtual] |
magnetic properties (if needed for simulation)
Implements ILVolume.
Definition at line 202 of file LogVolBase.h.
00202 { return m_mfName; } ;
virtual Surfaces& LogVolBase::surfaces | ( | ) | [inline, virtual] |
accessors to surfaces
Implements ILVolume.
Definition at line 208 of file LogVolBase.h.
00208 { return m_surfaces ; }
virtual const Surfaces& LogVolBase::surfaces | ( | ) | const [inline, virtual] |
accessors to surfaces (const version)
Implements ILVolume.
Definition at line 214 of file LogVolBase.h.
00214 { return m_surfaces ; }
virtual std::ostream& LogVolBase::printOut | ( | std::ostream & | os = std::cout |
) | const [virtual] |
virtual ILVolume* LogVolBase::reset | ( | ) | [inline, virtual] |
reset to initial state, clear chaches, etc.
..
reset all physical volumes
return self-reference
Implements ILVolume.
Reimplemented in LVolume.
Definition at line 234 of file LogVolBase.h.
00235 { 00237 std::for_each( m_pvolumes.begin () , 00238 m_pvolumes.end () , 00239 std::mem_fun(&IPVolume::reset) ) ; 00241 return this; 00242 };
virtual StatusCode LogVolBase::queryInterface | ( | const InterfaceID & | ID, | |
void ** | ppI | |||
) | [virtual] |
query the interface
ID | unique interface identifier | |
ppI | placeholder for returned interface |
Implements IInterface.
virtual unsigned long LogVolBase::addRef | ( | ) | [virtual] |
virtual unsigned long LogVolBase::release | ( | ) | [virtual] |
IPVolume* LogVolBase::createPVolume | ( | const std::string & | PVname, | |
const std::string & | LVnameForPV, | |||
const Gaudi::XYZPoint & | position = Gaudi::XYZPoint() , |
|||
const Gaudi::Rotation3D & | rotation = Gaudi::Rotation3D() | |||
) |
create daughter physical volume
PVname | name of daughter volume | |
LVnameForPV | name of logical volume for the physical volume | |
position | position of logical volume | |
rotation | rotation of logical volume |
IPVolume* LogVolBase::createPVolume | ( | const std::string & | PVname, | |
const std::string & | LVnameForPV, | |||
const Gaudi::Transform3D & | Transform | |||
) |
create daughter physical volume
PVname | name of daughter volume | |
LVnameForPV | name of logical volume for the physical volume | |
Transform | tranformation |
IPVolume* LogVolBase::createPVolume | ( | ) | [protected] |
create EMPTY daughter physical volume
void LogVolBase::Assert | ( | bool | assertion, | |
const std::string & | name, | |||
const StatusCode & | sc = StatusCode::FAILURE | |||
) | const [inline, protected] |
Assertion.
assertion | condition | |
name | exception message | |
sc | status code |
Definition at line 302 of file LogVolBase.h.
00305 { if( !assertion ) { throw LogVolumeException( name, this , sc ); } };
void LogVolBase::Assert | ( | bool | assertion, | |
const std::string & | name, | |||
const GaudiException & | Exception, | |||
const StatusCode & | sc = StatusCode::FAILURE | |||
) | const [inline, protected] |
Assertion.
assertion | condition | |
name | exception message | |
Exception | previous exception | |
sc | status code |
Definition at line 314 of file LogVolBase.h.
00318 { 00319 if( !assertion ) 00320 { throw LogVolumeException( name, Exception , this , sc ); } 00321 };
unsigned int LogVolBase::intersectDaughters | ( | const Gaudi::XYZPoint & | Point, | |
const Gaudi::XYZVector & | Vector, | |||
ILVolume::Intersections & | childIntersections, | |||
const ISolid::Tick & | tickMin, | |||
const ISolid::Tick & | tickMax, | |||
const double | Threshold | |||
) | const [protected] |
Auxillary method to calculate intersections with daughters
LVolumeException | wrong parameters or geometry error. |
Point | initial point at the line | |
Vector | direction vector of the line | |
childIntersections | output container | |
tickMin | minimum value of possible Tick | |
tickMax | maximum value of possible Tick | |
Threshold | threshold value |
unsigned int LogVolBase::intersectDaughters | ( | const Gaudi::XYZPoint & | Point, | |
const Gaudi::XYZVector & | Vector, | |||
ILVolume::Intersections & | childIntersections, | |||
const double | Threshold | |||
) | const [protected] |
Auxillary method to calculate intersection with daughters
LVolumeException | wrong parameters or geometry error. |
Point | initial point at the line | |
Vector | direction vector of the line | |
childIntersections | output container | |
Threshold | threshold value |
bool LogVolBase::isInsideDaughter | ( | const Gaudi::XYZPoint & | LocalPoint | ) | const [inline, protected] |
check for the given 3D-point inside daughter volume Point coordinates are in the local reference frame of the solid.
LocalPoint | point (in local reference system of the solid) |
Definition at line 362 of file LogVolBase.h.
00363 { 00364 return 00365 m_pvolumes.end() != insideDaughter( LocalPoint ); 00366 };
ILVolume::PVolumes::const_iterator LogVolBase::insideDaughter | ( | const Gaudi::XYZPoint & | LocalPoint | ) | const [inline, protected] |
check for the given 3D-point inside daughter volume Point coordinates are in the local reference frame of the solid.
LocalPoint | point (in local reference system of the solid) |
Definition at line 375 of file LogVolBase.h.
00376 { 00377 return 00378 std::find_if( m_pvolumes.begin () , 00379 m_pvolumes.end () , 00380 IPVolume_isInside( LocalPoint ) ) ; 00381 };
IDataProviderSvc* LogVolBase::dataSvc | ( | ) | const [protected] |
accessor to data service used for retriving of the material
IMessageSvc* LogVolBase::msgSvc | ( | ) | const [protected] |
accessor to massage service
LogVolBase& LogVolBase::operator= | ( | const LogVolBase & | lvb | ) | [private] |
assignment operator is private!
static const InterfaceID& ILVolume::interfaceID | ( | ) | [inline, static, inherited] |
retrieve the unique interface identifier
Reimplemented from IInterface.
Definition at line 63 of file ILVolume.h.
00063 { return IID_ILVolume; }
virtual bool ILVolume::isAssembly | ( | ) | const [pure virtual, inherited] |
is this volume "Assembly" of other volumes? The notion of "Assembly Volume" is imported from Geant4.
"Assembly Volume" has no associated material and shape, thus material name shoudl me empty, pointer to solid and pointer to material should be both nulls
virtual const ISolid* ILVolume::solid | ( | ) | const [pure virtual, inherited] |
virtual const std::string& ILVolume::materialName | ( | ) | const [pure virtual, inherited] |
virtual const Material* ILVolume::material | ( | ) | const [pure virtual, inherited] |
virtual bool ILVolume::isInside | ( | const Gaudi::XYZPoint & | LocalPoint | ) | const [pure virtual, inherited] |
check for the given 3D-point.
Point coordinated are in the local reference frame of the logical volume.
For Assembly Volumes "inside" means inside of at least one daughter volume
LocalPoint | point (in local reference system of the volume) |
virtual StatusCode ILVolume::belongsTo | ( | const Gaudi::XYZPoint & | localPoint, | |
const int | level, | |||
ILVolume::PVolumePath & | volumePath | |||
) | const [pure virtual, inherited] |
calculate the daughter path containing the Point in Local frame , can be VERY slow for complex geometry, therefore use the appropriate Level for usage
localPoint | point in local reference system of logical volume | |
level | depth level | |
volumePath | vector of physical volumes |
virtual StatusCode ILVolume::belongsTo | ( | const Gaudi::XYZPoint & | localPoint, | |
const int | level, | |||
ILVolume::ReplicaPath & | replicaPath | |||
) | const [pure virtual, inherited] |
calculate the daughter path containing the Point in Local frame , can be VERY slow for complex geometry, therefore use the appropriate Level for usage
localPoint | point in local reference system of logical volume | |
level | depth level | |
replicaPath | replica path |
virtual unsigned int ILVolume::intersectLine | ( | const Gaudi::XYZPoint & | Point, | |
const Gaudi::XYZVector & | Vector, | |||
ILVolume::Intersections & | intersections, | |||
const double | threshold | |||
) | const [pure virtual, inherited] |
intersection of the logical volume with with the line
Theine is parametrized in the local reference system of the logical volume by initial Point and direction Vector
Method returns the number of intersection points("ticks") and the container of pairs - ticks and pointer to the corresponding material. The simplification is determined by value of threshold (in units of radiation length) Method throws LVolumeException in the case, then solid is not defined or material is not accessible.
LVolumeException | solid or/and matherial problems |
Point | initial point at the line | |
Vector | direction vector of the line | |
intersections | output container | |
threshold | threshold value |
virtual unsigned int ILVolume::intersectLine | ( | const Gaudi::XYZPoint & | Point, | |
const Gaudi::XYZVector & | Vector, | |||
ILVolume::Intersections & | intersections, | |||
const ISolid::Tick | tickMin, | |||
const ISolid::Tick | tickMax, | |||
const double | Threshold | |||
) | const [pure virtual, inherited] |
intersection of the logical volume with with the line
Theine is parametrized in the local reference system of the logical volume by initial Point and direction Vector
Method returns the number of intersection points("ticks") and the container of pairs - ticks and pointer to the corresponding material. The simplification is determined by value of threshold (in units of radiation length) Method throws LVolumeException in the case, then solid is not defined or material is not accessible.
LVolumeException | solid or/and matherial problems |
Point | initial point at the line | |
Vector | direction vector of the line | |
intersections | output container | |
tickMin | minimum value of possible Tick | |
tickMax | maximum value of possible Tick | |
Threshold | threshold value |
virtual void ValidDataObject::update | ( | ValidDataObject & | obj | ) | [virtual, inherited] |
Update using another instance of this class: deep copy all contents, except for the properties of a generic DataObject.
Reimplemented in Condition, ParamValidDataObject, and TabulatedProperty.
virtual StatusCode ValidDataObject::update | ( | ) | [virtual, inherited] |
Update the current object and all the useds one (children, references, etc) only if needed, of course.
This method must be reimplemented for more complex objects.
virtual const CLID& ValidDataObject::clID | ( | ) | const [inline, virtual, inherited] |
Class ID of this instance.
Reimplemented from DataObject.
Reimplemented in AlignmentCondition, Condition, DetectorElement, LAssembly, LVolume, and TabulatedProperty.
Definition at line 59 of file ValidDataObject.h.
00059 { return classID(); }
static const CLID& ValidDataObject::classID | ( | ) | [inline, static, inherited] |
Class ID of this class.
Reimplemented from DataObject.
Reimplemented in AlignmentCondition, Condition, DetectorElement, LAssembly, LVolume, and TabulatedProperty.
Definition at line 62 of file ValidDataObject.h.
00062 { return CLID_ValidDataObject; }
virtual std::ostream& ValidDataObject::fillStream | ( | std::ostream & | s | ) | const [virtual, inherited] |
Fill the output stream (ASCII).
Reimplemented from DataObject.
Reimplemented in AlignmentCondition, ParamValidDataObject, and TabulatedProperty.
virtual bool ValidDataObject::isValid | ( | ) | const [virtual, inherited] |
virtual bool ValidDataObject::isValid | ( | const Gaudi::Time & | t | ) | const [virtual, inherited] |
virtual const Gaudi::Time& ValidDataObject::validSince | ( | ) | const [virtual, inherited] |
virtual const Gaudi::Time& ValidDataObject::validTill | ( | ) | const [virtual, inherited] |
virtual void ValidDataObject::setValidity | ( | const Gaudi::Time & | since, | |
const Gaudi::Time & | till | |||
) | [virtual, inherited] |
virtual void ValidDataObject::setValiditySince | ( | const Gaudi::Time & | since | ) | [virtual, inherited] |
virtual void ValidDataObject::setValidityTill | ( | const Gaudi::Time & | till | ) | [virtual, inherited] |
virtual const UpdateModeFlag& ValidDataObject::updateMode | ( | ) | const [virtual, inherited] |
Return the update mode: ValidDataObject::DEFAULT -> use the actual validity
ValidDataObject::ALWAYS_VALID -> never update ValidDataObject::FORCE_UPDATE -> force an update even if still valid (then back to DEFAULT behaviour).
virtual void ValidDataObject::setUpdateMode | ( | UpdateModeFlag | mode | ) | [virtual, inherited] |
Set the mode for update.
virtual void ValidDataObject::defaultUpdateMode | ( | ) | [virtual, inherited] |
virtual void ValidDataObject::forceUpdateMode | ( | ) | [virtual, inherited] |
virtual void ValidDataObject::neverUpdateMode | ( | ) | [virtual, inherited] |
PVolumes LogVolBase::m_pvolumes [private] |
Surfaces LogVolBase::m_surfaces [private] |
std::string LogVolBase::m_sdName [private] |
std::string LogVolBase::m_mfName [private] |
unsigned long LogVolBase::s_volumeCounter [static, private] |
DetDesc::Services* LogVolBase::m_services [private] |