16 const auto& pG = iRecord.
get(geometryToken_);
18 tvec = pG.getTranslation();
19 dvec = pG.getDimension();
20 ivec = pG.getIndexes();
21 dins = pG.getDenseIndices();
23 const auto& topology = iRecord.
get(additionalTokens_.topology);
29 ptr->allocateCorners(topology.ncells());
32 const unsigned int nTrParm(ptr->numberOfTransformParms());
35 for (
auto it : dins) {
36 DetId id = topology.encode(topology.geomDenseId2decId(it));
41 const unsigned int jj(it * nTrParm);
43 const ROOT::Math::Translation3D tl(tvec[jj], tvec[jj + 1], tvec[jj + 2]);
46 const ROOT::Math::Transform3D
rt(ea, tl);
47 double xx,
xy, xz,
dx, yx, yy, yz,
dy, zx, zy, zz,
dz;
48 rt.GetComponents(xx, xy, xz, dx, yx, yy, yz, dy, zx, zy, zz, dz);
49 tr =
Tr3D(CLHEP::HepRep3x3(xx, xy, xz, yx, yy, yz, zx, zy, zz), CLHEP::Hep3Vector(dx, dy, dz));
53 dims.reserve(nPerShape);
55 DimVec::const_iterator dsrc(dvec.begin() + layer * nPerShape);
56 for (
unsigned int j(0);
j != nPerShape; ++
j) {
57 dims.emplace_back(*dsrc);
68 (corners[0].
x() + corners[1].
x() + corners[2].
x() + corners[3].
x() + corners[4].
x() + corners[5].
x()),
70 (corners[0].
y() + corners[1].
y() + corners[2].
y() + corners[3].
y() + corners[4].
y() + corners[5].
y()),
72 (corners[0].
z() + corners[1].
z() + corners[2].
z() + corners[3].
z() + corners[4].
z() + corners[5].
z()));
76 (corners[6].
x() + corners[7].
x() + corners[8].
x() + corners[9].
x() + corners[10].
x() + corners[11].
x()),
78 (corners[6].
y() + corners[7].
y() + corners[8].
y() + corners[9].
y() + corners[10].
y() + corners[11].
y()),
80 (corners[6].
z() + corners[7].
z() + corners[8].
z() + corners[9].
z() + corners[10].
z() + corners[11].
z()));
88 ptr->newCell(front, back, corners[0], myParm,
id);
91 ptr->initializeParms();
static constexpr unsigned int k_NumberOfShapes
static void createCorners(const std::vector< CCGFloat > &pv, const Tr3D &tr, std::vector< GlobalPoint > &co)
CaloGeometryDBEP< HGCalGeometry, CaloGeometryDBReader > HGCalGeometryFromDBEP
std::unique_ptr< CaloSubdetectorGeometry > PtrType
static constexpr unsigned int ncorner_
constexpr std::array< uint8_t, layerIndexSize > layer
CaloSubdetectorGeometry::IVec IVec
ProductT const & get(ESGetToken< ProductT, DepRecordT > const &iToken) const
static constexpr unsigned int k_NumberOfParametersPerShape
void swap(edm::DataFrameContainer &lhs, edm::DataFrameContainer &rhs)
uint16_t const *__restrict__ x
PtrType produceAligned(const typename T::AlignedRecord &iRecord)
CaloSubdetectorGeometry::TrVec TrVec
static const CCGFloat * getParmPtr(const std::vector< CCGFloat > &vd, ParMgr *mgr, ParVecVec &pvv)
Basic2DVector< T > xy() const
static constexpr unsigned int ncornerBy2_
AlgebraicVector EulerAngles
#define DEFINE_FWK_EVENTSETUP_MODULE(type)
static constexpr auto nameHGCal
CaloCellGeometry::Tr3D Tr3D
CaloCellGeometry::Tr3D Tr3D
CaloSubdetectorGeometry::DimVec DimVec
CaloCellGeometry::CCGFloat CCGFloat
static constexpr double oneBySix_