Go to the source code of this file.
◆ algorithm()
Definition at line 11 of file DDTIDRingAlgo.cc.
References writedatasetfile::args, angle_units::operators::convertRadToDeg(), funct::cos(), MillePedeFileConverter_cfg::e, mps_fire::i, cms::makeRotation3D(), callgraph::module, EcalCalibMonitorClient_cfi::moduleName, cms::DDNamespace::name(), contentValuesFiles::number, PixelTestBeamValidation_cfi::Position, idealTransformation::rotation, funct::sin(), theta(), and cms::DDNamespace::volume().
15 vector<string>
moduleName =
args.value<vector<string> >(
"ModuleName");
16 string iccName =
args.value<
string>(
"ICCName");
18 double startAngle =
args.value<
double>(
"StartAngle");
19 double rModule =
args.value<
double>(
"ModuleR");
20 vector<double> zModule =
args.value<vector<double> >(
"ModuleZ");
21 double rICC =
args.value<
double>(
"ICCR");
22 double sICC =
args.value<
double>(
"ICCShift");
23 vector<double> zICC =
args.value<vector<double> >(
"ICCZ");
26 <<
"\tICC " << iccName <<
"\tNameSpace " << ns.name();
29 <<
" Modules at R " << rModule <<
" Z " << zModule[0] <<
", " << zModule[1]
30 <<
" ICCs at R " << rICC <<
" Z " << zICC[0] <<
", " << zICC[1];
31 double theta = 90._deg;
33 double dphi = 2_pi /
number;
36 Volume icc = ns.volume(iccName);
41 double phiz = startAngle +
i * dphi;
42 double xpos = rModule *
cos(phiz);
43 double ypos = rModule *
sin(phiz);
44 double zpos, thetay, phix;
47 phix = phiz + 90._deg;
52 phix = phiz - 90._deg;
59 phix = phix - 180._deg;
60 thetay = thetay + 180._deg;
66 edm::LogVerbatim(
"TIDGeom") <<
module.name() <<
" number " <<
i + 1 <<
" positioned in " << mother.name() <<
" at " 71 xpos = rICC *
cos(phiz) + sICC *
sin(phiz);
72 ypos = rICC *
sin(phiz) - sICC *
cos(phiz);
75 xpos = rICC *
cos(phiz) - sICC *
sin(phiz);
76 ypos = rICC *
sin(phiz) + sICC *
cos(phiz);
80 mother.placeVolume(icc,
i + 1, Transform3D(
rotation, tricc));
81 edm::LogVerbatim(
"TIDGeom") << icc.name() <<
" number " <<
i + 1 <<
" positioned in " << mother.name() <<
" at " Log< level::Info, true > LogVerbatim
constexpr NumType convertRadToDeg(NumType radians)
Sin< T >::type sin(const T &t)
DDRotationMatrix makeRotation3D(double thetaX, double phiX, double thetaY, double phiY, double thetaZ, double phiZ)
Cos< T >::type cos(const T &t)
Geom::Theta< T > theta() const
◆ DD4HEP_OPEN_PLUGIN()
DD4HEP_OPEN_PLUGIN |
( |
dd4hep |
, |
|
|
ddcms_det_element_DDCMS_track_DDTIDRingAlgo |
|
|
) |
| |