4#ifndef MUONREADOUTGEOMETRYR4_PADDESIGN_H
5#define MUONREADOUTGEOMETRYR4_PADDESIGN_H
9#include <GaudiKernel/SystemOfUnits.h>
65 std::pair<int, int>
padNumber(
const int SeqChannel)
const;
67 std::pair<int, int>
padEtaPhi(
const int channel)
const;
92 void print(std::ostream& ostr)
const override final;
The TransientConstSharedPtr allows non-const access if the pointer itself is non-const but in the con...
double m_firstPadHeight
Height of the pads that are adjacent to the bottom edge of the trapezoid active area.
double beamlineRadius() const
Returns the distance between the gasGap center and the beamline.
int numPadPhi() const
Returns the number of pads in the Phi direction in the given gasGap layer.
double m_anglePadPhi
Angular pitch of the pads in the phi direction.
std::pair< int, int > padNumber(const int SeqChannel) const
Returns the pad (eta,phi) for a given pad number in sequence (1,2,3,...18,19,20......
void print(std::ostream &ostr) const override final
Dump properties to the ostr.
int numPadEta() const
Returns the number of pads in the eta direction in the given layer.
double sectorAngle() const
Function gives the angular width of the sector.
double padPhiShift() const
Returns the staggering shift of inner pad edges in the phi direction.
double m_padPhiShift
The staggering shift of inner pad edges in the phi direction.
int m_numPadPhi
Number of pads in the Phi direction in the given gasGap layer.
static constexpr double m_largeSectorAngle
Large sector opening angle.
void defineBeamlineRadius(const double radius)
Extracting the distance from gasGap center to beamline from the local to global transformation of the...
static constexpr double m_smallSectorAngle
Small sector opening angle.
int numPads() const
Returns the total number of pads in a layer.
int maxPadEta() const
Returns the maximum number of pads that can be contained in a column of a pad. Used to match the pad ...
std::array< Amg::Vector2D, 4 > localCornerArray
Defining an array of four vectors to store the pad corner position in the order of the enum defined b...
int m_numPadEta
Number of pads in the eta direction in the given layer.
double firstPadHeight() const
Returns the height of the pads that are adjacent to the bottom edge of the trapezoid active area.
double m_firstPadPhiDiv
Angle of the first pad outer edge w.r.t. the gasGap center from the beamline.
double m_radius
Stores the beamline radius extracted from the local to global transformation.
double maxActiveX(const double locY) const
Function gives the maximum active area length available in the local x for the given hit local y.
double anglePadPhi() const
Returns the angular pitch of the pads in the phi direction.
bool operator<(const PadDesign &other) const
set sorting operator
std::pair< int, int > channelNumber(const Amg::Vector2D &hitPos) const
Function to retrieve the pad eta and phi given a local position coordinate.
int padEta(const int channel) const
Returns the Eta index of the pad for the given conventional pad number.
int m_maxPadEta
The maximum number of pads that can be contained in a column of a pad. Used to match the pad numberin...
void definePadRow(const double firstPadPhiDiv, const int numPadPhi, const double anglePadPhi, const int padPhiShift)
Defines the Phi direction layout of the pad detector by specifing the starting angle w....
void definePadColumn(const double firstPadHeight, const int numPadEta, const double padHeight, const int maxPadEta=18)
Defines the Eta direction layout of the pad detector by specifing the height of the first pad in mill...
double m_padHeight
Height of all the pads that are not adjacent to the bottom edge of the trapezoid active area.
double padHeight() const
Returns the height of all the pads that are not adjacent to the bottom edge of the trapezoid active a...
Amg::Vector2D stripPosition(int stripNum) const override final
Override from stripDesign. This function will give the center of the pad by taking the sequential cha...
std::pair< int, int > padEtaPhi(const int channel) const
Returns a pair of Eta and Phi index for the given conventional pad number.
double firstPadPhiDiv() const
Returns the angle of the first pad outer edge w.r.t. the gasGap center from the beamline.
int padPhi(const int channel) const
Returns the Phi index of the pad for the given conventional pad number.
localCornerArray padCorners(const int channel) const
Returns an array of local pad corner positions given the sequential pad channel or the Eta/Phi Id.
Eigen::Matrix< double, 2, 1 > Vector2D
The ReadoutGeomCnvAlg converts the Run4 Readout geometry build from the GeoModelXML into the legacy M...
GeoModel::TransientConstSharedPtr< PadDesign > PadDesignPtr
bool operator()(const PadDesign &a, const PadDesign &b) const
bool operator()(const PadDesignPtr &a, const PadDesignPtr &b) const