42 : fChannelMapClass{pset.
get<
string>(
"ChannelMapClass", {})}
48 std::unique_ptr<geo::ChannelMapAlg>
52 std::unique_ptr<geo::ChannelMapAlg> channelMap{
nullptr};
56 bool useApaMap =
false;
64 channelMap = std::make_unique<geo::ChannelMap35Alg>(pset);
66 channelMap = std::make_unique<geo::ChannelMap35OptAlg>(pset);
68 channelMap = std::make_unique<geo::ChannelMapAPAAlg>(pset);
70 channelMap = std::make_unique<geo::ProtoDUNEChannelMapAlg>(pset);
72 channelMap = std::make_unique<geo::ProtoDUNEChannelMapAlgv7>(pset);
74 channelMap = std::make_unique<geo::ProtoDUNEChannelMapAlgv8>(pset);
82 if ( ( detectorName.find(
"dune35t") != std::string::npos ) ||
83 ( detectorName.find(
"lbne35t") != std::string::npos ) ) {
85 if (( detectorVersion.find(
"v3") != std::string::npos )
86 || ( detectorVersion.find(
"v4") != std::string::npos )
87 || ( detectorVersion.find(
"v5") != std::string::npos )
88 || ( detectorVersion.find(
"v6") != std::string::npos )) {
92 channelMap = std::make_unique<geo::ChannelMap35Alg>(pset);
96 }
else if (( detectorName.find(
"dune10kt") != std::string::npos )
97 || ( detectorName.find(
"lbne10kt") != std::string::npos )) {
101 }
else if ( detectorName.find(
"dunedphase10kt") != std::string::npos ) {
102 channelMap = std::make_unique<geo::ChannelMapCRMAlg>(pset);
105 }
else if ( ( detectorName.find(
"dunevd10kt") != std::string::npos ) ) {
106 channelMap = std::make_unique<geo::ChannelMapCRUAlg>(pset);
109 }
else if ( ( detectorName.find(
"dunevdcb") != std::string::npos ) ) {
110 channelMap = std::make_unique<geo::ColdBoxChannelMapAlg>(pset);
114 }
else if ( detectorName.find(
"protodunedphase") != std::string::npos ) {
115 channelMap = std::make_unique<geo::ChannelMapCRMAlg>(pset);
118 }
else if ( detectorName.find(
"3x1x1dphase") != std::string::npos ) {
119 channelMap = std::make_unique<geo::ChannelMapCRMAlg>(pset);
122 }
else if ( ( detectorName.find(
"dune34kt") != std::string::npos )
123 || ( detectorName.find(
"lbne34kt") != std::string::npos ) ) {
124 channelMap = std::make_unique<geo::ChannelMapAPAAlg>(pset);
127 }
else if ( detectorName.find(
"protodunev7") != std::string::npos ) {
128 channelMap = std::make_unique<geo::ProtoDUNEChannelMapAlgv7>(pset);
131 }
else if ( detectorName.find(
"protodunev8") != std::string::npos ) {
132 channelMap = std::make_unique<geo::ProtoDUNEChannelMapAlgv8>(pset);
135 }
else if ( ( detectorName.find(
"protodune") != std::string::npos )
136 || ( detectorName.find(
"protolbne") != std::string::npos ) ) {
137 channelMap = std::make_unique<geo::ProtoDUNEChannelMapAlg>(pset);
140 }
else if ( detectorName.find(
"iceberg") != std::string::npos ) {
141 channelMap = std::make_unique<geo::ProtoDUNEChannelMapAlg>(pset);
144 }
else if ( detectorName.find(
"larnd") != std::string::npos ) {
145 channelMap = std::make_unique<geo::ChannelMapAPAAlg>(pset);
148 throw cet::exception(
"DUNEGeometryHelper") <<
"Unsupported detector: '" << detectorName <<
"'\n";
154 bool useApaSort =
false;
155 bool use35tSort =
false;
164 if ( is35t ) use35tSort =
true;
165 else useApaSort =
true;
170 }
else if ( use35tSort ) {
175 alg->setSorter(*psort);
176 channelMap = std::unique_ptr<geo::DuneApaChannelMapAlg>(alg);
Interface to a service with detector-specific geometry knowledge.
Interface to algorithm class for a specific detector channel mapping in protoDUNE.
Interface to algorithm class for standard sorting of geo::XXXGeo objects.
Interface to algorithm class for a specific detector channel mapping in protoDUNE.
Interface to algorithm class for a specific detector channel mapping.
The class of 35t specific algorithms.
Interface to algorithm class for sorting geo::XXXGeo objects.
Channel mapping algorithms for VD ColdBox CRP.
Interface to algorithm class for standard sorting of geo::XXXGeo objects.
T get(std::string const &key) const
Interface to algorithm class for a dual-phase detector channel mapping.
std::string fGeoSorterClass
Access the description of detector geometry.
The class of 35t specific algorithms, optimized.
Interface to channel algorithm class for a vertical drift TPC.
Interface to algorithm class for a specific detector channel mapping.
Interface to algorithm class for a specific detector channel mapping in protoDUNE.
std::unique_ptr< geo::ChannelMapAlg > doConfigureChannelMapAlg(fhicl::ParameterSet const &sortingParameters, std::string const &detectorName) const override
cet::coded_exception< error, detail::translate > exception
Interface to algorithm class for a specific detector channel mapping.
std::string fChannelMapClass
#define DEFINE_ART_SERVICE_INTERFACE_IMPL(svc, iface)