70 rPos = nArgs[
"rPosition"];
76 edm::LogVerbatim(
"MuonGeom") <<
"DDGEMAngular: Parameters for positioning-- " <<
n <<
" copies in steps of " 79 <<
"\tStart and inremental " 83 rotns = sArgs[
"RotNameSpace"];
96 for (
int ii = 0;
ii <
n;
ii++) {
108 double thetax = 90.0_deg;
109 double phix =
invert == 0 ? (90.0_deg + phitmp) : (-90.0_deg + phitmp);
110 double thetay =
invert == 0 ? 0.0 : 180.0_deg;
111 double phiz = phitmp;
118 rotation =
DDrot(
DDName(rotstr,
rotns), thetax, phix, thetay, 0., thetax, phiz);
127 <<
" positioned in " << parentName <<
" at " << tran <<
" with " << rotstr <<
" "
constexpr NumType convertRadToDeg(NumType radians)
void initialize(const DDNumericArguments &nArgs, const DDVectorArguments &vArgs, const DDMapArguments &mArgs, const DDStringArguments &sArgs, const DDStringVectorArguments &vsArgs) override
Sin< T >::type sin(const T &t)
DDName is used to identify DDD entities uniquely.
static std::string & ns()
Compact representation of the geometrical detector hierarchy.
ROOT::Math::DisplacementVector3D< ROOT::Math::Cartesian3D< double > > DDTranslation
Represents a uniquely identifyable rotation matrix.
void execute(DDCompactView &cpv) override
Cos< T >::type cos(const T &t)
std::string formatAsDegrees(double radianVal)
void position(const DDLogicalPart &self, const DDLogicalPart &parent, const std::string ©no, const DDTranslation &trans, const DDRotation &rot, const DDDivision *div=0)
#define DEFINE_EDM_PLUGIN(factory, type, name)
ROOT::Math::Rotation3D DDRotation