CMS 3D CMS Logo

List of all members | Public Member Functions
MuonGeometryConstantsBuild Class Reference

#include <MuonGeometryConstantsBuild.h>

Public Member Functions

bool build (const DDCompactView *cpv, MuonGeometryConstants &php)
 
bool build (const cms::DDCompactView *cpv, MuonGeometryConstants &php)
 
 MuonGeometryConstantsBuild ()
 

Detailed Description

Definition at line 11 of file MuonGeometryConstantsBuild.h.

Constructor & Destructor Documentation

◆ MuonGeometryConstantsBuild()

MuonGeometryConstantsBuild::MuonGeometryConstantsBuild ( )
inline

Definition at line 13 of file MuonGeometryConstantsBuild.h.

13 {}

Member Function Documentation

◆ build() [1/2]

bool MuonGeometryConstantsBuild::build ( const DDCompactView cpv,
MuonGeometryConstants php 
)

Definition at line 13 of file MuonGeometryConstantsBuild.cc.

References MuonGeometryConstants::addValue(), triggerObjects_cff::bit, Exception, ALCARECOTkAlBeamHalo_cff::filter, DDFilteredView::firstChild(), DDFilteredView::mergedSpecifics(), mps_check::msg, submitPVValidationJobs::params, and AlCaHLTBitMon_QueryRunRegistry::string.

13  {
14 #ifdef EDM_ML_DEBUG
15  edm::LogVerbatim("MuonGeom")
16  << "MuonGeometryConstantsBuild;:build (const DDCompactView* cpv, MuonGeometryConstants& php)";
17 #endif
18  std::string attribute = "OnlyForMuonNumbering";
19 
21  DDFilteredView fview((*cpv), filter);
22 
23  DDValue val2("level");
24  const DDsvalues_type params(fview.mergedSpecifics());
25 
26  fview.firstChild();
27 
28  const DDsvalues_type mySpecs(fview.mergedSpecifics());
29 #ifdef EDM_ML_DEBUG
30  edm::LogVerbatim("MuonGeom") << "MuonGeometryConstantsBuild::mySpecs.size() = " << mySpecs.size();
31 #endif
32  if (mySpecs.size() < 25) {
33  edm::LogError("MuonGeometryConstantsBuild")
34  << " MuonGeometryConstantsBuild: Missing SpecPars from DetectorDescription.";
36  "MuonGeometryConstantsBuild does not have the appropriate number of SpecPars associated with the part //MUON.";
37  throw cms::Exception("GeometryBuildFailure", msg);
38  }
39 
40  DDsvalues_type::const_iterator bit = mySpecs.begin();
41  DDsvalues_type::const_iterator eit = mySpecs.end();
42  for (; bit != eit; ++bit) {
43  if (bit->second.isEvaluated()) {
44  php.addValue(bit->second.name(), static_cast<int>(bit->second.doubles()[0]));
45 #ifdef EDM_ML_DEBUG
46  edm::LogVerbatim("MuonGeom") << "MuonGeometryConstantsBuild::adding DDConstant of " << bit->second.name() << " = "
47  << static_cast<int>(bit->second.doubles()[0]);
48 #endif
49  }
50  }
51  return true;
52 }
Log< level::Info, true > LogVerbatim
Log< level::Error, false > LogError
void addValue(const std::string &name, const int &value)
std::vector< std::pair< unsigned int, DDValue > > DDsvalues_type
Definition: DDsvalues.h:12
tuple msg
Definition: mps_check.py:286

◆ build() [2/2]

bool MuonGeometryConstantsBuild::build ( const cms::DDCompactView cpv,
MuonGeometryConstants php 
)

Definition at line 54 of file MuonGeometryConstantsBuild.cc.

References MuonGeometryConstants::addValue(), mps_fire::end, dqmdumpme::k, MainPageGenerator::l, and cms::DDCompactView::specpars().

54  {
55 #ifdef EDM_ML_DEBUG
56  edm::LogVerbatim("MuonGeom")
57  << "MuonGeometryConstantsBuild;:build (const cms::DDCompactView* cpv, MuonGeometryConstants& php)";
58 #endif
59  cms::DDSpecParRegistry const& registry = cpv->specpars();
60  auto it = registry.specpars.find("MuonCommonNumbering");
61  if (it != end(registry.specpars)) {
62  for (const auto& l : it->second.spars) {
63  if (l.first == "OnlyForMuonNumbering") {
64  for (const auto& k : it->second.numpars) {
65  for (const auto& ik : k.second) {
66  php.addValue(k.first, static_cast<int>(ik));
67 #ifdef EDM_ML_DEBUG
68  edm::LogVerbatim("MuonGeom") << "MuonGeometryConstantsBuild::adding DDConstant of " << k.first << " = "
69  << static_cast<int>(ik);
70 #endif
71  }
72  }
73  }
74  }
75  }
76 
77  return true;
78 }
Log< level::Info, true > LogVerbatim
DDSpecParRegistry const & specpars() const
Definition: DDCompactView.h:35
void addValue(const std::string &name, const int &value)
dd4hep::SpecParRegistry DDSpecParRegistry
Definition: DDCompactView.h:28