5 #include "DD4hep/DetFactoryHelper.h"
13 dd4hep::SensitiveDetector& ) {
19 double cellDx =
args.value<
double>(
"CellDx");
20 double cellDy =
args.value<
double>(
"CellDy");
21 double cellDz =
args.value<
double>(
"CellDz");
22 double startY =
args.value<
double>(
"StartY");
23 std::vector<std::string> childName =
args.value<std::vector<std::string> >(
"Child");
24 std::vector<int>
number =
args.value<std::vector<int> >(
"Number");
25 std::vector<int>
size =
args.value<std::vector<int> >(
"Size");
26 std::vector<int>
type =
args.value<std::vector<int> >(
"Type");
28 edm::LogVerbatim(
"HCalGeom") <<
"DDHCalForwardAlgo: Cell material " << cellMat <<
"\tCell Size "
31 << childName[0] <<
", " << childName[1] <<
"\n "
32 <<
" Cell positioning done for " <<
number.size() <<
" times";
33 for (
unsigned int i = 0;
i <
number.size(); ++
i)
35 <<
" first child index " <<
type[
i];
36 edm::LogVerbatim(
"HCalGeom") <<
"DDHCalForwardAlgo debug: Parent " <<
args.parentName() <<
" NameSpace " << ns.
name();
44 for (
unsigned int i = 0;
i <
number.size();
i++) {
50 dd4hep::Solid solid = dd4hep::Box(ns.
prepend(
name),
dx, cellDy, cellDz);
52 edm::LogVerbatim(
"HCalGeom") <<
"DDHCalForwardAlgo: " << solid.name() <<
" Box made of " << cellMat <<
" of Size "
60 edm::LogVerbatim(
"HCalGeom") <<
"DDHCalForwardAlgo: " << solid.name() <<
" number " << box <<
" positioned in "
64 double xpos = -
dx + cellDx;
70 edm::LogVerbatim(
"HCalGeom") <<
"DDHCalForwardAlgo: " << childName[indx] <<
" number " <<
k + 1
71 <<
" positioned in " << glog.name() <<
" at (" <<
convertCmToMm(xpos)
72 <<
", 0,0, 0.0) with no rotation";
79 edm::LogVerbatim(
"HCalGeom") <<
"<<== End of DDHCalForwardAlgo construction";