| Classes | Job Modules | Data Objects | Services | Algorithms | Tools | Packages | Directories | Tracs |

In This Package:

LAssembly Class Reference

The implementation of "Logical Assembly" notion. More...

#include <DetDesc/LAssembly.h>

Inheritance diagram for LAssembly:

[legend]
Collaboration diagram for LAssembly:
[legend]
List of all members.

Public Types

typedef std::vector< IPVolume * > PVolumes
 general typedefs
typedef PVolumes::size_type ReplicaType
typedef std::vector< ReplicaTypeReplicaPath
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< IntersectionIntersections
typedef SmartRefVector< SurfaceSurfaces
 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
Exceptions:
LVolumeException wrong paramaters value

virtual ~LAssembly ()
 destructor
virtual bool isAssembly () const
 is this volume "Assembly" of other volumes?
virtual const ISolidsolid () const
 the solid, associated with the Logical Volume
virtual const Materialmaterial () 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
$ \vec{x}(t) = \vec{p} + t\times \vec{v} $

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
$ \vec{x}(t) = \vec{p} + t\times \vec{v} $

virtual const CLIDclID () const
 class/object identification (virtual method)
virtual std::ostream & printOut (std::ostream &os=std::cout) const
 printout to STD/STL stream
virtual MsgStreamprintOut (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 PVolumespvolumes ()
 vector of physical volumes
virtual const PVolumespvolumes () const
 vector of physical volumes (const version)
virtual ILVolume::ReplicaType noPVolumes () const
 number of Physical(positioned) Volumes
virtual const IPVolumeoperator[] (const ILVolume::ReplicaType &index) const
 daughter (Physical Volume) by index
virtual const IPVolumeoperator[] (const std::string &name) const
 daughter (Physical Volume) by name
virtual const IPVolumepvolume (const ILVolume::ReplicaType &index) const
 get daughter (Physical Volume) by index
virtual const IPVolumepvolume (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 Surfacessurfaces ()
 accessors to surfaces
virtual const Surfacessurfaces () const
 accessors to surfaces (const version)
virtual ILVolumereset ()
 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
IPVolumecreatePVolume (const std::string &PVname, const std::string &LVnameForPV, const Gaudi::XYZPoint &position=Gaudi::XYZPoint(), const Gaudi::Rotation3D &rotation=Gaudi::Rotation3D())
 create daughter physical volume
IPVolumecreatePVolume (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 UpdateModeFlagupdateMode () 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)
IRegistryregistry () const
LinkManagerlinkMgr () const
unsigned char version () const
void setVersion (unsigned char vsn)
unsigned long refCount () const
virtual StreamBufferserialize (StreamBuffer &s)
virtual StreamBufferserialize (StreamBuffer &s) const

Static Public Member Functions

static const CLIDclassID ()
 class/object identifier (static method)
static const InterfaceIDinterfaceID ()
 retrieve the unique interface identifier

Public Attributes

 SUCCESS
 NO_INTERFACE
 VERSMISMATCH
 LAST_ERROR

Protected Member Functions

IPVolumecreatePVolume ()
 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
Exceptions:
LVolumeException wrong parameters or geometry error.

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
Exceptions:
LVolumeException wrong parameters or geometry error.

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.
IDataProviderSvcdataSvc () const
 accessor to data service used for retriving of the material
IMessageSvcmsgSvc () 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)

Detailed Description

The implementation of "Logical Assembly" notion.

It is a logicla voluem without shape and material. It is just a placeholder for its child volumes.

Author:
Vanya Belyaev Ivan.Belyaev@itep.ru
Date:
18/11/2001

Definition at line 28 of file LAssembly.h.


Member Typedef Documentation

typedef std::vector<IPVolume*> ILVolume::PVolumes [inherited]

general typedefs

Definition at line 42 of file ILVolume.h.

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]

typedef for surfaces

Definition at line 55 of file ILVolume.h.


Member Enumeration Documentation

enum ValidDataObject::UpdateModeFlag [inherited]

Possible stata of the update flag.

Enumerator:
DEFAULT 
ALWAYS_VALID 
FORCE_UPDATE 

Definition at line 102 of file ValidDataObject.h.

00102                       {
00103     DEFAULT,
00104     ALWAYS_VALID,
00105     FORCE_UPDATE
00106   };


Constructor & Destructor Documentation

LAssembly::LAssembly ( const std::string &  name,
const std::string &  sensitivity = "",
const std::string &  magnetic = "" 
)

constructor

Exceptions:
LVolumeException wrong paramaters value

Parameters:
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


Member Function Documentation

virtual bool LAssembly::isAssembly (  )  const [inline, virtual]

is this volume "Assembly" of other volumes?

