91 edm::LogInfo(
"EcalGeom") <<
"DDEcalEndcapTrap::rotate(DDTranslation,DDTranslation) - not yet implemented" << std::endl;
104 for (icorner=1; icorner<=8; icorner++) {
130 for (
int icorner=1; icorner<=8; icorner++)
151 double targetPhi =
polarAngle(frontCentre-rearCentre);
158 rotateX(targetTheta-currentTheta);
174 const CLHEP::HepRotation
tmp ( CLHEP::Hep3Vector(1.,0.,0.), angle ) ;
177 tmp.yx(), tmp.yy(), tmp.yz(),
178 tmp.zx(), tmp.zy(), tmp.zz() ) );
187 const CLHEP::HepRotation
tmp ( CLHEP::Hep3Vector(0.,1.,0.), angle ) ;
190 tmp.yx(), tmp.yy(), tmp.yz(),
191 tmp.zx(), tmp.zy(), tmp.zz() ) );
202 for (ixyz = 0; ixyz <3; ixyz++)
209 for (icorner=1; icorner<=4; icorner++)
211 for (ixyz=0; ixyz<3; ixyz++) {
216 for (icorner=5; icorner<=8; icorner++) {
217 for (ixyz=0; ixyz<3; ixyz++) {
242 for (
int ixyz=0; ixyz<3; ixyz++)
244 m_corners[3*icorner-3+ixyz] = ( 0==ixyz ? cornerxyz.x() :
245 ( 1==ixyz ? cornerxyz.y() :
287 double sintheta = trans.y()/trans.r();
288 return asin(sintheta);
307 double tanphi = trans.x()/trans.z();
327 edm::LogInfo(
"EcalGeom") <<
"Endcap supercrystal" << std::endl;
328 for (
int ic=1; ic<=8; ic++)
331 edm::LogInfo(
"EcalGeom") <<
"Corner " << ic <<
" " << cc << std::endl;
void moveto(const DDTranslation frontCentre, const DDTranslation rearCentre)
void rotateY(const double angle)
DDRotationMatrix m_rotation
DDTranslation cornerPos(const int icorner)
DDTranslation rcentrePos()
ROOT::Math::DisplacementVector3D< ROOT::Math::Cartesian3D< double > > DDTranslation
DDTranslation fcentrePos()
DDTranslation m_translation
void rotate(const DDRotationMatrix rot)
std::vector< std::vector< double > > tmp
DDTranslation centrePos()
ROOT::Math::Rotation3D DDRotationMatrix
A DDRotationMatrix is currently implemented with a ROOT Rotation3D.
T angle(T x1, T y1, T z1, T x2, T y2, T z2)
void rotateX(const double angle)