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) {
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 void createCorners(const std::vector< CCGFloat > &pv, const Tr3D &tr, std::vector< GlobalPoint > &co)
CaloGeometryDBEP< HGCalGeometry, CaloGeometryDBReader > HGCalGeometryFromDBEP
CaloTopology const * topology(0)
std::unique_ptr< CaloSubdetectorGeometry > PtrType
static constexpr unsigned int ncorner_
CaloSubdetectorGeometry::IVec IVec
static unsigned int k_NumberOfShapes
ProductT const & get(ESGetToken< ProductT, DepRecordT > const &iToken) const
void swap(edm::DataFrameContainer &lhs, edm::DataFrameContainer &rhs)
PtrType produceAligned(const typename T::AlignedRecord &iRecord)
CaloSubdetectorGeometry::TrVec TrVec
static const CCGFloat * getParmPtr(const std::vector< CCGFloat > &vd, ParMgr *mgr, ParVecVec &pvv)
static constexpr unsigned int ncornerBy2_
#define DEFINE_FWK_EVENTSETUP_MODULE(type)
AlgebraicVector EulerAngles
static unsigned int k_NumberOfParametersPerShape
CaloCellGeometry::Tr3D Tr3D
CaloCellGeometry::Tr3D Tr3D
CaloSubdetectorGeometry::DimVec DimVec
CaloCellGeometry::CCGFloat CCGFloat
static constexpr double oneBySix_