ATLAS Offline Software
TwinTubeMap.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3 */
4 #ifndef MUONCABLINGDATA_TWINTUBEMAP_H
5 #define MUONCABLINGDATA_TWINTUBEMAP_H
6 
10 #include <unordered_map>
11 
12 namespace Muon{
16  class TwinTubeMap : public AthMessaging {
17  public:
19 
20  TwinTubeMap(const IMuonIdHelperSvc* idHelperSvc);
23  bool isTwinTubeLayer(const Identifier& channelId) const;
27  Identifier twinId(const Identifier& channelId) const;
30  double hvDelayTime(const Identifier& channelId) const;
32  void setDefaultHVDelay(const double hvDelay);
37  StatusCode addHedgeHogBoard(const Identifier& detElId, const HedgehogBoardPtr& board, const uint16_t slot);
38  private:
40 
41  struct HedgehogTray{
43  std::vector<HedgehogBoardPtr> cards{};
44  };
45  using Storage = std::unordered_map<IdentifierHash, HedgehogTray>;
47 
48  double m_defaultHVDelay{0.};
49  };
50 }
51 #include "AthenaKernel/CondCont.h"
52 CLASS_DEF( Muon::TwinTubeMap , 205882636 , 1 );
54 
55 #endif
Muon::TwinTubeMap::setDefaultHVDelay
void setDefaultHVDelay(const double hvDelay)
Sets the default HV delay.
Definition: TwinTubeMap.cxx:104
Muon::TwinTubeMap::hvDelayTime
double hvDelayTime(const Identifier &channelId) const
Returns the HV time delay for a given twin tube pair.
Definition: TwinTubeMap.cxx:88
CondCont.h
Hold mappings of ranges to condition objects.
xAOD::uint8_t
uint8_t
Definition: Muon_v1.cxx:557
Muon::TwinTubeMap::HedgehogBoardPtr
HedgehogBoard::HedgehogBoardPtr HedgehogBoardPtr
Definition: TwinTubeMap.h:18
Muon::TwinTubeMap::addHedgeHogBoard
StatusCode addHedgeHogBoard(const Identifier &detElId, const HedgehogBoardPtr &board, const uint16_t slot)
Add a new hedgehog board with twin tube mapping.
Definition: TwinTubeMap.cxx:44
Muon
This class provides conversion from CSC RDO data to CSC Digits.
Definition: TrackSystemController.h:45
Muon::TwinTubeMap::m_defaultHVDelay
double m_defaultHVDelay
Definition: TwinTubeMap.h:48
CONDCONT_DEF
CONDCONT_DEF(Muon::TwinTubeMap, 123689198)
CLASS_DEF
CLASS_DEF(Muon::TwinTubeMap, 205882636, 1)
xAOD::uint16_t
setWord1 uint16_t
Definition: eFexEMRoI_v1.cxx:88
Muon::TwinTubeMap::twinId
Identifier twinId(const Identifier &channelId) const
Returns the Identifier of the mapped twin tube.
Definition: TwinTubeMap.cxx:19
Muon::TwinTubeMap
Definition: TwinTubeMap.h:16
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
Muon::TwinTubeMap::HedgehogTray::nTubesPerLay
uint8_t nTubesPerLay
Definition: TwinTubeMap.h:42
AthMessaging
Class to provide easy MsgStream access and capabilities.
Definition: AthMessaging.h:55
Muon::HedgehogBoard::HedgehogBoardPtr
std::shared_ptr< const HedgehogBoard > HedgehogBoardPtr
Definition: HedgehogBoard.h:34
CaloCondBlobAlgs_fillNoiseFromASCII.channelId
channelId
Definition: CaloCondBlobAlgs_fillNoiseFromASCII.py:122
HedgehogBoard.h
Muon::TwinTubeMap::HedgehogTray::cards
std::vector< HedgehogBoardPtr > cards
Definition: TwinTubeMap.h:43
Muon::TwinTubeMap::m_twinTubesPerRE
Storage m_twinTubesPerRE
Definition: TwinTubeMap.h:46
Muon::TwinTubeMap::TwinTubeMap
TwinTubeMap(const IMuonIdHelperSvc *idHelperSvc)
Definition: TwinTubeMap.cxx:8
Muon::TwinTubeMap::Storage
std::unordered_map< IdentifierHash, HedgehogTray > Storage
Definition: TwinTubeMap.h:45
Muon::TwinTubeMap::HedgehogTray
Definition: TwinTubeMap.h:41
AthMessaging.h
Muon::IMuonIdHelperSvc
Interface for Helper service that creates muon Identifiers and can be used to print Identifiers.
Definition: IMuonIdHelperSvc.h:26
Muon::TwinTubeMap::isTwinTubeLayer
bool isTwinTubeLayer(const Identifier &channelId) const
Returns whether the multilayer is equipped with twin-tubes or not.
Definition: TwinTubeMap.cxx:12
IMuonIdHelperSvc.h
Muon::TwinTubeMap::m_idHelperSvc
const IMuonIdHelperSvc * m_idHelperSvc
Definition: TwinTubeMap.h:39
Identifier
Definition: IdentifierFieldParser.cxx:14