ATLAS Offline Software
RPCchamber.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef RPCCHAMBER_H
6 #define RPCCHAMBER_H
7 
8 #include <list>
9 #include <vector>
10 
11 #include "GaudiKernel/MsgStream.h"
12 
16 
17 namespace RPC_CondCabling {
18 
19  class EtaCMA;
20  class WiredOR;
21  class SectorLogicSetup;
22 
23  class RPCchamber : public CablingObject {
24  public:
29  chamberDefineParams() = default; // default constructor
30  chamberDefineParams(chamberDefineParams&&) = default; // move constructor
31  chamberDefineParams(const chamberDefineParams&) = default; // copy constructor
32  chamberDefineParams& operator=(const chamberDefineParams&) = default; // assignment operator
33 
34  std::string chamberName{""}; // RPC chamber name
35 
36  int stationEta{-INT_MAX};
37  int doubletR{-INT_MAX};
38  int doubletZ{-INT_MAX};
39 
41 
42  int stripsInEtaCon{0};
43  int stripsInPhiCon{0};
44 
45  int etaStrips{0};
46  int phiStrips{0};
47 
48  int etaConnectors{0};
49  int phiConnectors{0};
50 
51  int ijk_EtaReadOut{0};
52  int ijk_PhiReadOut{0};
55  };
59  chamberParameters() = default; // default constructor
60  chamberParameters(chamberParameters&&) = default; // move constructor
61  chamberParameters(const chamberParameters&) = default; // copy constructor
62  chamberParameters& operator=(const chamberParameters&) = default; // assignment operator
63  };
64 
65  private:
66  typedef std::vector<int> ReadoutCh;
67  typedef std::list<const EtaCMA*> CMAlist;
68  typedef std::list<const WiredOR*> WORlist;
69 
71  int m_eta_strip_global{0}; // Start number of eta strips in global coordinate
72  int m_eta_conn_global{0}; // Start number of eta connector in global coo.
73 
75 
78 
79  int residual(ViewType, int) const;
80  [[nodiscard]] std::string error(const std::string&) const;
81 
82  public:
84  RPCchamber(const RPCchamber&) = default;
85  virtual ~RPCchamber();
86 
87  RPCchamber& operator=(const RPCchamber&) = default;
88 
89  void set_eta_st_global(int);
90  void set_eta_co_global(int);
91 
92  int eta_strips() const;
93  int eta_connectors() const;
94  int eta_strip_global() const;
95  int eta_conn_global() const;
96  int phi_strips() const;
97 
98  int phi_connectors() const;
99  int ijk_etaReadout() const;
100  int ijk_phiReadout() const;
101 
102  std::string chamber_name() const;
103  std::string stationName() const;
104  int stationEta() const;
105  int doubletR() const;
106  int doubletZ() const;
107  int phiReadoutPannels() const;
108 
109  int strips_in_Eta_Conn() const;
110  int strips_in_Phi_Conn() const;
111  const ReadoutCh& eta_read_mul() const;
112 
113  const CMAlist& readoutCMAs() const;
114  const WORlist& readoutWORs() const;
115 
116  std::string extendedName(int) const;
117  bool inversion(int) const;
118 
119  bool local_strip(ViewType, int, int&) const;
120  bool global_strip(ViewType, HalfType, int, int&) const;
121 
122  bool local_connector(ViewType, int, int&, int&, int&) const;
123  bool global_connector(ViewType, HalfType, int, int&, int&, int&) const;
124 
125  bool Gstrip_2_Lnumber(ViewType, int, int&) const;
126  bool Gconn_2_Lnumber(ViewType, int, int&, int&) const;
127 
128  void Print(std::ostream&, bool) const;
129 
130  bool check();
131  bool setup(SectorLogicSetup&);
132 
133  void add_cma(const EtaCMA*);
134  void add_wor(const WiredOR*);
135  void add_eta_channel(int);
136  };
137 
138  inline std::ostream& operator<<(std::ostream& stream, const RPCchamber& cham) {
139  cham.Print(stream, false);
140  return stream;
141  }
142 
143  inline MsgStream& operator<<(MsgStream& stream, const RPCchamber& cham) {
144  std::ostringstream oss;
145  cham.Print(oss, false);
146  return (stream << oss.str());
147  }
148 
149 } // namespace RPC_CondCabling
150 #endif
RPC_CondCabling::RPCchamber::chamberDefineParams::doubletR
int doubletR
StaionEta as defined into the offline ID.
Definition: RPCchamber.h:37
CablingObject.h
RPC_CondCabling::RPCchamber::eta_read_mul
const ReadoutCh & eta_read_mul() const
Definition: RPCchamber.cxx:43
RPC_CondCabling::RPCchamber::m_readoutCMAs
CMAlist m_readoutCMAs
Definition: RPCchamber.h:76
RPC_CondCabling::RPCchamber::chamberDefineParams::ijk_PhiReadOut
int ijk_PhiReadOut
readout schema of the gas gaps in eta: 01 = gap 0 in layer 0, gap 1 in layer 1 10 = gap 0 in layer 1,...
Definition: RPCchamber.h:54
RPC_CondCabling::RPCchamber::doubletZ
int doubletZ() const
Definition: RPCchamber.cxx:37
RPC_CondCabling::RPCchamber::~RPCchamber
virtual ~RPCchamber()
RPC_CondCabling::RPCchamber::inversion
bool inversion(int) const
Definition: RPCchamber.cxx:346
ShowRequest.h
RPC_CondCabling::RPCchamber::chamberDefineParams::doubletZ
int doubletZ
DoubletR as defined into the offline ID.
Definition: RPCchamber.h:38
RPC_CondCabling::RPCchamber::residual
int residual(ViewType, int) const
Definition: RPCchamber.cxx:172
RPC_CondCabling::RPCchamber::m_eta_conn_global
int m_eta_conn_global
Definition: RPCchamber.h:72
RPC_CondCabling::RPCchamber::chamberParameters::chamberParameters
chamberParameters(chamberParameters &&)=default
RPC_CondCabling::operator<<
X & operator<<(X &stream, CMAcablingdata &data)
Definition: CMAcablingdata.h:44
RPC_CondCabling::RPCchamber::strips_in_Eta_Conn
int strips_in_Eta_Conn() const
Definition: RPCchamber.cxx:40
RPC_CondCabling::RPCchamber::RPCchamber
RPCchamber(const RPCchamber &)=default
RPC_CondCabling::RPCchamber::chamberDefineParams::stripsInPhiCon
int stripsInPhiCon
Number of eta strips into connectors.
Definition: RPCchamber.h:43
RPC_CondCabling::EtaCMA
Definition: EtaCMA.h:20
RPC_CondCabling::RPCchamber::chamberDefineParams::phiStrips
int phiStrips
Number of eta strips.
Definition: RPCchamber.h:46
RPC_CondCabling::RPCchamber::chamberDefineParams::etaStrips
int etaStrips
Number of phi strips into connectors.
Definition: RPCchamber.h:45
RPC_CondCabling::RPCchamber::add_wor
void add_wor(const WiredOR *)
Definition: RPCchamber.cxx:295
RPC_CondCabling::RPCchamber::phi_strips
int phi_strips() const
Definition: RPCchamber.cxx:26
RPC_CondCabling::RPCchamber::add_eta_channel
void add_eta_channel(int)
Definition: RPCchamber.cxx:297
RPC_CondCabling::RPCchamber::eta_connectors
int eta_connectors() const
Definition: RPCchamber.cxx:23
RPC_CondCabling::RPCchamber::setup
bool setup(SectorLogicSetup &)
Definition: RPCchamber.cxx:48
RPC_CondCabling::RPCchamber::chamber_name
std::string chamber_name() const
Definition: RPCchamber.cxx:33
RPC_CondCabling::RPCchamber::strips_in_Phi_Conn
int strips_in_Phi_Conn() const
Definition: RPCchamber.cxx:41
RPC_CondCabling::RPCchamber::m_params
chamberDefineParams m_params
Definition: RPCchamber.h:70
RPC_CondCabling::RPCchamber::chamberDefineParams::phiConnectors
int phiConnectors
Number of eta connectors.
Definition: RPCchamber.h:49
RPC_CondCabling::RPCchamber::m_readoutWORs
WORlist m_readoutWORs
Definition: RPCchamber.h:77
RPC_CondCabling
Definition: CMAcablingdata.h:18
RPC_CondCabling::RPCchamber::readoutWORs
const WORlist & readoutWORs() const
Definition: RPCchamber.cxx:46
RPC_CondCabling::RPCchamber::Gstrip_2_Lnumber
bool Gstrip_2_Lnumber(ViewType, int, int &) const
Definition: RPCchamber.cxx:208
RPC_CondCabling::RPCchamber::chamberDefineParams::etaConnectors
int etaConnectors
Number of phi strips.
Definition: RPCchamber.h:48
AthenaPoolTestWrite.stream
string stream
Definition: AthenaPoolTestWrite.py:12
CablingObject::cablingParameters
Definition: CablingObject.h:17
RPC_CondCabling::RPCchamber::chamberDefineParams
Helper struct containing the minimum number of parameters on top of the CablingObject in order to cre...
Definition: RPCchamber.h:28
RPC_CondCabling::RPCchamber::ijk_etaReadout
int ijk_etaReadout() const
Definition: RPCchamber.cxx:30
RPC_CondCabling::RPCchamber::eta_strip_global
int eta_strip_global() const
Definition: RPCchamber.cxx:24
RPC_CondCabling::RPCchamber::CMAlist
std::list< const EtaCMA * > CMAlist
Definition: RPCchamber.h:67
RPC_CondCabling::RPCchamber::chamberParameters::chamberParameters
chamberParameters()=default
RPC_CondCabling::RPCchamber::phi_connectors
int phi_connectors() const
Definition: RPCchamber.cxx:28
RPC_CondCabling::RPCchamber::operator=
RPCchamber & operator=(const RPCchamber &)=default
RPC_CondCabling::RPCchamber::doubletR
int doubletR() const
Definition: RPCchamber.cxx:36
RPC_CondCabling::RPCchamber::stationEta
int stationEta() const
Definition: RPCchamber.cxx:35
ViewType
ViewType
Definition: RPCdef.h:8
RPC_CondCabling::RPCchamber::chamberDefineParams::stationEta
int stationEta
Definition: RPCchamber.h:36
RPC_CondCabling::RPCchamber::set_eta_co_global
void set_eta_co_global(int)
Definition: RPCchamber.cxx:248
RPC_CondCabling::RPCchamber::set_eta_st_global
void set_eta_st_global(int)
Definition: RPCchamber.cxx:246
RPCdecoder.h
RPC_CondCabling::RPCchamber::Print
void Print(std::ostream &, bool) const
Definition: RPCchamber.cxx:250
RPC_CondCabling::SectorLogicSetup
Definition: SectorLogicSetup.h:23
RPC_CondCabling::RPCchamber::global_strip
bool global_strip(ViewType, HalfType, int, int &) const
Definition: RPCchamber.cxx:133
RPC_CondCabling::RPCchamber::extendedName
std::string extendedName(int) const
Definition: RPCchamber.cxx:299
RPC_CondCabling::RPCchamber::error
std::string error(const std::string &) const
Definition: RPCchamber.cxx:105
RPC_CondCabling::RPCchamber::ReadoutCh
std::vector< int > ReadoutCh
Definition: RPCchamber.h:66
RPC_CondCabling::RPCchamber::chamberParameters
Definition: RPCchamber.h:58
RPC_CondCabling::RPCchamber::m_eta_read_mul
ReadoutCh m_eta_read_mul
Definition: RPCchamber.h:74
RPC_CondCabling::RPCchamber::ijk_phiReadout
int ijk_phiReadout() const
Definition: RPCchamber.cxx:31
CablingObject
Definition: CablingObject.h:10
RPC_CondCabling::RPCchamber
Definition: RPCchamber.h:23
RPC_CondCabling::RPCchamber::global_connector
bool global_connector(ViewType, HalfType, int, int &, int &, int &) const
Definition: RPCchamber.cxx:188
RPC_CondCabling::RPCchamber::eta_conn_global
int eta_conn_global() const
Definition: RPCchamber.cxx:25
RPC_CondCabling::RPCchamber::stationName
std::string stationName() const
Definition: RPCchamber.cxx:34
RPC_CondCabling::RPCchamber::add_cma
void add_cma(const EtaCMA *)
Definition: RPCchamber.cxx:293
RPC_CondCabling::RPCchamber::local_connector
bool local_connector(ViewType, int, int &, int &, int &) const
Definition: RPCchamber.cxx:153
RPC_CondCabling::WiredOR
Definition: WiredOR.h:26
RPC_CondCabling::RPCchamber::readoutCMAs
const CMAlist & readoutCMAs() const
Definition: RPCchamber.cxx:45
RPC_CondCabling::RPCchamber::local_strip
bool local_strip(ViewType, int, int &) const
Definition: RPCchamber.cxx:112
RPC_CondCabling::RPCchamber::m_eta_strip_global
int m_eta_strip_global
Definition: RPCchamber.h:71
RPC_CondCabling::RPCchamber::chamberParameters::operator=
chamberParameters & operator=(const chamberParameters &)=default
RPC_CondCabling::RPCchamber::chamberDefineParams::ijk_EtaReadOut
int ijk_EtaReadOut
Number of phi connectors.
Definition: RPCchamber.h:51
RPC_CondCabling::RPCchamber::eta_strips
int eta_strips() const
Definition: RPCchamber.cxx:22
RPC_CondCabling::RPCchamber::chamberDefineParams::chamberDefineParams
chamberDefineParams()=default
PowhegControl_ttFCNC_NLO.params
params
Definition: PowhegControl_ttFCNC_NLO.py:226
RPC_CondCabling::RPCchamber::chamberDefineParams::chamberName
std::string chamberName
Definition: RPCchamber.h:34
RPC_CondCabling::RPCchamber::Gconn_2_Lnumber
bool Gconn_2_Lnumber(ViewType, int, int &, int &) const
Definition: RPCchamber.cxx:223
RPC_CondCabling::RPCchamber::RPCchamber
RPCchamber(const RPCchamber::chamberParameters &params)
Helper struct to reduce the number of arguments in the constructor.
Definition: RPCchamber.cxx:16
RPC_CondCabling::RPCchamber::chamberDefineParams::stripsInEtaCon
int stripsInEtaCon
Phi readout multiplicity.
Definition: RPCchamber.h:42
HalfType
HalfType
Definition: RPCdef.h:9
RPC_CondCabling::RPCchamber::chamberDefineParams::chamberDefineParams
chamberDefineParams(const chamberDefineParams &)=default
RPC_CondCabling::RPCchamber::chamberDefineParams::operator=
chamberDefineParams & operator=(const chamberDefineParams &)=default
RPC_CondCabling::RPCchamber::check
bool check()
Definition: RPCchamber.cxx:68
RPC_CondCabling::RPCchamber::chamberDefineParams::chamberDefineParams
chamberDefineParams(chamberDefineParams &&)=default
RPC_CondCabling::RPCchamber::WORlist
std::list< const WiredOR * > WORlist
Definition: RPCchamber.h:68
RPC_CondCabling::RPCchamber::phiReadoutPannels
int phiReadoutPannels() const
Definition: RPCchamber.cxx:38
RPC_CondCabling::RPCchamber::chamberDefineParams::phiReadOutPanels
int phiReadOutPanels
DoubletZ as defined into the offline ID.
Definition: RPCchamber.h:40
RPC_CondCabling::RPCchamber::chamberParameters::chamberParameters
chamberParameters(const chamberParameters &)=default