StandardHit3DBuilder class definiton. More...
Public Member Functions | |
StandardHit3DBuilder (fhicl::ParameterSet const &pset) | |
Constructor. More... | |
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... | |
void | configure (const fhicl::ParameterSet &) override |
Interface for configuring the particular algorithm tool. More... | |
void | Hit3DBuilder (art::Event &, reco::HitPairList &, RecobHitToPtrMap &) override |
Given a set of recob hits, run DBscan to form 3D clusters. More... | |
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 | PlaneHitVectorItrPairVec = std::vector< std::pair< HitVector::iterator, HitVector::iterator >> |
Given the ClusterHit2D objects, build the HitPairMap. More... | |
using | HitMatchPair = std::pair< const reco::ClusterHit2D *, reco::ClusterHit3D > |
This builds a list of candidate hit pairs from lists of hits on two planes. More... | |
using | HitMatchPairVec = std::vector< HitMatchPair > |
using | HitMatchPairVecMap = std::map< geo::WireID, HitMatchPairVec > |
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 (PlaneToHitVectorMap &planeToHitVectorMap, reco::HitPairList &hitPairList) const |
Given the ClusterHit2D objects, build the HitPairMap. More... | |
size_t | BuildHitPairMapByTPC (PlaneHitVectorItrPairVec &planeHitVectorItrPairVec, reco::HitPairList &hitPairList) const |
int | findGoodHitPairs (const reco::ClusterHit2D *, HitVector::iterator &, HitVector::iterator &, HitMatchPairVecMap &) const |
void | findGoodTriplets (HitMatchPairVecMap &, HitMatchPairVecMap &, 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... | |
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 |
Data members to follow. More... | |
float | m_numSigmaPeakTime |
float | m_hitWidthSclFctr |
float | m_deltaPeakTimeSig |
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_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 |
TTree * | m_tupleTree |
output analysis tree More... | |
std::vector< float > | m_deltaTimeVec |
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 |
Hit2DList | m_clusterHit2DMasterList |
PlaneToHitVectorMap | m_planeToHitVectorMap |
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... | |
StandardHit3DBuilder class definiton.
Definition at line 77 of file StandardHit3DBuilder_tool.cc.
|
private |
Definition at line 245 of file StandardHit3DBuilder_tool.cc.
|
private |
define data structure for keeping track of channel status
Definition at line 244 of file StandardHit3DBuilder_tool.cc.
|
private |
This builds a list of candidate hit pairs from lists of hits on two planes.
Definition at line 164 of file StandardHit3DBuilder_tool.cc.
|
private |
Definition at line 165 of file StandardHit3DBuilder_tool.cc.
|
private |
Definition at line 166 of file StandardHit3DBuilder_tool.cc.
|
private |
Given the ClusterHit2D objects, build the HitPairMap.
Definition at line 156 of file StandardHit3DBuilder_tool.cc.
|
explicit |
Constructor.
pset |
Definition at line 302 of file StandardHit3DBuilder_tool.cc.
|
private |
Create the internal channel status vector (assume will eventually be event-by-event)
Definition at line 391 of file StandardHit3DBuilder_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 512 of file StandardHit3DBuilder_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 595 of file StandardHit3DBuilder_tool.cc.
|
private |
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 668 of file StandardHit3DBuilder_tool.cc.
|
private |
Perform charge integration between limits.
Definition at line 1301 of file StandardHit3DBuilder_tool.cc.
|
private |
clear the tuple vectors before processing next event
Definition at line 371 of file StandardHit3DBuilder_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 1538 of file StandardHit3DBuilder_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 322 of file StandardHit3DBuilder_tool.cc.
|
private |
Create a new 2D hit collection from hits associated to 3D space points.
Definition at line 1674 of file StandardHit3DBuilder_tool.cc.
|
private |
Jacket the calls to finding the nearest wire in order to intercept the exceptions if out of range.
Definition at line 1482 of file StandardHit3DBuilder_tool.cc.
|
private |
A utility routine for finding a 2D hit closest in time to the given pair.
Definition at line 1398 of file StandardHit3DBuilder_tool.cc.
|
private |
Definition at line 768 of file StandardHit3DBuilder_tool.cc.
|
private |
This algorithm takes lists of hit pairs and finds good triplets.
Definition at line 794 of file StandardHit3DBuilder_tool.cc.
|
private |
A utility routine for returning the number of 2D hits from the list in a given range.
Definition at line 1427 of file StandardHit3DBuilder_tool.cc.
|
inlineoverridevirtual |
If monitoring, recover the time to execute a particular function.
Implements lar_cluster3d::IHit3DBuilder.
Definition at line 106 of file StandardHit3DBuilder_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 455 of file StandardHit3DBuilder_tool.cc.
|
private |
Make a 3D HitPair object from a valid pair and a dead channel in the missing plane.
Definition at line 1319 of file StandardHit3DBuilder_tool.cc.
|
private |
Make a HitPair object by checking two hits.
Definition at line 913 of file StandardHit3DBuilder_tool.cc.
|
private |
Make a 3D HitPair object by checking two hits.
Definition at line 1042 of file StandardHit3DBuilder_tool.cc.
|
private |
Create raw::RawDigit to recob::Hit associations.
Definition at line 1786 of file StandardHit3DBuilder_tool.cc.
|
private |
Create recob::Wire to recob::Hit associations.
Definition at line 1739 of file StandardHit3DBuilder_tool.cc.
|
private |
Jacket the calls to finding the nearest wire in order to intercept the exceptions if out of range.
Definition at line 1454 of file StandardHit3DBuilder_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 312 of file StandardHit3DBuilder_tool.cc.
|
private |
Definition at line 299 of file StandardHit3DBuilder_tool.cc.
|
mutableprivate |
Definition at line 293 of file StandardHit3DBuilder_tool.cc.
|
mutableprivate |
Definition at line 275 of file StandardHit3DBuilder_tool.cc.
|
mutableprivate |
Definition at line 289 of file StandardHit3DBuilder_tool.cc.
|
private |
Definition at line 258 of file StandardHit3DBuilder_tool.cc.
|
mutableprivate |
Definition at line 274 of file StandardHit3DBuilder_tool.cc.
|
private |
Definition at line 265 of file StandardHit3DBuilder_tool.cc.
|
private |
Definition at line 298 of file StandardHit3DBuilder_tool.cc.
|
mutableprivate |
Definition at line 286 of file StandardHit3DBuilder_tool.cc.
|
private |
Data members to follow.
Definition at line 255 of file StandardHit3DBuilder_tool.cc.
|
private |
Definition at line 257 of file StandardHit3DBuilder_tool.cc.
|
private |
Definition at line 259 of file StandardHit3DBuilder_tool.cc.
|
mutableprivate |
Definition at line 279 of file StandardHit3DBuilder_tool.cc.
|
private |
Provide ability to select hits based on "chi square".
Definition at line 262 of file StandardHit3DBuilder_tool.cc.
|
mutableprivate |
Definition at line 276 of file StandardHit3DBuilder_tool.cc.
|
mutableprivate |
Definition at line 280 of file StandardHit3DBuilder_tool.cc.
|
mutableprivate |
Definition at line 294 of file StandardHit3DBuilder_tool.cc.
|
private |
Definition at line 256 of file StandardHit3DBuilder_tool.cc.
|
private |
Take the time to create and fill some histograms for diagnostics.
Definition at line 263 of file StandardHit3DBuilder_tool.cc.
|
mutableprivate |
Definition at line 277 of file StandardHit3DBuilder_tool.cc.
|
mutableprivate |
Definition at line 278 of file StandardHit3DBuilder_tool.cc.
|
mutableprivate |
Definition at line 281 of file StandardHit3DBuilder_tool.cc.
|
mutableprivate |
Definition at line 290 of file StandardHit3DBuilder_tool.cc.
|
mutableprivate |
Definition at line 291 of file StandardHit3DBuilder_tool.cc.
|
mutableprivate |
Definition at line 284 of file StandardHit3DBuilder_tool.cc.
|
mutableprivate |
Definition at line 282 of file StandardHit3DBuilder_tool.cc.
|
mutableprivate |
Definition at line 283 of file StandardHit3DBuilder_tool.cc.
|
mutableprivate |
Definition at line 285 of file StandardHit3DBuilder_tool.cc.
|
mutableprivate |
Definition at line 267 of file StandardHit3DBuilder_tool.cc.
|
private |
output analysis tree
Definition at line 272 of file StandardHit3DBuilder_tool.cc.
|
mutableprivate |
Definition at line 296 of file StandardHit3DBuilder_tool.cc.
|
private |
Definition at line 266 of file StandardHit3DBuilder_tool.cc.
|
private |
Scaling factor to determine max distance allowed between candidate pairs.
Definition at line 261 of file StandardHit3DBuilder_tool.cc.
|
private |
Definition at line 269 of file StandardHit3DBuilder_tool.cc.