16 #include "CLHEP/Units/GlobalPhysicalConstants.h"
17 #include "CLHEP/Units/GlobalSystemOfUnits.h"
21 LogDebug(
"TIDGeom") <<
"DDTIDRingAlgo info: Creating an instance";
36 LogDebug(
"TIDGeom") <<
"DDTIDRingAlgo debug: Parent " << parentName
41 number = int (nArgs[
"Number"]);
46 sICC = nArgs[
"ICCShift"];
49 LogDebug(
"TIDGeom") <<
"DDTIDRingAlgo debug: Parameters for positioning--"
51 <<
" Copy Numbers " <<
number <<
" Modules at R "
53 <<
" ICCs at R " <<
rICC <<
" Z " <<
zICC[0] <<
", "
59 double theta = 90.*CLHEP::deg;
60 double phiy = 0.*CLHEP::deg;
61 double dphi = CLHEP::twopi/
number;
74 double zpos, thetay, phix;
76 phix = phiz + 90.*CLHEP::deg;
77 thetay = 0*CLHEP::deg;
82 phix = phiz - 90.*CLHEP::deg;
83 thetay = 180*CLHEP::deg;
90 phix = phix - 180.*CLHEP::deg;
91 thetay = thetay + 180.*CLHEP::deg;
95 double phideg = phiz/CLHEP::deg;
100 LogDebug(
"TIDGeom") <<
"DDTIDRingAlgo test: Creating a new rotation "
101 << rotstr <<
"\t" << theta/CLHEP::deg <<
", "
102 << phix/CLHEP::deg <<
", " << thetay/CLHEP::deg
103 <<
", " << phiy/CLHEP::deg <<
", "
104 << theta/CLHEP::deg <<
", " << phiz/CLHEP::deg;
109 cpv.
position(module, mother,
i+1, trmod, rotation);
110 LogDebug(
"TIDGeom") <<
"DDTIDRingAlgo test: " << module <<
" number "
111 <<
i+1 <<
" positioned in " << mother <<
" at "
125 cpv.
position(icc, mother,
i+1, tricc, rotation);
126 LogDebug(
"TIDGeom") <<
"DDTIDRingAlgo test: " << icc <<
" number "
127 <<
i+1 <<
" positioned in " << mother <<
" at "
std::vector< double > zICC
Sin< T >::type sin(const T &t)
void initialize(const DDNumericArguments &nArgs, const DDVectorArguments &vArgs, const DDMapArguments &mArgs, const DDStringArguments &sArgs, const DDStringVectorArguments &vsArgs)
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()
std::string dbl_to_string(const double &in)
Converts only the integer part of a double to a string.
type of data representation of DDCompactView
ROOT::Math::DisplacementVector3D< ROOT::Math::Cartesian3D< double > > DDTranslation
Represents a uniquely identifyable rotation matrix.
U second(std::pair< T, U > const &p)
std::vector< std::string > moduleName
Cos< T >::type cos(const T &t)
void execute(DDCompactView &cpv)
std::vector< double > zModule
std::pair< std::string, std::string > DDSplit(const std::string &n)
split into (name,namespace), separator = ':'
const std::string & name() const
Returns the name.