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

In This Package:

PVolume Class Reference

simple implementation of IPVolume interface More...

#include <PVolume.h>

Inheritance diagram for PVolume:

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

Public Types

 SUCCESS
 NO_INTERFACE
 VERSMISMATCH
 LAST_ERROR
enum  Status

Public Member Functions

virtual const std::string & name () const
 retrieve name of the physical volume (unique within mother logical volume)
virtual const std::string & lvolumeName () const
 retrieve the name of associated Logical Volume
virtual const ILVolumelvolume () const
 retrieve the C++ pointer to Logical Volume
virtual const Gaudi::Transform3Dmatrix () const
 get the tranformation matrix
virtual const Gaudi::Transform3DmatrixInv () const
 get the inverse transformation matrix
virtual Gaudi::XYZPoint toLocal (const Gaudi::XYZPoint &PointInMother) const
 transform point from Mother Reference System to the Local one
virtual Gaudi::XYZPoint toMother (const Gaudi::XYZPoint &PointInLocal) const
 transform point in Local Reference System to the Mother Reference System
virtual bool isInside (const Gaudi::XYZPoint &PointInMother) const
 check for 3D-point
virtual std::ostream & printOut (std::ostream &os=std::cout) const
 printout to STD/STL stream
virtual MsgStreamprintOut (MsgStream &os) const
 printout to Gaudi stream
virtual IPVolumereset ()
 reset to the initial state
virtual unsigned int intersectLine (const Gaudi::XYZPoint &Point, const Gaudi::XYZVector &Vector, ILVolume::Intersections &intersections, const double threshold) const
 Intersection of the physical volume with with line.
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 physical volume with with line.
virtual const Gaudi::Transform3DapplyMisAlignment (const Gaudi::Transform3D &ma)
 apply the misalignemnt to the transformation matrix
virtual const Gaudi::Transform3DresetMisAlignment ()
 reset the misalignemnt
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

Static Public Member Functions

static const InterfaceIDinterfaceID ()
 retrieve the unique interface identifier

Public Attributes

 SUCCESS
 NO_INTERFACE
 VERSMISMATCH
 LAST_ERROR

Protected Member Functions

 PVolume (const std::string &PhysVol_name, const std::string &LogVol_name, const Gaudi::XYZPoint &Position=Gaudi::XYZPoint(), const Gaudi::Rotation3D &Rotation=Gaudi::Rotation3D())
 constructor
 PVolume (const std::string &PhysVol_name, const std::string &LogVol_name, const Gaudi::Transform3D &Transform)
 constructor
virtual ~PVolume ()
 destructor
ILVolumefindLogical () const
 find logical volume by name
Gaudi::Transform3DfindMatrix () const
 inverse the matrix
void Assert (bool assertion, const std::string &name) const
 Assertion
Exceptions:
PVolumeException for wrong condition.

void Assert (bool assertion, const std::string &name, const GaudiException &Exception) const
 Assertion
Exceptions:
PVolumeException for wrong condition.

IDataProviderSvcdataSvc () const
 accessor to the data service

Private Member Functions

 PVolume ()
 no default constructor
 PVolume (const PVolume &)
 no public copy constructor
PVolumeoperator= (const PVolume &)
 no public assignment

Private Attributes

std::string m_name
std::string m_lvname
Gaudi::Transform3D m_nominal
Gaudi::Transform3D m_matrix
Gaudi::Transform3Dm_imatrix
ILVolumem_lvolume
DetDesc::Servicesm_services

Static Private Attributes

static unsigned long s_volumeCounter

Friends

class LogVolBase
 friend class

Detailed Description

simple implementation of IPVolume interface

See also:
IPVolume
Author:
Vanya Belyaev Ivan.Belyaev@itep.ru

Sebastien Ponce

Definition at line 27 of file PVolume.h.


Constructor & Destructor Documentation

PVolume::PVolume ( const std::string &  PhysVol_name,
const std::string &  LogVol_name,
const Gaudi::XYZPoint Position = Gaudi::XYZPoint(),
const Gaudi::Rotation3D Rotation = Gaudi::Rotation3D() 
) [protected]

constructor

Parameters:
PhysVol_name name of phys volume
LogVol_name name of log volume
Position position of physical volume inside mother volume
Rotation rotation of physical volume with respect to mother

PVolume::PVolume ( const std::string &  PhysVol_name,
const std::string &  LogVol_name,
const Gaudi::Transform3D Transform 
) [protected]

constructor

Parameters:
PhysVol_name name of phys volume
LogVol_name name of log volume
Transform transformation matrix

virtual PVolume::~PVolume (  )  [protected, virtual]

destructor

PVolume::PVolume (  )  [private]

no default constructor

PVolume::PVolume ( const PVolume  )  [private]

no public copy constructor


Member Function Documentation

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

retrieve name of the physical volume (unique within mother logical volume)

Returns:
name of physical volume

Implements IPVolume.

Definition at line 68 of file PVolume.h.

00068 { return m_name ; };

virtual const std::string& PVolume::lvolumeName (  )  const [inline, virtual]

retrieve the name of associated Logical Volume

Returns:
name of associated Logical Volume

Implements IPVolume.

Definition at line 73 of file PVolume.h.

00073 { return m_lvname ; };

virtual const ILVolume* PVolume::lvolume (  )  const [virtual]

retrieve the C++ pointer to Logical Volume

Returns:
pointer to Logical Volume

Implements IPVolume.

virtual const Gaudi::Transform3D& PVolume::matrix (  )  const [inline, virtual]

