|
|
#include <ME0GeometryBuilder.h>
|
ME0BoundPlane | boundPlane (const cms::DDFilteredView &fv, Bounds *bounds, bool isOddChamber) const |
|
ME0BoundPlane | boundPlane (const DDFilteredView &fv, Bounds *bounds, bool isOddChamber) const |
|
ME0Chamber * | buildChamber (cms::DDFilteredView &fv, ME0DetId detId) const |
|
ME0Chamber * | buildChamber (DDFilteredView &fv, ME0DetId detId) const |
|
ME0EtaPartition * | buildEtaPartition (cms::DDFilteredView &fv, ME0DetId detId) const |
|
ME0EtaPartition * | buildEtaPartition (DDFilteredView &fv, ME0DetId detId) const |
|
ME0Geometry * | buildGeometry (cms::DDFilteredView &fview, const cms::MuonNumbering &muonConstants) |
|
ME0Geometry * | buildGeometry (DDFilteredView &fview, const MuonGeometryConstants &muonConstants) |
|
ME0Layer * | buildLayer (cms::DDFilteredView &fv, ME0DetId detId) const |
|
ME0Layer * | buildLayer (DDFilteredView &fv, ME0DetId detId) const |
|
Definition at line 34 of file ME0GeometryBuilder.h.
◆ ME0BoundPlane
◆ ME0GeometryBuilder()
ME0GeometryBuilder::ME0GeometryBuilder |
( |
| ) |
|
◆ ~ME0GeometryBuilder()
ME0GeometryBuilder::~ME0GeometryBuilder |
( |
| ) |
|
◆ boundPlane() [1/2]
◆ boundPlane() [2/2]
◆ build() [1/2]
◆ build() [2/2]
◆ buildChamber() [1/2]
◆ buildChamber() [2/2]
Definition at line 226 of file ME0GeometryBuilder.cc.
230 std::vector<double> dpar = solid.
parameters();
239 LogTrace(
"ME0GeometryBuilder") <<
" dpar is vector with size = " << dpar.size() << std::endl;
240 for (
unsigned int i = 0;
i < dpar.size(); ++
i) {
243 LogTrace(
"ME0GeometryBuilder") <<
"size b: " <<
b <<
"cm, B: " <<
B <<
"cm, L: " <<
L <<
"cm, T: " <<
T <<
"cm "
References TtFullHadDaughter::B, b, relativeConstraints::chamber, ME0DetId::chamberId(), geant_units::operators::convertMmToCm(), mps_fire::i, dttmaxenums::L, DDFilteredView::logicalPart(), LogTrace, DDName::name(), DDBase< N, C >::name(), DDSolid::parameters(), and DDLogicalPart::solid().
◆ buildEtaPartition() [1/2]
Definition at line 461 of file ME0GeometryBuilder.cc.
References TtFullHadDaughter::B, b, dqmMemoryStats::float, dttmaxenums::L, GeomDetEnumerators::ME0, Skims_PA_cff::name, cms::DDFilteredView::name(), me0TriggerPseudoDigis_cff::nStrips, cms::DDFilteredView::parameters(), AlCaHLTBitMon_QueryRunRegistry::string, and OrderedSet::t.
◆ buildEtaPartition() [2/2]
Definition at line 280 of file ME0GeometryBuilder.cc.
284 DDValue numbOfStrips(
"nStrips");
287 double nStrips = 0., nPads = 0.;
288 for (
const auto& is :
specs) {
290 nStrips = numbOfStrips.doubles()[0];
292 nPads = numbOfPads.doubles()[0];
295 LogTrace(
"ME0GeometryBuilder") << ((
nStrips == 0.) ? (
"No nStrips found!!")
296 : (
"Number of strips: " + std::to_string(
nStrips)));
297 LogTrace(
"ME0GeometryBuilder") << ((nPads == 0.) ? (
"No nPads found!!")
298 : (
"Number of pads: " + std::to_string(nPads)));
309 LogTrace(
"ME0GeometryBuilder") <<
" dpar is vector with size = " << dpar.size() << std::endl;
310 for (
unsigned int i = 0;
i < dpar.size(); ++
i) {
313 LogTrace(
"ME0GeometryBuilder") <<
"size b: " <<
b <<
"cm, B: " <<
B <<
"cm, L: " <<
L <<
"cm, t: " <<
t <<
"cm "
317 std::vector<float> pars;
318 pars.emplace_back(
b);
319 pars.emplace_back(
B);
320 pars.emplace_back(
L);
322 pars.emplace_back(nPads);
References TtFullHadDaughter::B, b, geant_units::operators::convertMmToCm(), DDfetch(), DDValue::doubles(), mps_fire::i, dttmaxenums::L, DDFilteredView::logicalPart(), LogTrace, GeomDetEnumerators::ME0, Skims_PA_cff::name, DDName::name(), DDBase< N, C >::name(), me0TriggerPseudoDigis_cff::nStrips, DDSolid::parameters(), DDLogicalPart::solid(), DDFilteredView::specifics(), HistogramManager_cfi::specs, AlCaHLTBitMon_QueryRunRegistry::string, and OrderedSet::t.
◆ buildGeometry() [1/2]
Definition at line 368 of file ME0GeometryBuilder.cc.
371 bool doChambers = fv.firstChild();
384 bool doLayers = fv.nextSibling();
395 me0Chamber->
add(me0Layer);
406 me0Layer->
add(etaPart);
409 bool doEtaParts = fv.sibling();
419 me0Layer->
add(etaPart);
422 doEtaParts = fv.sibling();
424 doLayers = fv.nextSibling();
427 doChambers = fv.firstChild();
References ME0Layer::add(), ME0Chamber::add(), cms::ME0NumberingScheme::baseNumberToUnitNumber(), ME0DetId::chamberId(), cms::DDFilteredView::down(), cms::DDFilteredView::firstChild(), cms::MuonNumbering::geoHistoryToBaseNumber(), geometry, cms::DDFilteredView::history(), ME0DetId::layerId(), cms::DDFilteredView::nextSibling(), cms::DDFilteredView::parent(), cms::DDFilteredView::sibling(), and cms::MuonNumbering::values().
◆ buildGeometry() [2/2]
Definition at line 62 of file ME0GeometryBuilder.cc.
65 LogTrace(
"ME0GeometryBuilder") <<
"Building the geometry service";
66 LogTrace(
"ME0GeometryBuilder") <<
"About to run through the ME0 structure\n"
67 <<
"Top level logical part: " << fv.logicalPart().name().name();
73 bool testChambers = fv.firstChild();
74 LogTrace(
"ME0GeometryBuilder") <<
"doChamber = fv.firstChild() = " << testChambers;
76 while (testChambers) {
78 LogTrace(
"ME0GeometryBuilder") <<
"to layer " << fv.firstChild();
79 LogTrace(
"ME0GeometryBuilder") <<
"to etapt " << fv.firstChild();
82 int rawId = me0Num.baseNumberToUnitNumber(mdddnum.geoHistoryToBaseNumber(fv.geoHistory()));
86 LogTrace(
"ME0GeometryBuilder") <<
"back to layer " << fv.parent();
87 LogTrace(
"ME0GeometryBuilder") <<
"back to chamb " << fv.parent();
89 LogTrace(
"ME0GeometryBuilder") <<
"In DoChambers Loop :: ME0DetId " << detId <<
" = " << detId.
rawId()
90 <<
" (which belongs to ME0Chamber " << detIdCh <<
" = " << detIdCh.
rawId() <<
")";
91 LogTrace(
"ME0GeometryBuilder") <<
"Second level logical part: " << fv.logicalPart().name().name();
93 std::vector<double> dpar2 = solid2.
parameters();
94 std::stringstream parameters2;
95 for (
unsigned int i = 0;
i < dpar2.size(); ++
i) {
96 parameters2 <<
" dpar[" <<
i <<
"]=" <<
convertMmToCm(dpar2[
i]) <<
"cm ";
98 LogTrace(
"ME0GeometryBuilder") <<
"Second level parameters: vector with size = " << dpar2.size() <<
" and elements "
101 bool doLayers = fv.firstChild();
103 LogTrace(
"ME0GeometryBuilder") <<
"doLayer = fv.firstChild() = " << doLayers;
106 LogTrace(
"ME0GeometryBuilder") <<
"to etapt " << fv.firstChild();
109 int rawId = me0Num.baseNumberToUnitNumber(mdddnum.geoHistoryToBaseNumber(fv.geoHistory()));
113 LogTrace(
"ME0GeometryBuilder") <<
"back to layer " << fv.parent();
114 LogTrace(
"ME0GeometryBuilder") <<
"In DoLayers Loop :: ME0DetId " << detId <<
" = " << detId.
rawId()
115 <<
" (which belongs to ME0Layer " << detIdLa <<
" = " << detIdLa.
rawId() <<
")";
116 LogTrace(
"ME0GeometryBuilder") <<
"Third level logical part: " << fv.logicalPart().name().name();
118 std::vector<double> dpar3 = solid3.
parameters();
119 std::stringstream parameters3;
120 for (
unsigned int i = 0;
i < dpar3.size(); ++
i) {
121 parameters3 <<
" dpar[" <<
i <<
"]=" <<
convertMmToCm(dpar3[
i]) <<
"cm ";
123 LogTrace(
"ME0GeometryBuilder") <<
"Third level parameters: vector with size = " << dpar3.size()
124 <<
" and elements " << parameters3.str();
125 bool doEtaParts = fv.firstChild();
127 LogTrace(
"ME0GeometryBuilder") <<
"doEtaPart = fv.firstChild() = " << doEtaParts;
129 LogTrace(
"ME0GeometryBuilder") <<
"In DoEtaParts Loop :: ME0DetId " << detId <<
" = " << detId.
rawId();
130 LogTrace(
"ME0GeometryBuilder") <<
"Fourth level logical part: " << fv.logicalPart().name().name();
132 std::vector<double> dpar4 = solid4.
parameters();
133 std::stringstream parameters4;
134 for (
unsigned int i = 0;
i < dpar4.size(); ++
i) {
135 parameters4 <<
" dpar[" <<
i <<
"]=" <<
convertMmToCm(dpar4[
i]) <<
"cm ";
137 LogTrace(
"ME0GeometryBuilder") <<
"Fourth level parameters: vector with size = " << dpar4.size()
138 <<
" and elements " << parameters4.str();
140 doEtaParts = fv.nextSibling();
141 LogTrace(
"ME0GeometryBuilder") <<
"doEtaPart = fv.nextSibling() = " << doEtaParts;
144 LogTrace(
"ME0GeometryBuilder") <<
"went back to parent :: name = " << fv.logicalPart().name().name()
145 <<
" will now ask for nextSibling";
146 doLayers = fv.nextSibling();
147 LogTrace(
"ME0GeometryBuilder") <<
"doLayer = fv.nextSibling() = " << doLayers;
150 LogTrace(
"ME0GeometryBuilder") <<
"went back to parent :: name = " << fv.logicalPart().name().name()
151 <<
" will now ask for nextSibling";
152 testChambers = fv.nextSibling();
153 LogTrace(
"ME0GeometryBuilder") <<
"doChamber = fv.nextSibling() = " << testChambers;
161 bool doChambers = fv.firstChild();
170 int rawId = me0Num.baseNumberToUnitNumber(mdddnum.geoHistoryToBaseNumber(fv.geoHistory()));
182 bool doLayers = fv.firstChild();
189 int rawId = me0Num.baseNumberToUnitNumber(mdddnum.geoHistoryToBaseNumber(fv.geoHistory()));
195 me0Chamber->
add(me0Layer);
199 bool doEtaParts = fv.firstChild();
205 int rawId = me0Num.baseNumberToUnitNumber(mdddnum.geoHistoryToBaseNumber(fv.geoHistory()));
210 me0Layer->
add(etaPart);
213 doEtaParts = fv.nextSibling();
217 doLayers = fv.nextSibling();
221 doChambers = fv.nextSibling();
References ME0Layer::add(), ME0Chamber::add(), ME0NumberingScheme::baseNumberToUnitNumber(), ME0DetId::chamberId(), geant_units::operators::convertMmToCm(), DDFilteredView::firstChild(), DDFilteredView::geoHistory(), MuonDDDNumbering::geoHistoryToBaseNumber(), geometry, mps_fire::i, ME0DetId::layerId(), DDFilteredView::logicalPart(), LogTrace, DDName::name(), DDBase< N, C >::name(), DDFilteredView::nextSibling(), DDSolid::parameters(), DDFilteredView::parent(), DetId::rawId(), and DDLogicalPart::solid().
◆ buildLayer() [1/2]
◆ buildLayer() [2/2]
Definition at line 253 of file ME0GeometryBuilder.cc.
258 std::vector<double> dpar = solid.
parameters();
266 LogTrace(
"ME0GeometryBuilder") <<
" dpar is vector with size = " << dpar.size() << std::endl;
267 for (
unsigned int i = 0;
i < dpar.size(); ++
i) {
270 LogTrace(
"ME0GeometryBuilder") <<
"size b: " <<
b <<
"cm, B: " <<
B <<
"cm, L: " <<
L <<
"cm, t: " <<
t <<
"cm "
References TtFullHadDaughter::B, b, geant_units::operators::convertMmToCm(), mps_fire::i, dttmaxenums::L, ME0DetId::layerId(), DDFilteredView::logicalPart(), LogTrace, DDName::name(), DDBase< N, C >::name(), DDSolid::parameters(), DDLogicalPart::solid(), and OrderedSet::t.
◆ chids
void add(const ME0EtaPartition *roll)
Add EtaPartition to the layer which takes ownership.
const Double_t * rot() const
The absolute rotation of the current node.
const MuonBaseNumber geoHistoryToBaseNumber(const cms::ExpandedNodes &) const
ESHandle< TrackerGeometry > geometry
const std::vector< double > parameters() const
extract shape parameters
const DDLogicalPart & logicalPart() const
The logical-part of the current node in the filtered-view.
void add(ME0Layer *layer)
Add Layer to the chamber which takes ownership.
ROOT::Math::Rotation3D DDRotationMatrix
A DDRotationMatrix is currently implemented with a ROOT Rotation3D.
ROOT::Math::DisplacementVector3D< ROOT::Math::Cartesian3D< double > > DD3Vector
A DD Translation is currently implemented with Root Vector3D.
ME0DetId layerId() const
Return the corresponding LayerId (mask eta partition)
std::string_view name() const
const Double_t * trans() const
The absolute translation of the current node.
const MuonConstants & values() const
ROOT::Math::DisplacementVector3D< ROOT::Math::Cartesian3D< double > > DDTranslation
bool DDfetch(const DDsvalues_type *, DDValue &)
helper for retrieving DDValues from DDsvalues_type *.
std::vector< const DDSpecPar * > DDSpecParRefs
ME0Chamber * buildChamber(DDFilteredView &fv, ME0DetId detId) const
const std::string & name() const
Returns the name.
ReferenceCountingPointer< BoundPlane > ME0BoundPlane
DDSpecParRegistry const & specpars() const
std::vector< const DDsvalues_type * > specifics() const
nStrips
1.2 is to make the matching window safely the two nearest strips 0.35 is the size of an ME0 chamber i...
ME0DetId chamberId() const
Return the corresponding ChamberId (mask layers)
static const std::string B
constexpr uint32_t rawId() const
get the raw id
const DDTranslation & translation() const
The absolute translation of the current node.
void filter(DDSpecParRefs &, const std::string &, const std::string &="") const
ME0EtaPartition * buildEtaPartition(DDFilteredView &fv, ME0DetId detId) const
const std::vector< double > & parameters(void) const
Give the parameters of the solid.
const DDRotationMatrix & rotation() const
The absolute rotation of the current node.
constexpr NumType convertMmToCm(NumType millimeters)
ME0Layer * buildLayer(DDFilteredView &fv, ME0DetId detId) const
ME0Geometry * buildGeometry(DDFilteredView &fview, const MuonGeometryConstants &muonConstants)
const DDSolid & solid(void) const
Returns a reference object of the solid being the shape of this LogicalPart.
void baseNumberToUnitNumber(const MuonBaseNumber &)
ME0BoundPlane boundPlane(const DDFilteredView &fv, Bounds *bounds, bool isOddChamber) const
Volume worldVolume() const
Handle to the world volume containing everything.
const cms::DDDetector * detector() const