Go to the documentation of this file.
94 : m_tag(iConfig.getParameter<
ESInputTag>(
"DDDetector")),
95 m_alignmentsLabel(iConfig.getParameter<
string>(
"alignmentsLabel")),
96 m_myLabel(iConfig.getParameter<
string>(
"appendToDataLabel")),
97 m_attribute(iConfig.getParameter<
string>(
"attribute")),
98 m_value(iConfig.getParameter<
string>(
"value")),
99 m_fromDDD(iConfig.getParameter<
bool>(
"fromDDD")) {
149 if (alignments->
empty() && alignmentErrors->
empty() && globalPosition->
empty()) {
150 edm::LogInfo(
"Config") <<
"@SUB=DTGeometryRecord::produce"
152 <<
"') empty: Geometry producer (label "
153 <<
"'" <<
m_myLabel <<
"') assumes fake and does not apply.";
void setupDBGeometry(DTRecoGeometryRcd const &, shared_ptr< HostType > &)
dd4hep::Detector Detector
T const * product() const
void setupGeometry(MuonNumberingRecord const &, shared_ptr< HostType > &)
edm::ESGetToken< DDDetector, IdealGeometryRecord > m_cpvToken
edm::ESGetToken< DDSpecParRegistry, DDSpecParRegistryRcd > m_registryToken
const string m_alignmentsLabel
auto setWhatProduced(T *iThis, const es::Label &iLabel={})
edm::ESGetToken< AlignmentErrorsExtended, DTAlignmentErrorExtendedRcd > m_alignmentErrorsToken
std::shared_ptr< T > makeOrGet(F iFunc)
If there isn't an object already available, creates a new one using iFunc.
ESProductHost< DTGeometry, MuonNumberingRecord, DTRecoGeometryRcd > HostType
static constexpr float b1
bool empty() const
Test of empty vector without having to look into internals:
ReusableObjectHolder< HostType > m_holder
std::vector< const DDSpecPar * > DDSpecParRefs
shared_ptr< DTGeometry > ReturnType
DTGeometryESProducer(const ParameterSet &)
const AlignTransform & DetectorGlobalPosition(const Alignments &allGlobals, const DetId &id)
edm::ESGetToken< Alignments, GlobalPositionRcd > m_globalPositionToken
~DTGeometryESProducer() override
static std::atomic< unsigned int > counter
ReturnType produce(const MuonGeometryRecord &record)
T getParameter(std::string const &) const
#define DEFINE_FWK_EVENTSETUP_MODULE(type)
edm::ESGetToken< Alignments, DTAlignmentRcd > m_alignmentsToken
void filter(DDSpecParRefs &, const std::string &, const std::string &="") const
void build(DTGeometry &, const DDDetector *, const MuonNumbering &, const DDSpecParRefs &)
bool empty() const
Test of empty vector without having to look into internals:
void applyAlignments(C *geometry, const Alignments *alignments, const AlignmentErrorsExtended *alignmentErrors, const AlignTransform &globalCoordinates)
edm::ESGetToken< MuonNumbering, MuonNumberingRecord > m_mdcToken
Class to update a given geometry with a set of alignments.
Namespace of DDCMS conversion namespace.