16 #include "cetlib_except/exception.h"
21 namespace lar_pandora {
23 LArPandoraDetectorType*
26 art::ServiceHandle<geo::Geometry const> geo;
28 const unsigned int nPlanes(geo->MaxPlanes());
29 std::set<geo::_plane_proj> planeSet;
30 for (
unsigned int iPlane = 0; iPlane < nPlanes; ++iPlane)
31 (
void)planeSet.insert(geo->TPC(0, 0).Plane(iPlane).View());
33 if (nPlanes == 3 && planeSet.count(
geo::kU) && planeSet.count(
geo::kY) &&
37 else if (nPlanes == 3 && planeSet.count(
geo::kU) && planeSet.count(
geo::kV) &&
41 else if (nPlanes == 3 && planeSet.count(
geo::kU) && planeSet.count(
geo::kV) &&
45 else if (nPlanes == 2 && planeSet.count(
geo::kW) && planeSet.count(
geo::kY)) {
49 throw cet::exception(
"LArPandora") <<
"LArPandoraDetectorType::GetDetectorType --- unable to "
50 "determine the detector type from the geometry GDML";
Detector interface for an older-style 3view, horizontal drift, single-phase LArTPC (e...
Detector interface for ProtoDUNE dual phase.
Detector interface DUNE's vertical drift far detector.
Detector interface for ProtoDUNE dual phase.
Detector interface for DUNE's vertical drift, 3 view far detector.
Planes which measure Z direction.
Planes which measure Y direction.
Detector interface for ICARUS.
Detector interface for a 3view, horizontal drift, single-phase LArTPC.
Detector interface for ICARUS.
LArPandoraDetectorType * GetDetectorType()
Factory class that returns the correct detector type interface.
Planes which measure W (third view for Bo, MicroBooNE, etc).
Helper functions for extracting detector geometry for use in reconsruction.