12 #include <CLHEP/Units/GlobalPhysicalConstants.h> 13 #include <CLHEP/Units/SystemOfUnits.h> 60 startAngle = nArgs[
"StartAngle"];
61 incrAngle = nArgs[
"IncrAngle"];
66 startCopyNo =
int(nArgs[
"StartCopyNo"]);
67 incrCopyNo =
int(nArgs[
"IncrCopyNo"]);
69 LogDebug(
"TECGeom") <<
"DDTECPhiAltAlgo debug: Parameters for " 71 <<
"\tStartAngle " << startAngle / CLHEP::deg <<
"\tIncrAngle " << incrAngle / CLHEP::deg
72 <<
"\tRadius " <<
radius <<
"\tZ in/out " << zIn <<
", " << zOut <<
"\tCopy Numbers " <<
number 73 <<
" Start/Increment " << startCopyNo <<
", " << incrCopyNo;
76 childName = sArgs[
"ChildName"];
78 LogDebug(
"TECGeom") <<
"DDTECPhiAltAlgo debug: Parent " << parentName <<
"\tChild " << childName <<
" NameSpace " 84 double theta = 90. * CLHEP::deg;
85 int copyNo = startCopyNo;
90 double phiz = startAngle +
i * incrAngle;
91 double phix = phiz + 90. * CLHEP::deg;
92 double phideg = phiz / CLHEP::deg;
98 LogDebug(
"TECGeom") <<
"DDTECPhiAltAlgo test: Creating a new " 99 <<
"rotation " << rotstr <<
"\t" <<
theta / CLHEP::deg <<
", " << phix / CLHEP::deg
100 <<
", 0, 0, " <<
theta / CLHEP::deg <<
", " << phiz / CLHEP::deg;
114 LogDebug(
"TECGeom") <<
"DDTECPhiAltAlgo test: " <<
child <<
" number " << copyNo <<
" positioned in " << mother
115 <<
" at " << tran <<
" with " <<
rotation;
116 copyNo += incrCopyNo;
static AlgebraicMatrix initialize()
void position(const DDLogicalPart &self, const DDLogicalPart &parent, const std::string ©no, const DDTranslation &trans, const DDRotation &rot, const DDDivision *div=nullptr)
Sin< T >::type sin(const T &t)
DDName is used to identify DDD entities uniquely.
static std::string & ns()
~DDTECPhiAltAlgo() override
Compact representation of the geometrical detector hierarchy.
static std::string to_string(const XMLCh *ch)
Represents a uniquely identifyable rotation matrix.
U second(std::pair< T, U > const &p)
Cos< T >::type cos(const T &t)
void initialize(const DDNumericArguments &nArgs, const DDVectorArguments &vArgs, const DDMapArguments &mArgs, const DDStringArguments &sArgs, const DDStringVectorArguments &vsArgs) override
#define DEFINE_EDM_PLUGIN(factory, type, name)
std::pair< std::string, std::string > DDSplit(const std::string &n)
split into (name,namespace), separator = ':'
Geom::Theta< T > theta() const
ROOT::Math::DisplacementVector3D< ROOT::Math::Cartesian3D< double > > DDTranslation
void execute(DDCompactView &cpv) override