ATLAS Offline Software
Loading...
Searching...
No Matches
IEnvelopeDefSvc Class Referenceabstract

Interface class which is used to retrieve sub-detector envelope definitions in the form of (r,z) pairs. More...

#include <IEnvelopeDefSvc.h>

Inheritance diagram for IEnvelopeDefSvc:
Collaboration diagram for IEnvelopeDefSvc:

Public Member Functions

 DeclareInterfaceID (IEnvelopeDefSvc, 1, 0)
virtual ~IEnvelopeDefSvc ()
 virtual distructor
virtual const RZPairVectorgetRZBoundary (AtlasDetDescr::AtlasRegion region) const =0
 return a vector of (r,z) pairs, defining the respective envelope
virtual const RZPairVectorgetRPositiveZBoundary (AtlasDetDescr::AtlasRegion region) const =0
 return a vector of (r,z) pairs, defining the envelope in the z>0 region
const RZPairVectorgetBeamPipeRZBoundary () const
 wrapper methods
const RZPairVectorgetInDetRZBoundary () const
const RZPairVectorgetCaloRZBoundary () const
const RZPairVectorgetMuonRZBoundary () const
const RZPairVectorgetCavernRZBoundary () const

Protected Member Functions

void mirrorRZ (const RZPairVector &srcRZ, RZPairVector &dstRZ) const
 mirror the given srcRZ RZPairVector in the XY-plane to describe all corner points in (r,z) space in the dstRZ RZPairVector

Detailed Description

Interface class which is used to retrieve sub-detector envelope definitions in the form of (r,z) pairs.

This even supports multiple volume definitions in each sub-detector.

Author
Elmar.Ritsch -at- cern.ch

Definition at line 22 of file IEnvelopeDefSvc.h.

Constructor & Destructor Documentation

◆ ~IEnvelopeDefSvc()

virtual IEnvelopeDefSvc::~IEnvelopeDefSvc ( )
inlinevirtual

virtual distructor

Definition at line 38 of file IEnvelopeDefSvc.h.

38{};

Member Function Documentation

◆ DeclareInterfaceID()

IEnvelopeDefSvc::DeclareInterfaceID ( IEnvelopeDefSvc ,
1 ,
0  )

◆ getBeamPipeRZBoundary()

const RZPairVector & IEnvelopeDefSvc::getBeamPipeRZBoundary ( ) const
inline

wrapper methods

Definition at line 47 of file IEnvelopeDefSvc.h.

virtual const RZPairVector & getRZBoundary(AtlasDetDescr::AtlasRegion region) const =0
return a vector of (r,z) pairs, defining the respective envelope

◆ getCaloRZBoundary()

const RZPairVector & IEnvelopeDefSvc::getCaloRZBoundary ( ) const
inline

Definition at line 49 of file IEnvelopeDefSvc.h.

◆ getCavernRZBoundary()

const RZPairVector & IEnvelopeDefSvc::getCavernRZBoundary ( ) const
inline

Definition at line 51 of file IEnvelopeDefSvc.h.

◆ getInDetRZBoundary()

const RZPairVector & IEnvelopeDefSvc::getInDetRZBoundary ( ) const
inline

Definition at line 48 of file IEnvelopeDefSvc.h.

◆ getMuonRZBoundary()

const RZPairVector & IEnvelopeDefSvc::getMuonRZBoundary ( ) const
inline

Definition at line 50 of file IEnvelopeDefSvc.h.

◆ getRPositiveZBoundary()

virtual const RZPairVector & IEnvelopeDefSvc::getRPositiveZBoundary ( AtlasDetDescr::AtlasRegion region) const
pure virtual

return a vector of (r,z) pairs, defining the envelope in the z>0 region

◆ getRZBoundary()

virtual const RZPairVector & IEnvelopeDefSvc::getRZBoundary ( AtlasDetDescr::AtlasRegion region) const
pure virtual

return a vector of (r,z) pairs, defining the respective envelope

◆ mirrorRZ()

void IEnvelopeDefSvc::mirrorRZ ( const RZPairVector & srcRZ,
RZPairVector & dstRZ ) const
inlineprotected

mirror the given srcRZ RZPairVector in the XY-plane to describe all corner points in (r,z) space in the dstRZ RZPairVector

mirror the given RZPairs in the XY-plane to describe all corner points in (r,z) space

Definition at line 61 of file IEnvelopeDefSvc.h.

62{
63 int numPosPairs = srcRZ.size();
64 // the mirrored envelope will have exactly twice as many entries as the given srcRZ
65 dstRZ.resize(2*numPosPairs);
66
67 // loop over all positive (r,z) pairs
68 for ( int curNum = 0; curNum<numPosPairs; curNum++) {
69 double curR = srcRZ[curNum].first;
70 double curZ = srcRZ[curNum].second;
71
72 // debugging output:
73 //std::cout << "Envelope: pos=" << curNum << " r=" << curR << " z="<< curZ << std::endl;
74
75 // fill in the z<0 side
76 dstRZ[numPosPairs-curNum-1] = RZPair(curR, -curZ);
77 // fill in the z>0 side
78 dstRZ[numPosPairs+curNum] = RZPair(curR, curZ);
79 }
80
81 return;
82}
std::pair< double, double > RZPair
Definition RZPair.h:15

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