4#ifndef MUONMDT_CABLING_HEDGEHOGBOARD_H
5#define MUONMDT_CABLING_HEDGEHOGBOARD_H
37 using Mapping = std::array<uint8_t, nChPerBoard>;
46 const uint8_t nTubeLay,
64 return tube == other.tube &&
layer == other.layer;
68 return tube != other.tube ||
layer != other.layer;
71 ostr<<
"layer: "<<
static_cast<int>(tubeLay.
layer)
72 <<
", tube: "<<
static_cast<int>(tubeLay.
tube);
82 uint8_t
pinNumber(uint8_t layer, uint8_t tube)
const;
93 uint8_t
pairPin(uint8_t layer, uint8_t tube)
const;
110 const Mapping&
data()
const;
constexpr std::array< T, N > make_array(const T &def_val)
Helper function to initialize in-place arrays with non-zero values.
Helper struct to represent the High-voltage pins and a possible connection between them.
std::shared_ptr< const HedgehogBoard > HedgehogBoardPtr
uint16_t boardId() const
Returns the identifier of the hedgehog board.
static constexpr unsigned nChPerBoard
uint8_t pinNumber(const TubeLayer &tubeLay) const
Returns the pinNumber of the tubeLayer.
uint8_t pairPin(const TubeLayer &tubeLay) const
Returns the number of the pin that's twin to the tubeLayer If the pin is not short circuited,...
std::optional< double > m_hvDelay
std::array< uint8_t, nChPerBoard > Mapping
const Mapping & data() const
Returns the underlying map.
uint8_t numTubeLayers() const
Returns the number of tube layers 3 or 4.
bool hasHVDelayTime() const
Returns whether the HedgehogBoard has a specifc delay time.
double hvDelayTime() const
Returns the HV delay time.
HedgehogBoard()=default
Default constructor.
TubeLayer twinPair(const TubeLayer &tubeLay) const
Returns the tube & layer short circuited with the given tubeLayer.
void setHVDelayTime(const double hvTime)
Define a HV delay in the time of arrival between the primary & twin electronics signal.
bool operator<(const HedgehogBoard &other) const
Ordering of hedgehog boards, performed by Identifier.
uint8_t numTubesPerLayer() const
Returns the number of tubes per layer.
NRpcCablingAlg reads raw condition data and writes derived condition data to the condition store.
HedgehogBoard::TubeLayer TubeLayer
std::ostream & operator<<(std::ostream &ostr, const Muon::HedgehogBoard &board)
Helper struct to return a tube & tube layer pair.
uint8_t tube
Tube number [1- 24/numTubeLayers()].
uint8_t layer
Layer number [1- numTubeLayers()].
bool operator==(const TubeLayer &other) const
Equality operator with another TubeLayer object.
friend std::ostream & operator<<(std::ostream &ostr, const TubeLayer &tubeLay)
bool operator!=(const TubeLayer &other) const
Inequality operator with another TubeLayer object.