15 #include "CLHEP/Units/GlobalPhysicalConstants.h" 16 #include "CLHEP/Units/GlobalSystemOfUnits.h" 20 LogDebug(
"TIDGeom") <<
"DDTIDRingAlgo info: Creating an instance";
35 LogDebug(
"TIDGeom") <<
"DDTIDRingAlgo debug: Parent " << parentName
45 sICC = nArgs[
"ICCShift"];
48 LogDebug(
"TIDGeom") <<
"DDTIDRingAlgo debug: Parameters for positioning--" 50 <<
" Copy Numbers " <<
number <<
" Modules at R " 52 <<
" ICCs at R " <<
rICC <<
" Z " <<
zICC[0] <<
", " 58 double theta = 90.*CLHEP::deg;
59 double phiy = 0.*CLHEP::deg;
60 double dphi = CLHEP::twopi/
number;
73 double zpos, thetay, phix;
75 phix = phiz + 90.*CLHEP::deg;
76 thetay = 0*CLHEP::deg;
81 phix = phiz - 90.*CLHEP::deg;
82 thetay = 180*CLHEP::deg;
89 phix = phix - 180.*CLHEP::deg;
90 thetay = thetay + 180.*CLHEP::deg;
94 double phideg = phiz/CLHEP::deg;
99 LogDebug(
"TIDGeom") <<
"DDTIDRingAlgo test: Creating a new rotation " 100 << rotstr <<
"\t" << theta/CLHEP::deg <<
", " 101 << phix/CLHEP::deg <<
", " << thetay/CLHEP::deg
102 <<
", " << phiy/CLHEP::deg <<
", " 103 << theta/CLHEP::deg <<
", " << phiz/CLHEP::deg;
108 cpv.
position(module, mother,
i+1, trmod, rotation);
109 LogDebug(
"TIDGeom") <<
"DDTIDRingAlgo test: " << module <<
" number " 110 <<
i+1 <<
" positioned in " << mother <<
" at " 124 cpv.
position(icc, mother,
i+1, tricc, rotation);
125 LogDebug(
"TIDGeom") <<
"DDTIDRingAlgo test: " << icc <<
" number " 126 <<
i+1 <<
" positioned in " << mother <<
" at "
std::vector< double > zICC
void execute(DDCompactView &cpv) override
Sin< T >::type sin(const T &t)
Geom::Theta< T > theta() const
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
Represents a uniquely identifyable rotation matrix.
U second(std::pair< T, U > const &p)
std::vector< std::string > moduleName
~DDTIDRingAlgo() override
Cos< T >::type cos(const T &t)
std::vector< double > zModule
void position(const DDLogicalPart &self, const DDLogicalPart &parent, const std::string ©no, const DDTranslation &trans, const DDRotation &rot, const DDDivision *div=0)
std::pair< std::string, std::string > DDSplit(const std::string &n)
split into (name,namespace), separator = ':'
void initialize(const DDNumericArguments &nArgs, const DDVectorArguments &vArgs, const DDMapArguments &mArgs, const DDStringArguments &sArgs, const DDStringVectorArguments &vsArgs) override
const std::string & name() const
Returns the name.