12 #ifndef PMAlgTracking_h 13 #define PMAlgTracking_h 40 class DetectorProperties;
66 std::vector<std::pair<TVector3, std::vector<std::pair<size_t, bool>>>>
getVertices(
67 bool onlyBranching =
false)
const 69 return fPMAlgVertexing.getVertices(fResult, onlyBranching);
72 std::vector<std::pair<TVector3, size_t>>
getKinks()
const 74 return fPMAlgVertexing.getKinks(fResult);
101 Name(
"TrackingOnlyPdg"),
102 Comment(
"PDG list to select which PFParticles should be reconstructed; all PFP's are used if " 103 "the list is empty or starts with 0")};
106 Name(
"TrackingSkipPdg"),
107 Comment(
"PDG list to select which PFParticles should NOT be reconstructed, e.g. skip EM-like " 108 "if contains 11; no skipping if the list is empty or starts with 0")};
111 Name(
"RunVertexing"),
113 "find vertices from PFP hierarchy, join with tracks, reoptimize track-vertex structure")};
117 const std::vector<recob::Cluster>& clusters,
118 const std::vector<recob::PFParticle>& pfparticles,
132 bool has(
const std::vector<int>& v,
int i)
const 135 if (c == i)
return true;
140 std::vector<std::vector<art::Ptr<recob::Hit>>>
fCluHits;
162 Name(
"MinSeedSize1stPass"),
163 Comment(
"min. cluster size used to start building a track in the 1st pass")};
166 Name(
"MinSeedSize2ndPass"),
167 Comment(
"min. cluster size used to start building a track in the 2nd pass")};
170 Comment(
"Threshold for track-like recognition")};
173 Name(
"RunVertexing"),
175 "find vertices from PFP hierarchy, join with tracks, reoptimize track-vertex structure")};
178 Comment(
"set the track direction to increasing Z values")};
181 Name(
"FlipDownward"),
182 Comment(
"set the track direction to decreasing Y values (like cosmic rays)")};
186 Comment(
"set the track direction to decreasing X values (like cosmic rays in dual phase)")};
189 Name(
"AutoFlip_dQdx"),
190 Comment(
"set the track direction to increasing dQ/dx (overrides FlipToBeam, FlipDownward and " 191 "FlipToX if significant rise of dQ/dx at the track end)")};
194 Name(
"MergeWithinTPC"),
195 Comment(
"merge witnin single TPC; finds tracks best matching by angle and displacement")};
198 Name(
"MergeTransverseShift"),
199 Comment(
"max. transverse displacement [cm] between tracks")};
203 Comment(
"max. angle [degree] between tracks (nearest segments)")};
206 Name(
"StitchBetweenTPCs"),
207 Comment(
"stitch between TPCs; finds tracks best matching by angle and displacement")};
210 Name(
"StitchDistToWall"),
211 Comment(
"max. track endpoint distance [cm] to TPC boundary")};
214 Name(
"StitchTransverseShift"),
215 Comment(
"max. transverse displacement [cm] between tracks")};
219 Comment(
"max. angle [degree] between tracks (nearest segments)")};
222 Name(
"MatchT0inAPACrossing"),
223 Comment(
"match T0 of APA-crossing tracks using PMAlgStitcher")};
226 Name(
"MatchT0inCPACrossing"),
227 Comment(
"match T0 of CPA-crossing tracks using PMAlgStitcher")};
230 Comment(
"tracks validation mode: hits, adc, calib")};
233 Name(
"AdcValidationThr"),
234 Comment(
"thresholds for not-empty pixel in the ADC track validation")};
238 Comment(
"ADC based image used for the track validation")};
242 const std::vector<recob::Wire>& wires,
249 const std::vector<TH1F*>& hpassing,
250 const std::vector<TH1F*>& hrejected);
255 const std::vector<float>& trackLike);
283 double cosThr)
const;
296 unsigned int testView);
324 detProp, first_clu_idx, fCluHits[first_clu_idx], minSizeCompl, tpc, cryo, first_view);
331 unsigned int preferedView,
332 unsigned int testView)
const;
337 unsigned int testView,
348 unsigned int cryo)
const;
350 int maxCluster(
size_t min_clu_size,
geo::View_t view,
unsigned int tpc,
unsigned int cryo)
const;
354 bool has(
const std::vector<size_t>& v,
size_t idx)
const 357 if (c == idx)
return true;
362 std::vector<std::vector<art::Ptr<recob::Hit>>>
fCluHits;
std::vector< std::pair< TVector3, size_t > > getKinks() const
std::map< int, pma::Vector3D > fPfpVtx
recob::Track convertFrom(const pma::Track3D &src, unsigned int tidx, int pdg=0)
geo::GeometryCore const * fGeom
enum geo::_plane_proj View_t
Enumerate the possible plane projections.
size_t fMinSeedSize2ndPass
Declaration of signal hit object.
bool fMatchT0inAPACrossing
double fMinTwoViewFraction
std::map< size_t, pma::TrkCandidateColl > tpc_track_map
bool fMatchT0inCPACrossing
std::map< unsigned int, tpc_view_hitmap > cryo_tpc_view_hitmap
pma::PMAlgCosmicTagger fCosmicTagger
std::map< int, std::vector< art::Ptr< recob::Cluster > > > fPfpClusters
double fStitchTransverseShift
std::map< unsigned int, std::vector< size_t > > fTriedClusters
std::vector< double > fAdcValidationThr
std::vector< int > fTrackingOnlyPdg
auto vector(Vector const &v)
Returns a manipulator which will print the specified array.
pma::PMAlgStitching fStitcher
geo::WireReadoutGeom const * fWireReadoutGeom
std::map< int, int > fPfpPdgCodes
std::vector< std::pair< TVector3, std::vector< std::pair< size_t, bool > > > > getVertices(bool onlyBranching=false) const
Interface for a class providing readout channel mapping to geometry.
float fTrackLikeThreshold
std::vector< int > fTrackingSkipPdg
const std::vector< recob::Wire > & fWires
bool has(const std::vector< size_t > &v, size_t idx) const
pma::ProjectionMatchingAlg fProjectionMatchingAlg
double fMergeTransverseShift
General LArSoft Utilities.
Description of the physical geometry of one entire detector.
Declaration of cluster object.
std::vector< size_t > fUsedClusters
const pma::TrkCandidateColl & result()
Definition of data types for geometry description.
bool has(const std::vector< int > &v, int i) const
std::vector< std::vector< art::Ptr< recob::Hit > > > fCluHits
std::vector< std::vector< art::Ptr< recob::Hit > > > fCluHits
Track finding helper for the Projection Matching Algorithm.
std::vector< float > fCluWeights
Implementation of the Projection Matching Algorithm.
double dist(const TReal *x, const TReal *y, const unsigned int dimension)
Contains all timing reference information for the detector.
const std::vector< TH1F * > & fAdcInPassingPoints
Provides recob::Track data product.
const std::vector< TH1F * > & fAdcInRejectedPoints
std::vector< geo::View_t > fAvailableViews
size_t fMinSeedSize1stPass
pma::TrkCandidateColl fResult
EValidationMode fValidation
pma::PMAlgVertexing fPMAlgVertexing
Track from a non-cascading particle.A recob::Track consists of a recob::TrackTrajectory, plus additional members relevant for a "fitted" track:
pma::TrkCandidate matchCluster(detinfo::DetectorPropertiesData const &detProp, int first_clu_idx, size_t minSizeCompl, unsigned int tpc, unsigned int cryo, geo::View_t first_view)
pma::cryo_tpc_view_hitmap fHitMap
std::vector< img::DataProviderAlg > fAdcImages