get the tranformation matrix

Returns:
reference to transformation matrix

Implements IPVolume.

Definition at line 83 of file PVolume.h.

00083 { return m_matrix ; }

virtual const Gaudi::Transform3D& PVolume::matrixInv (  )  const [virtual]

get the inverse transformation matrix

Returns:
reference to inverse transformationmatrix

Implements IPVolume.

virtual Gaudi::XYZPoint PVolume::toLocal ( const Gaudi::XYZPoint PointInMother  )  const [virtual]

transform point from Mother Reference System to the Local one

Parameters:
PointInMother point in Mother Reference System
Returns:
point in local reference system

Implements IPVolume.

virtual Gaudi::XYZPoint PVolume::toMother ( const Gaudi::XYZPoint PointInLocal  )  const [virtual]

transform point in Local Reference System to the Mother Reference System

Parameters:
PointInLocal point in Local Referency System
Returns:
point in mother reference system

Implements IPVolume.

virtual bool PVolume::isInside ( const Gaudi::XYZPoint PointInMother  )  const [virtual]

check for 3D-point

Parameters:
PointInMother pointin Mother Referency System
Returns:
true if point is inside physical volume

Implements IPVolume.

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

printout to STD/STL stream

Parameters:
os reference to STD/STL stream
Returns:
reference to STD/STL stream

Implements IPVolume.

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

printout to Gaudi stream

Parameters:
os reference to Gaudi stream
Returns:
reference to Gaudi stream

Implements IPVolume.

virtual IPVolume* PVolume::reset (  )  [virtual]

reset to the initial state

Returns:
self-reference

Implements IPVolume.

virtual unsigned int PVolume::intersectLine ( const Gaudi::XYZPoint Point,
const Gaudi::XYZVector Vector,
ILVolume::Intersections intersections,
const double  threshold 
) const [virtual]

Intersection of the physical volume with with line.

The line is parametrized in the local reference system of the mother logical volume ("Mother Reference System") with 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)

See also:
ILVolume

ISolid

Exceptions:
PVolumeException wrong environment
Parameters:
Point initial point at the line
Vector direction vector of the line
intersections output container
threshold threshold value

Implements IPVolume.

virtual unsigned int PVolume::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 physical volume with with line.

The line is parametrized in the local reference system of the mother logical volume ("Mother Reference System") with 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)

See also:
ILVolume

ISolid

Exceptions:
PVolumeException wrong environment
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

Implements IPVolume.

virtual const Gaudi::Transform3D& PVolume::applyMisAlignment ( const Gaudi::Transform3D ma  )  [virtual]

apply the misalignemnt to the transformation matrix

Parameters:
ma misalignment matrix (assumed to be small!!!)
Returns:
the resulting transformation matrix

Implements IPVolume.

virtual const Gaudi::Transform3D& PVolume::resetMisAlignment (  )  [virtual]

reset the misalignemnt

Returns:
the "nominal" transformation matrix

Implements IPVolume.

virtual StatusCode PVolume::queryInterface ( const InterfaceID ID,
void **  ppI 
) [virtual]

query the interface

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

Implements IInterface.

virtual unsigned long PVolume::addRef (  )  [virtual]

add the reference

Returns:
reference counter

Implements IInterface.

virtual unsigned long PVolume::release (  )  [virtual]

release the interface

Returns:
reference counter

Implements IInterface.

ILVolume* PVolume::findLogical (  )  const [protected]

find logical volume by name

Returns:
pointet to logical volume

Gaudi::Transform3D* PVolume::findMatrix (  )  const [protected]

inverse the matrix

Returns:
pointer to inverse matrix

void PVolume::Assert ( bool  assertion,
const std::string &  name 
) const [protected]

Assertion

Exceptions:
PVolumeException for wrong condition.

Parameters:
assertion condition
name exception message

void PVolume::Assert ( bool  assertion,
const std::string &  name,
const GaudiException Exception 
) const [protected]

Assertion

Exceptions:
PVolumeException for wrong condition.

Parameters:
assertion condition
name exception message
Exception previous exception

IDataProviderSvc* PVolume::dataSvc (  )  const [protected]

accessor to the data service

Returns:
pointer to data service

PVolume& PVolume::operator= ( const PVolume  )  [private]

no public assignment

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

retrieve the unique interface identifier

Returns:
unique interface identifier

Reimplemented from IInterface.

Definition at line 40 of file IPVolume.h.

00040 { return IID_IPVolume; }     


Friends And Related Function Documentation

friend class LogVolBase [friend]

friend class

Definition at line 30 of file PVolume.h.


Member Data Documentation

std::string PVolume::m_name [private]

Definition at line 279 of file PVolume.h.

std::string PVolume::m_lvname [private]

Definition at line 281 of file PVolume.h.

Gaudi::Transform3D PVolume::m_nominal [private]

Definition at line 283 of file PVolume.h.

Gaudi::Transform3D PVolume::m_matrix [private]

Definition at line 285 of file PVolume.h.

Gaudi::Transform3D* PVolume::m_imatrix [mutable, private]

Definition at line 287 of file PVolume.h.

ILVolume* PVolume::m_lvolume [mutable, private]

Definition at line 289 of file PVolume.h.

unsigned long PVolume::s_volumeCounter [static, private]

Definition at line 291 of file PVolume.h.

DetDesc::Services* PVolume::m_services [private]

Definition at line 293 of file PVolume.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:20 2011 for DetDesc by doxygen 1.4.7