#include <DetDesc/LAssembly.h>
Inheritance diagram for LAssembly:
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 | ||||
LAssembly (const std::string &name, const std::string &sensitivity="", const std::string &magnetic="") | ||||
constructor
| ||||
virtual | ~LAssembly () | |||
destructor | ||||
virtual bool | isAssembly () const | |||
is this volume "Assembly" of other volumes? | ||||
virtual const ISolid * | solid () const | |||
the solid, associated with the Logical Volume | ||||
virtual const Material * | material () const | |||
the material, associated with the Logical Volume For Assembly Volumes material pointes to NULL! | ||||
virtual const std::string & | materialName () const | |||
the material(by name), associated with the Logical Volume | ||||
virtual bool | isInside (const Gaudi::XYZPoint &LocalPoint) const | |||
check for the given 3D-point. | ||||
virtual StatusCode | belongsTo (const Gaudi::XYZPoint &LocalPoint, const int Level, ILVolume::PVolumePath &pVolumePath) const | |||
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 | |||
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 | |||
intersection of the logical volume with with the line The line 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 | |||
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 const CLID & | clID () const | |||
class/object identification (virtual method) | ||||
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 | ||||
double | xMin () const | |||
double | xMax () const | |||
double | yMin () const | |||
double | yMax () const | |||
double | zMin () const | |||
double | zMax () const | |||
void | computeCover () | |||
LAssembly () | ||||
default constructor | ||||
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 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 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 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 CLID & | classID () | |||
class/object identifier (static method) | ||||
static const InterfaceID & | interfaceID () | |||
retrieve the unique interface identifier | ||||
Public Attributes | ||||
SUCCESS | ||||
NO_INTERFACE | ||||
VERSMISMATCH | ||||
LAST_ERROR | ||||
Protected Member Functions | ||||
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 Attributes | ||||
double | m_xMin | |||
double | m_xMax | |||
double | m_yMin | |||
double | m_yMax | |||
double | m_zMin | |||
double | m_zMax | |||
bool | m_coverComputed | |||
Friends | ||||
class | DataObjectFactory< LAssembly > | |||
friend factory for instantiation | ||||
friend std::ostream & | operator<< (std::ostream &s, const DataObject &obj) |
It is a logicla voluem without shape and material. It is just a placeholder for its child volumes.
Definition at line 28 of file LAssembly.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 };
LAssembly::LAssembly | ( | const std::string & | name, | |
const std::string & | sensitivity = "" , |
|||
const std::string & | magnetic = "" | |||
) |
constructor
LVolumeException | wrong paramaters value |
name | name of logical volume | |
sensitivity | name of sensitive detector object (for simulation) | |
magnetic | name of magnetic field object (for simulation) |
virtual LAssembly::~LAssembly | ( | ) | [virtual] |
destructor
LAssembly::LAssembly | ( | ) |
default constructor
virtual bool LAssembly::isAssembly | ( | ) | const [inline, virtual] |
is this volume "Assembly" of other volumes?
Implements ILVolume.
Definition at line 61 of file LAssembly.h.
virtual const ISolid* LAssembly::solid | ( | ) | const [inline, virtual] |
the solid, associated with the Logical Volume
Implements ILVolume.
Definition at line 68 of file LAssembly.h.
virtual const Material* LAssembly::material | ( | ) | const [inline, virtual] |
the material, associated with the Logical Volume For Assembly Volumes material pointes to NULL!
LVolumeException | no material |
Implements ILVolume.
Definition at line 77 of file LAssembly.h.
virtual const std::string& LAssembly::materialName | ( | ) | const [inline, virtual] |
the material(by name), associated with the Logical Volume
Implements ILVolume.
Definition at line 84 of file LAssembly.h.
00084 { return EmptyString; }
virtual bool LAssembly::isInside | ( | const Gaudi::XYZPoint & | LocalPoint | ) | const [inline, virtual] |
check for the given 3D-point.
Point coordinates are in the local reference frame of the logical volume
LocalPoint | point (in local reference system of the solid) |
Implements ILVolume.
Definition at line 93 of file LAssembly.h.
00094 { return isInsideDaughter( LocalPoint ) ; };
virtual StatusCode LAssembly::belongsTo | ( | const Gaudi::XYZPoint & | LocalPoint, | |
const int | Level, | |||
ILVolume::PVolumePath & | pVolumePath | |||
) | const [virtual] |
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 | |
pVolumePath | vector of physical volumes |
Implements ILVolume.
virtual StatusCode LAssembly::belongsTo | ( | const Gaudi::XYZPoint & | LocalPoint, | |
const int | Level, | |||
ILVolume::ReplicaPath & | replicaPath | |||
) | const [virtual] |
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 | vector of physical volumes |
Implements ILVolume.
virtual unsigned int LAssembly::intersectLine | ( | const Gaudi::XYZPoint & | Point, | |
const Gaudi::XYZVector & | Vector, | |||
ILVolume::Intersections & | intersections, | |||
const double | threshold | |||
) | const [virtual] |
intersection of the logical volume with with the line
The line 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.
LogVolumeException | solid or/and matherial problems |
Point | initial point at the line | |
Vector | direction vector of the line | |
intersections | output container | |
threshold | threshold value |
Implements ILVolume.
virtual unsigned int LAssembly::intersectLine | ( | const Gaudi::XYZPoint & | Point, | |
const Gaudi::XYZVector & | Vector, | |||
ILVolume::Intersections & | intersections, | |||
const ISolid::Tick | tickMin, | |||
const ISolid::Tick | tickMax, | |||
const double | Threshold | |||
) | const [virtual] |
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.
LogVolumeException | 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 |
Implements ILVolume.
static const CLID& LAssembly::classID | ( | ) | [static] |
class/object identifier (static method)
Reimplemented from ValidDataObject.
virtual const CLID& LAssembly::clID | ( | ) | const [virtual] |
class/object identification (virtual method)
Reimplemented from ValidDataObject.
virtual std::ostream& LAssembly::printOut | ( | std::ostream & | os = std::cout |
) | const [virtual] |
printout to STD/STL stream
os | STD/STL stream |
Reimplemented from LogVolBase.
double LAssembly::xMin | ( | ) | const [inline] |
double LAssembly::xMax | ( | ) | const [inline] |
double LAssembly::yMin | ( | ) | const [inline] |
double LAssembly::yMax | ( | ) | const [inline] |
double LAssembly::zMin | ( | ) | const [inline] |
double LAssembly::zMax | ( | ) | const [inline] |
void LAssembly::computeCover | ( | ) |
virtual const std::string& LogVolBase::name | ( | ) | const [inline, virtual, inherited] |
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, inherited] |
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, inherited] |
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, inherited] |
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, inherited] |
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, inherited] |
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, inherited] |
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, inherited] |
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, inherited] |
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, inherited] |
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, inherited] |
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, inherited] |
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, inherited] |
virtual StatusCode LogVolBase::traverse | ( | const ILVolume::ReplicaPath & | path, | |
ILVolume::PVolumePath & | pVolumePath | |||
) | const [inline, virtual, inherited] |
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, inherited] |
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, inherited] |
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, inherited] |
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, inherited] |
accessors to surfaces (const version)
Implements ILVolume.
Definition at line 214 of file LogVolBase.h.
00214 { return m_surfaces ; }
virtual ILVolume* LogVolBase::reset | ( | ) | [inline, virtual, inherited] |
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, inherited] |
query the interface
ID | unique interface identifier | |
ppI | placeholder for returned interface |
Implements IInterface.
virtual unsigned long LogVolBase::addRef | ( | ) | [virtual, inherited] |
virtual unsigned long LogVolBase::release | ( | ) | [virtual, inherited] |
IPVolume* LogVolBase::createPVolume | ( | const std::string & | PVname, | |
const std::string & | LVnameForPV, | |||
const Gaudi::XYZPoint & | position = Gaudi::XYZPoint() , |
|||
const Gaudi::Rotation3D & | rotation = Gaudi::Rotation3D() | |||
) | [inherited] |
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 | |||
) | [inherited] |
create daughter physical volume
PVname | name of daughter volume | |
LVnameForPV | name of logical volume for the physical volume | |
Transform | tranformation |
IPVolume* LogVolBase::createPVolume | ( | ) | [protected, inherited] |
create EMPTY daughter physical volume
void LogVolBase::Assert | ( | bool | assertion, | |
const std::string & | name, | |||
const StatusCode & | sc = StatusCode::FAILURE | |||
) | const [inline, protected, inherited] |
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, inherited] |
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, inherited] |
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, inherited] |
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, inherited] |
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, inherited] |
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, inherited] |
accessor to data service used for retriving of the material
IMessageSvc* LogVolBase::msgSvc | ( | ) | const [protected, inherited] |
accessor to massage service
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 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 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] |
friend class DataObjectFactory< LAssembly > [friend] |
double LAssembly::m_xMin [private] |
Definition at line 222 of file LAssembly.h.
double LAssembly::m_xMax [private] |
Definition at line 223 of file LAssembly.h.
double LAssembly::m_yMin [private] |
Definition at line 224 of file LAssembly.h.
double LAssembly::m_yMax [private] |
Definition at line 225 of file LAssembly.h.
double LAssembly::m_zMin [private] |
Definition at line 226 of file LAssembly.h.
double LAssembly::m_zMax [private] |
Definition at line 227 of file LAssembly.h.
bool LAssembly::m_coverComputed [private] |
Definition at line 228 of file LAssembly.h.