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.