|
|
#include <HGCalGeomParameters.h>
|
| HGCalGeomParameters () |
|
void | loadCellParsHexagon (const cms::DDVectorsMap &vmap, HGCalParameters &php) |
|
void | loadCellParsHexagon (const DDCompactView *cpv, HGCalParameters &php) |
|
void | loadCellParsHexagon (const HGCalParameters &php) |
|
void | loadCellTrapezoid (HGCalParameters &php) |
|
void | loadGeometryHexagon (const cms::DDCompactView *cpv, HGCalParameters &php, const std::string &sdTag1, const std::string &sdTag2, const std::string &sdTag3, HGCalGeometryMode::WaferMode mode) |
|
void | loadGeometryHexagon (const DDFilteredView &_fv, HGCalParameters &php, const std::string &sdTag1, const DDCompactView *cpv, const std::string &sdTag2, const std::string &sdTag3, HGCalGeometryMode::WaferMode mode) |
|
void | loadGeometryHexagon8 (const cms::DDCompactView *cpv, HGCalParameters &php, const std::string &sdTag1, int firstLayer) |
|
void | loadGeometryHexagon8 (const DDFilteredView &_fv, HGCalParameters &php, int firstLayer) |
|
void | loadGeometryHexagonModule (const cms::DDCompactView *cpv, HGCalParameters &php, const std::string &sdTag1, const std::string &sdTag2, int firstLayer) |
|
void | loadGeometryHexagonModule (const DDCompactView *cpv, HGCalParameters &php, const std::string &sdTag1, const std::string &sdTag2, int firstLayer) |
|
void | loadSpecParsHexagon (const cms::DDFilteredView &fv, HGCalParameters &php, const std::string &sdTag1, const std::string &sdTag2, const std::string &sdTag3, const std::string &sdTag4) |
|
void | loadSpecParsHexagon (const DDFilteredView &fv, HGCalParameters &php, const DDCompactView *cpv, const std::string &sdTag1, const std::string &sdTag2) |
|
void | loadSpecParsHexagon8 (const cms::DDFilteredView &fv, const cms::DDVectorsMap &vmap, HGCalParameters &php, const std::string &sdTag1) |
|
void | loadSpecParsHexagon8 (const DDFilteredView &fv, HGCalParameters &php) |
|
void | loadSpecParsTrapezoid (const cms::DDFilteredView &fv, const cms::DDVectorsMap &vmap, HGCalParameters &php, const std::string &sdTag1) |
|
void | loadSpecParsTrapezoid (const DDFilteredView &fv, HGCalParameters &php) |
|
void | loadWaferHexagon (HGCalParameters &php) |
|
void | loadWaferHexagon8 (HGCalParameters &php) |
|
| ~HGCalGeomParameters () |
|
|
std::pair< double, double > | cellPosition (const std::vector< cellParameters > &wafers, std::vector< cellParameters >::const_iterator &itrf, int wafer, double xx, double yy) |
|
std::vector< double > | getDDDArray (const std::string &str, const DDsvalues_type &sv, const int nmin) |
|
void | loadGeometryHexagon (const std::map< int, HGCalGeomParameters::layerParameters > &layers, std::vector< HGCalParameters::hgtrform > &trforms, std::vector< bool > &trformUse, const std::unordered_map< int32_t, int32_t > &copies, const HGCalParameters::layer_map &copiesInLayers, const std::vector< int32_t > &wafer2copy, const std::vector< HGCalGeomParameters::cellParameters > &wafers, const std::map< int, int > &wafertype, const std::map< int, HGCalGeomParameters::cellParameters > &cellsf, const std::map< int, HGCalGeomParameters::cellParameters > &cellsc, HGCalParameters &php) |
|
void | loadGeometryHexagon8 (const std::map< int, HGCalGeomParameters::layerParameters > &layers, std::map< std::pair< int, int >, HGCalParameters::hgtrform > &trforms, const int &firstLayer, HGCalParameters &php) |
|
void | loadSpecParsHexagon (const HGCalParameters &php) |
|
void | loadSpecParsHexagon8 (HGCalParameters &php) |
|
void | loadSpecParsHexagon8 (HGCalParameters &php, const std::vector< int > &layerType, const std::vector< int > &waferIndex, const std::vector< int > &waferProperties) |
|
void | loadSpecParsTrapezoid (HGCalParameters &php) |
|
void | loadSpecParsTrapezoid (HGCalParameters &php, const std::vector< int > &tileIndex, const std::vector< int > &tileProperty, const std::vector< int > &tileHEX1, const std::vector< int > &tileHEX2, const std::vector< int > &tileHEX3, const std::vector< int > &tileHEX4, const std::vector< double > &tileRMin, const std::vector< double > &tileRMax, const std::vector< int > &tileRingMin, const std::vector< int > &tileRingMax) |
|
void | rescale (std::vector< double > &, const double s) |
|
void | resetZero (std::vector< double > &) |
|
this class extracts some geometry constants from CompactView to be used by Reco Geometry/Topology
- Date
- 2015/06/25 00:06:50
- Author
- Sunanda Banerjee, Fermilab sunan.nosp@m.da.b.nosp@m.anerj.nosp@m.ee@c.nosp@m.ern.c.nosp@m.h
-
Lindsey Gray, Fermilab lagra.nosp@m.y@fn.nosp@m.al.go.nosp@m.v (for fixes)
Definition at line 29 of file HGCalGeomParameters.h.
◆ HGCalGeomParameters()
HGCalGeomParameters::HGCalGeomParameters |
( |
| ) |
|
◆ ~HGCalGeomParameters()
HGCalGeomParameters::~HGCalGeomParameters |
( |
| ) |
|
◆ cellPosition()
std::pair< double, double > HGCalGeomParameters::cellPosition |
( |
const std::vector< cellParameters > & |
wafers, |
|
|
std::vector< cellParameters >::const_iterator & |
itrf, |
|
|
int |
wafer, |
|
|
double |
xx, |
|
|
double |
yy |
|
) |
| |
|
private |
◆ getDDDArray()
std::vector< double > HGCalGeomParameters::getDDDArray |
( |
const std::string & |
str, |
|
|
const DDsvalues_type & |
sv, |
|
|
const int |
nmin |
|
) |
| |
|
private |
◆ loadCellParsHexagon() [1/3]
◆ loadCellParsHexagon() [2/3]
◆ loadCellParsHexagon() [3/3]
void HGCalGeomParameters::loadCellParsHexagon |
( |
const HGCalParameters & |
php | ) |
|
◆ loadCellTrapezoid()
Definition at line 2083 of file HGCalGeomParameters.cc.
2096 for (
unsigned int k = 0;
k < 2; ++
k) {
2121 for (
unsigned int k = 0;
k < 2; ++
k) {
2131 <<
" dEta = " << php.
cellSize_[
k] <<
"\nOld[0] new R = " << rv <<
" Eta = " <<
eta;
2139 edm::LogVerbatim(
"HGCalGeom") <<
"Old [" << kount <<
"] new R = " << rv <<
" Eta = " <<
eta;
2147 std::vector<double>::iterator
low,
high;
2164 edm::LogVerbatim(
"HGCalGeom") <<
"Modified irlow " << irlow <<
" dr " << drlow;
2183 edm::LogVerbatim(
"HGCalGeom") <<
"Modified irhigh " << irhigh <<
" dr " << drhigh;
2189 edm::LogVerbatim(
"HGCalGeom") <<
"Old Layer " <<
k <<
" Type " <<
kk <<
" Low edge " << irlow <<
":" << drlow
2190 <<
" Top edge " << irhigh <<
":" << drhigh;
2195 for (
unsigned int k = 0;
k < 2; ++
k) {
2224 mytr.
h = 0.5 * (rmax - rmin);
References HGCalParameters::hgtrap::alpha, HGCalParameters::hgtrap::bl, HGCalParameters::hgtrap::cellSize, HGCalParameters::cellSize_, HGCalParameters::hgtrap::dz, PVValHelper::eta, JetChargeProducer_cfi::exp, HGCalParameters::fillModule(), HGCalParameters::firstLayer_, HGCalParameters::firstModule_, HGCalParameters::hgtrap::h, LaserClient_cfi::high, createfilelist::int, HGCalParameters::iradMaxBH_, HGCalParameters::iradMinBH_, dqmdumpme::k, HGCalParameters::k_ScaleFromDDD, HGCalParameters::k_ScaleToDDD, GetRecoTauVFromDQM_MC_cff::kk, HGCalParameters::lastModule_, HGCalParameters::hgtrap::lay, HGCalParameters::layerFrontBH_, dqm-mbProfile::log, LaserClient_cfi::low, pfDeepBoostedJetPreprocessParams_cfi::lower_bound, SiStripPI::max, min(), HGCalParameters::minTileSize_, HGCalParameters::mode_, HGCalParameters::nSectors_, HGCalParameters::radiusLayer_, HGCalParameters::rMaxLayHex_, HGCalParameters::rMinLayerBH_, HGCalParameters::rMinLayHex_, HGCalParameters::scintCellSize(), HGCalParameters::scintType(), funct::tan(), HGCalParameters::tileRingR_, HGCalParameters::tileRingRange_, HGCalParameters::hgtrap::tl, HGCalGeometryMode::TrapezoidFile, HGCalGeometryMode::TrapezoidModule, HGCalParameters::waferThick_, HGCalParameters::waferUVMax_, HGCalParameters::xLayerHex_, HGCalParameters::yLayerHex_, HGCalParameters::zLayerHex_, and gpuVertexFinder::zv.
◆ loadGeometryHexagon() [1/3]
Definition at line 271 of file HGCalGeomParameters.cc.
279 std::map<int, HGCalGeomParameters::layerParameters>
layers;
280 std::vector<HGCalParameters::hgtrform> trforms;
281 std::vector<bool> trformUse;
282 std::vector<std::pair<int, int> > trused;
284 while (fv.firstChild()) {
285 const std::vector<double>& pars = fv.parameters();
287 std::vector<int>
copy = fv.copyNos();
289 int lay = (nsiz > 0) ?
copy[0] : 0;
290 int zp = (nsiz > 2) ?
copy[2] : -1;
294 throw cms::Exception(
"DDException") <<
"Funny layer # " << lay <<
" zp " << zp <<
" in " << nsiz <<
" components";
297 php.
layer_.emplace_back(lay);
298 auto itr =
layers.find(lay);
300 if (itr ==
layers.end()) {
301 double rin(0), rout(0);
302 if (dd4hep::isA<dd4hep::Polyhedra>(fv.solid())) {
305 }
else if (dd4hep::isA<dd4hep::Tube>(fv.solid())) {
306 dd4hep::Tube tubeSeg(fv.solid());
313 std::pair<int, int> layz(lay, zp);
314 if (
std::find(trused.begin(), trused.end(), layz) == trused.end()) {
315 trused.emplace_back(layz);
317 fv.rotation().GetComponents(
x,
y,
z);
318 const CLHEP::HepRep3x3
rotation(
x.X(),
y.X(),
z.X(),
x.Y(),
y.Y(),
z.Y(),
x.Z(),
y.Z(),
z.Z());
319 const CLHEP::HepRotation hr(
rotation);
327 const CLHEP::Hep3Vector h3v(
xx,
yy,
zz);
335 trforms.emplace_back(mytrf);
336 trformUse.emplace_back(
false);
345 std::unordered_map<int32_t, int32_t> copies;
347 std::vector<int32_t> wafer2copy;
348 std::vector<HGCalGeomParameters::cellParameters> wafers;
351 bool ok = fv1.firstChild();
353 throw cms::Exception(
"DDException") <<
"Attribute " << sdTag2 <<
" not found but needed.";
356 std::unordered_set<std::string>
names;
359 std::vector<int>
copy = fv1.copyNos();
361 int wafer = (nsiz > 0) ?
copy[0] : 0;
364 throw cms::Exception(
"DDException") <<
"Funny wafer # " << wafer <<
" in " << nsiz <<
" components";
367 <<
" among " << nsiz <<
" components";
369 auto itr = copies.find(wafer);
370 auto cpy = copiesInLayers[
layer].find(wafer);
371 if (itr != copies.end() && cpy == copiesInLayers[
layer].end()) {
372 copiesInLayers[
layer][wafer] = itr->second;
374 if (itr == copies.end()) {
375 copies[wafer] = wafer2copy.size();
376 copiesInLayers[
layer][wafer] = wafer2copy.size();
383 wafer2copy.emplace_back(wafer);
386 wafers.emplace_back(cell);
389 const std::vector<double>& pars = fv1.parameters();
419 dodet = fv1.firstChild();
424 std::map<int, int> wafertype;
425 std::map<int, HGCalGeomParameters::cellParameters> cellsf, cellsc;
428 ok = fv2.firstChild();
430 throw cms::Exception(
"DDException") <<
"Attribute " << sdTag3 <<
" not found but needed.";
435 std::vector<int>
copy = fv2.copyNos();
437 int cellx = (nsiz > 0) ?
copy[0] : 0;
438 int wafer = (nsiz > 1) ?
copy[1] : 0;
443 <<
"Funny cell # " << cell <<
" type " <<
type <<
" in " << nsiz <<
" components";
445 auto ktr = wafertype.find(wafer);
446 if (ktr == wafertype.end())
447 wafertype[wafer] =
type;
449 std::map<int, HGCalGeomParameters::cellParameters>::iterator itr;
452 itr = cellsf.find(cell);
453 newc = (itr == cellsf.end());
455 itr = cellsc.find(cell);
456 newc = (itr == cellsc.end());
460 bool half = (
name.find(
"Half") != std::string::npos);
473 edm::LogVerbatim(
"HGCalGeom") <<
"Wafer " << wafer <<
" Type " <<
type <<
" Cell " << cellx <<
" local "
474 <<
xx <<
":" <<
yy <<
" new " <<
p1 <<
":" <<
p2;
485 dodet = fv2.firstChild();
490 layers, trforms, trformUse, copies, copiesInLayers, wafer2copy, wafers, wafertype, cellsf, cellsc, php);
References funct::abs(), HGCalParameters::hgtrap::alpha, HGCalParameters::hgtrap::bl, HGCalParameters::hgtrap::cellSize, HGCalParameters::cellSize_, filterCSVwithJSON::copy, cms::DDFilteredView::copyNos(), CommonMethods::cp(), HGCalParameters::hgtrap::dz, PVValHelper::dz, Exception, HGCalParameters::fillModule(), ALCARECOTkAlBeamHalo_cff::filter, spr::find(), cms::DDFilteredView::firstChild(), HGCalTypes::getUnpackedCell6(), HGCalTypes::getUnpackedCellType6(), HGCalParameters::hgtrap::h, HGCalParameters::hgtrform::h3v, HGCalParameters::hgtrform::hr, createfilelist::int, HGCalParameters::k_ScaleFromDD4Hep, HGCalParameters::k_ScaleFromDD4HepToG4, HGCalParameters::k_ScaleFromDDD, HGCalParameters::hgtrap::lay, HGCalParameters::hgtrform::lay, phase1PixelTopology::layer, HGCalParameters::layer_, hgcalTopologyTester_cfi::layers, loadGeometryHexagon(), ALCARECOPromptCalibProdSiPixelAli0T_cff::mode, Skims_PA_cff::name, cms::DDFilteredView::name(), names, convertSQLiteXML::ok, AlCaHLTBitMon_ParallelJobs::p, p1, p2, cms::DDFilteredView::parameters(), HGCalGeometryMode::Polyhedra, idealTransformation::rotation, cms::DDFilteredView::rotation(), HGCalParameters::hgtrform::sec, cms::DDFilteredView::solid(), AlCaHLTBitMon_QueryRunRegistry::string, HGCalParameters::hgtrform::subsec, tan30deg_, HGCalParameters::hgtrap::tl, HGCalParameters::tol, tolerance, cms::DDFilteredView::translation(), HGCalParameters::waferR_, HGCalParameters::waferSize_, waferSize_, x, geometryCSVtoXML::xx, y, geometryCSVtoXML::yy, z, HGCalParameters::hgtrform::zp, gpuVertexFinder::zv, and geometryCSVtoXML::zz.
◆ loadGeometryHexagon() [2/3]
Definition at line 45 of file HGCalGeomParameters.cc.
54 std::map<int, HGCalGeomParameters::layerParameters>
layers;
55 std::vector<HGCalParameters::hgtrform> trforms;
56 std::vector<bool> trformUse;
63 int lay = (nsiz > 0) ?
copy[nsiz - 1] : 0;
64 int zp = (nsiz > 2) ?
copy[nsiz - 3] : -1;
68 throw cms::Exception(
"DDException") <<
"Funny layer # " << lay <<
" zp " << zp <<
" in " << nsiz <<
" components";
71 php.
layer_.emplace_back(lay);
72 auto itr =
layers.find(lay);
74 double rin(0), rout(0);
77 const DDPolyhedra& polyhedra = static_cast<DDPolyhedra>(sol);
78 const std::vector<double>& rmin = polyhedra.
rMinVec();
79 const std::vector<double>& rmax = polyhedra.
rMaxVec();
83 const DDTubs& tube = static_cast<DDTubs>(sol);
92 const CLHEP::HepRep3x3
rotation(
x.X(),
y.X(),
z.X(),
x.Y(),
y.Y(),
z.Y(),
x.Z(),
y.Z(),
z.Z());
93 const CLHEP::HepRotation hr(
rotation);
101 const CLHEP::Hep3Vector h3v(
xx,
yy,
zz);
109 trforms.emplace_back(mytrf);
110 trformUse.emplace_back(
false);
119 std::unordered_map<int32_t, int32_t> copies;
121 std::vector<int32_t> wafer2copy;
122 std::vector<HGCalGeomParameters::cellParameters> wafers;
124 DDValue val1(attribute, sdTag2, 0.0);
127 bool ok = fv1.firstChild();
129 throw cms::Exception(
"DDException") <<
"Attribute " << val1 <<
" not found but needed.";
132 std::unordered_set<std::string>
names;
134 const DDSolid& sol = fv1.logicalPart().solid();
136 std::vector<int>
copy = fv1.copyNumbers();
138 int wafer = (nsiz > 0) ?
copy[nsiz - 1] : 0;
139 int layer = (nsiz > 1) ?
copy[nsiz - 2] : 0;
141 throw cms::Exception(
"DDException") <<
"Funny wafer # " << wafer <<
" in " << nsiz <<
" components";
144 <<
" among " << nsiz <<
" components";
146 auto itr = copies.find(wafer);
147 auto cpy = copiesInLayers[
layer].find(wafer);
148 if (itr != copies.end() && cpy == copiesInLayers[
layer].end()) {
149 copiesInLayers[
layer][wafer] = itr->second;
151 if (itr == copies.end()) {
152 copies[wafer] = wafer2copy.size();
153 copiesInLayers[
layer][wafer] = wafer2copy.size();
160 wafer2copy.emplace_back(wafer);
163 wafers.emplace_back(cell);
165 std::vector<double>
zv, rv;
167 const DDPolyhedra& polyhedra = static_cast<DDPolyhedra>(sol);
200 std::map<int, int> wafertype;
201 std::map<int, HGCalGeomParameters::cellParameters> cellsf, cellsc;
202 DDValue val2(attribute, sdTag3, 0.0);
205 ok = fv2.firstChild();
207 throw cms::Exception(
"DDException") <<
"Attribute " << val2 <<
" not found but needed.";
211 const DDSolid& sol = fv2.logicalPart().solid();
213 std::vector<int>
copy = fv2.copyNumbers();
215 int cellx = (nsiz > 0) ?
copy[nsiz - 1] : 0;
216 int wafer = (nsiz > 1) ?
copy[nsiz - 2] : 0;
221 <<
"Funny cell # " << cell <<
" type " <<
type <<
" in " << nsiz <<
" components";
223 auto ktr = wafertype.find(wafer);
224 if (ktr == wafertype.end())
225 wafertype[wafer] =
type;
227 std::map<int, HGCalGeomParameters::cellParameters>::iterator itr;
230 itr = cellsf.find(cell);
231 newc = (itr == cellsf.end());
233 itr = cellsc.find(cell);
234 newc = (itr == cellsc.end());
238 bool half = (
name.find(
"Half") != std::string::npos);
251 edm::LogVerbatim(
"HGCalGeom") <<
"Wafer " << wafer <<
" Type " <<
type <<
" Cell " << cellx <<
" local "
252 <<
xx <<
":" <<
yy <<
" new " <<
p1 <<
":" <<
p2;
268 layers, trforms, trformUse, copies, copiesInLayers, wafer2copy, wafers, wafertype, cellsf, cellsc, php);
References funct::abs(), HGCalParameters::hgtrap::alpha, HGCalParameters::hgtrap::bl, HGCalParameters::hgtrap::cellSize, HGCalParameters::cellSize_, filterCSVwithJSON::copy, DDFilteredView::copyNumbers(), CommonMethods::cp(), ddpolyhedra_rrz, ddpolyhedra_rz, ddtubs, HGCalParameters::hgtrap::dz, PVValHelper::dz, Exception, HGCalParameters::fillModule(), spr::find(), DDFilteredView::firstChild(), HGCalTypes::getUnpackedCell6(), HGCalTypes::getUnpackedCellType6(), HGCalParameters::hgtrap::h, HGCalParameters::hgtrform::h3v, HGCalParameters::hgtrform::hr, createfilelist::int, HGCalParameters::k_ScaleFromDDD, HGCalParameters::k_ScaleFromDDDToG4, HGCalParameters::hgtrap::lay, HGCalParameters::hgtrform::lay, phase1PixelTopology::layer, HGCalParameters::layer_, hgcalTopologyTester_cfi::layers, DDFilteredView::logicalPart(), ALCARECOPromptCalibProdSiPixelAli0T_cff::mode, Skims_PA_cff::name, DDName::name(), DDBase< N, C >::name(), names, DDFilteredView::next(), convertSQLiteXML::ok, AlCaHLTBitMon_ParallelJobs::p, p1, p2, HGCalGeometryMode::Polyhedra, DDTubs::rIn(), DDPolyhedra::rMaxVec(), DDPolyhedra::rMinVec(), idealTransformation::rotation, DDFilteredView::rotation(), DDTubs::rOut(), HGCalParameters::hgtrform::sec, DDSolid::shape(), DDLogicalPart::solid(), AlCaHLTBitMon_QueryRunRegistry::string, HGCalParameters::hgtrform::subsec, tan30deg_, HGCalParameters::hgtrap::tl, HGCalParameters::tol, tolerance, DDFilteredView::translation(), HGCalParameters::waferR_, HGCalParameters::waferSize_, waferSize_, x, DDExtrudedPolygon::xVec(), geometryCSVtoXML::xx, y, geometryCSVtoXML::yy, z, HGCalParameters::hgtrform::zp, gpuVertexFinder::zv, DDPolyhedra::zVec(), DDExtrudedPolygon::zVec(), and geometryCSVtoXML::zz.
Referenced by loadGeometryHexagon().
◆ loadGeometryHexagon() [3/3]
void HGCalGeomParameters::loadGeometryHexagon |
( |
const std::map< int, HGCalGeomParameters::layerParameters > & |
layers, |
|
|
std::vector< HGCalParameters::hgtrform > & |
trforms, |
|
|
std::vector< bool > & |
trformUse, |
|
|
const std::unordered_map< int32_t, int32_t > & |
copies, |
|
|
const HGCalParameters::layer_map & |
copiesInLayers, |
|
|
const std::vector< int32_t > & |
wafer2copy, |
|
|
const std::vector< HGCalGeomParameters::cellParameters > & |
wafers, |
|
|
const std::map< int, int > & |
wafertype, |
|
|
const std::map< int, HGCalGeomParameters::cellParameters > & |
cellsf, |
|
|
const std::map< int, HGCalGeomParameters::cellParameters > & |
cellsc, |
|
|
HGCalParameters & |
php |
|
) |
| |
|
private |
Definition at line 493 of file HGCalGeomParameters.cc.
504 if (((cellsf.size() + cellsc.size()) == 0) || (wafers.empty()) || (
layers.empty())) {
505 throw cms::Exception(
"DDException") <<
"HGCalGeomParameters: mismatch between geometry and specpar: cells "
506 << cellsf.size() <<
":" << cellsc.size() <<
" wafers " << wafers.size()
507 <<
" layers " <<
layers.size();
510 for (
unsigned int i = 0;
i <
layers.size(); ++
i) {
522 for (
unsigned int i = 0;
i < php.
layer_.size(); ++
i) {
523 for (
unsigned int i1 = 0;
i1 < trforms.size(); ++
i1) {
524 if (!trformUse[
i1] && php.
layerGroup_[trforms[
i1].lay - 1] == (
int)(
i + 1)) {
526 trforms[
i1].lay = (
i + 1);
527 trformUse[
i1] =
true;
530 for (
unsigned int i2 =
i1 + 1;
i2 < trforms.size(); ++
i2) {
531 if (!trformUse[
i2] && trforms[
i2].zp == trforms[
i1].zp &&
535 trformUse[
i2] =
true;
546 for (
unsigned i = 0;
i < wafer2copy.size(); ++
i) {
550 auto ktr = wafertype.find(wafer2copy[
i]);
551 int typet = (ktr == wafertype.end()) ? 0 : (ktr->second);
553 double r = wafers[
i].xyz.perp();
555 for (
int k = 1;
k < 4; ++
k) {
566 std::vector<HGCalGeomParameters::cellParameters>::const_iterator itrf = wafers.end();
567 for (
unsigned int i = 0;
i < cellsf.size(); ++
i) {
568 auto itr = cellsf.find(
i);
569 if (itr == cellsf.end()) {
570 throw cms::Exception(
"DDException") <<
"HGCalGeomParameters: missing info for fine cell number " <<
i;
572 double xx = (itr->second).xyz.x();
573 double yy = (itr->second).xyz.y();
574 int waf = (itr->second).wafer;
582 for (
unsigned int i = 0;
i < cellsc.size(); ++
i) {
583 auto itr = cellsc.find(
i);
584 if (itr == cellsc.end()) {
585 throw cms::Exception(
"DDException") <<
"HGCalGeomParameters: missing info for coarse cell number " <<
i;
587 double xx = (itr->second).xyz.x();
588 double yy = (itr->second).xyz.y();
589 int waf = (itr->second).wafer;
602 php.
depth_.emplace_back(
i + 1);
642 edm::LogVerbatim(
"HGCalGeom") <<
"HGCalGeomParameters: wafer radius " << php.
waferR_ <<
" and dimensions of the "
656 <<
" coarse cells in a wafer";
675 for (std::unordered_map<int, int>::const_iterator itr = theModules.begin(); itr != theModules.end(); ++itr, ++k2) {
676 edm::LogVerbatim(
"HGCalGeom") <<
"[" << k2 <<
"] " << itr->first <<
":" << itr->second;
References HGCalParameters::addTrForm(), HGCalParameters::hgtrap::bl, HGCalParameters::boundR_, HGCalParameters::cellCoarseHalf_, HGCalParameters::cellCoarseX_, HGCalParameters::cellCoarseY_, HGCalParameters::cellFineHalf_, HGCalParameters::cellFineX_, HGCalParameters::cellFineY_, cellPosition(), HGCalParameters::hgtrap::cellSize, HGCalParameters::copiesInLayers_, TauDecayModes::dec, LEDCalibrationChannels::depth, HGCalParameters::depth_, HGCalParameters::depthIndex_, HGCalParameters::depthLayerF_, HGCalParameters::hgtrap::dz, PVValHelper::dz, Exception, HGCalParameters::fillModule(), HGCalParameters::fillTrForm(), first, HGCalParameters::firstLayer_, HGCalParameters::getModule(), HGCalParameters::hgtrap::h, mps_fire::i, testProducerWithPsetDescEmpty_cfi::i1, testProducerWithPsetDescEmpty_cfi::i2, createfilelist::int, dqmdumpme::k, HGCalParameters::k_ScaleFromDDD, phase1PixelTopology::layer, HGCalParameters::layer_, HGCalParameters::layerGroup_, HGCalParameters::layerIndex_, hgcalTopologyTester_cfi::layers, HGCalParameters::moduleAlphaR_, HGCalParameters::moduleAlphaS_, HGCalParameters::moduleBlR_, HGCalParameters::moduleBlS_, HGCalParameters::moduleDzR_, HGCalParameters::moduleDzS_, HGCalParameters::moduleHR_, HGCalParameters::moduleHS_, HGCalParameters::moduleLayR_, HGCalParameters::moduleLayS_, HGCalParameters::moduleTlR_, HGCalParameters::moduleTlS_, HGCalParameters::nSectors_, alignCSCRings::r, HGCalParameters::rMaxLayHex_, HGCalParameters::rMinLayHex_, HGCalParameters::scaleTrForm(), HGCalParameters::hgtrap::tl, HGCalParameters::trformIndex_, HGCalParameters::trformRotXX_, HGCalParameters::trformRotXY_, HGCalParameters::trformRotXZ_, HGCalParameters::trformRotYX_, HGCalParameters::trformRotYY_, HGCalParameters::trformRotYZ_, HGCalParameters::trformRotZX_, HGCalParameters::trformRotZY_, HGCalParameters::trformRotZZ_, HGCalParameters::trformTranX_, HGCalParameters::trformTranY_, HGCalParameters::trformTranZ_, HGCalParameters::waferCopy_, HGCalParameters::waferPosX_, HGCalParameters::waferPosY_, HGCalParameters::waferR_, HGCalParameters::waferTypeL_, HGCalParameters::waferTypeT_, geometryCSVtoXML::xx, geometryCSVtoXML::xy, geometryCSVtoXML::yy, and HGCalParameters::zLayerHex_.
◆ loadGeometryHexagon8() [1/3]
Definition at line 756 of file HGCalGeomParameters.cc.
762 std::map<int, HGCalGeomParameters::layerParameters>
layers;
768 while (fv.firstChild()) {
773 int nsiz = static_cast<int>(fv.level());
774 if (nsiz < levelTop) {
775 std::vector<int>
copy = fv.copyNos();
782 <<
" size " << nsiz <<
":" << levelTop <<
" lay " << lay <<
" z " <<
zside <<
":"
787 <<
"Funny layer # " << lay <<
" zp " <<
zside <<
" in " << nsiz <<
" components";
790 php.
layer_.emplace_back(lay);
791 const std::vector<double>& pars = fv.parameters();
794 auto itr =
layers.find(lay);
795 if (itr ==
layers.end()) {
800 (itr->second).rmin =
std::min(rin, (itr->second).rmin);
801 (itr->second).rmax =
std::max(rout, (itr->second).rmax);
803 if (trforms.find(std::make_pair(lay,
zside)) == trforms.end()) {
805 fv.rotation().GetComponents(
x,
y,
z);
806 const CLHEP::HepRep3x3
rotation(
x.X(),
y.X(),
z.X(),
x.Y(),
y.Y(),
z.Y(),
x.Z(),
y.Z(),
z.Z());
807 const CLHEP::HepRotation hr(
rotation);
822 trforms[std::make_pair(lay,
zside)] = mytrf;
References funct::abs(), filterCSVwithJSON::copy, cms::DDFilteredView::copyNos(), cms::DDSolidShapeMap, cms::ddtubs, Exception, ALCARECOTkAlBeamHalo_cff::filter, spr::find(), cms::DDFilteredView::firstChild(), if(), HGCalParameters::k_ScaleFromDD4Hep, HGCalParameters::layer_, hgcalTopologyTester_cfi::layers, cms::DDFilteredView::level(), HGCalParameters::levelT_, HGCalParameters::levelZSide_, loadGeometryHexagon8(), SiStripPI::max, min(), cms::dd::name(), cms::DDFilteredView::name(), gpuPixelDoublets::ntot, cms::DDFilteredView::parameters(), idealTransformation::rotation, cms::DDFilteredView::rotation(), cms::DDFilteredView::shape(), tolerance, cms::DDFilteredView::translation(), x, geometryCSVtoXML::xx, y, geometryCSVtoXML::yy, z, HGCalParameters::hgtrform::zp, and ecaldqm::zside().
◆ loadGeometryHexagon8() [2/3]
Definition at line 682 of file HGCalGeomParameters.cc.
685 std::map<int, HGCalGeomParameters::layerParameters>
layers;
697 if (nsiz < levelTop) {
698 int lay =
copy[nsiz - 1];
705 <<
" lay " << lay <<
" z " <<
zside;
709 <<
"Funny layer # " << lay <<
" zp " <<
zside <<
" in " << nsiz <<
" components";
712 php.
layer_.emplace_back(lay);
713 const DDTubs& tube = static_cast<DDTubs>(sol);
716 auto itr =
layers.find(lay);
717 if (itr ==
layers.end()) {
722 (itr->second).rmin =
std::min(rin, (itr->second).rmin);
723 (itr->second).rmax =
std::max(rout, (itr->second).rmax);
725 if (trforms.find(std::make_pair(lay,
zside)) == trforms.end()) {
728 const CLHEP::HepRep3x3
rotation(
x.X(),
y.X(),
z.X(),
x.Y(),
y.Y(),
z.Y(),
x.Z(),
y.Z(),
z.Z());
729 const CLHEP::HepRotation hr(
rotation);
744 trforms[std::make_pair(lay,
zside)] = mytrf;
References funct::abs(), filterCSVwithJSON::copy, DDFilteredView::copyNumbers(), ddtubs, Exception, spr::find(), if(), createfilelist::int, HGCalParameters::k_ScaleFromDDD, HGCalParameters::layer_, hgcalTopologyTester_cfi::layers, HGCalParameters::levelT_, HGCalParameters::levelZSide_, DDFilteredView::logicalPart(), SiStripPI::max, min(), DDBase< N, C >::name(), DDFilteredView::next(), gpuPixelDoublets::ntot, DDTubs::rIn(), idealTransformation::rotation, DDFilteredView::rotation(), DDTubs::rOut(), DDSolid::shape(), DDLogicalPart::solid(), tolerance, DDFilteredView::translation(), x, geometryCSVtoXML::xx, y, geometryCSVtoXML::yy, z, HGCalParameters::hgtrform::zp, and ecaldqm::zside().
Referenced by loadGeometryHexagon8(), and loadGeometryHexagonModule().
◆ loadGeometryHexagon8() [3/3]
Definition at line 1098 of file HGCalGeomParameters.cc.
1102 double rmin(0), rmax(0);
1103 for (
unsigned int i = 0;
i <
layers.size(); ++
i) {
1105 if (
layer.first == (
int)(
i + firstLayer)) {
1111 rmin =
layer.second.rmin;
1112 rmax =
layer.second.rmax;
1114 if (rmin >
layer.second.rmin)
1115 rmin =
layer.second.rmin;
1116 if (rmax <
layer.second.rmax)
1117 rmax =
layer.second.rmax;
1123 php.
rLimit_.emplace_back(rmin);
1124 php.
rLimit_.emplace_back(rmax);
1129 for (
unsigned int i = 0;
i < php.
layer_.size(); ++
i) {
1130 for (
auto& trform : trforms) {
1131 if (trform.first.first == (
int)(
i + firstLayer)) {
References TauDecayModes::dec, HGCalParameters::depth_, HGCalParameters::depthIndex_, HGCalParameters::depthLayerF_, HGCalParameters::fillTrForm(), mps_fire::i, dqmdumpme::k, phase1PixelTopology::layer, HGCalParameters::layer_, HGCalParameters::layerIndex_, hgcalTopologyTester_cfi::layers, HGCalParameters::rLimit_, HGCalParameters::rMaxLayHex_, HGCalParameters::rMinLayHex_, HGCalParameters::trformIndex_, HGCalParameters::trformRotXX_, HGCalParameters::trformRotXY_, HGCalParameters::trformRotXZ_, HGCalParameters::trformRotYX_, HGCalParameters::trformRotYY_, HGCalParameters::trformRotYZ_, HGCalParameters::trformRotZX_, HGCalParameters::trformRotZY_, HGCalParameters::trformRotZZ_, HGCalParameters::trformTranX_, HGCalParameters::trformTranY_, HGCalParameters::trformTranZ_, and HGCalParameters::zLayerHex_.
◆ loadGeometryHexagonModule() [1/2]
void HGCalGeomParameters::loadGeometryHexagonModule |
( |
const cms::DDCompactView * |
cpv, |
|
|
HGCalParameters & |
php, |
|
|
const std::string & |
sdTag1, |
|
|
const std::string & |
sdTag2, |
|
|
int |
firstLayer |
|
) |
| |
Definition at line 969 of file HGCalGeomParameters.cc.
975 edm::LogVerbatim(
"HGCalGeom") <<
"HGCalGeomParameters (DD4Hep)::loadGeometryHexagonModule called with tags " << sdTag1
976 <<
":" << sdTag2 <<
" firstLayer " << firstLayer;
977 int ntot1(0), ntot2(0);
979 std::map<int, HGCalGeomParameters::layerParameters>
layers;
981 std::map<std::pair<int, int>,
double> zvals;
986 while (fv1.firstChild()) {
990 int nsiz = static_cast<int>(fv1.level());
991 if (nsiz > levelTop) {
992 std::vector<int>
copy = fv1.copyNos();
993 int lay =
copy[nsiz - levelTop - 1];
999 <<
"Funny layer # " << lay <<
" zp " <<
zside <<
" in " << nsiz <<
" components";
1001 if (zvals.find(std::make_pair(lay,
zside)) == zvals.end()) {
1004 std::ostringstream st1;
1005 st1 <<
"Name0 " << fv1.name() <<
" LTop " << levelTop <<
":" << lay <<
" ZSide " <<
zside <<
" # of levels "
1007 for (
const auto&
c :
copy)
1009 st1 <<
" Z " << zvals[std::make_pair(lay,
zside)];
1019 while (fv2.firstChild()) {
1021 int nsiz = static_cast<int>(fv2.level());
1025 if (nsiz > levelTop) {
1026 std::vector<int>
copy = fv2.copyNos();
1027 int lay =
copy[nsiz - levelTop - 1];
1032 std::ostringstream st2;
1034 << levelTop <<
":" << lay <<
" ZSide " <<
zside <<
":" << php.
levelZSide_ <<
" # of levels " << nsiz;
1041 <<
"Funny layer # " << lay <<
" zp " <<
zside <<
" in " << nsiz <<
" components";
1043 if (zvals.find(std::make_pair(lay,
zside)) != zvals.end()) {
1045 php.
layer_.emplace_back(lay);
1046 auto itr =
layers.find(lay);
1047 if (itr ==
layers.end()) {
1048 const std::vector<double>& pars = fv2.parameters();
1053 double zp = zvals[std::make_pair(lay, 1)];
1057 std::ostringstream st3;
1058 st3 <<
"Name2 " << fv2.name() <<
" LTop " << levelTop <<
":" << lay <<
" ZSide " <<
zside <<
" # of levels "
1060 for (
const auto&
c :
copy)
1062 st3 <<
" R " << rin <<
":" << rout;
1067 if (trforms.find(std::make_pair(lay,
zside)) == trforms.end()) {
1069 fv2.rotation().GetComponents(
x,
y,
z);
1070 const CLHEP::HepRep3x3
rotation(
x.X(),
y.X(),
z.X(),
x.Y(),
y.Y(),
z.Y(),
x.Z(),
y.Z(),
z.Z());
1071 const CLHEP::HepRotation hr(
rotation);
1078 const CLHEP::Hep3Vector h3v(
xx,
yy, zvals[std::make_pair(lay,
zside)]);
1086 trforms[std::make_pair(lay,
zside)] = mytrf;
1093 edm::LogVerbatim(
"HGCalGeom") <<
"Total # of views " << ntot1 <<
":" << ntot2;
References funct::abs(), c, filterCSVwithJSON::copy, cms::DDFilteredView::copyNos(), cms::DDSolidShapeMap, Exception, spr::find(), cms::DDFilteredView::firstChild(), HGCalParameters::firstMixedLayer_, cms::cuda::for(), HGCalParameters::hgtrform::h3v, HGCalParameters::hgtrform::hr, if(), HGCalParameters::k_ScaleFromDD4Hep, HGCalParameters::hgtrform::lay, HGCalParameters::layer_, hgcalTopologyTester_cfi::layers, cms::DDFilteredView::level(), HGCalParameters::levelT_, HGCalParameters::levelZSide_, loadGeometryHexagon8(), cms::dd::name(), cms::DDFilteredView::name(), cms::DDFilteredView::parameters(), HGCalParameters::radiusMixBoundary_, idealTransformation::rotation, cms::DDFilteredView::rotation(), HGCalParameters::hgtrform::sec, cms::DDFilteredView::shape(), HGCalParameters::hgtrform::subsec, tolerance, cms::DDFilteredView::translation(), x, geometryCSVtoXML::xx, y, geometryCSVtoXML::yy, z, HGCalParameters::hgtrform::zp, and ecaldqm::zside().
◆ loadGeometryHexagonModule() [2/2]
void HGCalGeomParameters::loadGeometryHexagonModule |
( |
const DDCompactView * |
cpv, |
|
|
HGCalParameters & |
php, |
|
|
const std::string & |
sdTag1, |
|
|
const std::string & |
sdTag2, |
|
|
int |
firstLayer |
|
) |
| |
Definition at line 833 of file HGCalGeomParameters.cc.
839 edm::LogVerbatim(
"HGCalGeom") <<
"HGCalGeomParameters (DDD)::loadGeometryHexagonModule called with tags " << sdTag1
840 <<
":" << sdTag2 <<
" firstLayer " << firstLayer <<
":" << php.
firstMixedLayer_;
841 int ntot1(0), ntot2(0);
843 std::map<int, HGCalGeomParameters::layerParameters>
layers;
844 std::map<std::pair<int, int>,
double> zvals;
849 DDValue val1(attribute, sdTag2, 0.0);
852 bool dodet = fv1.firstChild();
857 std::vector<int>
copy = fv1.copyNumbers();
858 int nsiz = static_cast<int>(
copy.size());
859 if (levelTop < nsiz) {
860 int lay =
copy[levelTop];
866 <<
"Funny layer # " << lay <<
" zp " <<
zside <<
" in " << nsiz <<
" components";
868 if (zvals.find(std::make_pair(lay,
zside)) == zvals.end()) {
871 std::ostringstream st1;
872 st1 <<
"Name0 " << fv1.name() <<
" LTop " << levelTop <<
":" << lay <<
" ZSide " <<
zside <<
" # of levels "
874 for (
const auto&
c :
copy)
876 st1 <<
" Z " << zvals[std::make_pair(lay,
zside)];
885 DDValue val2(attribute, sdTag1, 0.0);
888 dodet = fv2.firstChild();
893 std::vector<int>
copy = fv2.copyNumbers();
894 int nsiz = static_cast<int>(
copy.size());
895 if (levelTop < nsiz) {
896 int lay =
copy[levelTop];
900 const DDSolid& sol = fv2.logicalPart().solid();
902 std::ostringstream st2;
903 st2 <<
"Name1 " << sol.
name() <<
" shape " << sol.
shape() <<
" LTop " << levelTop <<
":" << lay <<
" ZSide "
905 for (
const auto&
c :
copy)
911 <<
"Funny layer # " << lay <<
" zp " <<
zside <<
" in " << nsiz <<
" components";
913 if (zvals.find(std::make_pair(lay,
zside)) != zvals.end()) {
915 php.
layer_.emplace_back(lay);
916 auto itr =
layers.find(lay);
917 if (itr ==
layers.end()) {
918 const DDTubs& tube = static_cast<DDTubs>(sol);
923 double zp = zvals[std::make_pair(lay, 1)];
927 std::ostringstream st3;
928 st3 <<
"Name1 " << fv2.name() <<
" LTop " << levelTop <<
":" << lay <<
" ZSide " <<
zside <<
" # of levels "
930 for (
const auto&
c :
copy)
932 st3 <<
" R " << rin <<
":" << rout;
937 if (trforms.find(std::make_pair(lay,
zside)) == trforms.end()) {
939 fv2.rotation().GetComponents(
x,
y,
z);
940 const CLHEP::HepRep3x3
rotation(
x.X(),
y.X(),
z.X(),
x.Y(),
y.Y(),
z.Y(),
x.Z(),
y.Z(),
z.Z());
941 const CLHEP::HepRotation hr(
rotation);
948 const CLHEP::Hep3Vector h3v(
xx,
yy, zvals[std::make_pair(lay,
zside)]);
956 trforms[std::make_pair(lay,
zside)] = mytrf;
964 edm::LogVerbatim(
"HGCalGeom") <<
"Total # of views " << ntot1 <<
":" << ntot2;
References funct::abs(), c, filterCSVwithJSON::copy, DDFilteredView::copyNumbers(), ddtubs, Exception, spr::find(), DDFilteredView::firstChild(), HGCalParameters::firstMixedLayer_, HGCalParameters::hgtrform::h3v, HGCalParameters::hgtrform::hr, if(), HGCalParameters::k_ScaleFromDDD, HGCalParameters::hgtrform::lay, HGCalParameters::layer_, hgcalTopologyTester_cfi::layers, HGCalParameters::levelT_, HGCalParameters::levelZSide_, loadGeometryHexagon8(), DDFilteredView::logicalPart(), DDFilteredView::name(), DDBase< N, C >::name(), DDFilteredView::next(), HGCalParameters::radiusMixBoundary_, DDTubs::rIn(), idealTransformation::rotation, DDFilteredView::rotation(), DDTubs::rOut(), HGCalParameters::hgtrform::sec, DDSolid::shape(), DDLogicalPart::solid(), AlCaHLTBitMon_QueryRunRegistry::string, HGCalParameters::hgtrform::subsec, tolerance, DDFilteredView::translation(), x, geometryCSVtoXML::xx, y, geometryCSVtoXML::yy, z, HGCalParameters::hgtrform::zp, and ecaldqm::zside().
◆ loadSpecParsHexagon() [1/3]
void HGCalGeomParameters::loadSpecParsHexagon |
( |
const cms::DDFilteredView & |
fv, |
|
|
HGCalParameters & |
php, |
|
|
const std::string & |
sdTag1, |
|
|
const std::string & |
sdTag2, |
|
|
const std::string & |
sdTag3, |
|
|
const std::string & |
sdTag4 |
|
) |
| |
Definition at line 1198 of file HGCalGeomParameters.cc.
1204 php.
boundR_ = fv.
get<std::vector<double> >(sdTag4,
"RadiusBound");
1206 php.
rLimit_ = fv.
get<std::vector<double> >(sdTag4,
"RadiusLimits");
1214 php.
slopeMin_ = fv.
get<std::vector<double> >(sdTag4,
"Slope");
1219 const auto&
dummy = fv.
get<std::vector<double> >(sdTag2,
"WaferSize");
1223 php.
cellSize_ = fv.
get<std::vector<double> >(sdTag3,
"CellSize");
References HGCalParameters::boundR_, HGCalParameters::cellSize_, dbl_to_int(), cms::DDFilteredView::get(), HGCalParameters::k_ScaleFromDD4Hep, HGCalParameters::k_ScaleFromDD4HepToG4, HGCalParameters::layerGroup_, HGCalParameters::layerGroupM_, HGCalParameters::layerGroupO_, HGCalParameters::levelT_, loadSpecParsHexagon(), rescale(), HGCalParameters::rLimit_, HGCalParameters::slopeMin_, and waferSize_.
◆ loadSpecParsHexagon() [2/3]
Definition at line 1159 of file HGCalGeomParameters.cc.
1181 if (fv1.firstChild()) {
1190 if (fv2.firstChild()) {
References HGCalParameters::boundR_, HGCalParameters::cellSize_, dbl_to_int(), DDFilteredView::firstChild(), getDDDArray(), HGCalParameters::k_ScaleFromDDD, HGCalParameters::layerGroup_, HGCalParameters::layerGroupM_, HGCalParameters::layerGroupO_, HGCalParameters::levelT_, DDFilteredView::mergedSpecifics(), rescale(), HGCalParameters::rLimit_, HGCalParameters::slopeMin_, AlCaHLTBitMon_QueryRunRegistry::string, pfDeepBoostedJetPreprocessParams_cfi::sv, and waferSize_.
Referenced by loadSpecParsHexagon().
◆ loadSpecParsHexagon() [3/3]
void HGCalGeomParameters::loadSpecParsHexagon |
( |
const HGCalParameters & |
php | ) |
|
|
private |
◆ loadSpecParsHexagon8() [1/4]
Definition at line 1315 of file HGCalGeomParameters.cc.
1332 const auto&
dummy = fv.
get<std::vector<double> >(sdTag1,
"RadiusCuts");
1333 if (
dummy.size() > 3) {
1342 php.
slopeMin_ = fv.
get<std::vector<double> >(sdTag1,
"SlopeBottom");
1343 php.
zFrontMin_ = fv.
get<std::vector<double> >(sdTag1,
"ZFrontBottom");
1345 php.
rMinFront_ = fv.
get<std::vector<double> >(sdTag1,
"RMinFront");
1348 php.
slopeTop_ = fv.
get<std::vector<double> >(sdTag1,
"SlopeTop");
1349 php.
zFrontTop_ = fv.
get<std::vector<double> >(sdTag1,
"ZFrontTop");
1351 php.
rMaxFront_ = fv.
get<std::vector<double> >(sdTag1,
"RMaxFront");
1354 for (
unsigned int k = 0;
k < kmax; ++
k)
1357 const auto& dummy2 = fv.
get<std::vector<double> >(sdTag1,
"LayerOffset");
1358 if (!dummy2.empty()) {
1364 for (
auto const& it : vmap) {
1365 if (dd4hep::dd::compareEqual(dd4hep::dd::noNamespace(it.first),
"RadiusMixBoundary")) {
1366 for (
const auto&
i : it.second)
1368 }
else if (dd4hep::dd::compareEqual(dd4hep::dd::noNamespace(it.first),
"ZRanges")) {
1369 for (
const auto&
i : it.second)
1371 }
else if (dd4hep::dd::compareEqual(dd4hep::dd::noNamespace(it.first),
"LayerCenter")) {
1372 for (
const auto&
i : it.second)
1381 std::vector<int> layerType,
waferIndex, waferProperties;
1383 for (
auto const& it : vmap) {
1384 if (dd4hep::dd::compareEqual(dd4hep::dd::noNamespace(it.first),
"WaferIndexEE")) {
1385 for (
const auto&
i : it.second)
1387 }
else if (dd4hep::dd::compareEqual(dd4hep::dd::noNamespace(it.first),
"WaferPropertiesEE")) {
1388 for (
const auto&
i : it.second)
1389 waferProperties.emplace_back(std::round(
i));
1393 for (
auto const& it : vmap) {
1394 if (dd4hep::dd::compareEqual(dd4hep::dd::noNamespace(it.first),
"WaferIndexHE")) {
1395 for (
const auto&
i : it.second)
1397 }
else if (dd4hep::dd::compareEqual(dd4hep::dd::noNamespace(it.first),
"WaferPropertiesHE")) {
1398 for (
const auto&
i : it.second)
1399 waferProperties.emplace_back(std::round(
i));
1405 for (
auto const& it : vmap) {
1406 if (dd4hep::dd::compareEqual(dd4hep::dd::noNamespace(it.first),
"LayerTypesEE")) {
1407 for (
const auto&
i : it.second)
1408 layerType.emplace_back(std::round(
i));
1412 for (
auto const& it : vmap) {
1413 if (dd4hep::dd::compareEqual(dd4hep::dd::noNamespace(it.first),
"LayerTypesHE")) {
1414 for (
const auto&
i : it.second)
1415 layerType.emplace_back(std::round(
i));
References HGCalParameters::cellThickness_, HGCalParameters::choiceType_, HGCalParameters::fracAreaMin_, cms::DDFilteredView::get(), HGCalGeometryMode::Hexagon8Module, mps_fire::i, dqmdumpme::k, HGCalParameters::k_ScaleFromDD4Hep, HGCalParameters::layerCenter_, HGCalParameters::layerOffset_, loadSpecParsHexagon8(), HGCalParameters::mode_, HGCalParameters::nCornerCut_, HGCalParameters::radius100to200_, HGCalParameters::radius200to300_, HGCalParameters::radiusMixBoundary_, rescale(), HGCalParameters::rMaxFront_, HGCalParameters::rMinFront_, siliconFileEE, siliconFileHE, HGCalParameters::slopeMin_, HGCalParameters::slopeTop_, HGCalWaferIndex::waferIndex(), HGCalParameters::waferMaskMode_, HGCalParameters::waferThick_, HGCalParameters::waferThickness_, HGCalParameters::zFrontMin_, HGCalParameters::zFrontTop_, HGCalParameters::zMinForRad_, and HGCalParameters::zRanges_.
◆ loadSpecParsHexagon8() [2/4]
Definition at line 1248 of file HGCalGeomParameters.cc.
1295 std::vector<int> layerType,
waferIndex, waferProperties;
References HGCalParameters::cellThickness_, HGCalParameters::choiceType_, dbl_to_int(), HGCalParameters::fracAreaMin_, getDDDArray(), HGCalGeometryMode::Hexagon8Module, createfilelist::int, dqmdumpme::k, HGCalParameters::k_ScaleFromDDD, HGCalParameters::layerCenter_, HGCalParameters::layerOffset_, DDFilteredView::mergedSpecifics(), HGCalParameters::mode_, HGCalParameters::nCornerCut_, HGCalParameters::radius100to200_, HGCalParameters::radius200to300_, HGCalParameters::radiusMixBoundary_, rescale(), HGCalParameters::rMaxFront_, HGCalParameters::rMinFront_, siliconFileEE, siliconFileHE, HGCalParameters::slopeMin_, HGCalParameters::slopeTop_, pfDeepBoostedJetPreprocessParams_cfi::sv, DDFilteredView::vector(), HGCalWaferIndex::waferIndex(), HGCalParameters::waferMaskMode_, HGCalParameters::waferThick_, HGCalParameters::waferThickness_, HGCalParameters::zFrontMin_, HGCalParameters::zFrontTop_, HGCalParameters::zMinForRad_, and HGCalParameters::zRanges_.
Referenced by loadSpecParsHexagon8().
◆ loadSpecParsHexagon8() [3/4]
Definition at line 1425 of file HGCalGeomParameters.cc.
1432 <<
"parameters for 120 to 200 micron "
1437 <<
"parameters for 200 to 300 micron "
References HGCalParameters::cellThickness_, HGCalParameters::choiceType_, HGCalParameters::fracAreaMin_, dqmdumpme::k, HGCalParameters::layerCenter_, HGCalParameters::layerOffset_, HGCalParameters::nCornerCut_, HGCalParameters::radius100to200_, HGCalParameters::radius200to300_, HGCalParameters::radiusMixBoundary_, HGCalParameters::rMaxFront_, HGCalParameters::rMinFront_, HGCalParameters::slopeMin_, HGCalParameters::slopeTop_, HGCalParameters::waferThickness_, HGCalParameters::zFrontMin_, HGCalParameters::zFrontTop_, HGCalParameters::zMinForRad_, and HGCalParameters::zRanges_.
◆ loadSpecParsHexagon8() [4/4]
void HGCalGeomParameters::loadSpecParsHexagon8 |
( |
HGCalParameters & |
php, |
|
|
const std::vector< int > & |
layerType, |
|
|
const std::vector< int > & |
waferIndex, |
|
|
const std::vector< int > & |
waferProperties |
|
) |
| |
|
private |
Definition at line 1461 of file HGCalGeomParameters.cc.
1471 for (
unsigned int k = 0;
k < layerType.size(); ++
k) {
1480 php.
layerRotV_.emplace_back(std::make_pair(cth, sth));
References HGCalTypes::CornerCenterYm, HGCalTypes::CornerCenterYp, funct::cos(), HGCalWaferMask::getRotation(), dqmdumpme::k, HGCalParameters::layerRotation_, HGCalParameters::layerRotV_, HGCalParameters::layerType_, hgcalPerformanceValidation::orient, funct::sin(), HGCalTypes::WaferCenter, HGCalTypes::WaferCenterB, HGCalTypes::WaferCenterR, HGCalWaferIndex::waferIndex(), HGCalParameters::waferInfoMap_, HGCalWaferIndex::waferLayer(), HGCalProperty::waferOrient(), HGCalProperty::waferPartial(), HGCalProperty::waferThick(), HGCalWaferIndex::waferU(), HGCalWaferIndex::waferV(), and HGCalParameters::waferZSide_.
◆ loadSpecParsTrapezoid() [1/4]
Definition at line 1571 of file HGCalGeomParameters.cc.
1575 for (
auto const& it : vmap) {
1576 if (dd4hep::dd::compareEqual(dd4hep::dd::noNamespace(it.first),
"RadiusMixBoundary")) {
1577 for (
const auto&
i : it.second)
1579 }
else if (dd4hep::dd::compareEqual(dd4hep::dd::noNamespace(it.first),
"ZRanges")) {
1580 for (
const auto&
i : it.second)
1582 }
else if (dd4hep::dd::compareEqual(dd4hep::dd::noNamespace(it.first),
"LayerCenter")) {
1583 for (
const auto&
i : it.second)
1590 php.
rMinLayerBH_ = fv.
get<std::vector<double> >(sdTag1,
"RMinLayerBH");
1597 php.
slopeMin_ = fv.
get<std::vector<double> >(sdTag1,
"SlopeBottom");
1598 php.
zFrontMin_ = fv.
get<std::vector<double> >(sdTag1,
"ZFrontBottom");
1600 php.
rMinFront_ = fv.
get<std::vector<double> >(sdTag1,
"RMinFront");
1603 php.
slopeTop_ = fv.
get<std::vector<double> >(sdTag1,
"SlopeTop");
1604 php.
zFrontTop_ = fv.
get<std::vector<double> >(sdTag1,
"ZFrontTop");
1606 php.
rMaxFront_ = fv.
get<std::vector<double> >(sdTag1,
"RMaxFront");
1609 for (
unsigned int k = 0;
k < kmax; ++
k)
1612 const auto& dummy2 = fv.
get<std::vector<double> >(sdTag1,
"LayerOffset");
1620 std::vector<int> tileHEX1, tileHEX2, tileHEX3, tileHEX4;
1621 std::vector<double> tileRMin, tileRMax;
1622 std::vector<int> tileRingMin, tileRingMax;
1623 for (
auto const& it : vmap) {
1624 if (dd4hep::dd::compareEqual(dd4hep::dd::noNamespace(it.first),
"TileIndex")) {
1625 for (
const auto&
i : it.second)
1626 tileIndx.emplace_back(std::round(
i));
1627 }
else if (dd4hep::dd::compareEqual(dd4hep::dd::noNamespace(it.first),
"TileProperty")) {
1628 for (
const auto&
i : it.second)
1630 }
else if (dd4hep::dd::compareEqual(dd4hep::dd::noNamespace(it.first),
"TileHEX1")) {
1631 for (
const auto&
i : it.second)
1632 tileHEX1.emplace_back(std::round(
i));
1633 }
else if (dd4hep::dd::compareEqual(dd4hep::dd::noNamespace(it.first),
"TileHEX2")) {
1634 for (
const auto&
i : it.second)
1635 tileHEX2.emplace_back(std::round(
i));
1636 }
else if (dd4hep::dd::compareEqual(dd4hep::dd::noNamespace(it.first),
"TileHEX3")) {
1637 for (
const auto&
i : it.second)
1638 tileHEX3.emplace_back(std::round(
i));
1639 }
else if (dd4hep::dd::compareEqual(dd4hep::dd::noNamespace(it.first),
"TileHEX4")) {
1640 for (
const auto&
i : it.second)
1641 tileHEX4.emplace_back(std::round(
i));
1642 }
else if (dd4hep::dd::compareEqual(dd4hep::dd::noNamespace(it.first),
"TileRMin")) {
1643 for (
const auto&
i : it.second)
1645 }
else if (dd4hep::dd::compareEqual(dd4hep::dd::noNamespace(it.first),
"TileRMax")) {
1646 for (
const auto&
i : it.second)
1648 }
else if (dd4hep::dd::compareEqual(dd4hep::dd::noNamespace(it.first),
"TileRingMin")) {
1649 for (
const auto&
i : it.second)
1650 tileRingMin.emplace_back(std::round(
i));
1651 }
else if (dd4hep::dd::compareEqual(dd4hep::dd::noNamespace(it.first),
"TileRingMax")) {
1652 for (
const auto&
i : it.second)
1653 tileRingMax.emplace_back(std::round(
i));
References HGCalParameters::cellSize_, dbl_to_int(), cms::DDFilteredView::get(), mps_fire::i, dqmdumpme::k, HGCalParameters::k_ScaleFromDD4Hep, HGCalParameters::layerCenter_, HGCalParameters::layerFrontBH_, HGCalParameters::layerOffset_, loadSpecParsTrapezoid(), M_PI, HGCalParameters::nCellsCoarse_, HGCalParameters::nCellsFine_, HGCalParameters::nPhiBinBH_, HGCalParameters::radiusMixBoundary_, rescale(), HGCalParameters::rMaxFront_, HGCalParameters::rMinFront_, HGCalParameters::rMinLayerBH_, scintillatorFile, HGCalParameters::slopeMin_, HGCalParameters::slopeTop_, HGCalProperty::tileProperty(), HGCalParameters::waferMaskMode_, HGCalParameters::zFrontMin_, HGCalParameters::zFrontTop_, and HGCalParameters::zRanges_.
◆ loadSpecParsTrapezoid() [2/4]
Definition at line 1502 of file HGCalGeomParameters.cc.
1541 std::vector<int> tileHEX1, tileHEX2, tileHEX3, tileHEX4;
1542 std::vector<double> tileRMin, tileRMax;
1543 std::vector<int> tileRingMin, tileRingMax;
1550 tileRMin = fv.
vector(
"TileRMin");
1551 tileRMax = fv.
vector(
"TileRMax");
References HGCalParameters::cellSize_, dbl_to_int(), getDDDArray(), HGCalParameters::k_ScaleFromDDD, HGCalParameters::layerCenter_, HGCalParameters::layerFrontBH_, HGCalParameters::layerOffset_, M_PI, DDFilteredView::mergedSpecifics(), HGCalParameters::nCellsCoarse_, HGCalParameters::nCellsFine_, HGCalParameters::nPhiBinBH_, HGCalParameters::radiusMixBoundary_, rescale(), HGCalParameters::rMaxFront_, HGCalParameters::rMinFront_, HGCalParameters::rMinLayerBH_, scintillatorFile, HGCalParameters::slopeMin_, HGCalParameters::slopeTop_, pfDeepBoostedJetPreprocessParams_cfi::sv, HGCalProperty::tileProperty(), DDFilteredView::vector(), HGCalParameters::waferMaskMode_, HGCalParameters::zFrontMin_, HGCalParameters::zFrontTop_, and HGCalParameters::zRanges_.
Referenced by loadSpecParsTrapezoid().
◆ loadSpecParsTrapezoid() [3/4]
Definition at line 1671 of file HGCalGeomParameters.cc.
References HGCalParameters::cellSize_, HGCalParameters::firstLayer_, dqmdumpme::k, HGCalParameters::layerCenter_, HGCalParameters::layerFrontBH_, HGCalParameters::layerOffset_, HGCalParameters::nCellsCoarse_, HGCalParameters::nCellsFine_, HGCalParameters::radiusMixBoundary_, HGCalParameters::rMaxFront_, HGCalParameters::rMinFront_, HGCalParameters::rMinLayerBH_, HGCalParameters::scintCells(), HGCalParameters::scintCellSize(), HGCalParameters::slopeMin_, HGCalParameters::slopeTop_, HGCalParameters::zFrontMin_, HGCalParameters::zFrontTop_, and HGCalParameters::zRanges_.
◆ loadSpecParsTrapezoid() [4/4]
void HGCalGeomParameters::loadSpecParsTrapezoid |
( |
HGCalParameters & |
php, |
|
|
const std::vector< int > & |
tileIndex, |
|
|
const std::vector< int > & |
tileProperty, |
|
|
const std::vector< int > & |
tileHEX1, |
|
|
const std::vector< int > & |
tileHEX2, |
|
|
const std::vector< int > & |
tileHEX3, |
|
|
const std::vector< int > & |
tileHEX4, |
|
|
const std::vector< double > & |
tileRMin, |
|
|
const std::vector< double > & |
tileRMax, |
|
|
const std::vector< int > & |
tileRingMin, |
|
|
const std::vector< int > & |
tileRingMax |
|
) |
| |
|
private |
◆ loadWaferHexagon()
Definition at line 1744 of file HGCalGeomParameters.cc.
1748 edm::LogVerbatim(
"HGCalGeom") <<
"Input waferWidth " << waferW <<
":" << rmin <<
" R Limits: " << rin <<
":" << rout
1749 <<
" Fine " << rMaxFine;
1757 double dx = 0.5 * waferW;
1758 double dy = 3.0 *
dx *
tan(30._deg);
1759 double rr = 2.0 *
dx *
tan(30._deg);
1760 int ncol = (
int)(2.0 * rout / waferW) + 1;
1761 int nrow = (
int)(rout / (waferW *
tan(30._deg))) + 1;
1762 int ns2 = (2 * ncol + 1) * (2 * nrow + 1) * php.
layer_.size();
1763 int incm(0), inrm(0), kount(0),
ntot(0);
1769 for (
int nr = -nrow;
nr <= nrow; ++
nr) {
1770 int inr = (
nr >= 0) ?
nr : -
nr;
1771 for (
int nc = -ncol; nc <= ncol; ++nc) {
1772 int inc = (nc >= 0) ? nc : -nc;
1773 if (inr % 2 == inc % 2) {
1774 double xpos = nc *
dx;
1775 double ypos =
nr *
dy;
1777 double rpos =
std::sqrt(xpos * xpos + ypos * ypos);
1778 int typet = (rpos < rMaxFine) ? 1 : 2;
1780 for (
int k = 1;
k < 4; ++
k) {
1781 if ((rpos + rmin) <= php.
boundR_[
k]) {
1796 <<
" Location " <<
corner.first <<
" Position " << xpos <<
":" << ypos
1797 <<
" Layers " << php.
layer_.size();
1804 for (
unsigned int il = 0; il < php.
layer_.size(); ++il) {
1805 std::pair<int, int>
corner =
1808 auto cpy = copiesInLayers[php.
layer_[il]].find(
copy);
1809 if (cpy == copiesInLayers[php.
layer_[il]].end())
1827 edm::LogVerbatim(
"HGCalGeom") <<
"HGCalWaferHexagon: # of columns " << incm <<
" # of rows " << inrm <<
" and "
1828 << kount <<
":" <<
ntot <<
" wafers; R " << rin <<
":" << rout;
1830 for (
unsigned int k = 0;
k < copiesInLayers.size(); ++
k) {
1831 const auto& theModules = copiesInLayers[
k];
1834 for (std::unordered_map<int, int>::const_iterator itr = theModules.begin(); itr != theModules.end(); ++itr, ++k2) {
1835 edm::LogVerbatim(
"HGCalGeom") <<
"[" << k2 <<
"] " << itr->first <<
":" << itr->second;
References HGCalParameters::boundR_, HGCalParameters::copiesInLayers_, filterCSVwithJSON::copy, TCMET_cfi::corner, PVValHelper::dx, PVValHelper::dy, createfilelist::int, dqmdumpme::k, HGCalParameters::k_CornerSize, HGCalParameters::k_ScaleFromDDD, HGCalParameters::layer_, EgHLTOffHistBins_cfi::nr, HGCalParameters::nSectors_, gpuPixelDoublets::ntot, HGCalTypes::packTypeUV(), HGCalParameters::rLimit_, HGCalParameters::rMaxLayHex_, HGCalParameters::rMinLayHex_, findQualityFiles::rr, mathSSE::sqrt(), funct::tan(), HGCalParameters::waferCopy_, HGCalGeomTools::waferCorner(), HGCalWaferIndex::waferIndex(), HGCalParameters::waferPosX_, HGCalParameters::waferPosY_, HGCalParameters::waferR_, waferSize_, HGCalParameters::waferTypeL_, HGCalParameters::waferTypes_, HGCalParameters::waferTypeT_, HGCalParameters::waferUVMax_, and LaserClient_cfi::wl.
◆ loadWaferHexagon8()
Definition at line 1841 of file HGCalGeomParameters.cc.
1854 edm::LogVerbatim(
"HGCalGeom") <<
"Input waferWidth " << waferW <<
":" << waferS <<
" R Max: " << rout;
1862 double r = 0.5 * (waferW + waferS);
1864 double dy = 0.75 *
R;
1865 double r1 = 0.5 * waferW;
1867 int N = (
r == 0) ? 3 : ((
int)(0.5 * rout /
r) + 3);
1868 int ns1 = (2 *
N + 1) * (2 *
N + 1);
1871 edm::LogVerbatim(
"HGCalGeom") <<
"wafer " << waferW <<
":" << waferS <<
" r " <<
r <<
" dy " <<
dy <<
" N " <<
N
1872 <<
" sizes " << ns1 <<
":" << ns2;
1873 std::vector<int> indtypes(ns1 + 1);
1879 int ipos(0), lpos(0), uvmax(0), nwarn(0);
1880 std::vector<int> uvmx(php.
zLayerHex_.size(), 0);
1881 for (
int v = -
N;
v <=
N; ++
v) {
1882 for (
int u = -
N; u <=
N; ++u) {
1884 int nc = -2 * u +
v;
1885 double xpos = nc *
r;
1886 double ypos =
nr *
dy;
1891 wafersInLayers[indx] = ipos;
1901 double xpos0 = xpos + xyoff.first;
1902 double ypos0 = ypos + xyoff.second;
1913 typesInLayers[kndx] = lpos;
1916 indtypes.emplace_back(kndx);
1918 std::pair<int, int>
corner =
1923 <<
" u " << u <<
" v " <<
v <<
" with " <<
corner.first <<
" corners";
1931 edm::LogVerbatim(
"HGCalGeom") <<
"Layer " << lay <<
" u|v " << u <<
":" <<
v <<
" with corner "
1949 <<
"Layer:u:v " <<
i <<
":" << lay <<
":" << u <<
":" <<
v <<
" Part " << corner0.first <<
":"
1950 <<
part <<
" Orient " << corner0.second <<
":" <<
orient <<
" Position " << xpos0 <<
":" << ypos0
1952 <<
" Compatibiliety Flag " <<
ok;
1958 waferTypes[
wl] = corner0;
1961 <<
"Layer " << lay <<
" u|v " << u <<
":" <<
v <<
" Index " << std::hex <<
wl <<
std::dec <<
" pos "
1962 << xpos0 <<
":" << ypos0 <<
" R " <<
r1 <<
":" << R1 <<
" Range " << php.
rMinLayHex_[
i] <<
":"
1964 <<
corner.second <<
" croner0 " << corner0.first <<
":" << corner0.second;
1969 edm::LogVerbatim(
"HGCalGeom") <<
"Layer " << lay <<
" u|v " << u <<
":" <<
v <<
" with corner "
1978 edm::LogWarning(
"HGCalGeom") <<
"HGCalGeomParameters::loadWafer8: there are " << nwarn
1979 <<
" wafers with non-matching partial- orientation types";
2017 int id = indtypes[
k];
2038 << xyoff.first <<
":" << xyoff.second;
References funct::abs(), HGCalParameters::hgtrap::alpha, HGCalParameters::hgtrap::bl, HGCalParameters::hgtrap::cellSize, HGCalParameters::cellThickness_, HGCalParameters::choiceType_, filterCSVwithJSON::copy, TCMET_cfi::corner, TauDecayModes::dec, HGCalParameters::defineFull_, PVValHelper::dy, HGCalParameters::hgtrap::dz, PVValHelper::dz, HGCalParameters::fillModule(), HGCalParameters::fracAreaMin_, geomTools_, HGCalParameters::getModule(), HGCalWaferMask::getTypeMode(), HGCalWaferMask::goodTypeMode(), HGCalParameters::hgtrap::h, HGCalGeometryMode::Hexagon8File, HGCalGeometryMode::Hexagon8Module, mps_fire::i, triggerObjects_cff::id, createfilelist::int, dqmdumpme::k, HGCalParameters::k_CornerSize, HGCalWaferMask::k_OffsetRotation, HGCalParameters::k_ScaleFromDDD, HGCalParameters::k_ScaleToDDD, HGCalParameters::hgtrap::lay, HGCalParameters::layer_, HGCalParameters::layerCenter_, HGCalParameters::layerIndex_, HGCalParameters::layerOffset_, SiStripPI::max, HGCalParameters::mode_, N, HGCalParameters::nCornerCut_, EgHLTOffHistBins_cfi::nr, HGCalParameters::nSectors_, convertSQLiteXML::ok, hgcalPerformanceValidation::orient, dttmaxenums::R, alignCSCRings::r, diffTwoXMLs::r1, HGCalParameters::radius100to200_, HGCalParameters::radius200to300_, HGCalParameters::rLimit_, HGCalParameters::rMaxLayHex_, HGCalParameters::rMinLayHex_, HGCalParameters::sensorSeparation_, HGCalGeomTools::shiftXY(), sqrt3_, HGCalParameters::hgtrap::tl, HGCalParameters::typesInLayers_, findQualityFiles::v, HGCalParameters::waferCopy_, HGCalGeomTools::waferCorner(), HGCalWaferIndex::waferIndex(), HGCalParameters::waferInfoMap_, HGCalWaferIndex::waferLayer(), HGCalParameters::waferMaskMode_, HGCalParameters::waferPosX_, HGCalParameters::waferPosY_, HGCalParameters::waferR_, HGCalParameters::wafersInLayers_, HGCalParameters::waferSize_, HGCalParameters::waferTypeL_, HGCalParameters::waferTypes_, HGCalParameters::waferTypeT_, HGCalWaferIndex::waferU(), HGCalParameters::waferUVMax_, HGCalParameters::waferUVMaxLayer_, HGCalWaferIndex::waferV(), LaserClient_cfi::wl, HGCalParameters::xLayerHex_, HGCalParameters::yLayerHex_, HGCalParameters::zLayerHex_, and HGCalParameters::zMinForRad_.
◆ rescale()
void HGCalGeomParameters::rescale |
( |
std::vector< double > & |
v, |
|
|
const double |
s |
|
) |
| |
|
private |
◆ resetZero()
void HGCalGeomParameters::resetZero |
( |
std::vector< double > & |
v | ) |
|
|
private |
◆ geomTools_
◆ scintillatorFile
constexpr static int HGCalGeomParameters::scintillatorFile = 4 |
|
staticconstexprprivate |
◆ siliconFileEE
constexpr static int HGCalGeomParameters::siliconFileEE = 2 |
|
staticconstexprprivate |
◆ siliconFileHE
constexpr static int HGCalGeomParameters::siliconFileHE = 3 |
|
staticconstexprprivate |
◆ sqrt3_
const double HGCalGeomParameters::sqrt3_ |
|
private |
◆ tan30deg_
constexpr static double HGCalGeomParameters::tan30deg_ = 0.5773502693 |
|
staticconstexprprivate |
◆ waferSize_
double HGCalGeomParameters::waferSize_ |
|
private |
std::vector< int > layerFrontBH_
static constexpr double k_ScaleFromDD4HepToG4
std::vector< double > trformRotXX_
static constexpr double tol
std::vector< bool > cellCoarseHalf_
std::vector< double > rMaxVec(void) const
std::vector< double > trformRotYY_
void loadGeometryHexagon8(const DDFilteredView &_fv, HGCalParameters &php, int firstLayer)
constexpr static int siliconFileEE
std::vector< double > moduleTlR_
std::vector< double > moduleBlS_
std::vector< double > zLayerHex_
std::vector< double > moduleHS_
constexpr static int scintillatorFile
std::vector< double > zFrontMin_
hgtrap getModule(unsigned int k, bool reco) const
std::vector< double > zVec(void) const
std::vector< double > rMaxLayHex_
std::vector< double > trformRotYX_
std::vector< double > cellFineY_
DDsvalues_type mergedSpecifics() const
const DDLogicalPart & logicalPart() const
The logical-part of the current node in the filtered-view.
static constexpr uint32_t k_CornerSize
nav_type copyNumbers() const
return the stack of copy numbers
int32_t waferU(const int32_t index)
int32_t waferOrient(const int32_t property)
std::vector< double > slopeTop_
std::vector< int > layerIndex_
int32_t waferIndex(int32_t layer, int32_t waferU, int32_t waferV, bool old=false)
std::vector< double > yLayerHex_
std::pair< double, double > cellPosition(const std::vector< cellParameters > &wafers, std::vector< cellParameters >::const_iterator &itrf, int wafer, double xx, double yy)
double scintCellSize(const int layer) const
std::vector< double > rMinVec(void) const
std::vector< int > cellFine_
std::vector< double > xVec(void) const
wafer_map wafersInLayers_
int32_t tileType(const int32_t property)
void loadGeometryHexagon(const DDFilteredView &_fv, HGCalParameters &php, const std::string &sdTag1, const DDCompactView *cpv, const std::string &sdTag2, const std::string &sdTag3, HGCalGeometryMode::WaferMode mode)
std::vector< double > const & vector(std::string_view iKey) const
returns an empty container if not found
const std::vector< double > & vector(std::string_view iKey) const
The DDVector information.
std::vector< int > moduleLayR_
void find(edm::Handle< EcalRecHitCollection > &hits, DetId thisDet, std::vector< EcalRecHitCollection::const_iterator > &hit, bool debug=false)
std::vector< int > waferUVMaxLayer_
std::vector< int > iradMaxBH_
Log< level::Warning, false > LogWarning
std::vector< double > moduleBlR_
std::vector< double > boundR_
std::vector< double > zVec(void) const
HGCalGeomTools geomTools_
static int getRotation(int zside, int type, int rotn)
void fillModule(const hgtrap &mytr, bool reco)
std::vector< double > waferPosY_
Sin< T >::type sin(const T &t)
std::vector< double > moduleTlS_
void rescale(std::vector< double > &, const double s)
T get(const std::string &)
extract attribute value
std::vector< double > trformRotZY_
std::vector< double > trformTranX_
std::vector< double > getDDDArray(const std::string &str, const DDsvalues_type &sv, const int nmin)
std::vector< double > moduleDzR_
DDSolidShape shape(void) const
The type of the solid.
constexpr static double tan30deg_
std::vector< uint32_t > trformIndex_
Cos< T >::type cos(const T &t)
std::vector< double > radiusLayer_[2]
std::vector< bool > cellFineHalf_
std::vector< double > radius100to200_
std::string name(Mapping a, V value)
std::vector< int > layerGroup_
std::vector< std::pair< double, double > > layerRotV_
const std::string names[nVars_]
std::unordered_map< int32_t, int32_t > wafer_map
std::vector< double > radiusMixBoundary_
static constexpr double k_ScaleFromDDDToG4
bool next()
set current node to the next node in the filtered tree
std::vector< double > waferPosX_
int32_t waferV(const int32_t index)
std::vector< double > rMinLayHex_
bool DDfetch(const DDsvalues_type *, DDValue &)
helper for retrieving DDValues from DDsvalues_type *.
void loadSpecParsTrapezoid(const DDFilteredView &fv, HGCalParameters &php)
std::vector< double > waferThickness_
Global3DPoint GlobalPoint
std::vector< int > waferCopy_
std::vector< int > iradMinBH_
static int32_t packTypeUV(int type, int u, int v)
std::vector< double > trformRotZX_
constexpr std::array< uint8_t, layerIndexSize > layer
std::vector< double > cellSize_
ROOT::Math::DisplacementVector3D< ROOT::Math::Cartesian3D< double > > DD3Vector
std::vector< double > trformRotXZ_
std::vector< double > moduleAlphaS_
std::vector< int > firstModule_
static std::pair< int, int > getTypeMode(const double &xpos, const double &ypos, const double &delX, const double &delY, const double &rin, const double &rout, const int &waferType, const int &mode, bool deug=false)
std::vector< int > depth_
static bool goodTypeMode(double xpos, double ypos, double delX, double delY, double rin, double rout, int part, int rotn, bool debug)
std::vector< double > rMaxFront_
ROOT::Math::PositionVector3D< ROOT::Math::Cartesian3D< double > > XYZPointD
point in space with cartesian internal representation
HGCalGeometryMode::GeometryMode mode_
std::vector< double > cellCoarseY_
std::vector< double > rLimit_
static constexpr int k_OffsetRotation
std::vector< double > trformTranZ_
void fillTrForm(const hgtrform &mytr)
int scintType(const int layer) const
Tan< T >::type tan(const T &t)
int scintCells(const int layer) const
int32_t waferThick(const int32_t property)
static int32_t getUnpackedCell6(int id)
std::vector< int > layerGroupO_
const std::string & name() const
Returns the name.
std::vector< int > nPhiBinBH_
std::vector< double > trformRotXY_
std::vector< int > layerGroupM_
for(int i=first, nt=offsets[nh];i< nt;i+=gridDim.x *blockDim.x)
std::vector< double > trformTranY_
int32_t tileSiPM(const int32_t property)
std::vector< int > cellCoarse_
static constexpr double k_ScaleFromDDD
std::vector< int > waferTypeT_
int32_t waferPartial(const int32_t property)
void loadCellParsHexagon(const DDCompactView *cpv, HGCalParameters &php)
const HitContainer *__restrict__ const TkSoA *__restrict__ Quality *__restrict__ uint16_t nmin
static constexpr double k_ScaleToDDD
std::vector< std::pair< double, double > > tileRingR_
std::vector< int > moduleLayS_
static constexpr double k_ScaleFromDD4Hep
std::vector< int > layerType_
constexpr static int siliconFileHE
int32_t waferLayer(const int32_t index)
std::vector< std::pair< int, int > > tileRingRange_
void loadSpecParsHexagon(const DDFilteredView &fv, HGCalParameters &php, const DDCompactView *cpv, const std::string &sdTag1, const std::string &sdTag2)
void addTrForm(const CLHEP::Hep3Vector &h3v)
waferInfo_map waferInfoMap_
std::unordered_map< int32_t, std::pair< int32_t, int32_t > > waferT_map
std::vector< double > slopeMin_
std::vector< int > depthIndex_
std::vector< double > xLayerHex_
Log< level::Info, true > LogVerbatim
const DDTranslation & translation() const
The absolute translation of the current node.
std::vector< double > moduleDzS_
std::vector< int > layerCenter_
std::vector< double > rMinFront_
std::vector< int > lastModule_
int32_t tileProperty(const int32_t type, const int32_t sipm)
std::vector< double > cellFineX_
A DDSolid represents the shape of a part.
std::vector< double > cellThickness_
const DDRotationMatrix & rotation() const
The absolute rotation of the current node.
std::vector< double > rMinLayerBH_
void loadSpecParsHexagon8(const DDFilteredView &fv, HGCalParameters &php)
std::vector< int > waferTypeL_
std::vector< double > cellCoarseX_
Abs< T >::type abs(const T &t)
std::vector< int > dbl_to_int(const std::vector< double > &vecdbl)
Converts a std::vector of doubles to a std::vector of int.
std::vector< double > moduleHR_
std::vector< int > layer_
std::vector< double > trformRotYZ_
std::vector< int > depthLayerF_
std::vector< std::unordered_map< int32_t, int32_t > > layer_map
static int32_t getUnpackedCellType6(int id)
def cp(fromDir, toDir, listOfFiles, overwrite=False, smallList=False)
std::vector< double > zFrontTop_
std::vector< std::pair< unsigned int, DDValue > > DDsvalues_type
std::vector< double > trformRotZZ_
const DDSolid & solid(void) const
Returns a reference object of the solid being the shape of this LogicalPart.
std::vector< int > levelT_
std::vector< double > zRanges_
const std::array< const cms::dd::NameValuePair< DDSolidShape >, 21 > DDSolidShapeMap
std::vector< double > moduleAlphaR_
std::vector< double > radius200to300_
tileInfo_map tileInfoMap_
layer_map copiesInLayers_