SnippetHit3DBuilder class definiton. More...
Public Member Functions | |
SnippetHit3DBuilder (fhicl::ParameterSet const &pset) | |
Constructor. More... | |
virtual void | produces (art::ProducesCollector &) override |
Each algorithm may have different objects it wants "produced" so use this to let the top level producer module "know" what it is outputting. More... | |
virtual void | configure (const fhicl::ParameterSet &) override |
Interface for configuring the particular algorithm tool. More... | |
virtual void | Hit3DBuilder (art::Event &, reco::HitPairList &, RecobHitToPtrMap &) override |
Given a set of recob hits, run DBscan to form 3D clusters. More... | |
virtual float | getTimeToExecute (IHit3DBuilder::TimeValues index) const override |
If monitoring, recover the time to execute a particular function. More... | |
Public Member Functions inherited from lar_cluster3d::IHit3DBuilder | |
virtual | ~IHit3DBuilder () noexcept=default |
Virtual Destructor. More... | |
Private Types | |
using | HitMatchTriplet = std::tuple< const reco::ClusterHit2D *, const reco::ClusterHit2D *, const reco::ClusterHit3D > |
This builds a list of candidate hit pairs from lists of hits on two planes. More... | |
using | HitMatchTripletVec = std::vector< HitMatchTriplet > |
using | HitMatchTripletVecMap = std::map< geo::WireID, HitMatchTripletVec > |
using | ChannelStatusVec = std::vector< size_t > |
define data structure for keeping track of channel status More... | |
using | ChannelStatusByPlaneVec = std::vector< ChannelStatusVec > |
Private Member Functions | |
void | CollectArtHits (const art::Event &evt) const |
Extract the ART hits and the ART hit-particle relationships. More... | |
void | BuildHit3D (reco::HitPairList &hitPairList) const |
Given the ClusterHit2D objects, build the HitPairMap. More... | |
void | CreateNewRecobHitCollection (art::Event &, reco::HitPairList &, std::vector< recob::Hit > &, RecobHitToPtrMap &) |
Create a new 2D hit collection from hits associated to 3D space points. More... | |
void | makeWireAssns (const art::Event &, art::Assns< recob::Wire, recob::Hit > &, RecobHitToPtrMap &) const |
Create recob::Wire to recob::Hit associations. More... | |
void | makeRawDigitAssns (const art::Event &, art::Assns< raw::RawDigit, recob::Hit > &, RecobHitToPtrMap &) const |
Create raw::RawDigit to recob::Hit associations. More... | |
size_t | BuildHitPairMap (PlaneToSnippetHitMap &planeToHitVectorMap, reco::HitPairList &hitPairList) const |
Given the ClusterHit2D objects, build the HitPairMap. More... | |
size_t | BuildHitPairMapByTPC (PlaneSnippetHitMapItrPairVec &planeSnippetHitMapItrPairVec, reco::HitPairList &hitPairList) const |
Given the ClusterHit2D objects, build the HitPairMap. More... | |
int | findGoodHitPairs (SnippetHitMap::iterator &, SnippetHitMap::iterator &, SnippetHitMap::iterator &, HitMatchTripletVecMap &) const |
void | findGoodTriplets (HitMatchTripletVecMap &, HitMatchTripletVecMap &, reco::HitPairList &, bool=false) const |
This algorithm takes lists of hit pairs and finds good triplets. More... | |
bool | makeHitPair (reco::ClusterHit3D &pairOut, const reco::ClusterHit2D *hit1, const reco::ClusterHit2D *hit2, float hitWidthSclFctr=1., size_t hitPairCntr=0) const |
Make a HitPair object by checking two hits. More... | |
bool | makeHitTriplet (reco::ClusterHit3D &pairOut, const reco::ClusterHit3D &pairIn, const reco::ClusterHit2D *hit2) const |
Make a 3D HitPair object by checking two hits. More... | |
bool | makeDeadChannelPair (reco::ClusterHit3D &pairOut, const reco::ClusterHit3D &pair, size_t maxStatus=4, size_t minStatus=0, float minOverlap=0.2) const |
Make a 3D HitPair object from a valid pair and a dead channel in the missing plane. More... | |
bool | WireIDsIntersect (const geo::WireID &, const geo::WireID &, geo::WireIDIntersection &) const |
function to detemine if two wires "intersect" (in the 2D sense) More... | |
float | closestApproach (const Eigen::Vector3f &, const Eigen::Vector3f &, const Eigen::Vector3f &, const Eigen::Vector3f &, float &, float &) const |
function to compute the distance of closest approach and the arc length to the points of closest approach More... | |
const reco::ClusterHit2D * | FindBestMatchingHit (const Hit2DSet &hit2DSet, const reco::ClusterHit3D &pair, float pairDeltaTimeLimits) const |
A utility routine for finding a 2D hit closest in time to the given pair. More... | |
int | FindNumberInRange (const Hit2DSet &hit2DSet, const reco::ClusterHit3D &pair, float range) const |
A utility routine for returning the number of 2D hits from the list in a given range. More... | |
geo::WireID | NearestWireID (const Eigen::Vector3f &position, const geo::WireID &wireID) const |
Jacket the calls to finding the nearest wire in order to intercept the exceptions if out of range. More... | |
float | DistanceFromPointToHitWire (const Eigen::Vector3f &position, const geo::WireID &wireID) const |
Jacket the calls to finding the nearest wire in order to intercept the exceptions if out of range. More... | |
void | BuildChannelStatusVec (PlaneToWireToHitSetMap &planeToWiretoHitSetMap) const |
Create the internal channel status vector (assume will eventually be event-by-event) More... | |
float | chargeIntegral (float, float, float, float, int, int) const |
Perform charge integration between limits. More... | |
void | clear () |
clear the tuple vectors before processing next event More... | |
Additional Inherited Members | |
Public Types inherited from lar_cluster3d::IHit3DBuilder | |
enum | TimeValues { COLLECTARTHITS = 0, BUILDTHREEDHITS = 1, BUILDNEWHITS = 2, NUMTIMEVALUES } |
enumerate the possible values for time checking if monitoring timing More... | |
using | RecobHitToPtrMap = std::unordered_map< const recob::Hit *, art::Ptr< recob::Hit >> |
Defines a structure mapping art representation to internal. More... | |
SnippetHit3DBuilder class definiton.
Definition at line 81 of file SnippetHit3DBuilder_tool.cc.
|
private |
Definition at line 231 of file SnippetHit3DBuilder_tool.cc.
|
private |
define data structure for keeping track of channel status
Definition at line 230 of file SnippetHit3DBuilder_tool.cc.
|
private |
This builds a list of candidate hit pairs from lists of hits on two planes.
Definition at line 154 of file SnippetHit3DBuilder_tool.cc.
Definition at line 155 of file SnippetHit3DBuilder_tool.cc.
|
private |
Definition at line 156 of file SnippetHit3DBuilder_tool.cc.
|
explicit |
Constructor.
pset |
Definition at line 291 of file SnippetHit3DBuilder_tool.cc.
|
private |
Create the internal channel status vector (assume will eventually be event-by-event)
Definition at line 379 of file SnippetHit3DBuilder_tool.cc.
|
private |
Given the ClusterHit2D objects, build the HitPairMap.
Driver for processing input 2D hits, transforming to 3D hits and building lists of associated 3D hits (candidate 3D clusters)
Definition at line 482 of file SnippetHit3DBuilder_tool.cc.
|
private |
Given the ClusterHit2D objects, build the HitPairMap.
Given input 2D hits, build out the lists of possible 3D hits
The current strategy: ideally all 3D hits would be comprised of a triplet of 2D hits, one from each view However, we have concern that, in particular, the v-plane may have some inefficiency which we have to be be prepared to deal with. The idea, then, is to first make the association of hits in the U and W planes and then look for the match in the V plane. In the event we don't find the match in the V plane then we will evaluate the situation and in some instances keep the U-W pairs in order to keep efficiency high.
Definition at line 538 of file SnippetHit3DBuilder_tool.cc.
|
private |
Given the ClusterHit2D objects, build the HitPairMap.
Given input 2D hits, build out the lists of possible 3D hits
The current strategy: ideally all 3D hits would be comprised of a triplet of 2D hits, one from each view However, we have concern that, in particular, the v-plane may have some inefficiency which we have to be be prepared to deal with. The idea, then, is to first make the association of hits in the U and W planes and then look for the match in the V plane. In the event we don't find the match in the V plane then we will evaluate the situation and in some instances keep the U-W pairs in order to keep efficiency high.
Definition at line 597 of file SnippetHit3DBuilder_tool.cc.
|
private |
Perform charge integration between limits.
Definition at line 1302 of file SnippetHit3DBuilder_tool.cc.
|
private |
clear the tuple vectors before processing next event
Definition at line 360 of file SnippetHit3DBuilder_tool.cc.
|
private |
function to compute the distance of closest approach and the arc length to the points of closest approach
Definition at line 1277 of file SnippetHit3DBuilder_tool.cc.
|
private |
Extract the ART hits and the ART hit-particle relationships.
evt | - the ART event |
Recover the 2D hits from art and fill out the local data structures for the 3D clustering
Definition at line 1535 of file SnippetHit3DBuilder_tool.cc.
|
overridevirtual |
Interface for configuring the particular algorithm tool.
ParameterSet | The input set of parameters for configuration |
Implements lar_cluster3d::IHit3DBuilder.
Definition at line 309 of file SnippetHit3DBuilder_tool.cc.
|
private |
Create a new 2D hit collection from hits associated to 3D space points.
Definition at line 1673 of file SnippetHit3DBuilder_tool.cc.
|
private |
Jacket the calls to finding the nearest wire in order to intercept the exceptions if out of range.
Definition at line 1474 of file SnippetHit3DBuilder_tool.cc.
|
private |
A utility routine for finding a 2D hit closest in time to the given pair.
Definition at line 1397 of file SnippetHit3DBuilder_tool.cc.
|
private |
Definition at line 682 of file SnippetHit3DBuilder_tool.cc.
|
private |
This algorithm takes lists of hit pairs and finds good triplets.
Definition at line 736 of file SnippetHit3DBuilder_tool.cc.
|
private |
A utility routine for returning the number of 2D hits from the list in a given range.
Definition at line 1424 of file SnippetHit3DBuilder_tool.cc.
|
inlineoverridevirtual |
If monitoring, recover the time to execute a particular function.
Implements lar_cluster3d::IHit3DBuilder.
Definition at line 110 of file SnippetHit3DBuilder_tool.cc.
|
overridevirtual |
Given a set of recob hits, run DBscan to form 3D clusters.
hitPairList | The input list of 3D hits to run clustering on |
clusterParametersList | A list of cluster objects (parameters from associated hits) |
Associations with wires.
Associations with raw digits.
Implements lar_cluster3d::IHit3DBuilder.
Definition at line 428 of file SnippetHit3DBuilder_tool.cc.
|
private |
Make a 3D HitPair object from a valid pair and a dead channel in the missing plane.
Definition at line 1320 of file SnippetHit3DBuilder_tool.cc.
|
private |
Make a HitPair object by checking two hits.
Definition at line 851 of file SnippetHit3DBuilder_tool.cc.
|
private |
Make a 3D HitPair object by checking two hits.
Definition at line 976 of file SnippetHit3DBuilder_tool.cc.
|
private |
Create raw::RawDigit to recob::Hit associations.
Definition at line 1785 of file SnippetHit3DBuilder_tool.cc.
|
private |
Create recob::Wire to recob::Hit associations.
Definition at line 1739 of file SnippetHit3DBuilder_tool.cc.
|
private |
Jacket the calls to finding the nearest wire in order to intercept the exceptions if out of range.
Definition at line 1449 of file SnippetHit3DBuilder_tool.cc.
|
overridevirtual |
Each algorithm may have different objects it wants "produced" so use this to let the top level producer module "know" what it is outputting.
Implements lar_cluster3d::IHit3DBuilder.
Definition at line 300 of file SnippetHit3DBuilder_tool.cc.
|
private |
function to detemine if two wires "intersect" (in the 2D sense)
Definition at line 1224 of file SnippetHit3DBuilder_tool.cc.
|
private |
Definition at line 288 of file SnippetHit3DBuilder_tool.cc.
|
mutableprivate |
Definition at line 282 of file SnippetHit3DBuilder_tool.cc.
|
mutableprivate |
Definition at line 263 of file SnippetHit3DBuilder_tool.cc.
|
mutableprivate |
Definition at line 277 of file SnippetHit3DBuilder_tool.cc.
|
private |
Definition at line 243 of file SnippetHit3DBuilder_tool.cc.
|
mutableprivate |
Definition at line 262 of file SnippetHit3DBuilder_tool.cc.
|
private |
Definition at line 253 of file SnippetHit3DBuilder_tool.cc.
|
private |
Definition at line 287 of file SnippetHit3DBuilder_tool.cc.
|
mutableprivate |
Definition at line 274 of file SnippetHit3DBuilder_tool.cc.
|
private |
Data members to follow.
Definition at line 241 of file SnippetHit3DBuilder_tool.cc.
|
private |
Definition at line 242 of file SnippetHit3DBuilder_tool.cc.
|
private |
Definition at line 248 of file SnippetHit3DBuilder_tool.cc.
|
private |
Definition at line 245 of file SnippetHit3DBuilder_tool.cc.
|
mutableprivate |
Definition at line 267 of file SnippetHit3DBuilder_tool.cc.
|
private |
Provide ability to select hits based on "chi square".
Definition at line 250 of file SnippetHit3DBuilder_tool.cc.
|
mutableprivate |
Definition at line 264 of file SnippetHit3DBuilder_tool.cc.
|
mutableprivate |
Definition at line 268 of file SnippetHit3DBuilder_tool.cc.
|
mutableprivate |
Definition at line 283 of file SnippetHit3DBuilder_tool.cc.
|
private |
Take the time to create and fill some histograms for diagnostics.
Definition at line 251 of file SnippetHit3DBuilder_tool.cc.
|
mutableprivate |
Definition at line 265 of file SnippetHit3DBuilder_tool.cc.
|
mutableprivate |
Definition at line 266 of file SnippetHit3DBuilder_tool.cc.
|
mutableprivate |
Definition at line 269 of file SnippetHit3DBuilder_tool.cc.
|
private |
Definition at line 247 of file SnippetHit3DBuilder_tool.cc.
|
mutableprivate |
Definition at line 278 of file SnippetHit3DBuilder_tool.cc.
|
mutableprivate |
Definition at line 279 of file SnippetHit3DBuilder_tool.cc.
|
private |
Definition at line 246 of file SnippetHit3DBuilder_tool.cc.
|
mutableprivate |
Definition at line 272 of file SnippetHit3DBuilder_tool.cc.
|
private |
Definition at line 244 of file SnippetHit3DBuilder_tool.cc.
|
mutableprivate |
Definition at line 270 of file SnippetHit3DBuilder_tool.cc.
|
mutableprivate |
Definition at line 271 of file SnippetHit3DBuilder_tool.cc.
|
mutableprivate |
Definition at line 273 of file SnippetHit3DBuilder_tool.cc.
|
mutableprivate |
Definition at line 255 of file SnippetHit3DBuilder_tool.cc.
|
private |
output analysis tree
Definition at line 260 of file SnippetHit3DBuilder_tool.cc.
|
mutableprivate |
Definition at line 285 of file SnippetHit3DBuilder_tool.cc.
|
private |
Definition at line 254 of file SnippetHit3DBuilder_tool.cc.
|
private |
Scaling factor to determine max distance allowed between candidate pairs.
Definition at line 249 of file SnippetHit3DBuilder_tool.cc.
|
private |
Definition at line 257 of file SnippetHit3DBuilder_tool.cc.