76 void setupGeometry(MuonNumberingRecord
const&, shared_ptr<HostType>&);
97 : m_tag(iConfig.getParameter<
ESInputTag>(
"DDDetector")),
98 m_alignmentsLabel(iConfig.getParameter<
string>(
"alignmentsLabel")),
99 m_myLabel(iConfig.getParameter<
string>(
"appendToDataLabel")),
100 m_attribute(iConfig.getParameter<
string>(
"attribute")),
101 m_value(iConfig.getParameter<
string>(
"value")),
102 m_fromDDD(iConfig.getParameter<
bool>(
"fromDDD"))
128 std::shared_ptr<DTGeometry>
140 [
this, &
host](
auto const& rec) {
145 [
this, &
host](
auto const& rec) {
163 if (alignments->
empty() && alignmentErrors->
empty() && globalPosition->
empty()) {
164 edm::LogInfo(
"Config") <<
"@SUB=DTGeometryRecord::produce" 165 <<
"Alignment(Error)s and global position (label '" 167 <<
"'" <<
m_myLabel <<
"') assumes fake and does not apply.";
171 &(*alignments), &(*alignmentErrors),
181 shared_ptr<HostType>&
host) {
192 BenchmarkGrd b1(
"DTGeometryESProducer Filter Registry");
202 std::shared_ptr<HostType>&
host ) {
T getParameter(std::string const &) const
auto setWhatProduced(T *iThis, const es::Label &iLabel={})
edm::ESGetToken< DDDetector, GeometryFileRcd > m_cpvToken
edm::ESGetToken< MuonNumbering, MuonNumberingRecord > m_mdcToken
bool empty() const
Test of empty vector without having to look into internals:
void filter(DDSpecParRefs &, std::string_view, std::string_view) const
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
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
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
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< Alignments, DTAlignmentRcd > m_alignmentsToken