 |
ATLAS Offline Software
|
Go to the documentation of this file.
25 m_readoutVersion(Version),
27 m_nPhiChambers(NCHRNG),
28 m_nStrips{std::move(numStrips)} {
30 for (
int iGap =0 ; iGap < MaxNGaps; ++iGap){
31 m_nWires[iGap].resize(numWireGangs[iGap]);
32 m_nAccWires[iGap].resize(numWireGangs[iGap]);
34 for (
int iGang = 0; iGang < MaxNGangs; ++iGang) {
35 if (iGang < numWireGangs[0]) {
36 m_nWires[0][iGang] = IWGS1[iGang];
37 m_totalWires[0] += IWGS1[iGang];
39 if (iGang < numWireGangs[1]) {
40 m_nWires[1][iGang] = IWGS2[iGang];
41 m_totalWires[1] += IWGS2[iGang];
43 if (iGang < numWireGangs[2]) {
44 m_nWires[2][iGang] = IWGS3[iGang];
45 m_totalWires[2] += IWGS3[iGang];
48 for (
size_t iGap = 0; iGap < m_nWires.size(); ++iGap) {
50 const int totWires = totalWires(iGap + 1);
51 int accumWires = totWires;
52 for (
int iGang = m_nWires[iGap].
size() - 1; iGang >= 0; --iGang) {
53 accumWires -= m_nWires[iGap][iGang];
54 m_nAccWires[iGap][iGang] = accumWires;
72 std::move(IWGS1), std::move(IWGS2), std::move(IWGS3),
73 std::move(numStrips)){
101 throw std::out_of_range(
"input gas gap index is incorrect");
109 throw std::out_of_range(
"input gas gap index is incorrect");
116 ATH_MSG_FATAL( __func__<<
":"<<__LINE__<<
" gasGap " <<
gasGap <<
" or gang " << gang <<
" out of allowed range" );
117 throw std::out_of_range(
"input gas gap or wire gang index are incorrect");
123 ATH_MSG_FATAL( __func__<<
":"<<__LINE__<<
" gasGap " <<
gasGap <<
" or gang " << gang <<
" out of allowed range" );
124 throw std::out_of_range(
"input gas gap or wire gang index are incorrect");
130 ATH_MSG_FATAL( __func__<<
":"<<__LINE__<<
" gasGap " <<
gasGap <<
" or gang " << gang <<
" out of allowed range" );
131 throw std::out_of_range(
"input gas gap or wire gang index are incorrect");
142 throw std::out_of_range(
"input gas gap index is incorrect");
150 if (istrip >
m_nStrips[0] + 1 || istrip < 1){
151 ATH_MSG_FATAL(__func__<<
"() "<<__LINE__<<
" - Input strip n. " << istrip
152 <<
" out of range in TgcReadoutParams::stripPositionOnLargeBase for TgcReadoutParams of name/type " <<
m_chamberName <<
"/"
154 throw std::out_of_range(
"invalid strip index");
160 if (istrip >
m_nStrips[0] + 1 || istrip < 1) {
161 ATH_MSG_FATAL(__func__<<
"() "<<__LINE__<<
" - Input strip n. " << istrip
162 <<
" out of range in TgcReadoutParams::stripPositionOnShortBase for TgcReadoutParams of name/type " <<
m_chamberName <<
"/"
164 throw std::out_of_range(
"invalid strip index");
172 <<
" out of range in TgcReadoutParams::stripPositionOnLargeBase for TgcReadoutParams of name/type " <<
m_chamberName <<
"/"
174 throw std::out_of_range(
"invalid strip index");
Ensure that the Athena extensions are properly loaded.
std::array< std::vector< int >, MaxNGaps > m_nAccWires
Map describing the number of all wires up to gang i in gasgap j.
StripArray m_stripPositionOnShortBase
double m_physicalDistanceFromBase
double physicalDistanceFromBase() const
std::array< double, MaxNStrips > StripArray
int totalWires(int gasGap) const
Returns the total number of wires in a given gang.
std::string m_chamberName
int nWires(int gasGap, int gang) const
Returns the number of wires in a given gang.
std::array< std::vector< int >, MaxNGaps > m_nWires
Map of number of wires in a given wire gang & gas gap.
int nStrips(int gasGap) const
bool invalidGasGap(int gasGap) const
std::array< int, MaxNGaps > GasGapIntArray
double wirePitch() const
Returns the wire pitch.
Class to provide easy MsgStream access and capabilities.
double stripPositionOnShortBase(int strip) const
Returns the signed distance of the i-th's strip's left edge w.r.t.
int nSummedWires(int gasGap, int gang) const
Returns the sum of all wires from gang [1 - i)
bool invalidGang(int gang) const
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...
int nWireGangs(int gasGap) const
Returns the number of wire gangs.
TgcReadoutParams()
Constructor not setting any parameters.
StripArray m_stripPositionCenter
The position of the strip center is defined as the intersector of the large and short edge strip posi...
std::array< int, MaxNGangs > WiregangArray
int readoutVersion() const
double stripCenter(int strip) const
Returns the signed distance along the chamber edge of the strip expressed at the chamber center.
double nPitchesToGang(int gasGap, int gang) const
Returns the number of wire pitches that have to be travelled to reach gang i.
GasGapIntArray m_totalWires
double stripPositionOnLargeBase(int strip) const
Returns the signed distance of the i-th's strip's left edge w.r.t the center of the bottom chamber ed...