13 using std::ostringstream;
14 using std::istringstream;
25 : m_LogLevel(ps.
get<
Index>(
"LogLevel")),
26 m_IndexRangeTool(ps.
get<
Name>(
"IndexRangeTool")) {
27 const Name myname =
"ProtoDuneChannelGroups::ctor: ";
35 cout << myname <<
"WARNING: No Index range tool name." <<
endl;
38 m_labels[
"tpss"].push_back(
"TPC sets");
40 NameVector soris = {
"z",
"c",
"x",
"u",
"v",
"i"};
41 for (
Name sori : soris ) {
42 m_labels[
"tpp" + sori +
"s"].push_back(sori +
" planes");
43 m_labels[
"apa" + sori +
"s"].push_back(sori +
" planes");
45 for (
Index itps=0; itps<napa; ++itps ) {
48 Name stps = sstps.str();
49 Index iapa = itps + 1;
52 Name sapa = ssapa.str();
53 m_groups[
"tpss"].push_back(
"tps" + stps);
54 m_groups[
"apas"].push_back(
"apa" + sapa);
55 for (
Name sori : soris ) {
56 m_groups[
"tpp" + sori +
"s"].push_back(
"tpp" + stps + sori);
57 m_groups[
"apa" + sori +
"s"].push_back(
"apa" + sapa + sori);
61 for (
Index iapa=1; iapa<=napa; ++iapa ) {
62 for (
Index ifmb=1; ifmb<=nfmb; ++ifmb ) {
64 ssgrp <<
"femb" << iapa;
65 if ( ifmb < 10 ) ssgrp <<
"0";
67 Name sgrp = ssgrp.str();
68 m_groups[sgrp].push_back(sgrp +
"u");
69 m_groups[sgrp].push_back(sgrp +
"v");
70 m_groups[sgrp].push_back(sgrp +
"x");
71 Name slab =
"FEMB " + sgrp.substr(4);
83 const Name myname =
"ProtoDuneChannelGroups::get: ";
85 if (
m_LogLevel >= 2 ) cout << myname <<
"No IndexRangeTool." <<
endl;
90 if (
m_LogLevel >= 2 ) cout << myname <<
"Invalid group name: " << nam <<
endl;
94 for (
Name rnam : igrp->second ) {
std::vector< Name > NameVector
IndexRangeGroup get(Name nam) const override
std::vector< IndexRange > RangeVector
ChannelGroupService::Name Name
static constexpr double ps
Q_EXPORT QTSManip setw(int w)
IndexRangeGroup::Index Index
const IndexRangeTool * m_pIndexRangeTool
ProtoDuneChannelGroups(fhicl::ParameterSet const &ps)
auto const & get(AssnsNode< L, R, D > const &r)
Q_EXPORT QTSManip setfill(int f)
QTextStream & endl(QTextStream &s)