![]() |
![]() |
#include <DDMuonAngular.h>
Public Member Functions | |
DDMuonAngular () | |
void | execute (DDCompactView &cpv) |
void | initialize (const DDNumericArguments &nArgs, const DDVectorArguments &vArgs, const DDMapArguments &mArgs, const DDStringArguments &sArgs, const DDStringVectorArguments &vsArgs) |
virtual | ~DDMuonAngular () |
Private Attributes | |
std::string | childName |
std::string | idNameSpace |
int | incrCopyNo |
int | n |
std::string | rotns |
double | startAngle |
int | startCopyNo |
double | stepAngle |
double | zoffset |
Definition at line 10 of file DDMuonAngular.h.
DDMuonAngular::DDMuonAngular | ( | ) |
Definition at line 16 of file DDMuonAngular.cc.
{ edm::LogInfo("MuonGeom") << "DDMuonAngular test: Creating an instance"; }
DDMuonAngular::~DDMuonAngular | ( | ) | [virtual] |
Definition at line 20 of file DDMuonAngular.cc.
{}
void DDMuonAngular::execute | ( | DDCompactView & | cpv | ) |
Definition at line 49 of file DDMuonAngular.cc.
References childName, dbl_to_string(), DDrot(), idNameSpace, incrCopyNo, createXMLFile::iphi, n, dbtoconf::parent, phi, DDCompactView::position(), idealTransformation::rotation, rotns, startAngle, startCopyNo, stepAngle, AlCaHLTBitMon_QueryRunRegistry::string, and zoffset.
{ double phi = startAngle; int copyNo = startCopyNo; for (int ii=0; ii<n; ii++) { double phideg = phi/CLHEP::deg; int iphi; if (phideg > 0) iphi = int(phideg+0.1); else iphi = int(phideg-0.1); if (iphi >= 360) iphi -= 360; phideg = iphi; DDRotation rotation; std::string rotstr("NULL"); if (iphi != 0) { rotstr = "R"; if (phideg >=0 && phideg < 10) rotstr = "R00"; else if (phideg < 100) rotstr = "R0"; rotstr = rotstr + dbl_to_string(phideg); rotation = DDRotation(DDName(rotstr, rotns)); if (!rotation) { edm::LogInfo("MuonGeom") << "DDMuonAngular test: Creating a new rotation " << DDName(rotstr, idNameSpace) << "\t90, " << phideg << ", 90, " << (phideg+90) << ", 0, 0"; rotation = DDrot(DDName(rotstr, rotns), 90*CLHEP::deg, phideg*CLHEP::deg, 90*CLHEP::deg, (90+phideg)*CLHEP::deg, 0*CLHEP::deg, 0*CLHEP::deg); } } DDTranslation tran(0, 0, zoffset); DDName parentName = parent().name(); cpv.position(DDName(childName,idNameSpace), parentName, copyNo, tran, rotation); edm::LogInfo("MuonGeom") << "DDMuonAngular test: " << DDName(childName, idNameSpace) << " number " << copyNo << " positioned in " << parentName << " at " << tran << " with " << rotstr << " " << rotation; phi += stepAngle; copyNo += incrCopyNo; } }
void DDMuonAngular::initialize | ( | const DDNumericArguments & | nArgs, |
const DDVectorArguments & | vArgs, | ||
const DDMapArguments & | mArgs, | ||
const DDStringArguments & | sArgs, | ||
const DDStringVectorArguments & | vsArgs | ||
) |
Definition at line 22 of file DDMuonAngular.cc.
References childName, idNameSpace, incrCopyNo, n, DDCurrentNamespace::ns(), dbtoconf::parent, rotns, startAngle, startCopyNo, stepAngle, and zoffset.
{ startAngle = nArgs["startAngle"]; stepAngle = nArgs["stepAngle"]; zoffset = nArgs["zoffset"]; n = int (nArgs["n"]); startCopyNo = int (nArgs["startCopyNo"]); incrCopyNo = int (nArgs["incrCopyNo"]); edm::LogInfo("MuonGeom") << "DDMuonAngular debug: Parameters for positioning-- " << n << " copies in steps of " << stepAngle/CLHEP::deg << " from " << startAngle/CLHEP::deg << " \tZoffest " << zoffset << "\tStart and inremental copy nos " << startCopyNo << ", " << incrCopyNo; rotns = sArgs["RotNameSpace"]; idNameSpace = DDCurrentNamespace::ns(); childName = sArgs["ChildName"]; DDName parentName = parent().name(); edm::LogInfo("MuonGeom") << "DDMuonAngular debug: Parent " << parentName << "\tChild " << childName << "\tNameSpace " << idNameSpace << "\tRotation Namespace " << rotns; }
std::string DDMuonAngular::childName [private] |
Definition at line 35 of file DDMuonAngular.h.
Referenced by execute(), and initialize().
std::string DDMuonAngular::idNameSpace [private] |
Definition at line 34 of file DDMuonAngular.h.
Referenced by execute(), and initialize().
int DDMuonAngular::incrCopyNo [private] |
Definition at line 31 of file DDMuonAngular.h.
Referenced by execute(), and initialize().
int DDMuonAngular::n [private] |
Definition at line 29 of file DDMuonAngular.h.
Referenced by execute(), and initialize().
std::string DDMuonAngular::rotns [private] |
Definition at line 33 of file DDMuonAngular.h.
Referenced by execute(), and initialize().
double DDMuonAngular::startAngle [private] |
Definition at line 26 of file DDMuonAngular.h.
Referenced by execute(), and initialize().
int DDMuonAngular::startCopyNo [private] |
Definition at line 30 of file DDMuonAngular.h.
Referenced by execute(), and initialize().
double DDMuonAngular::stepAngle [private] |
Definition at line 27 of file DDMuonAngular.h.
Referenced by execute(), and initialize().
double DDMuonAngular::zoffset [private] |
Definition at line 28 of file DDMuonAngular.h.
Referenced by execute(), and initialize().