45 LogDebug(
"ME0GeometryParsFromDD") <<
"Building the geometry service";
46 LogDebug(
"ME0GeometryParsFromDD") <<
"About to run through the ME0 structure\n"
49 edm::LogVerbatim(
"ME0GeometryParsFromDD") <<
"(0) ME0GeometryParsFromDD - DDD ";
54 LogDebug(
"ME0GeometryParsFromDD") <<
"doChamber = " << doChambers;
126 DDValue numbOfStrips(
"nStrips");
129 double nStrips = 0., nPads = 0.;
130 for (
auto const& is :
specs) {
134 nPads = numbOfPads.
doubles()[0];
136 LogDebug(
"ME0GeometryParsFromDD") << ((
nStrips == 0.) ? (
"No nStrips found!!")
137 : (
"Number of strips: " + std::to_string(
nStrips)));
138 LogDebug(
"ME0GeometryParsFromDD") << ((nPads == 0.) ? (
"No nPads found!!")
139 : (
"Number of pads: " + std::to_string(nPads)));
143 pars.emplace_back(nPads);
149 <<
nStrips <<
" nPads " << nPads;
160 LogDebug(
"ME0GeometryParsFromDD") <<
"dimension dx1 " << dpar[4] <<
", dx2 " << dpar[8] <<
", dy " << dpar[0]
161 <<
", dz " << dpar[3];
163 <<
"(1) DDD, dimension dx1 " << dpar[4] <<
", dx2 " << dpar[8] <<
", dy " << dpar[0] <<
", dz " << dpar[3];
164 return {dpar[4], dpar[8], dpar[0], dpar[3]};
170 <<
"(2) DDD, tran vector " << tran.x() <<
" " << tran.y() <<
" " << tran.z();
171 return {tran.x(), tran.y(), tran.z()};
177 rota.GetComponents(
x,
y,
z);
179 <<
"(3) DDD, rot matrix " <<
x.X() <<
" " <<
x.Y() <<
" " <<
x.Z() <<
" " <<
y.X() <<
" " <<
y.Y() <<
" "
180 <<
y.Z() <<
" " <<
z.X() <<
" " <<
z.Y() <<
" " <<
z.Z();
181 return {
x.X(),
x.Y(),
x.Z(),
y.X(),
y.Y(),
y.Z(),
z.X(),
z.Y(),
z.Z()};
199 edm::LogVerbatim(
"ME0GeometryParsFromDD") <<
"(0) ME0GeometryParsFromDD - DD4HEP ";
204 static constexpr uint32_t levelChamber = 7;
205 static constexpr uint32_t levelLayer = 8;
206 uint32_t theLevelPart = muonConstants.
getValue(
"level");
207 uint32_t theSectorLevel = muonConstants.
getValue(
"m0_sector") / theLevelPart;
210 const auto& history = fv.
history();
214 if (fv.
level() == levelChamber) {
216 }
else if (fv.
level() == levelLayer) {
218 }
else if (history.tags.size() > theSectorLevel) {
249 auto nPads = fv.
get<
double>(
"nPads");
253 pars.emplace_back(nPads);
257 edm::LogVerbatim(
"ME0GeometryParsFromDD") <<
"(6) DD4HEP, Eta Partion DetID " << detId.
rawId() <<
" Name "
267 <<
"(1) DD4HEP, dimension dx1 " << dpar[0] / dd4hep::mm <<
", dx2 " << dpar[1] / dd4hep::mm <<
", dy "
268 << dpar[3] / dd4hep::mm <<
", dz " << dpar[2] / dd4hep::mm;
270 return {dpar[0] / dd4hep::mm, dpar[1] / dd4hep::mm, dpar[3] / dd4hep::mm, dpar[2] / dd4hep::mm};
274 std::vector<double> tran(3);
275 tran[0] = static_cast<double>(fv.
translation().X()) / dd4hep::mm;
276 tran[1] = static_cast<double>(fv.
translation().Y()) / dd4hep::mm;
277 tran[2] = static_cast<double>(fv.
translation().Z()) / dd4hep::mm;
280 <<
"(2) DD4HEP, tran vector " << tran[0] <<
" " << tran[1] <<
" " << tran[2];
281 return {tran[0], tran[1], tran[2]};
288 rota.GetComponents(
x,
y,
z);
289 const std::vector<double>
rot = {
x.X(),
x.Y(),
x.Z(),
y.X(),
y.Y(),
y.Z(),
z.X(),
z.Y(),
z.Z()};
291 <<
"(3) DD4HEP, rot matrix " <<
rot[0] <<
" " <<
rot[1] <<
" " <<
rot[2] <<
" " <<
rot[3] <<
" " <<
rot[4]
292 <<
" " <<
rot[5] <<
" " <<
rot[6] <<
" " <<
rot[7] <<
" " <<
rot[8];