 |
ATLAS Offline Software
|
Go to the documentation of this file.
4 #ifndef MUONREADOUTGEOMETRY_MUONDETECTORMANAGER_H
5 #define MUONREADOUTGEOMETRY_MUONDETECTORMANAGER_H
11 #include "GaudiKernel/ServiceHandle.h"
12 #include "GeoModelKernel/GeoVDetectorManager.h"
38 #define DECLARE_GETTERSETTER(ELE_TYPE, GETTER, SETTER) \
39 ELE_TYPE* GETTER(const IdentifierHash& hash); \
40 ELE_TYPE* GETTER(const Identifier& hash); \
42 const ELE_TYPE* GETTER(const IdentifierHash& hash) const; \
43 const ELE_TYPE* GETTER(const Identifier& hash) const; \
45 StatusCode SETTER(ElementPtr<ELE_TYPE> element);
47 #define DECLARE_ELEMENT(ELE_TYPE) \
48 DECLARE_GETTERSETTER(ELE_TYPE, get##ELE_TYPE, add##ELE_TYPE) \
50 std::vector<const ELE_TYPE*> getAll##ELE_TYPE##s() const; \
51 std::vector<ELE_TYPE*> getAll##ELE_TYPE##s();
54 class MdtReadoutElement;
55 class TgcReadoutElement;
56 class RpcReadoutElement;
57 class sTgcReadoutElement;
58 class MmReadoutElement;
59 class SpectrometerSector;
68 template <
class MuonDetectorType>
70 template <
class MuonDetectorType>
97 #ifndef SIMULATIONBASE
113 using MuonSectorSet = std::set<const SpectrometerSector*, MSEnvelopeSorter>;
128 MuonDetectorType* readOutEle);
131 "MuonDetectorManager"};
132 #ifndef SIMULATIONBASE
152 #undef DECLARE_GETTERSETTER
153 #undef DECLARE_ELEMENT
std::vector< ActsTrk::DetectorType > getDetectorTypes() const
Returns a list of all detector types.
Chamber
Define chamber types and locations.
A spectrometer sector forms the envelope of all chambers that are placed in the same MS sector & laye...
std::set< const SpectrometerSector *, MSEnvelopeSorter > MuonSectorSet
ElementStorage< TgcReadoutElement > m_tgcEles
ElementStorage< SpectrometerSector > m_secEnvelopes
The MuonReadoutElement is an abstract class representing the geometry representing the muon detector.
std::vector< const MuonReadoutElement * > getAllReadoutElements() const
Returns the list of all detector elements.
ServiceHandle< Muon::IMuonIdHelperSvc > m_idHelperSvc
ElementStorage< RpcReadoutElement > m_rpcEles
bool const RAWDATA *ch2 const
void addSpectrometerSector(ElementPtr< SpectrometerSector > &&chSector)
Add a spectrometer enevelope object to the manager.
NRpcCablingAlg reads raw condition data and writes derived condition data to the condition store.
const Chamber * getChamber(const Identifier &channelId) const
Retrieves the chamber enclosing the channel's readout element.
The ReadoutGeomCnvAlg converts the Run4 Readout geometry build from the GeoModelXML into the legacy M...
unsigned int getNumTreeTops() const override final
Access specifically the individual readout element technologies.
#define DECLARE_ELEMENT(ELE_TYPE)
std::set< const Chamber *, MSEnvelopeSorter > MuonChamberSet
Class to provide easy MsgStream access and capabilities.
Helper struct to ensure that the spectrometer sectors & chambers are sorted.
PVConstLink getTreeTop(unsigned int i) const override final
Returns the i-th top node of the MuonSystem trees.
ElementStorage< MdtReadoutElement > m_mdtEles
std::vector< PVConstLink > m_treeTopVector
void addTreeTop(PVConstLink pv)
Adds a new GeoModelTree node indicating the entrance to a muon system description.
std::vector< ElementPtr< MuonDetectorType > > ElementStorage
MuonSectorSet getAllSectors() const
: Returns all MuonChambers associated with the readout geometry
ElementStorage< sTgcReadoutElement > m_sTgcEles
#define CLASS_DEF(NAME, CID, VERSION)
associate a clid and a version to a type eg
const Muon::IMuonIdHelperSvc * idHelperSvc() const
Returns a pointer to the central MuonIdHelperSvc.
std::unique_ptr< MuonDetectorType > ElementPtr
ElementStorage< MmReadoutElement > m_mmEles
void linkElements(ElementStorage< MuonDetectorType > &allStore, MuonDetectorType *readOutEle)
Method that connect the same elements from the station with the parsed readout Element and vice versa...
bool operator()(const SpectrometerSector *a, const SpectrometerSector *b) const
MuonChamberSet getAllChambers() const
macros to associate a CLID to a type
const SpectrometerSector * getSectorEnvelope(const Identifier &channelId) const
Retrieves the spectrometer envelope enclosing the channel's readout element.
const MuonReadoutElement * getReadoutElement(const Identifier &id) const
Returns a generic Muon readout element.