|
|
Go to the documentation of this file.
65 startAngle = nArgs[
"startAngle"];
66 stepAngle = nArgs[
"stepAngle"];
67 zoffset = nArgs[
"zoffset"];
69 startCopyNo =
int(nArgs[
"startCopyNo"]);
70 incrCopyNo =
int(nArgs[
"incrCopyNo"]);
72 edm::LogVerbatim(
"MuonGeom") <<
"DDMuonAngular: Parameters for positioning-- " <<
n <<
" copies in steps of "
74 << zoffset <<
"\tStart and inremental copy nos " << startCopyNo <<
", " << incrCopyNo;
76 rotns = sArgs[
"RotNameSpace"];
78 childName = sArgs[
"ChildName"];
80 edm::LogVerbatim(
"MuonGeom") <<
"DDMuonAngular debug: Parent " <<
parent().name() <<
"\tChild " << childName
81 <<
"\tNameSpace " << idNameSpace <<
"\tRotation Namespace " << rotns;
86 double phi = startAngle;
87 int copyNo = startCopyNo;
89 for (
int ii = 0;
ii <
n;
ii++) {
105 rotation =
DDrot(
DDName(rotstr, rotns), 90._deg, phitmp, 90._deg, 90._deg + phitmp, 0., 0.);
114 edm::LogVerbatim(
"MuonGeom") <<
"DDMuonAngular: " <<
DDName(childName, idNameSpace) <<
" number " << copyNo
115 <<
" positioned in " << parentName <<
" at " << tran <<
" with " << rotstr <<
" "
119 copyNo += incrCopyNo;
DDName is used to identify DDD entities uniquely.
constexpr NumType convertRadToDeg(NumType radians)
ROOT::Math::DisplacementVector3D< ROOT::Math::Cartesian3D< double > > DDTranslation
Compact representation of the geometrical detector hierarchy.
~DDMuonAngular() override
std::string formatAsDegrees(double radianVal)
#define DEFINE_EDM_PLUGIN(factory, type, name)
static std::string & ns()
void execute(DDCompactView &cpv) override
void initialize(const DDNumericArguments &nArgs, const DDVectorArguments &vArgs, const DDMapArguments &mArgs, const DDStringArguments &sArgs, const DDStringVectorArguments &vsArgs) override
Represents a uniquely identifyable rotation matrix.
Abs< T >::type abs(const T &t)
void position(const DDLogicalPart &self, const DDLogicalPart &parent, const std::string ©no, const DDTranslation &trans, const DDRotation &rot, const DDDivision *div=nullptr)
ROOT::Math::Rotation3D DDRotation