25 edm::LogVerbatim(
"FastTimeGeom") <<
"Number of Cells " << numberOfCells <<
" for type " << detType
26 <<
" of sub-detector " << topology.
subDetector() <<
" Shape parameters " 30 geom->allocateCorners(numberOfCells);
37 edm::LogVerbatim(
"FastTimeGeom") <<
"FastTimeGeometryLoader with # of transformation matrices " << numberOfCells;
39 for (
unsigned itr = 0; itr < numberOfCells; ++itr) {
40 int zside = (itr == 0) ? 1 : -1;
42 edm::LogVerbatim(
"FastTimeGeom") <<
"FastTimeGeometryLoader:: Z:Layer:Type " <<
zside <<
":" << detType;
46 (
zside > 0) ? CLHEP::HepRep3x3(1, 0, 0, 0, 1, 0, 0, 0, 1) : CLHEP::HepRep3x3(-1, 0, 0, 0, 1, 0, 0, 0, -1);
47 const CLHEP::HepRotation hr(
rotation);
48 const CLHEP::Hep3Vector h3v(0, 0,
zv);
49 const HepGeom::Transform3D ht3d(hr, h3v);
52 edm::LogVerbatim(
"FastTimeGeom") <<
"FastTimeGeometryLoader:: transf " << ht3d.getTranslation() <<
" and " 53 << ht3d.getRotation();
69 edm::LogWarning(
"FastTimeGeom") <<
"inconsistent # of cells: expected " << numberOfCells <<
" , inited " <<
counter;
77 const HepGeom::Transform3D& ht3d,
82 std::ostringstream st1;
83 st1 <<
"Volume Parameters";
84 for (
unsigned int i = 0;
i < 12; ++
i)
95 GlobalPoint front(0.25 * (corners[0].
x() + corners[1].
x() + corners[2].
x() + corners[3].
x()),
96 0.25 * (corners[0].
y() + corners[1].
y() + corners[2].
y() + corners[3].
y()),
97 0.25 * (corners[0].
z() + corners[1].
z() + corners[2].
z() + corners[3].
z()));
99 GlobalPoint back(0.25 * (corners[4].
x() + corners[5].
x() + corners[6].
x() + corners[7].
x()),
100 0.25 * (corners[4].
y() + corners[5].
y() + corners[6].
y() + corners[7].
y()),
101 0.25 * (corners[4].
z() + corners[5].
z() + corners[6].
z() + corners[7].
z()));
105 std::swap_ranges(corners.begin(), corners.begin() + 4, corners.begin() + 4);
108 geom->newCell(front, back, corners[0], parmPtr, detId);
Log< level::Info, true > LogVerbatim
double getRin(int type) const
double getZHalf(int type) const
CaloCellGeometry::CCGFloat CCGFloat
unsigned int totalGeomModules() const
CaloCellGeometry::CCGFloat CCGFloat
void buildGeom(const ParmVec &, const HepGeom::Transform3D &, const DetId &, const FastTimeTopology &, FastTimeGeometry *)
double getRout(int type) const
void swap(edm::DataFrameContainer &lhs, edm::DataFrameContainer &rhs)
ForwardSubdetector subDetector() const
static const CCGFloat * getParmPtr(const std::vector< CCGFloat > &vd, ParMgr *mgr, ParVecVec &pvv)
const FastTimeDDDConstants & dddConstants() const
FastTimeGeometry * build(const FastTimeTopology &)
double getZPos(int type) const
static void createCorners(const std::vector< CCGFloat > &pv, const Tr3D &tr, std::vector< GlobalPoint > &co)
std::vector< GlobalPoint > getCorners(int type, int izeta, int iphi, int zside) const
std::vector< float > ParmVec
static std::atomic< unsigned int > counter
Log< level::Warning, false > LogWarning
~FastTimeGeometryLoader()
std::vector< float > ParmVec