13 #include "CLHEP/Units/GlobalPhysicalConstants.h"
14 #include "CLHEP/Units/GlobalSystemOfUnits.h"
18 LogDebug(
"TrackerGeom") <<
"DDTrackerAngular info: Creating an instance";
37 if (fabs(
rangeAngle-360.0*CLHEP::deg)<0.001*CLHEP::deg) {
47 LogDebug(
"TrackerGeom") <<
"DDTrackerAngular debug: Parameters for position"
48 <<
"ing:: n " <<
n <<
" Start, Range, Delta "
58 LogDebug(
"TrackerGeom") <<
"DDTrackerAngular debug: Parent " << parentName
59 <<
"\tChild " <<
childName <<
" NameSpace "
67 double theta = 90.*CLHEP::deg;
70 for (
int i=0;
i<
n;
i++) {
72 double phiy = phix + 90.*CLHEP::deg;
73 double phideg = phix/CLHEP::deg;
80 LogDebug(
"TrackerGeom") <<
"DDTrackerAngular test: Creating a new "
81 <<
"rotation: " << rotstr <<
"\t90., "
82 << phix/CLHEP::deg <<
", 90.,"
83 << phiy/CLHEP::deg <<
", 0, 0";
90 double ypos =
radius*
sin(phi) + center[1];
91 double zpos = center[2];
94 cpv.
position(child, mother, copy, tran, rotation);
95 LogDebug(
"TrackerGeom") <<
"DDTrackerAngular test " << child <<
" number "
96 << copy <<
" positioned in " << mother <<
" at "
Sin< T >::type sin(const T &t)
std::vector< double > center
Geom::Theta< T > theta() const
void position(const DDLogicalPart &self, const DDLogicalPart &parent, std::string copyno, const DDTranslation &trans, const DDRotation &rot, const DDDivision *div=NULL)
DDName is used to identify DDD entities uniquely.
static std::string & ns()
type of data representation of DDCompactView
ROOT::Math::DisplacementVector3D< ROOT::Math::Cartesian3D< double > > DDTranslation
void execute(DDCompactView &cpv)
Represents a uniquely identifyable rotation matrix.
U second(std::pair< T, U > const &p)
void initialize(const DDNumericArguments &nArgs, const DDVectorArguments &vArgs, const DDMapArguments &mArgs, const DDStringArguments &sArgs, const DDStringVectorArguments &vsArgs)
Cos< T >::type cos(const T &t)
virtual ~DDTrackerAngular()
std::pair< std::string, std::string > DDSplit(const std::string &n)
split into (name,namespace), separator = ':'