Go to the source code of this file.
◆ algorithm()
static long algorithm |
( |
dd4hep::Detector & |
, |
|
|
cms::DDParsingContext & |
ctxt, |
|
|
xml_h |
e, |
|
|
dd4hep::SensitiveDetector & |
|
|
) |
| |
|
static |
Definition at line 16 of file DDPixPhase1FwdDiskAlgo.cc.
28 std::vector<double> bladeZShift;
38 startCopyNo =
args.find(
"StartCopyNo") ?
args.value<
int>(
"StartCopyNo") : 0;
39 nBlades =
args.value<
int>(
"NumberOfBlades");
40 bladeAngle =
args.value<
double>(
"BladeAngle");
41 bladeTilt = -1. *
args.value<
double>(
"BladeTilt");
42 zPlane =
args.value<
double>(
"BladeCommonZ");
43 anchorR =
args.value<
double>(
"AnchorRadius");
45 bladeZShift =
args.value<std::vector<double> >(
"BladeZShift");
53 edm::LogVerbatim(
"TrackerGeom") <<
"DDPixFwdDiskAlgo debug: Parent " << mother.name() <<
"\tChild " <<
child.name()
54 <<
" NameSpace " << ns.name() <<
"\tRot Name " << rotName <<
"\tCopyNo (Start/Total) "
55 << startCopyNo <<
", " << nBlades <<
"\tAngles " <<
convertRadToDeg(bladeAngle)
56 <<
", " <<
convertRadToDeg(bladeTilt) <<
"\tZshifts " << zPlane <<
"\tAnchor Radius "
59 for (
int iBlade = 0; iBlade < nBlades; ++iBlade) {
60 edm::LogVerbatim(
"TrackerGeom") <<
"DDPixFwdDiskAlgo: Blade " << iBlade <<
" flag " << flagString[iBlade]
61 <<
" zshift " << bladeZShift[iBlade];
64 double deltaPhi = 360.0_deg / (double)nBlades;
65 int copyNo = startCopyNo;
68 for (
int iBlade = 0; iBlade < nBlades; ++iBlade) {
69 if (flagString[iBlade] == flagSelector[0]) {
72 double thety = acos(
sin(bladeTilt));
75 double thetx = acos(-
cos(bladeTilt) *
sin(bladeAngle));
78 double thetz = acos(
cos(bladeTilt) *
cos(bladeAngle));
82 double xpos = -anchorR *
sin(
phi);
83 double ypos = anchorR *
cos(
phi);
84 double zpos = zPlane + bladeZShift[iBlade % nBlades];
87 pv = mother.placeVolume(
child, copyNo, dd4hep::Transform3D(
rot, tran));
References writedatasetfile::args, angle_units::operators::convertRadToDeg(), funct::cos(), SiPixelRawToDigiRegional_cfi::deltaPhi, MillePedeFileConverter_cfg::e, cms::makeRotation3D(), cms::DDNamespace::name(), PixelTestBeamValidation_cfi::Position, MetAnalyzer::pv(), makeMuonMisalignmentScenario::rot, cms::s_executed, funct::sin(), AlCaHLTBitMon_QueryRunRegistry::string, and cms::DDNamespace::volume().
◆ DD4HEP_OPEN_PLUGIN()
DD4HEP_OPEN_PLUGIN |
( |
dd4hep |
, |
|
|
ddcms_det_element_DDCMS_track_DDPixPhase1FwdDiskAlgo |
|
|
) |
| |
dd4hep::Rotation3D makeRotation3D(double thetaX, double phiX, double thetaY, double phiY, double thetaZ, double phiZ)