13 const HepGeom::Transform3D& tr,
21 #include "Geometry/CaloEventSetup/interface/CaloGeometryLoader.icc" 29 const HepGeom::Transform3D& tr,
31 const double&
scale) {
32 static constexpr uint32_t
maxSize = 11;
33 std::vector<CCGFloat>
pv;
35 unsigned int ioff = (vv.size() >
maxSize) ? (vv.size() -
maxSize) : 0;
37 for (
unsigned int i(0);
i !=
size; ++
i) {
42 std::vector<GlobalPoint> corners(8);
48 const GlobalPoint front(0.25 * (corners[0].
x() + corners[1].
x() + corners[2].
x() + corners[3].
x()),
49 0.25 * (corners[0].
y() + corners[1].
y() + corners[2].
y() + corners[3].
y()),
50 0.25 * (corners[0].
z() + corners[1].
z() + corners[2].
z() + corners[3].
z()));
52 const GlobalPoint back(0.25 * (corners[4].
x() + corners[5].
x() + corners[6].
x() + corners[7].
x()),
53 0.25 * (corners[4].
y() + corners[5].
y() + corners[6].
y() + corners[7].
y()),
54 0.25 * (corners[4].
z() + corners[5].
z() + corners[6].
z() + corners[7].
z()));
56 geom->newCell(front, back, corners[0], parmPtr,
id);
70 const std::vector<double>& fvec = valnPhi.doubles();
74 geom->setNumXtalsPhiDirection(static_cast<int>(fvec[0]));
80 const std::vector<double>& fmvec = valnEta.doubles();
85 geom->setNumXtalsEtaDirection(static_cast<int>(fmvec[0]));
93 const std::vector<double>& ebvec = valEtaB.doubles();
95 std::vector<int> EtaBaskets;
96 EtaBaskets.reserve(ebvec.size());
97 for (
const auto& ebv : ebvec)
98 EtaBaskets.emplace_back(static_cast<int>(ebv));
99 geom->setEtaBaskets(EtaBaskets);
107 const std::vector<double>& pvec = valPhi.doubles();
109 geom->setBasketSizeInPhi(static_cast<int>(pvec[0]));
125 std::vector<double> tempD = fv.
get<std::vector<double> >(specName,
"nxtalEta");
126 assert(tempD.size() == 1);
127 geom->setNumXtalsEtaDirection(static_cast<int>(tempD[0]));
130 tempD = fv.
get<std::vector<double> >(specName,
"nxtalPhi");
131 assert(tempD.size() == 1);
132 geom->setNumXtalsPhiDirection(static_cast<int>(tempD[0]));
135 tempD = fv.
get<std::vector<double> >(specName,
"EtaBaskets");
140 tempD = fv.
get<std::vector<double> >(specName,
"PhiBaskets");
142 geom->setBasketSizeInPhi(static_cast<int>(tempD[0]));
CaloGeometryLoader< EcalBarrelGeometry > EcalBGL
bool nextSibling()
set the current node to the next sibling ...
bool DDfetch(const DDsvalues_type *, DDValue &)
helper for retrieving DDValues from DDsvalues_type *.
void fillGeom(T *geom, const ParmVec &pv, const HepGeom::Transform3D &tr, const DetId &id, const double &scale)
std::vector< double > ParmVec
std::vector< std::pair< unsigned int, DDValue > > DDsvalues_type
CaloCellGeometry::CCGFloat CCGFloat
static const CCGFloat * getParmPtr(const std::vector< CCGFloat > &vd, ParMgr *mgr, ParVecVec &pvv)
CaloCellGeometry::CCGFloat CCGFloat
std::vector< int > dbl_to_int(const std::vector< double > &vecdbl)
Converts a std::vector of doubles to a std::vector of int.
DDsvalues_type mergedSpecifics() const
T get(const std::string &)
extract attribute value
void fillNamedParams(const DDFilteredView &fv, T *geom)
static void createCorners(const std::vector< CCGFloat > &pv, const Tr3D &tr, std::vector< GlobalPoint > &co)
bool firstChild()
set the current node to the first child ...