Definition at line 11 of file DDHCalForwardAlgo.cc.
References writedatasetfile::args, cms::convert2mm(), DDSplit(), PVValHelper::dx, first, mps_fire::i, dqmiolumiharvest::j, isotrackApplyRegressor::k, cms::DDNamespace::material(), mergeVDriftHistosByStation::name, cms::DDNamespace::name(), contentValuesFiles::number, SpecificationBuilder_cfi::parent(), cms::DDAlgoArguments::parentName(), PixelTestBeamValidation_cfi::Position, cms::DDNamespace::prepend(), cms::s_executed, findQualityFiles::size, AlCaHLTBitMon_QueryRunRegistry::string, cms::DDAlgoArguments::value(), and cms::DDNamespace::volume().
17 double cellDx =
args.value<
double>(
"CellDx");
18 double cellDy =
args.value<
double>(
"CellDy");
19 double cellDz =
args.value<
double>(
"CellDz");
20 double startY =
args.value<
double>(
"StartY");
21 std::vector<std::string> childName =
args.value<std::vector<std::string> >(
"Child");
22 std::vector<int>
number =
args.value<std::vector<int> >(
"Number");
23 std::vector<int>
size =
args.value<std::vector<int> >(
"Size");
24 std::vector<int>
type =
args.value<std::vector<int> >(
"Type");
26 edm::LogVerbatim(
"HCalGeom") <<
"DDHCalForwardAlgo: Cell material " << cellMat <<
"\tCell Size "
29 << childName[0] <<
", " << childName[1]
30 <<
"\n Cell positioning done for " << number.size() <<
" times";
31 for (
unsigned int i = 0;
i < number.size(); ++
i)
32 edm::LogVerbatim(
"HCalGeom") <<
"\t" <<
i <<
" Number of children " << size[
i] <<
" occurence " << number[
i]
33 <<
" first child index " << type[
i];
34 edm::LogVerbatim(
"HCalGeom") <<
"DDHCalForwardAlgo debug: Parent " <<
args.parentName() <<
" NameSpace " << ns.name();
38 dd4hep::Material matter = ns.material(cellMat);
42 for (
unsigned int i = 0;
i < number.size();
i++) {
43 double dx = cellDx * size[
i];
45 for (
int j = 0;
j < number[
i];
j++) {
48 dd4hep::Solid solid = dd4hep::Box(ns.prepend(name),
dx, cellDy, cellDz);
50 edm::LogVerbatim(
"HCalGeom") <<
"DDHCalForwardAlgo: " << solid.name() <<
" Box made of " << cellMat <<
" of Size "
58 edm::LogVerbatim(
"HCalGeom") <<
"DDHCalForwardAlgo: " << solid.name() <<
" number " << box <<
" positioned in "
60 <<
", 0.0) with no rotation";
63 double xpos = -dx + cellDx;
66 for (
int k = 0;
k < size[
i]; ++
k) {
67 glog.placeVolume(ns.volume(childName[indx]),
k + 1,
dd4hep::Position(xpos, 0.0, 0.0));
69 edm::LogVerbatim(
"HCalGeom") <<
"DDHCalForwardAlgo: " << childName[indx] <<
" number " << (
k + 1)
71 <<
", 0,0, 0.0) with no rotation";
78 edm::LogVerbatim(
"HCalGeom") <<
"<<== End of DDHCalForwardAlgo construction";
Log< level::Info, true > LogVerbatim
constexpr NumType convert2mm(NumType length)
static constexpr long s_executed
std::pair< std::string, std::string > DDSplit(const std::string &n)
split into (name,namespace), separator = ':'
tuple size
Write out results.