LArSoft  v09_90_00
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 
17 
18 #include "Api/PandoraApi.h"
19 
20 namespace lar_pandora {
21 
22  class LArDriftVolume;
24  typedef std::vector<LArDetectorGap> LArDetectorGapList;
25 
30  public:
39  const geo::CryostatID::CryostatID_t cstat) const = 0;
40 
49  const geo::CryostatID::CryostatID_t cstat) const = 0;
50 
59  const geo::CryostatID::CryostatID_t cstat) const = 0;
60 
66  virtual float WirePitchU() const = 0;
67 
73  virtual float WirePitchV() const = 0;
74 
80  virtual float WirePitchW() const = 0;
81 
87  virtual float WireAngleU(const geo::TPCID::TPCID_t tpc,
88  const geo::CryostatID::CryostatID_t cstat) const = 0;
89 
95  virtual float WireAngleV(const geo::TPCID::TPCID_t tpc,
96  const geo::CryostatID::CryostatID_t cstat) const = 0;
97 
103  virtual float WireAngleW(const geo::TPCID::TPCID_t tpc,
104  const geo::CryostatID::CryostatID_t cstat) const = 0;
105 
114  virtual bool CheckDetectorGapSize(const geo::Vector_t& gaps,
115  const geo::Vector_t& deltas,
116  const float maxDisplacement) const = 0;
117 
126  virtual LArDetectorGap CreateDetectorGap(const geo::Point_t& point1,
127  const geo::Point_t& point2,
128  const geo::Vector_t& widths) const = 0;
129 
137  virtual void LoadDaughterDetectorGaps(const LArDriftVolume& driftVolume,
138  const float maxDisplacement,
139  LArDetectorGapList& listOfGaps) const = 0;
140 
147  virtual PandoraApi::Geometry::LineGap::Parameters CreateLineGapParametersFromDetectorGaps(
148  const LArDetectorGap& gap) const = 0;
149 
164  virtual PandoraApi::Geometry::LineGap::Parameters CreateLineGapParametersFromReadoutGaps(
165  const geo::View_t view,
166  const geo::TPCID::TPCID_t tpc,
167  const geo::CryostatID::CryostatID_t cstat,
168  const geo::Point_t& firstXYZ,
169  const geo::Point_t& lastXYZ,
170  const float halfWirePitch,
171  const float xFirst,
172  const float xLast,
173  const pandora::Pandora* pPandora) const = 0;
174  };
175 
176  namespace detector_functions {
177 
187  float WireAngle(const geo::View_t view,
188  const geo::TPCID::TPCID_t tpc,
189  const geo::CryostatID::CryostatID_t cstat,
190  const art::ServiceHandle<geo::Geometry>& larsoftGeometry);
191 
198  PandoraApi::Geometry::LineGap::Parameters CreateDriftGapParameters(const LArDetectorGap& gap);
199 
211  PandoraApi::Geometry::LineGap::Parameters CreateReadoutGapParameters(
212  const float firstPoint,
213  const float lastPoint,
214  const float xFirst,
215  const float xLast,
216  const float halfWirePitch,
217  const pandora::LineGapType gapType);
218 
219  } // namespace detector_functions
220 
221 } // namespace lar_pandora
222 #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.
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.
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:193
float WireAngle(const geo::View_t view, const geo::TPCID::TPCID_t tpc, const geo::CryostatID::CryostatID_t cstat, const art::ServiceHandle< geo::Geometry > &larsoftGeometry)
Calculate the wire angle of a LArTPC view in a given TPC/cryostat.
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:382
std::vector< LArDetectorGap > LArDetectorGapList
drift volume class to hold properties of drift volume
art framework interface to geometry description
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.