17 const auto& pG = iRecord.
get(geometryToken_);
19 tvec = pG.getTranslation();
20 dvec = pG.getDimension();
21 ivec = pG.getIndexes();
22 dins = pG.getDenseIndices();
24 const auto& topology = iRecord.
get(additionalTokens_.topology);
30 ptr->allocateCorners(topology.ncells());
33 const unsigned int nTrParm(ptr->numberOfTransformParms());
36 for (
auto it : dins) {
37 DetId id = topology.encode(topology.geomDenseId2decId(it));
42 const unsigned int jj(it * nTrParm);
44 const ROOT::Math::Translation3D tl(tvec[
jj], tvec[
jj + 1], tvec[
jj + 2]);
47 const ROOT::Math::Transform3D
rt(ea, tl);
48 double xx,
xy,
xz,
dx, yx,
yy,
yz,
dy, zx, zy,
zz,
dz;
49 rt.GetComponents(
xx,
xy,
xz,
dx, yx,
yy,
yz,
dy, zx, zy,
zz,
dz);
50 tr =
Tr3D(CLHEP::HepRep3x3(
xx,
xy,
xz, yx,
yy,
yz, zx, zy,
zz), CLHEP::Hep3Vector(
dx,
dy,
dz));
54 dims.reserve(nPerShape);
56 DimVec::const_iterator dsrc(dvec.begin() +
layer * nPerShape);
57 for (
unsigned int j(0);
j != nPerShape; ++
j) {
58 dims.emplace_back(*dsrc);
69 (corners[0].
x() + corners[1].
x() + corners[2].
x() + corners[3].
x() + corners[4].
x() + corners[5].
x()),
71 (corners[0].
y() + corners[1].
y() + corners[2].
y() + corners[3].
y() + corners[4].
y() + corners[5].
y()),
73 (corners[0].
z() + corners[1].
z() + corners[2].
z() + corners[3].
z() + corners[4].
z() + corners[5].
z()));
77 (corners[6].
x() + corners[7].
x() + corners[8].
x() + corners[9].
x() + corners[10].
x() + corners[11].
x()),
79 (corners[6].
y() + corners[7].
y() + corners[8].
y() + corners[9].
y() + corners[10].
y() + corners[11].
y()),
81 (corners[6].
z() + corners[7].
z() + corners[8].
z() + corners[9].
z() + corners[10].
z() + corners[11].
z()));
89 ptr->newCell(front, back, corners[0], myParm,
id);
92 ptr->initializeParms();
static constexpr unsigned int k_NumberOfShapes
static void createCorners(const std::vector< CCGFloat > &pv, const Tr3D &tr, std::vector< GlobalPoint > &co)
Log< level::Info, true > LogVerbatim
CaloGeometryDBEP< HGCalGeometry, CaloGeometryDBReader > HGCalGeometryFromDBEP
std::unique_ptr< CaloSubdetectorGeometry > PtrType
void swap(Association< C > &lhs, Association< C > &rhs)
static constexpr unsigned int ncorner_
CaloSubdetectorGeometry::IVec IVec
static constexpr unsigned int k_NumberOfParametersPerShape
PtrType produceAligned(const typename T::AlignedRecord &iRecord)
CaloSubdetectorGeometry::TrVec TrVec
static const CCGFloat * getParmPtr(const std::vector< CCGFloat > &vd, ParMgr *mgr, ParVecVec &pvv)
#define DEFINE_FWK_EVENTSETUP_MODULE(type)
static constexpr unsigned int ncornerBy2_
AlgebraicVector EulerAngles
static constexpr auto nameHGCal
CaloCellGeometry::Tr3D Tr3D
CaloCellGeometry::Tr3D Tr3D
CaloSubdetectorGeometry::DimVec DimVec
ProductT const & get(ESGetToken< ProductT, DepRecordT > const &iToken) const
CaloCellGeometry::CCGFloat CCGFloat
static constexpr double oneBySix_