LArSoft  v10_04_05
Liquid Argon Software toolkit - https://larsoft.org/
ICARUS.h
Go to the documentation of this file.
1 
10 
12 
13 #include <cmath>
14 
15 namespace lar_pandora {
16 
20  class ICARUS : public VintageLArTPCThreeView {
21  public:
23  const geo::CryostatID::CryostatID_t cstat) const override;
24 
26  const geo::CryostatID::CryostatID_t cstat) const override;
27 
29  const geo::CryostatID::CryostatID_t cstat) const override;
30 
31  float WireAngleW(const geo::TPCID::TPCID_t tpc,
32  const geo::CryostatID::CryostatID_t cstat) const override;
33  };
34 
36  const geo::CryostatID::CryostatID_t cstat) const
37  {
38  geo::TPCID const tpcID{cstat, tpc};
40  GetChannelMap().Plane(geo::PlaneID(tpcID, 1)).View() :
41  GetChannelMap().Plane(geo::PlaneID(tpcID, 2)).View();
42  }
43 
44  //------------------------------------------------------------------------------------------------------------------------------------------
45 
47  const geo::CryostatID::CryostatID_t cstat) const
48  {
49  geo::TPCID const tpcID{cstat, tpc};
51  GetChannelMap().Plane(geo::PlaneID(tpcID, 2)).View() :
52  GetChannelMap().Plane(geo::PlaneID(tpcID, 1)).View();
53  }
54 
55  //------------------------------------------------------------------------------------------------------------------------------------------
56 
58  const geo::CryostatID::CryostatID_t cstat) const
59  {
60  return GetChannelMap().Plane(geo::PlaneID(cstat, tpc, 0)).View();
61  }
62 
63  //------------------------------------------------------------------------------------------------------------------------------------------
64 
65  inline float ICARUS::WireAngleW(const geo::TPCID::TPCID_t tpc,
66  const geo::CryostatID::CryostatID_t cstat) const
67  {
68  return std::abs(
69  detector_functions::WireAngle(TargetViewW(tpc, cstat), tpc, cstat, GetChannelMap()));
70  }
71 
72 } // namespace lar_pandora
Detector interface for an older-style 3view, horizontal drift, single-phase LArTPC (e...
enum geo::_plane_proj View_t
Enumerate the possible plane projections.
geo::View_t TargetViewW(const geo::TPCID::TPCID_t tpc, const geo::CryostatID::CryostatID_t cstat) const override
Map a LArSoft view to Pandora&#39;s W view.
Definition: ICARUS.h:57
The data type to uniquely identify a Plane.
Definition: geo_types.h:364
constexpr auto abs(T v)
Returns the absolute value of the argument.
Detector interface for ICARUS.
Definition: ICARUS.h:20
geo::View_t TargetViewU(const geo::TPCID::TPCID_t tpc, const geo::CryostatID::CryostatID_t cstat) const override
Map a LArSoft view to Pandora&#39;s U view.
Definition: ICARUS.h:35
const geo::GeometryCore & GetLArSoftGeometry() const
Loan the LArSoft geometry handle owned by this class.
View_t View() const
Which coordinate does this plane measure.
Definition: PlaneGeo.h:155
Detector interface for a 3view, horizontal drift, single-phase LArTPC.
geo::DriftSign DriftSign() const
Returns the expected drift direction based on geometry.
Definition: TPCGeo.h:79
The data type to uniquely identify a TPC.
Definition: geo_types.h:306
const geo::WireReadoutGeom & GetChannelMap() const
float WireAngle(const geo::View_t view, const geo::TPCID::TPCID_t tpc, const geo::CryostatID::CryostatID_t cstat, const geo::WireReadoutGeom &wireReadoutGeom)
Calculate the wire angle of a LArTPC view in a given TPC/cryostat.
Drift towards positive values.
unsigned int CryostatID_t
Type for the ID number.
Definition: geo_types.h:188
unsigned int TPCID_t
Type for the ID number.
Definition: geo_types.h:307
geo::View_t TargetViewV(const geo::TPCID::TPCID_t tpc, const geo::CryostatID::CryostatID_t cstat) const override
Map a LArSoft view to Pandora&#39;s V view.
Definition: ICARUS.h:46
float WireAngleW(const geo::TPCID::TPCID_t tpc, const geo::CryostatID::CryostatID_t cstat) const override
The angle of the wires in the mapped V view.
Definition: ICARUS.h:65
PlaneGeo const & Plane(TPCID const &tpcid, View_t view) const
Returns the specified wire.
TPCGeo const & TPC(TPCID const &tpcid=details::tpc_zero) const
Returns the specified TPC.
Definition: GeometryCore.h:448
art framework interface to geometry description