SnippetHit3DBuilderICARUS class definiton. More...
Public Member Functions | |
SnippetHit3DBuilderICARUS (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 > |
using | TickCorrectionArray = std::vector< std::vector< std::vector< float >>> |
Data members to follow. More... | |
using | PlaneToT0OffsetMap = std::map< geo::PlaneID, float > |
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... | |
int | saveOrphanPairs (HitMatchTripletVecMap &, reco::HitPairList &) const |
This will look at storing pair "orphans" where the 2D hits are otherwise unused. 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... | |
Private Attributes | |
std::vector< art::InputTag > | m_hitFinderTagVec |
float | m_hitWidthSclFctr |
float | m_deltaPeakTimeSig |
float | m_rangeNumSig |
float | m_LongHitStretchFctr |
float | m_pulseHeightFrac |
float | m_PHLowSelection |
float | m_minPHFor2HitPoints |
Set a minimum pulse height for 2 hit space point candidates. More... | |
std::vector< int > | m_invalidTPCVec |
float | m_wirePitchScaleFactor |
Scaling factor to determine max distance allowed between candidate pairs. More... | |
float | m_maxHit3DChiSquare |
Provide ability to select hits based on "chi square". More... | |
bool | m_saveMythicalPoints |
Should we save valid 2 hit space points? More... | |
float | m_maxMythicalChiSquare |
Selection cut on mythical points. More... | |
bool | m_useT0Offsets |
If true then we will use the LArSoft interplane offsets. More... | |
bool | m_outputHistograms |
Take the time to create and fill some histograms for diagnostics. More... | |
bool | m_enableMonitoring |
float | m_wirePitch [3] |
std::vector< float > | m_timeVector |
float | m_zPosOffset |
PlaneToT0OffsetMap | m_PlaneToT0OffsetMap |
TTree * | m_tupleTree |
output analysis tree More... | |
std::vector< float > | m_deltaPeakTimePlane0Vec |
std::vector< float > | m_deltaPeakSigmaPlane0Vec |
std::vector< float > | m_deltaPeakTimePlane1Vec |
std::vector< float > | m_deltaPeakSigmaPlane1Vec |
std::vector< float > | m_deltaPeakTimePlane2Vec |
std::vector< float > | m_deltaPeakSigmaPlane2Vec |
std::vector< float > | m_deltaTimeVec |
std::vector< float > | m_deltaTime0Vec |
std::vector< float > | m_deltaSigma0Vec |
std::vector< float > | m_deltaTime1Vec |
std::vector< float > | m_deltaSigma1Vec |
std::vector< float > | m_deltaTime2Vec |
std::vector< float > | m_deltaSigma2Vec |
std::vector< float > | m_chiSquare3DVec |
std::vector< float > | m_maxPullVec |
std::vector< float > | m_overlapFractionVec |
std::vector< float > | m_overlapRangeVec |
std::vector< float > | m_maxDeltaPeakVec |
std::vector< float > | m_maxSideVecVec |
std::vector< float > | m_pairWireDistVec |
std::vector< float > | m_smallChargeDiffVec |
std::vector< int > | m_smallIndexVec |
std::vector< float > | m_qualityMetricVec |
std::vector< float > | m_spacePointChargeVec |
std::vector< float > | m_hitAsymmetryVec |
std::vector< float > | m_2hit1stPHVec |
std::vector< float > | m_2hit2ndPHVec |
std::vector< float > | m_2hitDeltaPHVec |
std::vector< float > | m_2hitSumPHVec |
Hit2DList | m_clusterHit2DMasterList |
PlaneToSnippetHitMap | m_planeToSnippetHitMap |
PlaneToWireToHitSetMap | m_planeToWireToHitSetMap |
ChannelStatusByPlaneVec | m_channelStatus |
size_t | m_numBadChannels |
bool | m_weHaveAllBeenHereBefore = false |
const geo::Geometry * | m_geometry |
const lariov::ChannelStatusProvider * | m_channelFilter |
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... | |
SnippetHit3DBuilderICARUS class definiton.
Definition at line 81 of file SnippetHit3DBuilderICARUS_tool.cc.
|
private |
Definition at line 237 of file SnippetHit3DBuilderICARUS_tool.cc.
|
private |
define data structure for keeping track of channel status
Definition at line 236 of file SnippetHit3DBuilderICARUS_tool.cc.
|
private |
This builds a list of candidate hit pairs from lists of hits on two planes.
Definition at line 154 of file SnippetHit3DBuilderICARUS_tool.cc.
|
private |
Definition at line 155 of file SnippetHit3DBuilderICARUS_tool.cc.
|
private |
Definition at line 156 of file SnippetHit3DBuilderICARUS_tool.cc.
|
private |
Definition at line 271 of file SnippetHit3DBuilderICARUS_tool.cc.
|
private |
Data members to follow.
Definition at line 247 of file SnippetHit3DBuilderICARUS_tool.cc.
|
explicit |
Constructor.
pset |
Definition at line 324 of file SnippetHit3DBuilderICARUS_tool.cc.
|
private |
Create the internal channel status vector (assume will eventually be event-by-event)
Definition at line 453 of file SnippetHit3DBuilderICARUS_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 579 of file SnippetHit3DBuilderICARUS_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 635 of file SnippetHit3DBuilderICARUS_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 694 of file SnippetHit3DBuilderICARUS_tool.cc.
|
private |
Perform charge integration between limits.
Definition at line 1520 of file SnippetHit3DBuilderICARUS_tool.cc.
|
private |
clear the tuple vectors before processing next event
Definition at line 416 of file SnippetHit3DBuilderICARUS_tool.cc.
|
private |
function to compute the distance of closest approach and the arc length to the points of closest approach
Definition at line 1495 of file SnippetHit3DBuilderICARUS_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 1753 of file SnippetHit3DBuilderICARUS_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 342 of file SnippetHit3DBuilderICARUS_tool.cc.
|
private |
Create a new 2D hit collection from hits associated to 3D space points.
Definition at line 1894 of file SnippetHit3DBuilderICARUS_tool.cc.
|
private |
Jacket the calls to finding the nearest wire in order to intercept the exceptions if out of range.
Definition at line 1692 of file SnippetHit3DBuilderICARUS_tool.cc.
|
private |
A utility routine for finding a 2D hit closest in time to the given pair.
Definition at line 1615 of file SnippetHit3DBuilderICARUS_tool.cc.
|
private |
Definition at line 788 of file SnippetHit3DBuilderICARUS_tool.cc.
|
private |
This algorithm takes lists of hit pairs and finds good triplets.
Definition at line 842 of file SnippetHit3DBuilderICARUS_tool.cc.
|
private |
A utility routine for returning the number of 2D hits from the list in a given range.
Definition at line 1642 of file SnippetHit3DBuilderICARUS_tool.cc.
|
inlineoverridevirtual |
If monitoring, recover the time to execute a particular function.
Implements lar_cluster3d::IHit3DBuilder.
Definition at line 110 of file SnippetHit3DBuilderICARUS_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 502 of file SnippetHit3DBuilderICARUS_tool.cc.
|
private |
Make a 3D HitPair object from a valid pair and a dead channel in the missing plane.
Definition at line 1538 of file SnippetHit3DBuilderICARUS_tool.cc.
|
private |
Make a HitPair object by checking two hits.
Definition at line 1010 of file SnippetHit3DBuilderICARUS_tool.cc.
|
private |
Make a 3D HitPair object by checking two hits.
Definition at line 1161 of file SnippetHit3DBuilderICARUS_tool.cc.
|
private |
Create raw::RawDigit to recob::Hit associations.
Definition at line 2008 of file SnippetHit3DBuilderICARUS_tool.cc.
|
private |
Create recob::Wire to recob::Hit associations.
Definition at line 1962 of file SnippetHit3DBuilderICARUS_tool.cc.
|
private |
Jacket the calls to finding the nearest wire in order to intercept the exceptions if out of range.
Definition at line 1667 of file SnippetHit3DBuilderICARUS_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 333 of file SnippetHit3DBuilderICARUS_tool.cc.
|
private |
This will look at storing pair "orphans" where the 2D hits are otherwise unused.
Definition at line 957 of file SnippetHit3DBuilderICARUS_tool.cc.
|
private |
function to detemine if two wires "intersect" (in the 2D sense)
Definition at line 1442 of file SnippetHit3DBuilderICARUS_tool.cc.
|
mutableprivate |
Definition at line 304 of file SnippetHit3DBuilderICARUS_tool.cc.
|
mutableprivate |
Definition at line 305 of file SnippetHit3DBuilderICARUS_tool.cc.
|
mutableprivate |
Definition at line 306 of file SnippetHit3DBuilderICARUS_tool.cc.
|
mutableprivate |
Definition at line 307 of file SnippetHit3DBuilderICARUS_tool.cc.
|
private |
Definition at line 321 of file SnippetHit3DBuilderICARUS_tool.cc.
|
mutableprivate |
Definition at line 315 of file SnippetHit3DBuilderICARUS_tool.cc.
|
mutableprivate |
Definition at line 292 of file SnippetHit3DBuilderICARUS_tool.cc.
|
mutableprivate |
Definition at line 310 of file SnippetHit3DBuilderICARUS_tool.cc.
|
mutableprivate |
Definition at line 279 of file SnippetHit3DBuilderICARUS_tool.cc.
|
mutableprivate |
Definition at line 281 of file SnippetHit3DBuilderICARUS_tool.cc.
|
mutableprivate |
Definition at line 283 of file SnippetHit3DBuilderICARUS_tool.cc.
|
mutableprivate |
Definition at line 278 of file SnippetHit3DBuilderICARUS_tool.cc.
|
mutableprivate |
Definition at line 280 of file SnippetHit3DBuilderICARUS_tool.cc.
|
mutableprivate |
Definition at line 282 of file SnippetHit3DBuilderICARUS_tool.cc.
|
private |
Definition at line 251 of file SnippetHit3DBuilderICARUS_tool.cc.
|
mutableprivate |
Definition at line 287 of file SnippetHit3DBuilderICARUS_tool.cc.
|
mutableprivate |
Definition at line 289 of file SnippetHit3DBuilderICARUS_tool.cc.
|
mutableprivate |
Definition at line 291 of file SnippetHit3DBuilderICARUS_tool.cc.
|
mutableprivate |
Definition at line 286 of file SnippetHit3DBuilderICARUS_tool.cc.
|
mutableprivate |
Definition at line 288 of file SnippetHit3DBuilderICARUS_tool.cc.
|
mutableprivate |
Definition at line 290 of file SnippetHit3DBuilderICARUS_tool.cc.
|
mutableprivate |
Definition at line 285 of file SnippetHit3DBuilderICARUS_tool.cc.
|
private |
Definition at line 265 of file SnippetHit3DBuilderICARUS_tool.cc.
|
private |
Definition at line 320 of file SnippetHit3DBuilderICARUS_tool.cc.
|
mutableprivate |
Definition at line 303 of file SnippetHit3DBuilderICARUS_tool.cc.
|
private |
Definition at line 249 of file SnippetHit3DBuilderICARUS_tool.cc.
|
private |
Definition at line 250 of file SnippetHit3DBuilderICARUS_tool.cc.
|
private |
Definition at line 257 of file SnippetHit3DBuilderICARUS_tool.cc.
|
private |
Definition at line 253 of file SnippetHit3DBuilderICARUS_tool.cc.
|
mutableprivate |
Definition at line 296 of file SnippetHit3DBuilderICARUS_tool.cc.
|
private |
Provide ability to select hits based on "chi square".
Definition at line 259 of file SnippetHit3DBuilderICARUS_tool.cc.
|
private |
Selection cut on mythical points.
Definition at line 261 of file SnippetHit3DBuilderICARUS_tool.cc.
|
mutableprivate |
Definition at line 293 of file SnippetHit3DBuilderICARUS_tool.cc.
|
mutableprivate |
Definition at line 297 of file SnippetHit3DBuilderICARUS_tool.cc.
|
private |
Set a minimum pulse height for 2 hit space point candidates.
Definition at line 256 of file SnippetHit3DBuilderICARUS_tool.cc.
|
mutableprivate |
Definition at line 316 of file SnippetHit3DBuilderICARUS_tool.cc.
|
private |
Take the time to create and fill some histograms for diagnostics.
Definition at line 263 of file SnippetHit3DBuilderICARUS_tool.cc.
|
mutableprivate |
Definition at line 294 of file SnippetHit3DBuilderICARUS_tool.cc.
|
mutableprivate |
Definition at line 295 of file SnippetHit3DBuilderICARUS_tool.cc.
|
mutableprivate |
Definition at line 298 of file SnippetHit3DBuilderICARUS_tool.cc.
|
private |
Definition at line 255 of file SnippetHit3DBuilderICARUS_tool.cc.
|
mutableprivate |
Definition at line 311 of file SnippetHit3DBuilderICARUS_tool.cc.
|
private |
Definition at line 273 of file SnippetHit3DBuilderICARUS_tool.cc.
|
mutableprivate |
Definition at line 312 of file SnippetHit3DBuilderICARUS_tool.cc.
|
private |
Definition at line 254 of file SnippetHit3DBuilderICARUS_tool.cc.
|
mutableprivate |
Definition at line 301 of file SnippetHit3DBuilderICARUS_tool.cc.
|
private |
Definition at line 252 of file SnippetHit3DBuilderICARUS_tool.cc.
|
private |
Should we save valid 2 hit space points?
Definition at line 260 of file SnippetHit3DBuilderICARUS_tool.cc.
|
mutableprivate |
Definition at line 299 of file SnippetHit3DBuilderICARUS_tool.cc.
|
mutableprivate |
Definition at line 300 of file SnippetHit3DBuilderICARUS_tool.cc.
|
mutableprivate |
Definition at line 302 of file SnippetHit3DBuilderICARUS_tool.cc.
|
mutableprivate |
Definition at line 267 of file SnippetHit3DBuilderICARUS_tool.cc.
|
private |
output analysis tree
Definition at line 276 of file SnippetHit3DBuilderICARUS_tool.cc.
|
private |
If true then we will use the LArSoft interplane offsets.
Definition at line 262 of file SnippetHit3DBuilderICARUS_tool.cc.
|
mutableprivate |
Definition at line 318 of file SnippetHit3DBuilderICARUS_tool.cc.
|
private |
Definition at line 266 of file SnippetHit3DBuilderICARUS_tool.cc.
|
private |
Scaling factor to determine max distance allowed between candidate pairs.
Definition at line 258 of file SnippetHit3DBuilderICARUS_tool.cc.
|
private |
Definition at line 269 of file SnippetHit3DBuilderICARUS_tool.cc.