|
ATLAS Offline Software
|
Go to the documentation of this file.
10 m_idHelperSvc{idHelperSvc} {
30 const uint8_t boardNum = ( (in.tube-1) - (in.tube-1) % tray.nTubesPerLay) / tray.nTubesPerLay;
31 if (boardNum >= tray.cards.size() || !tray.cards[boardNum]) {
34 const TubeLayer out = tray.cards[boardNum]->twinPair(in);
37 out.layer,
out.tube + tray.nTubesPerLay*boardNum);
46 <<
", slot: "<<
static_cast<int>(slot));
50 if (!tray.nTubesPerLay) {
52 tray.nTubesPerLay = board->numTubesPerLayer();
53 if (nTubLayers != board->numTubeLayers()) {
54 ATH_MSG_FATAL(
"The new hedgehog board "<<(*board)<<
" does not match in terms of tube layers"
56 return StatusCode::FAILURE;
58 }
else if (tray.nTubesPerLay != board->numTubesPerLayer()){
60 <<
"Number of tubes per layer does not match. "<<
static_cast<int>(tray.nTubesPerLay)<<
" vs. "
61 <<
static_cast<int>(board->numTubesPerLayer()));
62 return StatusCode::FAILURE;
66 if (board.use_count() < 3) {
67 for (
uint8_t lay = 1 ; lay<= board->numTubeLayers(); ++lay) {
75 ATH_MSG_FATAL(
"Back & forth mapping of "<<std::endl<<(*board)<<std::endl
76 <<
" failed. Started with "<<in<<
" via "<<
out<<
" & ended in "<<twinTwin);
77 return StatusCode::FAILURE;
82 if (tray.cards.size() <= slot) {
83 tray.cards.resize(slot +1);
85 tray.cards[slot] = board;
86 return StatusCode::SUCCESS;
96 const uint8_t boardNum = (
tube -
tube % tray.nTubesPerLay) / tray.nTubesPerLay;
97 if (boardNum < tray.cards.size() && tray.cards[boardNum] && tray.cards[boardNum]->hasHVDelayTime()) {
98 ATH_MSG_VERBOSE(
"Specific delay time set to "<<tray.cards[boardNum]->hvDelayTime());
99 return tray.cards[boardNum]->hvDelayTime();
105 ATH_MSG_DEBUG(
"Set the default HV delay to "<<hvDelay<<
" ns.");
void setDefaultHVDelay(const double hvDelay)
Sets the default HV delay.
double hvDelayTime(const Identifier &channelId) const
Returns the HV time delay for a given twin tube pair.
HedgehogBoard::HedgehogBoardPtr HedgehogBoardPtr
virtual std::string toStringDetEl(const Identifier &id) const =0
print all fields up to detector element to string
StatusCode addHedgeHogBoard(const Identifier &detElId, const HedgehogBoardPtr &board, const uint16_t slot)
Add a new hedgehog board with twin tube mapping.
#define ATH_MSG_VERBOSE(x)
NRpcCablingAlg reads raw condition data and writes derived condition data to the condition store.
HedgehogBoard::TubeLayer TubeLayer
uint8_t layer
Layer number [1- numTubeLayers()].
static int tubeLayerMax()
Identifier twinId(const Identifier &channelId) const
Returns the Identifier of the mapped twin tube.
::StatusCode StatusCode
StatusCode definition for legacy code.
Class to provide easy MsgStream access and capabilities.
virtual const MdtIdHelper & mdtIdHelper() const =0
access to MdtIdHelper
TwinTubeMap(const IMuonIdHelperSvc *idHelperSvc)
virtual std::string toString(const Identifier &id) const =0
print all fields to string
Interface for Helper service that creates muon Identifiers and can be used to print Identifiers.
Helper struct to return a tube & tube layer pair.
This is a "hash" representation of an Identifier. This encodes a 32 bit index which can be used to lo...
bool isTwinTubeLayer(const Identifier &channelId) const
Returns whether the multilayer is equipped with twin-tubes or not.
uint8_t tube
Tube number [1- 24/numTubeLayers()].
virtual IdentifierHash detElementHash(const Identifier &id) const =0
Returns the detector element hash associated to an Identifier.
const IMuonIdHelperSvc * m_idHelperSvc