24 std::cout <<
"Number of Cells " << numberOfCells <<
" for sub-detector "
36 std::vector<HGCalDDDConstants::hgtrform>::const_iterator trItr;
37 std::vector<HGCalDDDConstants::hgtrap>::const_iterator volItr;
42 int zside = trItr->zp;
43 int layer = trItr->lay;
44 int sector = trItr->sec;
45 int subSec = (detType ? trItr->subsec : 0);
46 const HepGeom::Transform3D ht3d (trItr->hr, trItr->h3v);
51 std::cout <<
"HGCalGeometryLoader:: Z:Layer:Sector:Subsector " << zside
52 <<
":" << layer <<
":" << sector <<
":" << subSec <<
" transf "
53 << ht3d.getTranslation() <<
" and " << ht3d.getRotation();
57 if (volItr->lay == layer) {
58 double alpha = ((detType && subSec == 0) ? -fabs(volItr->alpha) :
60 params[0] = volItr->dz;
61 params[1] = params[2] = 0;
62 params[3] = params[7] = volItr->h;
63 params[4] = params[8] = volItr->bl;
64 params[5] = params[9] = volItr->tl;
65 params[6] = params[10]=
alpha;
66 params[11]= volItr->cellSize;
69 for (
unsigned int i=0;
i<12; ++
i)
std::cout <<
" : " << params[
i];
72 std::vector<GlobalPoint> corners (8);
84 0.25*( corners[0].
y() +
88 0.25*( corners[0].
z() +
97 0.25*( corners[4].
y() +
101 0.25*( corners[4].
z() +
108 std::swap_ranges (corners.begin(), corners.begin()+4, corners.begin()+4);
111 geom->
newCell(front, back, corners[0], parmPtr, detId) ;
118 if (counter != numberOfCells) {
119 std::cerr <<
"inconsistent # of cells: expected " << numberOfCells <<
" , inited " << counter << std::endl;
120 assert( counter == numberOfCells ) ;
122 std::cout <<
"HGCalGeometryBuilder-> " << counter <<
" cells are produced" << std::endl;
CaloTopology const * topology(0)
std::vector< hgtrap >::const_iterator getLastModule(bool reco=false) const
std::vector< hgtrap >::const_iterator getFirstModule(bool reco=false) const
HGCalGeometry * build(const HGCalTopology &)
bool detectorType() const
void allocatePar(ParVec::size_type n, unsigned int m)
virtual void newCell(const GlobalPoint &f1, const GlobalPoint &f2, const GlobalPoint &f3, const CCGFloat *parm, const DetId &detId)
unsigned int totalGeomModules() const
void swap(edm::DataFrameContainer &lhs, edm::DataFrameContainer &rhs)
CaloCellGeometry::CCGFloat CCGFloat
static const CCGFloat * getParmPtr(const std::vector< CCGFloat > &vd, ParMgr *mgr, ParVecVec &pvv)
std::vector< hgtrform >::const_iterator getFirstTrForm() const
const HGCalDDDConstants & dddConstants() const
ForwardSubdetector subDetector() const
static void createCorners(const std::vector< CCGFloat > &pv, const Tr3D &tr, std::vector< GlobalPoint > &co)
static std::atomic< unsigned int > counter
void allocateCorners(CaloCellGeometry::CornersVec::size_type n)
std::vector< float > ParmVec
std::vector< hgtrform >::const_iterator getLastTrForm() const