 |
ATLAS Offline Software
|
Go to the documentation of this file.
5 #include "GeoModelKernel/throwExcept.h"
22 std::vector<StripArray>&& SLARGE,
23 std::vector<StripArray>&& SSHORT,
30 m_nPhiChambers{NCHRNG},
31 m_nStrips{std::move(numStrips)} {
33 for (
int iGap =0 ; iGap < MaxNGaps; ++iGap){
34 m_nWires[iGap].resize(numWireGangs[iGap]);
35 m_nAccWires[iGap].resize(numWireGangs[iGap]);
37 for (
int iGang = 0; iGang < MaxNGangs; ++iGang) {
38 if (iGang < numWireGangs[0]) {
39 m_nWires[0][iGang] = IWGS1[iGang];
40 m_totalWires[0] += IWGS1[iGang];
42 if (iGang < numWireGangs[1]) {
43 m_nWires[1][iGang] = IWGS2[iGang];
44 m_totalWires[1] += IWGS2[iGang];
46 if (iGang < numWireGangs[2]) {
47 m_nWires[2][iGang] = IWGS3[iGang];
48 m_totalWires[2] += IWGS3[iGang];
52 for (
size_t iGap = 0; iGap < m_nWires.size(); ++iGap) {
54 const int totWires = totalWires(iGap + 1);
55 int accumWires = totWires;
56 for (
int iGang = m_nWires[iGap].
size() - 1; iGang >= 0; --iGang) {
57 accumWires -= m_nWires[iGap][iGang];
58 m_nAccWires[iGap][iGang] = accumWires;
62 m_physicalDistanceFromBase = PDIST;
63 m_stripPositionOnLargeBase = std::move(SLARGE);
64 m_stripPositionOnShortBase = std::move(SSHORT);
65 m_stripPositionCenter.resize(m_stripPositionOnShortBase.size());
66 for (
size_t l = 0;
l < m_stripPositionOnLargeBase.size(); ++
l) {
67 for (
size_t s = 0 ;
s < m_stripPositionOnLargeBase[
l].size() - 1; ++
s) {
70 m_stripPositionCenter[
l][
s] = 0.25 *( m_stripPositionOnLargeBase[
l][
s] + m_stripPositionOnShortBase[
l][
s] +
71 m_stripPositionOnLargeBase[
l][
s+1] + m_stripPositionOnShortBase[
l][
s+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 <<
"/"
int nStripLayers() const
Returns the number of defined strip layers.
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.
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...
double m_physicalDistanceFromBase
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...
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.
int nSummedWires(int gasGap, int gang) const
Returns the sum of all wires from gang [1 - i)
std::vector< StripArray > m_stripPositionOnShortBase
bool invalidGang(int gang) const
int nWireGangs(int gasGap) const
Returns the number of wire gangs.
std::vector< StripArray > m_stripPositionCenter
The position of the strip center is defined as the intersector of the large and short edge strip posi...
TgcReadoutParams()
Default constructor used by the MuonTPCnv tests.
#define THROW_EXCEPTION(MESSAGE)
double stripPositionOnShortBase(int strip, int gasGap) const
Returns the signed distance of the i-th's strip's left edge w.r.t.
double stripCenter(int strip, int gasGap) const
Returns the signed distance along the chamber edge of the strip expressed at the chamber center.
std::array< int, MaxNGangs > WiregangArray
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