See also:
ILVolume 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
Returns:
true if volume is Assembly

Implements ILVolume.

Definition at line 61 of file LAssembly.h.

00061 { return true    ; } 

virtual const ISolid* LAssembly::solid (  )  const [inline, virtual]

the solid, associated with the Logical Volume

See also:
ILVolume
Returns:
the solid, associated with the Logical Volume

Implements ILVolume.

Definition at line 68 of file LAssembly.h.

00068 { return 0       ; }

virtual const Material* LAssembly::material (  )  const [inline, virtual]

the material, associated with the Logical Volume For Assembly Volumes material pointes to NULL!

See also:
ILVolume
Exceptions:
LVolumeException no material
Returns:
the material, associated with the Logical Volume

Implements ILVolume.

Definition at line 77 of file LAssembly.h.

00077 { return 0       ; };

virtual const std::string& LAssembly::materialName (  )  const [inline, virtual]

the material(by name), associated with the Logical Volume

See also:
ILVolume
Returns:
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

See also:
ILVolume
Parameters:
LocalPoint point (in local reference system of the solid)
Returns:
true if the point is inside 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

See also:
ILVolume
Parameters:
LocalPoint point in local reference system of logical volume
Level depth level
pVolumePath vector of physical volumes
Returns:
status code

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

See also:
ILVolume
Parameters:
LocalPoint point in local reference system of logical volume
Level depth level
replicaPath vector of physical volumes
Returns:
status code

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
$ \vec{x}(t) = \vec{p} + t\times \vec{v} $

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.

See also:
ILVolume
Exceptions:
LogVolumeException solid or/and matherial problems
Parameters:
Point initial point at the line
Vector direction vector of the line
intersections output container
threshold threshold value
Returns:
number of intersections

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
$ \vec{x}(t) = \vec{p} + t\times \vec{v} $

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.

See also:
ILVolume
Exceptions:
LogVolumeException solid or/and matherial problems
Parameters:
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
Returns:
number of intersections

Implements ILVolume.

static const CLID& LAssembly::classID (  )  [static]

class/object identifier (static method)

Returns:
unique class identifier

Reimplemented from ValidDataObject.

virtual const CLID& LAssembly::clID (  )  const [virtual]

class/object identification (virtual method)

Returns:
unique class identifier

Reimplemented from ValidDataObject.

virtual std::ostream& LAssembly::printOut ( std::ostream &  os = std::cout  )  const [virtual]

printout to STD/STL stream

See also:
ILVolume
Parameters:
os STD/STL stream
Returns:
reference to the stream

Reimplemented from LogVolBase.

virtual MsgStream& LAssembly::printOut ( MsgStream os  )  const [virtual]

printout to Gaudi MsgStream stream

See also:
ILVolume
Parameters:
os Gaudi MsgStream stream
Returns:
reference to the stream

Reimplemented from LogVolBase.

double LAssembly::xMin (  )  const [inline]

Definition at line 207 of file LAssembly.h.

00207 { return m_xMin;  }

double LAssembly::xMax (  )  const [inline]

Definition at line 208 of file LAssembly.h.

00208 { return m_xMax;  }

double LAssembly::yMin (  )  const [inline]

Definition at line 209 of file LAssembly.h.

00209 { return m_yMin;  }

double LAssembly::yMax (  )  const [inline]

Definition at line 210 of file LAssembly.h.

00210 { return m_yMax;  }

double LAssembly::zMin (  )  const [inline]

Definition at line 211 of file LAssembly.h.

00211 { return m_zMin;  }

double LAssembly::zMax (  )  const [inline]

Definition at line 212 of file LAssembly.h.

00212 { return m_zMax;  }

void LAssembly::computeCover (  ) 

virtual const std::string& LogVolBase::name (  )  const [inline, virtual, inherited]

retrieve the name(identification) of Logical Volume

See also:
ILVolume
Returns:
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

See also:
ILVolume
Returns:
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)

See also:
ILVolume
Returns:
vector of physical volumes

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

See also:
ILVolume
Returns:
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

See also:
ILVolume
Parameters:
index physical volume index
Returns:
pointer to daughter (Physical Volume)

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

See also:
ILVolume
Parameters:
name physical volume name
Returns:
pointer to daughter (Physical Volume)

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

Parameters:
index physical volume index
Returns:
pointer to daughter (Physical Volume)

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

Parameters:
name physical volume name
Returns:
pointer to daughter (Physical Volume)

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

See also:
ILVolume
Returns:
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)

See also:
ILVolume
Returns:
begin iterator for manipulation with daughters

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

See also:
ILVolume
Returns:
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)

See also:
ILVolume
Returns:
end iterator for manipulation with daughters

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]

