9 #include <Math/Transform3D.h> 10 #include <Math/EulerAngles.h> 23 : k_NumberOfCellsForCornersN(
HcalZDCDetId::kSizeForDenseIndexingRun1),
28 m_cellVec(k_NumberOfCellsForCornersN) {
33 : k_NumberOfCellsForCornersN(
topology->kSizeForDenseIndexing()),
37 m_ownsTopology(
false),
38 m_cellVec(k_NumberOfCellsForCornersN) {}
99 return (((cell ==
nullptr) || (
nullptr == cell->
param())) ? nullptr : cell);
111 for (
float iv :
pv) {
118 std::shared_ptr<const CaloCellGeometry> ptr(
cellGeomPtr(
i));
121 <<
" Pointer " << ptr <<
":" << (
nullptr != ptr);
125 if (ptr !=
nullptr) {
126 ptr->getTransform(tr, (
Pt3DVec*)
nullptr);
130 tr = HepGeom::Translate3D(
gp.x(),
gp.y(),
gp.z());
133 const CLHEP::Hep3Vector
tt(tr.getTranslation());
134 tVec.emplace_back(
tt.x());
135 tVec.emplace_back(
tt.y());
136 tVec.emplace_back(
tt.z());
138 const CLHEP::HepRotation
rr(tr.getRotation());
139 const ROOT::Math::Transform3D rtr(
140 rr.xx(),
rr.xy(),
rr.xz(),
tt.x(),
rr.yx(),
rr.yy(),
rr.yz(),
tt.y(),
rr.zx(),
rr.zy(),
rr.zz(),
tt.z());
143 tVec.emplace_back(ea.Phi());
144 tVec.emplace_back(ea.Theta());
145 tVec.emplace_back(ea.Psi());
150 unsigned int ishape(9999);
151 for (
unsigned int ivv(0); ivv !=
parVecVec().size(); ++ivv) {
155 ok =
ok && (fabs(par[
k] -
pv[
k]) < 1.e-6);
165 if (iVec.size() <
nn)
166 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
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
uint32_t detId2DenseIndex(const DetId &id) const
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)
Log< level::Warning, false > LogWarning
CaloSubdetectorGeometry::CCGFloat CCGFloat
const CCGFloat * param() const
unsigned int numberOfParametersPerShape() const override
unsigned int numberOfShapes() const override