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.";
177 BenchmarkGrd b1(
"DTGeometryESProducer Filter Registry");
T getParameter(std::string const &) const
auto setWhatProduced(T *iThis, const es::Label &iLabel={})
edm::ESGetToken< MuonNumbering, MuonNumberingRecord > m_mdcToken
bool empty() const
Test of empty vector without having to look into internals:
Class to update a given geometry with a set of alignments.
edm::ESGetToken< AlignmentErrorsExtended, DTAlignmentErrorExtendedRcd > m_alignmentErrorsToken
const string m_alignmentsLabel
ESTransientHandle< ProductT > getTransientHandle(ESGetToken< ProductT, DepRecordT > const &iToken) const
void filter(DDSpecParRefs &, std::string_view, std::string_view) const
ESProductHost< DTGeometry, MuonNumberingRecord, DTRecoGeometryRcd > HostType
dd4hep::Detector Detector
shared_ptr< DTGeometry > ReturnType
ProductT const & get(ESGetToken< ProductT, DepRecordT > const &iToken) const
edm::ESGetToken< Alignments, GlobalPositionRcd > m_globalPositionToken
void build(DTGeometry &, const DDDetector *, const MuonNumbering &, const DDSpecParRefs &)
const DepRecordT getRecord() const
ReusableObjectHolder< HostType > m_holder
std::shared_ptr< T > makeOrGet(F iFunc)
If there isn't an object already available, creates a new one using iFunc.
Namespace of DDCMS conversion namespace.
ReturnType produce(const MuonGeometryRecord &record)
#define DEFINE_FWK_EVENTSETUP_MODULE(type)
void applyAlignments(C *geometry, const Alignments *alignments, const AlignmentErrorsExtended *alignmentErrors, const AlignTransform &globalCoordinates)
~DTGeometryESProducer() override
bool empty() const
Test of empty vector without having to look into internals:
T const * product() const
std::vector< const DDSpecPar * > DDSpecParRefs
edm::ESGetToken< DDSpecParRegistry, DDSpecParRegistryRcd > m_registryToken
void setupDBGeometry(DTRecoGeometryRcd const &, shared_ptr< HostType > &)
DTGeometryESProducer(const ParameterSet &)
static std::atomic< unsigned int > counter
void setupGeometry(MuonNumberingRecord const &, shared_ptr< HostType > &)
const AlignTransform & DetectorGlobalPosition(const Alignments &allGlobals, const DetId &id)
edm::ESGetToken< DDDetector, IdealGeometryRecord > m_cpvToken
edm::ESGetToken< Alignments, DTAlignmentRcd > m_alignmentsToken