traverse the sequence of paths
transform the sequence of replicas to sequence of physical volumes

See also:
ILVolume
Parameters:
pathBegin first replica-Path
pathEnd last replica-Path
pVolumePath vector of physical volumes
Returns:
status code

Implements ILVolume.

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

See also:
ILVolume
Parameters:
path replica-Path
pVolumePath vector of physical volumes
Returns:
status code

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

See also:
ILVolume
Returns:
name of sensitive "detector"

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)

See also:
ILVolume
Returns:
name of magnetic field object

Implements ILVolume.

Definition at line 202 of file LogVolBase.h.

00202 { return m_mfName; } ;

virtual Surfaces& LogVolBase::surfaces (  )  [inline, virtual, inherited]

accessors to surfaces

See also:
ILVolume
Returns:
vector of 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)

See also:
ILVolume
Returns:
vector of surfaces

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.

..

See also:
ILVolume
Returns:
self reference

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

See also:
IInterface
Parameters:
ID unique interface identifier
ppI placeholder for returned interface
Returns:
status code

Implements IInterface.

virtual unsigned long LogVolBase::addRef (  )  [virtual, inherited]

add the reference

See also:
IInterface
Returns:
reference counter

Reimplemented from DataObject.

virtual unsigned long LogVolBase::release (  )  [virtual, inherited]

release the interface

See also:
IInterface
Returns:
reference counter

Reimplemented from DataObject.

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

Parameters:
PVname name of daughter volume
LVnameForPV name of logical volume for the physical volume
position position of logical volume
rotation rotation of logical volume
Returns:
pointer to created physical volume

IPVolume* LogVolBase::createPVolume ( const std::string &  PVname,
const std::string &  LVnameForPV,
const Gaudi::Transform3D Transform 
) [inherited]

create daughter physical volume

Parameters:
PVname name of daughter volume
LVnameForPV name of logical volume for the physical volume
Transform tranformation
Returns:
pointer to created physical volume

IPVolume* LogVolBase::createPVolume (  )  [protected, inherited]

create EMPTY daughter physical volume

Returns:
pointer to created physical volume

void LogVolBase::Assert ( bool  assertion,
const std::string &  name,
const StatusCode sc = StatusCode::FAILURE 
) const [inline, protected, inherited]

Assertion.

Parameters:
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.

Parameters:
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

Exceptions:
LVolumeException wrong parameters or geometry error.

Parameters:
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
Returns:
number of intersections

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

Exceptions:
LVolumeException wrong parameters or geometry error.

Parameters:
Point initial point at the line
Vector direction vector of the line
childIntersections output container
Threshold threshold value
Returns:
number of intersections

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.

Parameters:
LocalPoint point (in local reference system of the solid)
Returns:
true if the point is inside the daughter volume

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.

Parameters:
LocalPoint point (in local reference system of the solid)
Returns:
iterator to the daughter volume

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

Returns:
pointer to data service

IMessageSvc* LogVolBase::msgSvc (  )  const [protected, inherited]

accessor to massage service

Returns:
pointer to message service

static const InterfaceID& ILVolume::interfaceID (  )  [inline, static, inherited]

retrieve the unique interface identifier

See also:
Interface::interfaceID()
Returns:
uniqie 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]

Check if the data object has a well defined validity range.

Implements IValidity.

virtual bool ValidDataObject::isValid ( const Gaudi::Time &  t  )  const [virtual, inherited]

Check if the data object is valid at the specified time.

Implements IValidity.

virtual const Gaudi::Time& ValidDataObject::validSince (  )  const [virtual, inherited]

Get start of validity.

Implements IValidity.

virtual const Gaudi::Time& ValidDataObject::validTill (  )  const [virtual, inherited]

Get end of validity.

Implements IValidity.

virtual void ValidDataObject::setValidity ( const Gaudi::Time &  since,
const Gaudi::Time &  till 
) [virtual, inherited]

Set validity range.

Implements IValidity.

virtual void ValidDataObject::setValiditySince ( const Gaudi::Time &  since  )  [virtual, inherited]

Set start of validity.

Implements IValidity.

virtual void ValidDataObject::setValidityTill ( const Gaudi::Time &  till  )  [virtual, inherited]

Set end of validity.

Implements IValidity.

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]


Friends And Related Function Documentation

friend class DataObjectFactory< LAssembly > [friend]

friend factory for instantiation

Definition at line 32 of file LAssembly.h.


Member Data Documentation

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.


The documentation for this class was generated from the following file:
| Classes | Job Modules | Data Objects | Services | Algorithms | Tools | Packages | Directories | Tracs |

Generated on Mon Apr 11 20:00:19 2011 for DetDesc by doxygen 1.4.7