#include <cmath>
#include "DetectorDescription/Core/interface/DDTransform.h"
#include "DetectorDescription/Base/interface/DDTranslation.h"
#include "DetectorDescription/Base/interface/DDdebug.h"
#include "CLHEP/Units/GlobalSystemOfUnits.h"
#include <Math/AxisAngle.h>
#include <sstream>
#include <cstdlib>
#include <atomic>
#include "FWCore/MessageLogger/interface/MessageLogger.h"
Go to the source code of this file.
Functions | |
DDRotation | DDanonymousRot (DDRotationMatrix *rot) |
Defines a anonymous rotation or rotation-reflection matrix. More... | |
DDRotationMatrix * | DDcreateRotationMatrix (double thetaX, double phiX, double thetaY, double phiY, double thetaZ, double phiZ) |
create a new DDRotationMatrix in the GEANT3 style. More... | |
DDRotation | DDrot (const DDName &ddname, DDRotationMatrix *rot) |
Definition of a uniquely identifiable rotation matrix named by DDName name. More... | |
DDRotation | DDrot (const DDName &ddname, double thetaX, double phiX, double thetaY, double phiY, double thetaZ, double phiZ) |
Definition of a uniquely identifiable rotation matrix named by DDName name in the GEANT3 style. More... | |
DDRotation | DDrotReflect (const DDName &ddname, DDRotationMatrix *rot) |
DDRotation | DDrotReflect (const DDName &ddname, double thetaX, double phiX, double thetaY, double phiY, double thetaZ, double phiZ) |
Defines a rotation-reflection in the Geant3 way. More... | |
std::ostream & | operator<< (std::ostream &os, const DDRotation &r) |
DDRotation DDanonymousRot | ( | DDRotationMatrix * | rot | ) |
Defines a anonymous rotation or rotation-reflection matrix.
It can't be addressed by a unique DDName. Once created, it's the users responsibility to keep the reference object DDRotation! Will be mostly used by algorithmic positioning.
Definition at line 194 of file DDRotation.cc.
Referenced by DDTIBLayerAlgo::execute(), DDStreamer::pos_read(), MeasuredGeometryProducer::positionDetectors(), and MeasuredGeometryProducer::positionEverythingButDetectors().
DDRotationMatrix* DDcreateRotationMatrix | ( | double | thetaX, |
double | phiX, | ||
double | thetaY, | ||
double | phiY, | ||
double | thetaZ, | ||
double | phiZ | ||
) |
create a new DDRotationMatrix in the GEANT3 style.
The Matrix must be orthonormal - left or right handed - otherwise a DDException is thrown; memory of the returned pointer belongs to the caller
Definition at line 165 of file DDRotation.cc.
References trackerTree::check(), funct::cos(), Exception, connectstrParser::o, funct::sin(), x(), detailsBasic3DVector::y, and detailsBasic3DVector::z.
Referenced by DDHGCalNoTaperEndcap::createQuarter(), DDAngular::execute(), and DDTIBLayerAlgo::execute().
DDRotation DDrot | ( | const DDName & | ddname, |
DDRotationMatrix * | rot | ||
) |
Definition of a uniquely identifiable rotation matrix named by DDName name.
DDrot() returns a reference-object DDRotation representing the rotation matrix rot.
The user must not free memory allocated for rot!
Definition at line 90 of file DDRotation.cc.
Referenced by DDPixFwdBlades::computeNippleParameters(), DDHCalBarrelAlgo::constructGeneralVolume(), DDHCalEndcapAlgo::constructGeneralVolume(), DDHGCalNoTaperEndcap::createQuarter(), DDLinear::execute(), DDAngular::execute(), DDTIDModulePosAlgo::execute(), DDPixBarTPGStackLayerAlgo::execute(), DDPixFwdDiskAlgo::execute(), DDTECOptoHybAlgo::execute(), DDHCalAngular::execute(), DDTIBLayerAlgo::execute(), DDHCalTBCableAlgo::execute(), DDHCalTBZposAlgo::execute(), DDHCalTestBeamAlgo::execute(), DDHCalXtalAlgo::execute(), DDPixBarLayerUpgradeAlgoCoverage::execute(), DDPixBarStackLayerAlgo::execute(), DDPixBarStackTrigLayerAlgo::execute(), DDHGCalWaferAlgo::execute(), DDTIBLayerAlgo_MTCC::execute(), DDPixBarLayerUpgradeAlgo::execute(), DDGEMAngular::execute(), DDMuonAngular::execute(), DDPixBarLayerAlgo::execute(), DDTrackerPhiAltAlgo::execute(), DDTECAxialCableAlgo::execute(), DDTrackerAngular::execute(), DDTECPhiAlgo::execute(), DDTECPhiAltAlgo::execute(), DDTrackerPhiAlgo::execute(), DDHCalFibreBundle::execute(), DDTIDAxialCableAlgo::execute(), DDTIDRingAlgo::execute(), DDTrackerAngularV1::execute(), DDTrackerRingAlgo::execute(), DDPixFwdBlades::execute(), DDDividedConsPhi::makeDDRotation(), DDDividedTubsPhi::makeDDRotation(), DDDividedPolyconePhi::makeDDRotation(), DDDividedPolyhedraPhi::makeDDRotation(), DDTBH4Algo::myrot(), DDEcalBarrelAlgo::myrot(), DDEcalBarrelNewAlgo::myrot(), DDEcalEndcapAlgo::myrot(), DDLPosPart::processElement(), DDLRotationSequence::processElement(), DDLRotationAndReflection::processElement(), DDLRotationByAxis::processElement(), regressionTest_first(), and regressionTest_setup().
DDRotation DDrot | ( | const DDName & | name, |
double | thetaX, | ||
double | phiX, | ||
double | thetaY, | ||
double | phiY, | ||
double | thetaZ, | ||
double | phiZ | ||
) |
Definition of a uniquely identifiable rotation matrix named by DDName name in the GEANT3 style.
DDrot() returns a reference-object DDRotation representing the rotation matrix.
Definition at line 99 of file DDRotation.cc.
References trackerTree::check(), funct::cos(), Exception, DDName::name(), makeMuonMisalignmentScenario::rot, funct::sin(), x(), detailsBasic3DVector::y, and detailsBasic3DVector::z.
DDRotation DDrotReflect | ( | const DDName & | ddname, |
DDRotationMatrix * | rot | ||
) |
Definition at line 125 of file DDRotation.cc.
DDRotation DDrotReflect | ( | const DDName & | ddname, |
double | thetaX, | ||
double | phiX, | ||
double | thetaY, | ||
double | phiY, | ||
double | thetaZ, | ||
double | phiZ | ||
) |
Defines a rotation-reflection in the Geant3 way.
The resulting matrix MUST be a LEFThanded orthonormal system, otherwise a DDException will be thrown!
Definition at line 135 of file DDRotation.cc.
References trackerTree::check(), funct::cos(), Exception, DDName::name(), makeMuonMisalignmentScenario::rot, funct::sin(), x(), detailsBasic3DVector::y, and detailsBasic3DVector::z.
Referenced by DDLRotationAndReflection::processElement().
std::ostream& operator<< | ( | std::ostream & | os, |
const DDRotation & | r | ||
) |
Definition at line 20 of file DDRotation.cc.
References DCOUT_V, DDBase< N, C >::isDefined(), submit::rm, and DDRotation::rotation().