9 #ifndef LAR_PANDORA_DETECTOR_VINTAGE_LAR_TPC_THREE_VIEW_H 10 #define LAR_PANDORA_DETECTOR_VINTAGE_LAR_TPC_THREE_VIEW_H 1 15 #include "Api/PandoraApi.h" 16 #include "Managers/PluginManager.h" 17 #include "Pandora/Pandora.h" 18 #include "Plugins/LArTransformationPlugin.h" 56 const float maxDisplacement)
const override;
63 const float maxDisplacement,
75 const float halfWirePitch,
78 const pandora::Pandora* pPandora)
const override;
174 const float maxDisplacement)
const 176 if (gaps.X() < 0.f || gaps.X() > maxDisplacement || deltas.Y() > maxDisplacement ||
177 deltas.Z() > maxDisplacement)
188 return LArDetectorGap(point1.X(), point1.Y(), point1.Z(), point2.X(), point2.Y(), point2.Z());
194 const float maxDisplacement,
202 inline PandoraApi::Geometry::LineGap::Parameters
210 inline PandoraApi::Geometry::LineGap::Parameters
217 const float halfWirePitch,
220 const pandora::Pandora* pPandora)
const 222 float first(0.
f), last(0.
f);
223 pandora::LineGapType gapType(pandora::TPC_DRIFT_GAP);
225 first = firstXYZ.Z();
227 gapType = pandora::TPC_WIRE_GAP_VIEW_W;
231 pPandora->GetPlugins()->GetLArTransformationPlugin()->YZtoU(firstXYZ.Y(), firstXYZ.Z());
232 last = pPandora->GetPlugins()->GetLArTransformationPlugin()->YZtoU(lastXYZ.Y(), lastXYZ.Z());
233 gapType = pandora::TPC_WIRE_GAP_VIEW_U;
237 pPandora->GetPlugins()->GetLArTransformationPlugin()->YZtoV(firstXYZ.Y(), firstXYZ.Z());
238 last = pPandora->GetPlugins()->GetLArTransformationPlugin()->YZtoV(lastXYZ.Y(), lastXYZ.Z());
239 gapType = pandora::TPC_WIRE_GAP_VIEW_V;
242 first, last, xFirst, xLast, halfWirePitch, gapType);
253 #endif // #ifndef LAR_PANDORA_DETECTOR_VINTAGE_LAR_TPC_THREE_VIEW_H
ROOT::Math::DisplacementVector3D< ROOT::Math::Cartesian3D< double >, ROOT::Math::GlobalCoordinateSystemTag > Vector_t
Type for representation of momenta in 3D space.
virtual bool CheckDetectorGapSize(const geo::Vector_t &gaps, const geo::Vector_t &deltas, const float maxDisplacement) const override
Check whether a gap size is small enough to be registered as a detector gap.
enum geo::_plane_proj View_t
Enumerate the possible plane projections.
virtual geo::View_t TargetViewV(const geo::TPCID::TPCID_t tpc, const geo::CryostatID::CryostatID_t cstat) const override
Map a LArSoft view to Pandora's V view.
Empty interface to map pandora to specifics in the LArSoft geometry.
The data type to uniquely identify a Plane.
virtual float WirePitchW() const override
The wire pitch of the mapped W view.
virtual LArDetectorGap CreateDetectorGap(const geo::Point_t &point1, const geo::Point_t &point2, const geo::Vector_t &widths) const override
Create a detector gap.
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 override
Create the line gap parameters to give to the pandora API.
virtual geo::View_t TargetViewU(const geo::TPCID::TPCID_t tpc, const geo::CryostatID::CryostatID_t cstat) const override
Map a LArSoft view to Pandora's U view.
virtual geo::View_t TargetViewW(const geo::TPCID::TPCID_t tpc, const geo::CryostatID::CryostatID_t cstat) const override
Map a LArSoft view to Pandora's W view.
virtual 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.
virtual float WireAngleU(const geo::TPCID::TPCID_t tpc, const geo::CryostatID::CryostatID_t cstat) const override
The angle of the wires in the mapped U view.
TPCGeo const & TPC(TPCID const &tpcid=tpc_zero) const
Returns the specified TPC.
virtual float WirePitchV() const override
The wire pitch of the mapped V view.
Detector interface for a 3view, horizontal drift, single-phase LArTPC.
virtual float WireAngleV(const geo::TPCID::TPCID_t tpc, const geo::CryostatID::CryostatID_t cstat) const override
The angle of the wires in the mapped V view.
virtual void LoadDaughterDetectorGaps(const LArDriftVolume &driftVolume, const float maxDisplacement, LArDetectorGapList &listOfGaps) const override
Create detector gaps for all daughter volumes in a logical TPC volume.
const art::ServiceHandle< geo::Geometry > & GetLArSoftGeometry() const
Loan the LArSoft geometry handle owned by this class.
art::ServiceHandle< geo::Geometry > m_LArSoftGeometry
the LArSoft geometry handle
The data type to uniquely identify a TPC.
DriftDirection_t DriftDirection() const
Returns an enumerator value describing the drift direction.
virtual float WirePitchU() const override
The wire pitch of the mapped U view.
ROOT::Math::PositionVector3D< ROOT::Math::Cartesian3D< double >, ROOT::Math::GlobalCoordinateSystemTag > Point_t
Type for representation of position in physical 3D space.
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.
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.
virtual PandoraApi::Geometry::LineGap::Parameters CreateLineGapParametersFromDetectorGaps(const LArDetectorGap &gap) const override
Create the line gap parameters to give to the pandora API.
unsigned int TPCID_t
Type for the ID number.
Drift towards positive X values.
std::vector< LArDetectorGap > LArDetectorGapList
View_t View(PlaneID const &pid) const
Returns the view (wire orientation) on the channels of specified TPC plane.
drift volume class to hold properties of drift volume
Helper functions for extracting detector geometry for use in reconsruction.
Length_t WirePitch(PlaneID const &planeid=plane_zero) const
Returns the distance between two consecutive wires.
art framework interface to geometry description
drift volume class to hold properties of drift volume