21 #ifndef ProjectionMatchingAlg_h 22 #define ProjectionMatchingAlg_h 35 class DetectorPropertiesData;
42 class ChannelStatusProvider;
50 class ProjectionMatchingAlg;
60 Name(
"OptimizationEps"),
61 Comment(
"relative change of the obj.fn which stops optimization after adding a node")};
64 Name(
"FineTuningEps"),
65 Comment(
"relative change of the obj.fn which stops fine-tuning of optimized track")};
68 Name(
"TrkValidationDist2D"),
69 Comment(
"max. distance [cm] used in the track validation in the third plane")};
72 Name(
"HitTestingDist2D"),
73 Comment(
"max. distance [cm] used in testing compatibility of hits with the track")};
76 Name(
"MinTwoViewFraction"),
77 Comment(
"min. fraction of track length covered with hits from many 2D views intertwinted " 82 Comment(
"margin in [cm] around TPC for allowed track node positions")};
117 TH1F* histoRejected)
const;
137 unsigned int testView,
139 unsigned int cryo)
const;
152 double eps = 1.0)
const 154 return trk.
TestHits(detProp, hits, eps * fHitTestingDist2D);
202 const TVector3& point)
const;
208 const TVector3& point)
const;
216 const TVector2& vtx2d)
const;
224 bool add_nodes)
const;
238 std::vector<pma::Hit3D*> trimTrackToVolume(
pma::Track3D& trk, TVector3 p0, TVector3 p1)
const;
261 unsigned int n = 0)
const 270 unsigned int* nused = 0)
const;
286 std::pair<int, int>
const* wires,
289 unsigned int cryo)
const;
295 std::vector<size_t>& used,
298 bool Has_(
const std::vector<size_t>& v,
size_t idx)
const;
309 static size_t getSegCount_(
size_t trk_size);
void AutoFlip(pma::Track3D::EDirection dir, double thr=0.0, unsigned int n=0)
Implementation of the Projection Matching Algorithm.
ProjectionMatchingAlg(const fhicl::ParameterSet &pset)
double const fMinTwoViewFraction
geo::GeometryCore const * fGeom
pma::Hit3D const * front() const
unsigned int TestHits(detinfo::DetectorPropertiesData const &detProp, const std::vector< art::Ptr< recob::Hit >> &hits, double dist=0.4) const
Count close 2D hits.
Geometry information for a single TPC.
ChannelGroupService::Name Name
TVector3 const & Point3D() const
Planes which measure Z direction.
recob::tracking::Vector_t Vector3D
art framework interface to geometry description
double const fFineTuningEps
pma::Node3D * FirstElement() const
unsigned int testHits(detinfo::DetectorPropertiesData const &detProp, const pma::Track3D &trk, const std::vector< art::Ptr< recob::Hit >> &hits, double eps=1.0) const
Count the number of hits that are closer than eps * fHitTestingDist2D to the track 2D projection...
pma::Node3D * LastElement() const
bool isContained(const pma::Track3D &trk, float margin=0.0F) const
double const fTrkValidationDist2D
void autoFlip(pma::Track3D &trk, pma::Track3D::EDirection dir=Track3D::kForward, double thr=0.0, unsigned int n=0) const
double const fHitTestingDist2D
double const fOptimizationEps
Class providing information about the quality of channels.
bool SameTPC(const TVector3 &p3d, float margin=0.0F) const
Check if p3d is in the same TPC as the node.
General LArSoft Utilities.
Description of geometry of one entire detector.
def validate(nxgraph, desc)
Filters for channels, events, etc.
Implementation of the Projection Matching Algorithm.
Declaration of signal hit object.
pma::Hit3D const * back() const
second_as<> second
Type of time stored in seconds, in double precision.
LArSoft geometry interface.