9 #include <Math/Transform3D.h> 10 #include <Math/EulerAngles.h> 27 m_cellVec(k_NumberOfCellsForCorners) {}
33 m_ownsTopology(
false),
34 m_cellVec(k_NumberOfCellsForCorners) {}
95 return (((cell ==
nullptr) || (
nullptr == cell->
param())) ? nullptr : cell);
107 for (
float iv :
pv) {
114 std::shared_ptr<const CaloCellGeometry> ptr(
cellGeomPtr(
i));
117 <<
" Pointer " << ptr <<
":" << (
nullptr != ptr);
121 if (ptr !=
nullptr) {
122 ptr->getTransform(tr, (
Pt3DVec*)
nullptr);
126 tr = HepGeom::Translate3D(
gp.x(),
gp.y(),
gp.z());
129 const CLHEP::Hep3Vector
tt(tr.getTranslation());
130 tVec.emplace_back(
tt.x());
131 tVec.emplace_back(
tt.y());
132 tVec.emplace_back(
tt.z());
134 const CLHEP::HepRotation
rr(tr.getRotation());
135 const ROOT::Math::Transform3D rtr(
136 rr.xx(),
rr.xy(),
rr.xz(),
tt.x(),
rr.yx(),
rr.yy(),
rr.yz(),
tt.y(),
rr.zx(),
rr.zy(),
rr.zz(),
tt.z());
139 tVec.emplace_back(ea.Phi());
140 tVec.emplace_back(ea.Theta());
141 tVec.emplace_back(ea.Psi());
146 unsigned int ishape(9999);
147 for (
unsigned int ivv(0); ivv !=
parVecVec().size(); ++ivv) {
151 ok =
ok && (fabs(par[
k] -
pv[
k]) < 1.e-6);
161 if (iVec.size() <
nn)
162 iVec.emplace_back(ishape);
Log< level::Info, true > LogVerbatim
void newCell(const GlobalPoint &f1, const GlobalPoint &f2, const GlobalPoint &f3, const CCGFloat *parm, const DetId &detId) override
static unsigned int alignmentTransformIndexLocal(const DetId &id)
static void localCorners(Pt3DVec &lc, const CCGFloat *pv, unsigned int i, Pt3D &ref)
std::vector< CCGFloat > DimVec
const CaloCellGeometry * getGeometryRawPtr(uint32_t index) const override
CaloCellGeometry::Pt3D Pt3D
virtual unsigned int numberOfTransformParms() const
static unsigned int alignmentTransformIndexGlobal(const DetId &id)
std::vector< unsigned int > IVec
uint32_t denseIndex() const
std::vector< CCGFloat > TrVec
void getSummary(CaloSubdetectorGeometry::TrVec &tVec, CaloSubdetectorGeometry::IVec &iVec, CaloSubdetectorGeometry::DimVec &dVec, CaloSubdetectorGeometry::IVec &dins) const override
HepGeom::Transform3D Tr3D
CaloCellGeometry::Pt3DVec Pt3DVec
std::vector< Pt3D > Pt3DVec
CaloCellGeometry::Tr3D Tr3D
static constexpr int32_t kSizeForDenseIndexingRun1
CaloCellGeometry::Pt3D Pt3D
CaloCellGeometry::CCGFloat CCGFloat
std::vector< DetId > m_validIds
const ZdcTopology * theTopology
AlgebraicVector EulerAngles
void addValidID(const DetId &id)
static void localCorners(Pt3DVec &vec, const CCGFloat *pv, Pt3D &ref)
constexpr uint32_t rawId() const
get the raw id
CaloCellGeometry::CornersMgr * cornersMgr()
HepGeom::Point3D< CCGFloat > Pt3D
CaloCellGeometry::Pt3DVec Pt3DVec
CaloCellGeometry::Tr3D Tr3D
virtual std::shared_ptr< const CaloCellGeometry > cellGeomPtr(uint32_t index) const
constexpr int32_t zside() const
get the z-side of the cell (1/-1)
CaloSubdetectorGeometry::CCGFloat CCGFloat
const CCGFloat * param() const
unsigned int numberOfParametersPerShape() const override
unsigned int numberOfShapes() const override