30 uint32_t numberOfShapes =
35 edm::LogVerbatim(
"HGCalGeom") <<
"Number of Cells " << numberOfCells <<
":" << numberExpected <<
" for sub-detector "
56 unsigned int kount(0);
57 edm::LogVerbatim(
"HGCalGeom") <<
"HGCalGeometryLoader:: Z:Layer " << zside <<
":" << layer <<
" z " << mytr.
h3v.z();
69 double xx = (zside > 0) ?
w.first : -
w.first;
70 CLHEP::Hep3Vector h3v(xx,
w.second, mytr.
h3v.z());
71 const HepGeom::Transform3D ht3d(mytr.
hr, h3v);
73 edm::LogVerbatim(
"HGCalGeom") <<
"HGCalGeometryLoader:: Wafer:Type " << wafer <<
":" << type <<
" DetId "
75 <<
" transf " << ht3d.getTranslation() <<
" and " << ht3d.getRotation();
97 for (
int iphi = 1; iphi <=
nphi; ++iphi) {
100 if (typm.first >= 0) {
101 id.setType(typm.first);
102 id.setSiPM(typm.second);
106 edm::LogVerbatim(
"HGCalGeom") <<
"HGCalGeometryLoader::layer:rad:phi:type:sipm " << layer <<
":"
107 << ring * zside <<
":" << iphi <<
":" << type <<
":" << typm.first <<
":"
108 << typm.second <<
" Test " << test <<
":" <<
ok;
113 double xx = (zside > 0) ?
w.first : -
w.first;
114 CLHEP::Hep3Vector h3v(xx,
w.second, mytr.
h3v.z());
115 const HepGeom::Transform3D ht3d(mytr.
hr, h3v);
118 <<
"HGCalGeometryLoader::rad:phi:type " << ring * zside <<
":" << iphi <<
":" << type <<
" DetId "
120 << ht3d.getTranslation() <<
" R " << ht3d.getTranslation().perp() <<
" and " << ht3d.getRotation();
151 double xx = (zside > 0) ?
w.first : -
w.first;
152 CLHEP::Hep3Vector h3v(xx,
w.second, mytr.
h3v.z());
153 const HepGeom::Transform3D ht3d(mytr.
hr, h3v);
156 edm::LogVerbatim(
"HGCalGeom") <<
"HGCalGeometryLoader::Wafer:Type " << wafer <<
":" << type <<
" DetId "
158 <<
" trans " << ht3d.getTranslation() <<
" and " << ht3d.getRotation();
160 edm::LogVerbatim(
"HGCalGeom") <<
"HGCalGeometryLoader::Wafer:Type " << wafer <<
":" << type <<
" DetId "
162 <<
" trans " << ht3d.getTranslation() <<
" and " << ht3d.getRotation();
184 if (counter != numberExpected) {
186 edm::LogVerbatim(
"HGCalGeom") <<
"Inconsistent # of cells: expected " << numberExpected <<
":" << numberOfCells
189 edm::LogError(
"HGCalGeom") <<
"Inconsistent # of cells: expected " << numberExpected <<
":" << numberOfCells
191 assert(counter == numberExpected);
211 GlobalPoint front(0.25 * (corners[0].
x() + corners[1].
x() + corners[2].
x() + corners[3].
x()),
212 0.25 * (corners[0].
y() + corners[1].
y() + corners[2].
y() + corners[3].
y()),
213 0.25 * (corners[0].
z() + corners[1].
z() + corners[2].
z() + corners[3].
z()));
215 GlobalPoint back(0.25 * (corners[4].
x() + corners[5].
x() + corners[6].
x() + corners[7].
x()),
216 0.25 * (corners[4].
y() + corners[5].
y() + corners[6].
y() + corners[7].
y()),
217 0.25 * (corners[4].
z() + corners[5].
z() + corners[6].
z() + corners[7].
z()));
223 geom->
newCell(front, back, corners[0], parmPtr, detId);
233 (corners[0].
x() + corners[1].
x() + corners[2].
x() + corners[3].
x() + corners[4].
x() + corners[5].
x()),
235 (corners[0].
y() + corners[1].
y() + corners[2].
y() + corners[3].
y() + corners[4].
y() + corners[5].
y()),
237 (corners[0].
z() + corners[1].
z() + corners[2].
z() + corners[3].
z() + corners[4].
z() + corners[5].
z()));
241 (corners[6].
x() + corners[7].
x() + corners[8].
x() + corners[9].
x() + corners[10].
x() + corners[11].
x()),
243 (corners[6].
y() + corners[7].
y() + corners[8].
y() + corners[9].
y() + corners[10].
y() + corners[11].
y()),
245 (corners[6].
z() + corners[7].
z() + corners[8].
z() + corners[9].
z() + corners[10].
z() + corners[11].
z()));
252 geom->
newCell(front, back, corners[0], parmPtr, detId);
static constexpr unsigned int k_NumberOfShapes
static void createCorners(const std::vector< CCGFloat > &pv, const Tr3D &tr, std::vector< GlobalPoint > &co)
HGCalGeometryMode::GeometryMode geomMode() const
Geometry mode.
Log< level::Info, true > LogVerbatim
static constexpr unsigned int ncornerBy2_
unsigned int allGeomModules() const
uint16_t *__restrict__ id
int scintType(const int layer) const
double cellSizeHex(int type) const
HGCalParameters::hgtrform getTrForm(unsigned int k) const
int32_t waferU(const int32_t index)
bool tileTrapezoid() const
const HGCalParameters * getParameter() const
HGCalGeometry * build(const HGCalTopology &)
constexpr uint32_t rawId() const
get the raw id
int getTypeHex(int layer, int waferU, int waferV) const
static constexpr uint32_t k_Theta
void newCell(const GlobalPoint &f1, const GlobalPoint &f2, const GlobalPoint &f3, const CCGFloat *parm, const DetId &detId) override
std::vector< float > ParmVec
bool tileExist(int zside, int layer, int ring, int phi) const
static constexpr uint32_t k_Cell
static constexpr uint32_t k_dY1
Log< level::Error, false > LogError
void allocatePar(ParVec::size_type n, unsigned int m)
int layerIndex(int lay, bool reco) const
static constexpr unsigned int ncorner_
constexpr std::array< uint8_t, layerIndexSize > layer
unsigned int totalGeomModules() const
static constexpr unsigned int ncorner_
std::vector< int > firstModule_
static constexpr uint32_t k_R
unsigned int getTrFormN() const
static constexpr uint32_t k_r
void swap(edm::DataFrameContainer &lhs, edm::DataFrameContainer &rhs)
static constexpr uint32_t k_dX1
std::pair< float, float > locateCellTrap(int lay, int ieta, int iphi, bool reco) const
static constexpr unsigned int k_NumberOfParametersPerTrd
int scintCells(const int layer) const
CaloCellGeometry::CCGFloat CCGFloat
static constexpr uint32_t k_dY2
static const CCGFloat * getParmPtr(const std::vector< CCGFloat > &vd, ParMgr *mgr, ParVecVec &pvv)
static constexpr uint32_t k_dX4
bool waferHexagon6() const
static constexpr unsigned int k_NumberOfParametersPerHex
static constexpr unsigned int ncornerBy2_
std::vector< int > lastModule_
static constexpr uint32_t k_dZ
const HGCalDDDConstants & dddConstants() const
static constexpr uint32_t k_Phi
static constexpr unsigned int k_NumberOfShapesTrd
ForwardSubdetector subDetector() const
std::vector< int > iradMinBH_
static void createCorners(const std::vector< CCGFloat > &pv, const Tr3D &tr, std::vector< GlobalPoint > &co)
static std::atomic< unsigned int > counter
int32_t waferV(const int32_t index)
std::vector< int > waferCopy_
static constexpr uint32_t k_dZ
std::pair< double, double > waferPosition(int wafer, bool reco) const
void allocateCorners(CaloCellGeometry::CornersVec::size_type n)
static constexpr uint32_t k_Alp1
std::vector< float > ParmVec
CaloCellGeometry::CCGFloat CCGFloat
static constexpr uint32_t k_dX3
DetId::Detector detector() const
HGCalParameters::hgtrap getModule(unsigned int k, bool hexType, bool reco) const
std::pair< int, int > tileType(int layer, int ring, int phi) const
void buildGeom(const ParmVec &, const HepGeom::Transform3D &, const DetId &, HGCalGeometry *, int mode)
int waferTypeT(int wafer) const
static constexpr uint32_t k_dX2
static constexpr double oneBySix_
bool waferInLayer(int wafer, int lay, bool reco) const
static constexpr uint32_t k_Alp2
unsigned int volumes() const