ATLAS Offline Software
Public Member Functions | Protected Member Functions | List of all members
IEnvelopeDefSvc Class Referenceabstract

#include <IEnvelopeDefSvc.h>

Inheritance diagram for IEnvelopeDefSvc:
Collaboration diagram for IEnvelopeDefSvc:

Public Member Functions

 DeclareInterfaceID (IEnvelopeDefSvc, 1, 0)
 
virtual ~IEnvelopeDefSvc ()
 virtual distructor More...
 
virtual const RZPairVectorgetRZBoundary (AtlasDetDescr::AtlasRegion region) const =0
 return a vector of (r,z) pairs, defining the respective envelope More...
 
virtual const RZPairVectorgetRPositiveZBoundary (AtlasDetDescr::AtlasRegion region) const =0
 return a vector of (r,z) pairs, defining the envelope in the z>0 region More...
 
const RZPairVectorgetBeamPipeRZBoundary () const
 wrapper methods More...
 
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 More...
 

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  ,
,
 
)

◆ getBeamPipeRZBoundary()

const RZPairVector& IEnvelopeDefSvc::getBeamPipeRZBoundary ( ) const
inline

wrapper methods

Definition at line 47 of file IEnvelopeDefSvc.h.

◆ 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 }

The documentation for this class was generated from the following file:
AtlasDetDescr::fAtlasForward
@ fAtlasForward
Definition: AtlasRegion.h:34
RZPair
std::pair< double, double > RZPair
Definition: RZPair.h:15
AtlasDetDescr::fAtlasMS
@ fAtlasMS
Definition: AtlasRegion.h:36
AtlasDetDescr::fAtlasCavern
@ fAtlasCavern
Definition: AtlasRegion.h:37
AtlasDetDescr::fAtlasID
@ fAtlasID
Definition: AtlasRegion.h:33
AtlasDetDescr::fAtlasCalo
@ fAtlasCalo
Definition: AtlasRegion.h:35
IEnvelopeDefSvc::getRZBoundary
virtual const RZPairVector & getRZBoundary(AtlasDetDescr::AtlasRegion region) const =0
return a vector of (r,z) pairs, defining the respective envelope