90 : m_tag(p.getParameter<edm::
ESInputTag>(
"DDDetector")),
91 alignmentsLabel_(p.getParameter<std::
string>(
"alignmentsLabel")),
92 myLabel_(p.getParameter<std::
string>(
"appendToDataLabel")),
93 m_attribute(p.getParameter<std::
string>(
"attribute")),
94 m_value(p.getParameter<std::
string>(
"value")),
95 fromDDD_(p.getParameter<bool>(
"fromDDD")),
96 fromDD4hep_(p.getParameter<bool>(
"fromDD4hep")) {
118 << (
applyAlignment_ ?
"looking for" :
"IGNORING") <<
" alignment labels '"
127 desc.
add<
bool>(
"fromDDD",
true);
128 desc.
add<
bool>(
"fromDD4hep",
false);
134 desc.
add<
bool>(
"applyAlignment",
true);
135 descriptions.
add(
"DTGeometryESModule", desc);
139 auto host = holder_.makeOrGet([]() {
return new HostType; });
143 }
else if (fromDD4hep_) {
145 [
this, &
host](
auto const& rec) { setupDD4hepGeometry(rec,
host); });
152 if (applyAlignment_) {
155 const auto& globalPosition = record.
get(globalPositionToken_);
156 const auto& alignments = record.
get(alignmentsToken_);
157 const auto& alignmentErrors = record.
get(alignmentErrorsToken_);
159 if (alignments.empty() && alignmentErrors.empty() && globalPosition.empty()) {
160 edm::LogVerbatim(
"Geometry") <<
"@SUB=DTGeometryRecord::produce Alignment(Error)s and global position (label '"
161 << alignmentsLabel_ <<
"') empty: Geometry producer (label '" << myLabel_
162 <<
"') assumes fake and does not apply.";
180 const auto& mdc = record.
get(mdcToken_);
190 const auto& mdc = record.
get(mdcToken_);
195 registry->filter(myReg, m_attribute, m_value);
208 const auto& rig = record.
get(rigToken_);
211 builder.
build(host, rig);
Log< level::Info, true > LogVerbatim
auto setWhatProduced(T *iThis, const es::Label &iLabel={})
void setupDD4hepGeometry(MuonNumberingRecord const &, std::shared_ptr< HostType > &)
void setupDDDGeometry(MuonNumberingRecord const &, std::shared_ptr< HostType > &)
std::shared_ptr< DTGeometry > produce(const MuonGeometryRecord &record)
Produce DTGeometry.
edm::ESGetToken< DDCompactView, IdealGeometryRecord > cpvToken_
Class to update a given geometry with a set of alignments.
dd4hep::SpecParRefs DDSpecParRefs
edm::ReusableObjectHolder< HostType > holder_
void build(DTGeometry &theGeometry, const DDCompactView *cview, const MuonGeometryConstants &muonConstants)
ESTransientHandle< ProductT > getTransientHandle(ESGetToken< ProductT, DepRecordT > const &iToken) const
Compact representation of the geometrical detector hierarchy.
PRODUCT const & get(ESGetToken< PRODUCT, T > const &iToken) const
edm::ESGetToken< cms::DDSpecParRegistry, DDSpecParRegistryRcd > m_registryToken
void applyAlignments(const C *geometry, const Alignments *alignments, const AlignmentErrorsExtended *alignmentErrors, const AlignTransform &globalCoordinates)
dd4hep::SpecParRegistry DDSpecParRegistry
const std::string m_attribute
ProductT const & get(ESGetToken< ProductT, DepRecordT > const &iToken) const
const std::string myLabel_
edm::ESGetToken< cms::DDDetector, IdealGeometryRecord > m_cpvToken
const edm::ESInputTag m_tag
const std::string alignmentsLabel_
ParameterDescriptionBase * add(U const &iLabel, T const &value)
static void fillDescriptions(edm::ConfigurationDescriptions &)
Creation of configuration file.
void setupDBGeometry(DTRecoGeometryRcd const &, std::shared_ptr< HostType > &)
edm::ESGetToken< MuonGeometryConstants, IdealGeometryRecord > mdcToken_
edm::ESGetToken< Alignments, GlobalPositionRcd > globalPositionToken_
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
T getParameter(std::string const &) const
const std::string m_value
#define DEFINE_FWK_EVENTSETUP_MODULE(type)
void add(std::string const &label, ParameterSetDescription const &psetDescription)
T const * product() const
edm::ESGetToken< Alignments, DTAlignmentRcd > alignmentsToken_
const AlignTransform & DetectorGlobalPosition(const Alignments &allGlobals, const DetId &id)
void build(DTGeometry &, const cms::DDDetector *, const MuonGeometryConstants &, const dd4hep::SpecParRefs &)
DTGeometryESModule(const edm::ParameterSet &p)
Constructor.
void build(const std::shared_ptr< DTGeometry > &theGeometry, const RecoIdealGeometry &rig)
edm::ESGetToken< AlignmentErrorsExtended, DTAlignmentErrorExtendedRcd > alignmentErrorsToken_
edm::ESGetToken< RecoIdealGeometry, DTRecoGeometryRcd > rigToken_