5#include "GeoModelKernel/throwExcept.h"
22 std::vector<StripArray>&& SLARGE,
23 std::vector<StripArray>&& SSHORT,
33 for (
int iGap =0 ; iGap <
MaxNGaps; ++iGap){
34 m_nWires[iGap].resize(numWireGangs[iGap]);
37 for (
int iGang = 0; iGang <
MaxNGangs; ++iGang) {
38 if (iGang < numWireGangs[0]) {
42 if (iGang < numWireGangs[1]) {
46 if (iGang < numWireGangs[2]) {
52 for (
size_t iGap = 0; iGap <
m_nWires.size(); ++iGap) {
55 int accumWires = totWires;
56 for (
int iGang =
m_nWires[iGap].size() - 1; iGang >= 0; --iGang) {
102 THROW_EXCEPTION(
" gasGap " << gasGap <<
" or gang " << gang <<
" out of allowed range" );
104 return m_nWires[gasGap - 1][gang - 1];
108 THROW_EXCEPTION(
" gasGap " << gasGap <<
" or gang " << gang <<
" out of allowed range" );
114 THROW_EXCEPTION(
" gasGap " << gasGap <<
" or gang " << gang <<
" out of allowed range" );
116 const double nPit = 1.*
m_nAccWires[gasGap -1][gang - 1] +
117 0.5*(
m_nWires[gasGap-1][gang-1] -1) -
132 if (istrip >
m_nStrips[0] + 1 || istrip < 1){
134 <<
" out of range in TgcReadoutParams::stripPositionOnLargeBase for TgcReadoutParams of name/type " <<
m_chamberName <<
"/"
148 if (istrip >
m_nStrips[0] + 1 || istrip < 1) {
149 THROW_EXCEPTION(__func__<<
"() "<<__LINE__<<
" - Input strip n. " << istrip
150 <<
" out of range in TgcReadoutParams::stripPositionOnShortBase for TgcReadoutParams of name/type " <<
m_chamberName <<
"/"
166 <<
" out of range in TgcReadoutParams::stripPositionOnLargeBase for TgcReadoutParams of name/type " <<
m_chamberName <<
"/"
AthMessaging(IMessageSvc *msgSvc, const std::string &name)
Constructor.
int nWires(int gasGap, int gang) const
Returns the number of wires in a given gang.
double stripPositionOnLargeBase(int strip, int gasGap) const
Returns the signed distance of the i-th's strip's left edge w.r.t the center of the bottom chamber ed...
int totalWires(int gasGap) const
Returns the total number of wires in a given gang.
double stripPositionOnShortBase(int strip, int gasGap) const
Returns the signed distance of the i-th's strip's left edge w.r.t.
GasGapIntArray m_totalWires
std::array< int, MaxNGangs > WiregangArray
std::array< std::vector< int >, MaxNGaps > m_nAccWires
Map describing the number of all wires up to gang i in gasgap j.
int nStripLayers() const
Returns the number of defined strip layers.
double wirePitch() const
Returns the wire pitch.
int nWireGangs(int gasGap) const
Returns the number of wire gangs.
TgcReadoutParams()
Default constructor used by the MuonTPCnv tests.
std::vector< StripArray > m_stripPositionCenter
The position of the strip center is defined as the intersector of the large and short edge strip posi...
std::array< std::vector< int >, MaxNGaps > m_nWires
Map of number of wires in a given wire gang & gas gap.
double physicalDistanceFromBase() const
std::vector< StripArray > m_stripPositionOnLargeBase
These 2 arrays represent the left edges of the i-th strip in a Tgc chamber The numbers are given as t...
double stripCenter(int strip, int gasGap) const
Returns the signed distance along the chamber edge of the strip expressed at the chamber center.
double m_physicalDistanceFromBase
std::string m_chamberName
int nSummedWires(int gasGap, int gang) const
Returns the sum of all wires from gang [1 - i)
bool invalidGasGap(int gasGap) const
std::array< int, MaxNGaps > GasGapIntArray
double nPitchesToGang(int gasGap, int gang) const
Returns the number of wire pitches that have to be travelled to reach gang i.
int nStrips(int gasGap) const
bool invalidGang(int gang) const
std::vector< StripArray > m_stripPositionOnShortBase
Ensure that the Athena extensions are properly loaded.
#define THROW_EXCEPTION(MESSAGE)