Data structure for PSD geometry parameters.
More...
#include <dataobjects/PsdGeoParams.h>
|
struct | PsdElement |
| This struct is used only inside the object, it is public since Root can not save the object otherwise. More...
|
|
Data structure for PSD geometry parameters.
◆ PsdGeoParams() [1/2]
Herd::PsdGeoParams::PsdGeoParams |
( |
| ) |
|
|
inline |
◆ PsdGeoParams() [2/2]
Herd::PsdGeoParams::PsdGeoParams |
( |
unsigned int |
nTotElements | ) |
|
|
inline |
◆ ~PsdGeoParams()
virtual Herd::PsdGeoParams::~PsdGeoParams |
( |
| ) |
|
|
virtualdefault |
◆ BaseAngles()
const std::pair<float, float>& Herd::PsdGeoParams::BaseAngles |
( |
| ) |
const |
|
inline |
Return the base angle of the PSD elements.
- Returns
- the angle (in radians) of the PSD elements along the segmentation directions
◆ CooIndexes()
const CooArray<unsigned char>& Herd::PsdGeoParams::CooIndexes |
( |
unsigned int |
volID | ) |
const |
|
inline |
Return the indexes of a PSD element.
- Parameters
-
- Returns
- the indexes of the PSD element.
◆ IsSmallerFaceOutward()
bool Herd::PsdGeoParams::IsSmallerFaceOutward |
( |
unsigned int |
volID | ) |
|
|
inline |
Specifies if the PSD element has the smaller basis of the trapezoidal pointing outward.
- Returns
- true if the small basis is pointing outward, false otherwise
◆ NElements()
const AxesArray<unsigned int>& Herd::PsdGeoParams::NElements |
( |
| ) |
const |
|
inline |
Return the number of PSD elements along each segmentation axis.
The returned array holds the number of sensitive elements along each segmentation axis (the segmentation axes are those orthogonal to the normal axis, e.g. X and Z are the segmentation axes for the lateral PSD on Y sides). For example, for bars PSD nElements[RefFrame::Axis::Y] is the number of bars along Y, while for a tiles PSD it is the number of tiles along Y. For top PSD nElements[RefFrame::Axis::Z] will be 0 since Z is the normal axis; for side PSD the PsdGeoParams object has to describe PSDs on X and Y sides, so both nElements[RefFrame::Axis::Y] and nElements[RefFrame::Axis::X] will be nonzero. However, it is intended that for each PSD the number of elements along the normal axis is 0.
- Returns
- the number of PSD elements along each segmentation axis.
◆ Normal()
Return the normal to the PSD surface, which points outside the full detector.
- Returns
- the normal to the PSD surface.
◆ NTotElements()
unsigned int Herd::PsdGeoParams::NTotElements |
( |
| ) |
const |
|
inline |
Return the total number of PSD elements.
- Returns
- the total number of PSD elements.
◆ Position()
const Point& Herd::PsdGeoParams::Position |
( |
unsigned int |
volID | ) |
const |
|
inline |
Return the position of a PSD element.
- Parameters
-
- Returns
- the position of the PSD element.
◆ SegmentationDirections()
Return the segmentation directions of the PSD layer.
The first element of the returned pair is the direction along which the volume ID increases by 1 (the so called "main segmentation direction"), the second element is the other segmentation direction (the "secondary segmentation
direction").
- Returns
- the two segmentation directions.
- Exceptions
-
std::runtime_error | if the normal direction setting is not valid. |
◆ SetBaseAngles()
void Herd::PsdGeoParams::SetBaseAngles |
( |
std::pair< float, float > |
baseAngles | ) |
|
|
inline |
Set the base angles of the PSD elements.
- Parameters
-
baseAngles | base Angles in radians along the segmentation directions |
◆ SetNElements()
void Herd::PsdGeoParams::SetNElements |
( |
AxesArray< unsigned int > |
nElements | ) |
|
Set the number of PSD elements along each segmentation axis and compute the indexes.
This method must be used after setting the normal, otherwise it can not compute the indexes
- Parameters
-
nElements | the number of PSD elements along each segmentation axis. |
◆ SetNormal()
Set the normal to the PSD surface, which points outside the full detector.
- Parameters
-
nElements | the normal to the PSD surface. |
◆ SetPosition()
void Herd::PsdGeoParams::SetPosition |
( |
unsigned int |
volID, |
|
|
Point |
position |
|
) |
| |
|
inline |
Set the position of a PSD element.
- Parameters
-
volID | Volume identifier. |
position | the position of the PSD element. |
◆ SetSizes()
void Herd::PsdGeoParams::SetSizes |
( |
AxesArray< float > |
sizes | ) |
|
|
inline |
Set the size of a PSD element, one value for each direction. Size in trapezoidal shapes refers to the half-height width.
- Parameters
-
sizes | the size of a PSD element in each direction. |
◆ Sizes()
const AxesArray<float>& Herd::PsdGeoParams::Sizes |
( |
| ) |
const |
|
inline |
Return the size of a PSD element, one value for each direction. Size in trapezoidal shapes refers to the half-height width.
- Returns
- the size of a PSD element in each direction.
◆ _baseAngles
std::pair<float, float> Herd::PsdGeoParams::_baseAngles |
|
private |
Base angles of the PSD elements.
◆ _nElements
AxesArray<unsigned int> Herd::PsdGeoParams::_nElements |
|
private |
Number of PSD elements along each segmentation axis.
◆ _normal
Normal of the PSD which points outside the full detector.
◆ _psdElements
std::vector<PsdElement> Herd::PsdGeoParams::_psdElements |
|
private |
Vector of PSD elements, which include the position and the indexes.
◆ _sizes
Size of a PSD element, one value for each direction.
The documentation for this class was generated from the following files: