HerdSoftware  0.3.2
Public Member Functions | Private Attributes | List of all members
Herd::CaloGeoParams::PrismaticEnvelope Class Reference

Parameters of the prismatic CALO envelope. More...

#include <CaloGeoParams.h>

Public Member Functions

 PrismaticEnvelope ()
 Default constructor. More...
 
 PrismaticEnvelope (Point center, AxesArray< float > sizes, float xFaceYSize, float yFaceXSize)
 Constructor. More...
 
const PointCenter () const
 Gets the center of the envelope. More...
 
const DirectionsArray< Rectangle > & LateralFaces () const
 Gets the lateral faces of the envelope. More...
 
const std::array< Herd::Plane, 2 > & ZPlanes () const
 Gets the top and bottom planes of the envelope. More...
 
bool operator== (const PrismaticEnvelope &rhs)
 
float Volume () const
 Gets the total volume of the envelope. More...
 

Private Attributes

Point m_center
 The center of the prism (cm). More...
 
AxesArray< float > m_sizes
 The size of the prism along each axis (cm). More...
 
float m_xFaceYSize
 The size along Y of the prism faces on X sides (cm). More...
 
float m_yFaceXSize
 The size along X of the prism faces on Y sides (cm). More...
 
DirectionsArray< Rectanglem_lateralFaces
 Lateral faces of the envelope. More...
 
std::array< Herd::Plane, 2 > m_zPlanes
 Top (first) and bottom (second) envelope planes. More...
 

Detailed Description

Parameters of the prismatic CALO envelope.

A prismatic envelope can be defined for the standard CALO. The envelope consists of a right prism with octagonal-shaped bases.

Constructor & Destructor Documentation

◆ PrismaticEnvelope() [1/2]

Herd::CaloGeoParams::PrismaticEnvelope::PrismaticEnvelope ( )

Default constructor.

◆ PrismaticEnvelope() [2/2]

Herd::CaloGeoParams::PrismaticEnvelope::PrismaticEnvelope ( Point  center,
AxesArray< float >  sizes,
float  xFaceYSize,
float  yFaceXSize 
)

Constructor.

Builds a prismatic envelope, defined by center, size along each axis, and dimensions of the faces on the X and Y sides. For a prism with octagonal base the face sizes are less than the prism sizes, e.g. xFaceYSize < sizes[RefFrame::Coo::Y], and similarly for X side. For a prism with rectangular base the face sizes are equal than the prism sizes, i.e (xFaceYSize == sizes[RefFrame::Coo::Y]) && (yFaceXSize == sizes[RefFrame::Coo::X]). Just one face size equal to prism size or a face size greater than the corresponding prism size are not allowed.

Parameters
centerThe center of the envelope (cm).
sizesThe sizes of the envelope along each axis (cm).
xFaceYSizeThe size along Y of the prism faces on X sides (cm).
yFaceXSizeThe size along X of the prism faces on Y sides (cm).
Exceptions
Herd::Exceptionif only one face size is equal to prism size, or if a face size is greater that the corresponding prism size.

Member Function Documentation

◆ Center()

const Point& Herd::CaloGeoParams::PrismaticEnvelope::Center ( ) const
inline

Gets the center of the envelope.

Returns
The center of the envelope.

◆ LateralFaces()

const DirectionsArray< Rectangle > & Herd::CaloGeoParams::PrismaticEnvelope::LateralFaces ( ) const

Gets the lateral faces of the envelope.

This method returns all the lateral faces of the envelope. For an envelope with rectangular basis the inclined faces are equal to the default Rectangle.

Returns
The lateral envelope faces.

◆ operator==()

bool Herd::CaloGeoParams::PrismaticEnvelope::operator== ( const PrismaticEnvelope rhs)

◆ Volume()

float Herd::CaloGeoParams::PrismaticEnvelope::Volume ( ) const

Gets the total volume of the envelope.

Returns
The volume enclosed by the envelope

◆ ZPlanes()

const std::array< Herd::Plane, 2 > & Herd::CaloGeoParams::PrismaticEnvelope::ZPlanes ( ) const

Gets the top and bottom planes of the envelope.

The top and bottom faces of the envelope are generally octagons, which currently are not represented by a class. This method returns the planes on which the top and bottom faces lie.

Returns
A pair containing the top (first) and bottom (second) planes of the envelope.

Member Data Documentation

◆ m_center

Point Herd::CaloGeoParams::PrismaticEnvelope::m_center
private

The center of the prism (cm).

◆ m_lateralFaces

DirectionsArray<Rectangle> Herd::CaloGeoParams::PrismaticEnvelope::m_lateralFaces
mutableprivate

Lateral faces of the envelope.

◆ m_sizes

AxesArray<float> Herd::CaloGeoParams::PrismaticEnvelope::m_sizes
private

The size of the prism along each axis (cm).

◆ m_xFaceYSize

float Herd::CaloGeoParams::PrismaticEnvelope::m_xFaceYSize
private

The size along Y of the prism faces on X sides (cm).

◆ m_yFaceXSize

float Herd::CaloGeoParams::PrismaticEnvelope::m_yFaceXSize
private

The size along X of the prism faces on Y sides (cm).

◆ m_zPlanes

std::array<Herd::Plane, 2> Herd::CaloGeoParams::PrismaticEnvelope::m_zPlanes
mutableprivate

Top (first) and bottom (second) envelope planes.


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