LArSoft  v10_04_05
Liquid Argon Software toolkit - https://larsoft.org/
LArPandoraDetectorType.h
Go to the documentation of this file.
1 
9 #ifndef LAR_PANDORA_DETECTOR_TYPE_H
10 #define LAR_PANDORA_DETECTOR_TYPE_H 1
11 
15 
16 #include "Api/PandoraApi.h"
17 
18 namespace lar_pandora {
19 
20  class LArDriftVolume;
22  typedef std::vector<LArDetectorGap> LArDetectorGapList;
23 
28  public:
37  const geo::CryostatID::CryostatID_t cstat) const = 0;
38 
47  const geo::CryostatID::CryostatID_t cstat) const = 0;
48 
57  const geo::CryostatID::CryostatID_t cstat) const = 0;
58 
64  virtual float WirePitchU() const = 0;
65 
71  virtual float WirePitchV() const = 0;
72 
78  virtual float WirePitchW() const = 0;
79 
85  virtual float WireAngleU(const geo::TPCID::TPCID_t tpc,
86  const geo::CryostatID::CryostatID_t cstat) const = 0;
87 
93  virtual float WireAngleV(const geo::TPCID::TPCID_t tpc,
94  const geo::CryostatID::CryostatID_t cstat) const = 0;
95 
101  virtual float WireAngleW(const geo::TPCID::TPCID_t tpc,
102  const geo::CryostatID::CryostatID_t cstat) const = 0;
103 
112  virtual bool CheckDetectorGapSize(const geo::Vector_t& gaps,
113  const geo::Vector_t& deltas,
114  const float maxDisplacement) const = 0;
115 
124  virtual LArDetectorGap CreateDetectorGap(const geo::Point_t& point1,
125  const geo::Point_t& point2,
126  const geo::Vector_t& widths) const = 0;
127 
135  virtual void LoadDaughterDetectorGaps(const LArDriftVolume& driftVolume,
136  const float maxDisplacement,
137  LArDetectorGapList& listOfGaps) const = 0;
138 
145  virtual PandoraApi::Geometry::LineGap::Parameters CreateLineGapParametersFromDetectorGaps(
146  const LArDetectorGap& gap) const = 0;
147 
162  virtual PandoraApi::Geometry::LineGap::Parameters CreateLineGapParametersFromReadoutGaps(
163  const geo::View_t view,
164  const geo::TPCID::TPCID_t tpc,
165  const geo::CryostatID::CryostatID_t cstat,
166  const geo::Point_t& firstXYZ,
167  const geo::Point_t& lastXYZ,
168  const float halfWirePitch,
169  const float xFirst,
170  const float xLast,
171  const pandora::Pandora* pPandora) const = 0;
172  };
173 
174  namespace detector_functions {
175 
185  float WireAngle(const geo::View_t view,
186  const geo::TPCID::TPCID_t tpc,
187  const geo::CryostatID::CryostatID_t cstat,
188  const geo::WireReadoutGeom& wireReadoutGeom);
189 
196  PandoraApi::Geometry::LineGap::Parameters CreateDriftGapParameters(const LArDetectorGap& gap);
197 
209  PandoraApi::Geometry::LineGap::Parameters CreateReadoutGapParameters(
210  const float firstPoint,
211  const float lastPoint,
212  const float xFirst,
213  const float xLast,
214  const float halfWirePitch,
215  const pandora::LineGapType gapType);
216 
217  } // namespace detector_functions
218 
219 } // namespace lar_pandora
220 #endif // #ifndef LAR_PANDORA_DETECTOR_TYPE_H
ROOT::Math::DisplacementVector3D< ROOT::Math::Cartesian3D< double >, ROOT::Math::GlobalCoordinateSystemTag > Vector_t
Type for representation of momenta in 3D space.
Definition: geo_vectors.h:160
virtual float WireAngleV(const geo::TPCID::TPCID_t tpc, const geo::CryostatID::CryostatID_t cstat) const =0
The angle of the wires in the mapped V view.
enum geo::_plane_proj View_t
Enumerate the possible plane projections.
virtual geo::View_t TargetViewW(const geo::TPCID::TPCID_t tpc, const geo::CryostatID::CryostatID_t cstat) const =0
Map a LArSoft view to Pandora&#39;s W view.
Empty interface to map pandora to specifics in the LArSoft geometry.
virtual float WirePitchV() const =0
The wire pitch of the mapped V view.
virtual geo::View_t TargetViewV(const geo::TPCID::TPCID_t tpc, const geo::CryostatID::CryostatID_t cstat) const =0
Map a LArSoft view to Pandora&#39;s V view.
virtual geo::View_t TargetViewU(const geo::TPCID::TPCID_t tpc, const geo::CryostatID::CryostatID_t cstat) const =0
Map a LArSoft view to Pandora&#39;s U view.
virtual float WireAngleU(const geo::TPCID::TPCID_t tpc, const geo::CryostatID::CryostatID_t cstat) const =0
The angle of the wires in the mapped U view.
virtual float WirePitchU() const =0
The wire pitch of the mapped U view.
virtual PandoraApi::Geometry::LineGap::Parameters CreateLineGapParametersFromDetectorGaps(const LArDetectorGap &gap) const =0
Create the line gap parameters to give to the pandora API.
virtual bool CheckDetectorGapSize(const geo::Vector_t &gaps, const geo::Vector_t &deltas, const float maxDisplacement) const =0
Check whether a gap size is small enough to be registered as a detector gap.
Definitions of geometry vector data types.
Interface for a class providing readout channel mapping to geometry.
virtual void LoadDaughterDetectorGaps(const LArDriftVolume &driftVolume, const float maxDisplacement, LArDetectorGapList &listOfGaps) const =0
Create detector gaps for all daughter volumes in a logical TPC volume.
virtual float WireAngleW(const geo::TPCID::TPCID_t tpc, const geo::CryostatID::CryostatID_t cstat) const =0
The angle of the wires in the mapped V view.
virtual LArDetectorGap CreateDetectorGap(const geo::Point_t &point1, const geo::Point_t &point2, const geo::Vector_t &widths) const =0
Create a detector gap.
Definition of data types for geometry description.
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.
virtual float WirePitchW() const =0
The wire pitch of the mapped W view.
ROOT::Math::PositionVector3D< ROOT::Math::Cartesian3D< double >, ROOT::Math::GlobalCoordinateSystemTag > Point_t
Type for representation of position in physical 3D space.
Definition: geo_vectors.h:180
PandoraApi::Geometry::LineGap::Parameters CreateDriftGapParameters(const LArDetectorGap &gap)
Make the drift gap parameters for the Pandora API.
unsigned int CryostatID_t
Type for the ID number.
Definition: geo_types.h:188
PandoraApi::Geometry::LineGap::Parameters CreateReadoutGapParameters(const float firstPoint, const float lastPoint, const float xFirst, const float xLast, const float halfWirePitch, const pandora::LineGapType gapType)
Make the readout gap parameters for the Pandora API.
unsigned int TPCID_t
Type for the ID number.
Definition: geo_types.h:307
std::vector< LArDetectorGap > LArDetectorGapList
drift volume class to hold properties of drift volume
drift volume class to hold properties of drift volume
virtual PandoraApi::Geometry::LineGap::Parameters CreateLineGapParametersFromReadoutGaps(const geo::View_t view, const geo::TPCID::TPCID_t tpc, const geo::CryostatID::CryostatID_t cstat, const geo::Point_t &firstXYZ, const geo::Point_t &lastXYZ, const float halfWirePitch, const float xFirst, const float xLast, const pandora::Pandora *pPandora) const =0
Create the line gap parameters to give to the pandora API.