16 name =
"HGCalEESensitive";
17 std::cout <<
"Reading HGCalGeometry " << name.c_str() <<
"\n";
23 geom->getSummary( tvec, ivec, dvec, dins ) ;
32 tvec = pG->getTranslation() ;
33 dvec = pG->getDimension() ;
34 ivec = pG->getIndexes() ;
35 dins = pG->getDenseIndices();
45 ptr->allocateCorners( topology->ncells());
49 const unsigned int nTrParm( ptr->numberOfTransformParms());
54 DetId id = topology->encode( topology->geomDenseId2decId( it ));
56 int layer = ivec[ it ];
59 const unsigned int jj ( it * nTrParm );
61 const ROOT::Math::Translation3D tl( tvec[jj], tvec[jj+1], tvec[jj+2]);
65 const ROOT::Math::Transform3D rt( ea, tl );
66 double xx,
xy, xz, dx, yx, yy, yz, dy, zx, zy, zz, dz;
67 rt.GetComponents(xx,xy,xz,dx,yx,yy,yz,dy,zx,zy,zz,dz) ;
68 tr =
Tr3D( CLHEP::HepRep3x3( xx, xy, xz,
71 CLHEP::Hep3Vector( dx, dy, dz));
75 dims.reserve( nPerShape );
77 DimVec::const_iterator dsrc( dvec.begin() + layer * nPerShape );
78 for(
unsigned int j ( 0 ) ;
j != nPerShape ; ++
j )
80 dims.push_back( *dsrc ) ;
84 std::vector<GlobalPoint> corners( 8 );
95 0.25*( corners[0].
y() +
99 0.25*( corners[0].
z() +
108 0.25*( corners[4].
y() +
112 0.25*( corners[4].
z() +
119 std::swap_ranges (corners.begin(), corners.begin()+4, corners.begin()+4);
122 ptr->newCell( front, back, corners[0], myParm,
id );
125 ptr->initializeParms();
CaloTopology const * topology(0)
boost::shared_ptr< CaloSubdetectorGeometry > PtrType
const DepRecordT & getRecord() const
CaloSubdetectorGeometry::IVec IVec
T x() const
Cartesian x coordinate.
static void writeIndexed(const TrVec &, const DimVec &, const IVec &, const std::vector< uint32_t > &, std::string)
void swap(edm::DataFrameContainer &lhs, edm::DataFrameContainer &rhs)
static std::string dbString()
PtrType produceAligned(const typename T::AlignedRecord &iRecord)
CaloSubdetectorGeometry::TrVec TrVec
static const CCGFloat * getParmPtr(const std::vector< CCGFloat > &vd, ParMgr *mgr, ParVecVec &pvv)
AlgebraicVector EulerAngles
#define DEFINE_FWK_EVENTSETUP_MODULE(type)
CaloCellGeometry::Tr3D Tr3D
static void createCorners(const std::vector< CCGFloat > &pv, const Tr3D &tr, std::vector< GlobalPoint > &co)
CaloCellGeometry::Tr3D Tr3D
CaloGeometryDBEP< HGCalGeometry, CaloGeometryDBReader > HGCalGeometryFromDBEP
CaloSubdetectorGeometry::DimVec DimVec
CaloCellGeometry::CCGFloat CCGFloat