5#ifndef MuonDetectorManager_H
6#define MuonDetectorManager_H
15#include "GaudiKernel/StatusCode.h"
16#include "GeoModelKernel/GeoAlignableTransform.h"
17#include "GeoModelKernel/GeoVDetectorManager.h"
63 virtual PVConstLink
getTreeTop(
unsigned int i)
const;
102 inline unsigned int nMdtRE()
const;
103 inline unsigned int nsTgcRE()
const;
104 inline unsigned int nMMRE()
const;
105 inline unsigned int nCscRE()
const;
106 inline unsigned int nRpcRE()
const;
107 inline unsigned int nTgcRE()
const;
109 inline unsigned int nMdtDE()
const;
110 inline unsigned int nCscDE()
const;
111 inline unsigned int nRpcDE()
const;
112 inline unsigned int nTgcDE()
const;
141 static std::string
muonStationKey(
const std::string& stName,
int statEtaIndex,
int statPhiIndex) ;
155#ifndef SIMULATIONBASE
188 enum RpcStatType {
BML = 0,
BMS,
BOL,
BOS,
BMF,
BOF,
BOG,
BME,
BIR,
BIM,
BIL,
BIS,
UNKNOWN };
289 class MuonDetectorManager;
Scalar eta() const
pseudorapidity method
Scalar phi() const
phi method
#define CONDCONT_MIXED_DEF(...)
#define CLASS_DEF(NAME, CID, VERSION)
associate a clid and a version to a type eg
std::set< ALinePar, std::less<> > ALineContainer
std::set< MdtAsBuiltPar, std::less<> > MdtAsBuiltContainer
std::set< BLinePar, std::less<> > BLineContainer
AthMessaging(IMessageSvc *msgSvc, const std::string &name)
Constructor.
This is a "hash" representation of an Identifier.
An MMReadoutElement corresponds to a single STGC module; therefore typicaly a barrel muon station con...
The MuonDetectorManager stores the transient representation of the Muon Spectrometer geometry and pro...
unsigned int nTgcDE() const
Number of Tgc DetectorElements.
std::vector< std::unique_ptr< sTgcReadoutElement > > m_stgArray
int IncludeCutoutsFlag() const
unsigned int rpcStationTypeIdx(const int stationName) const
std::map< int, int > m_rpcIdxToStat
StatusCode updateCSCInternalAlignmentMap(const ALineContainer &cscIntAline)
std::vector< std::unique_ptr< TgcReadoutElement > > m_tgcArray
const RpcReadoutElement * getRpcReadoutElement(const Identifier &id) const
access via extended identifier (requires unpacking)
const sTGCAsBuiltData * m_mmAsBuilt2
std::string m_geometryVersion
const NswPassivationDbData * m_mmPassivation
std::vector< PVLink > m_envelope
int rpcStationName(const int stationIndex) const
const sTGCAsBuiltData * m_stgcAsBuildData
const MuonReadoutElement * getReadoutElement(const Identifier &id) const
Get any read out element.
std::vector< std::unique_ptr< CscReadoutElement > > m_cscArray
int tgcIdentToArrayIdx(const Identifier &id) const
std::vector< std::unique_ptr< MMReadoutElement > > m_mmcArray
virtual unsigned int getNumTreeTops() const
int MinimalGeoFlag() const
const MdtIdHelper * mdtIdHelper() const
const NswAsBuilt::StripCalculator * getMMAsBuiltCalculator() const
unsigned int nMuonStation() const
Number of MuonStations.
unsigned int nCscRE() const
Number of Csc ReadoutElements.
static constexpr int NCscStEtaOffset
Identifier <-> AMDB conversion constants in use.
const CscIdHelper * cscIdHelper() const
int IncludeCutoutsBogFlag() const
unsigned int nMdtDE() const
Number of Mdt DetectorElements.
unsigned int nRpcDE() const
Number of Rpc DetectorElements.
void addsTgcReadoutElement(std::unique_ptr< sTgcReadoutElement > &&reEle)
store the sTGCReadoutElement using as "key" the identifier
void addRpcReadoutElement(std::unique_ptr< RpcReadoutElement > &&reEle)
store the RpcReadoutElement using as "key" the identifier
const MdtReadoutElement * getMdtReadoutElement(const Identifier &id) const
access via extended identifier (requires unpacking)
StatusCode updateDeformations(const BLineContainer &a)
const std::string & get_DBMuonVersion() const
the name of the MuonSpectrometer tag (in the geometry DB) actually accessed
const RpcIdHelper * rpcIdHelper() const
unsigned int nRpcRE() const
Number of Rpc ReadoutElements.
int mdtIdentToArrayIdx(const Identifier &id) const
const std::string & geometryVersion() const
it can be Rome-Initial or P03, or ... it's the name of the layout
int rpcIdentToArrayIdx(const Identifier &id) const
Helper method to convert the Identifier into the corresponding index accessing the array.
static std::string muonStationKey(const std::string &stName, int statEtaIndex, int statPhiIndex)
void setMmAsBuilt2(const sTGCAsBuiltData *mmAsBuilt2)
void setMMPassivation(const NswPassivationDbData *passiv)
unsigned int nTgcRE() const
Number of Tgc ReadoutElements.
void setNswAsBuilt(const NswAsBuiltDbData *nswAsBuiltData)
void setsTGCAsBuilt(const sTGCAsBuiltData *stgcAsBuilt)
unsigned int nMdtRE() const
Number of Mdt ReadoutElements.
virtual PVConstLink getTreeTop(unsigned int i) const
const Muon::IMuonIdHelperSvc * idHelperSvc() const
const MuonStation * getMuonStation(const std::string &stName, int eta, int phi) const
std::map< std::string, std::unique_ptr< MuonStation > > m_MuonStationMap
StatusCode updateMdtAsBuiltParams(const MdtAsBuiltContainer &a)
void addCscReadoutElement(std::unique_ptr< CscReadoutElement > &&reEle)
store the CscReadoutElement using as "key" the identifier
void addMdtReadoutElement(std::unique_ptr< MdtReadoutElement > &&reEle)
store the MdtReadoutElement using as "key" the identifier
std::vector< const MuonReadoutElement * > getAllReadoutElements() const
void setCutoutsFlag(int flag)
void addMuonStation(std::unique_ptr< MuonStation > &&mst)
void loadStationIndices()
int mmIdenToArrayIdx(const Identifier &id) const
StatusCode updateAlignment(const ALineContainer &a)
std::vector< std::unique_ptr< MdtReadoutElement > > m_mdtArray
std::map< int, int > m_rpcStatToIdx
RPC name caches.
int cscIdentToArrayIdx(const Identifier &id) const
const sTGCAsBuiltData * getsTGCAsBuilt() const
void set_DBMuonVersion(const std::string &version)
const TgcIdHelper * tgcIdHelper() const
static constexpr int NTgcStEtaOffset
void setGeometryVersion(const std::string &version)
void addTgcReadoutElement(std::unique_ptr< TgcReadoutElement > &&reEle)
store the TgcReadoutElement using as "key" the identifier
const MmIdHelper * mmIdHelper() const
unsigned int nMMRE() const
Number of MM ReadoutElements.
const MMReadoutElement * getMMReadoutElement(const Identifier &id) const
access via extended identifier (requires unpacking)
std::string m_DBMuonVersion
int stgcIdentToArrayIdx(const Identifier &id) const
const sTgcIdHelper * stgcIdHelper() const
const TgcReadoutElement * getTgcReadoutElement(const Identifier &id) const
access via extended identifier (requires unpacking)
const sTgcReadoutElement * getsTgcReadoutElement(const Identifier &id) const
access via extended identifier (requires unpacking)
void addMMReadoutElement(std::unique_ptr< MMReadoutElement > &&reEle)
store the MMReadoutElement using as "key" the identifier
unsigned int nCscDE() const
Number of Csc DetectorElements.
const NswAsBuiltDbData * m_nswAsBuilt
std::vector< std::unique_ptr< RpcReadoutElement > > m_rpcArray
const NswPassivationDbData * getMMPassivation() const
const CscReadoutElement * getCscReadoutElement(const Identifier &id) const
access via extended identifier (requires unpacking)
void setMinimalGeoFlag(int flag)
static constexpr int NTgcStatTypeOff
unsigned int nsTgcRE() const
Number of sTgc ReadoutElements.
void setCutoutsBogFlag(int flag)
const sTGCAsBuiltData * getMmAsBuilt2() const
ServiceHandle< Muon::IMuonIdHelperSvc > m_idHelperSvc
Base class for the XxxReadoutElement, with Xxx = Mdt, Rpc, Tgc, Csc.
An RpcReadoutElement corresponds to a single RPC module; therefore typicaly a barrel muon station con...
A TgcReadoutElement corresponds to a single TGC chamber; therefore typically a TGC station contains s...
An sTgcReadoutElement corresponds to a single STGC module; therefore typicaly a barrel muon station c...
Interface for Helper service that creates muon Identifiers and can be used to print Identifiers.
Class holding the sTGC as built conditions data and applying it.
Ensure that the Athena extensions are properly loaded.