LArSoft
v09_90_00
Liquid Argon Software toolkit - https://larsoft.org/
|
#include "ClusterCrawlerAlg.h"
Classes | |
struct | ClusterStore |
struct of temporary clusters More... | |
struct | Vtx3Store |
struct of temporary 3D vertices More... | |
struct | VtxStore |
struct of temporary 2D vertices (end points) More... | |
Public Types | |
typedef unsigned int | CTP_t |
Public Member Functions | |
Data structures for the reconstruction results | |
ClusterCrawlerAlg (fhicl::ParameterSet const &pset) | |
void | RunCrawler (detinfo::DetectorClocksData const &clock_data, detinfo::DetectorPropertiesData const &det_prop, std::vector< recob::Hit > const &srchits) |
Result retrieval | |
std::vector< short > const & | GetinClus () const |
Returns (and loses) the collection of reconstructed hits. More... | |
std::vector< recob::Hit > && | YieldHits () |
Returns (and loses) the collection of reconstructed hits. More... | |
std::vector< recob::Hit > | GetHits () |
Returns the collection of reconstructed hits. More... | |
std::vector< ClusterStore > const & | GetClusters () const |
Returns a constant reference to the clusters found. More... | |
std::vector< VtxStore > const & | GetEndPoints () const |
Returns a constant reference to the 2D end points found. More... | |
std::vector< Vtx3Store > const & | GetVertices () const |
Returns a constant reference to the 3D vertices found. More... | |
void | ClearResults () |
Static Public Member Functions | |
static CTP_t | EncodeCTP (unsigned int cryo, unsigned int tpc, unsigned int plane) |
static CTP_t | EncodeCTP (const geo::PlaneID &planeID) |
static geo::PlaneID | DecodeCTP (CTP_t CTP) |
static bool | SortByMultiplet (recob::Hit const &a, recob::Hit const &b) |
Comparison for sorting hits by wire and hit multiplet. More... | |
Static Public Attributes | |
static constexpr unsigned int | CTPpad = 1000 |
Private Member Functions | |
void | ClusterLoop () |
bool | ClusterHitsOK (short nHitChk) |
void | AddHit (unsigned int kwire, bool &HitOK, bool &SigOK) |
void | AddLAHit (unsigned int kwire, bool &ChkCharge, bool &HitOK, bool &SigOK) |
void | FitCluster () |
void | FitClusterChg () |
void | FitClusterMid (unsigned short it1, unsigned int iht, short nhit) |
void | FitClusterMid (std::vector< unsigned int > &hitVec, unsigned int iht, short nhit) |
void | CrawlUS () |
void | LACrawlUS () |
void | KillGarbageClusters () |
void | ChkMerge () |
void | ChkMerge12 (unsigned short it1, unsigned short it2, bool &didit) |
void | DoMerge (unsigned short it1, unsigned short it2, short ProcCode) |
void | ChkClusterNearbyHits (bool prt) |
void | MergeHits (const unsigned int theHit, bool &didMerge) |
void | FixMultipletLocalIndices (size_t begin, size_t end, short int multiplicity=-1) |
Resets the local index and multiplicity of all the hits in [begin;end[. More... | |
void | CheckClusterHitFrac (bool prt) |
void | ChkClusterDS () |
void | MergeOverlap () |
void | MakeClusterObsolete (unsigned short icl) |
Marks the cluster as obsolete and frees hits still associated with it. More... | |
void | RestoreObsoleteCluster (unsigned short icl) |
Restores an obsolete cluster. More... | |
void | RemoveObsoleteHits () |
Removes obsolete hits from hits, updating the indices. More... | |
void | FindVertices () |
void | FindStarVertices () |
void | ChkVertex (float fvw, float fvt, unsigned short it1, unsigned short it2, short topo) |
void | ClusterVertex (unsigned short it2) |
void | VertexCluster (unsigned short ivx) |
void | RefineVertexClusters (unsigned short ivx) |
bool | VtxClusterSplit () |
bool | CrawlVtxChk (unsigned int kwire) |
bool | CrawlVtxChk2 () |
void | VtxConstraint (unsigned int iwire, unsigned int ihit, unsigned int jwire, unsigned int &useHit, bool &doConstrain) |
void | FitVtx (unsigned short iv) |
void | FitAllVtx (CTP_t inCTP) |
void | VtxMatch (detinfo::DetectorPropertiesData const &det_prop, geo::TPCID const &tpcid) |
void | Vtx3ClusterMatch (detinfo::DetectorPropertiesData const &det_prop, geo::TPCID const &tpcid) |
void | Vtx3ClusterSplit (detinfo::DetectorPropertiesData const &det_prop, geo::TPCID const &tpcid) |
void | FindHammerClusters (detinfo::DetectorPropertiesData const &det_prop) |
void | CrawlInit () |
void | ClusterInit () |
void | GetHitRange (CTP_t CTP) |
bool | TmpStore () |
void | TmpGet (unsigned short it1) |
void | CalculateAveHitWidth () |
void | FclTrimUS (unsigned short nTrim) |
bool | SplitCluster (unsigned short icl, unsigned short pos, unsigned short ivx) |
unsigned int | DeadWireCount () |
unsigned int | DeadWireCount (unsigned int inWire1, unsigned int inWire2) |
bool | ChkMergedClusterHitFrac (unsigned short it1, unsigned short it2) |
void | PrintClusters () |
void | PrintVertices () |
bool | ChkSignal (unsigned int iht, unsigned int jht) |
bool | ChkSignal (unsigned int wire1, float time1, unsigned int wire2, float time2) |
float | AngleFactor (float slope) |
float | EndKinkAngle () |
bool | CheckHitDuplicates (std::string location, std::string marker="") const |
Returns true if there are no duplicates in the hit list for next cluster. More... | |
float | DoCA (short icl, unsigned short end, float vwire, float vtick) |
float | ClusterVertexChi (short icl, unsigned short end, unsigned short ivx) |
float | PointVertexChi (float wire, float tick, unsigned short ivx) |
std::string | PrintHit (unsigned int iht) |
std::pair< size_t, size_t > | FindHitMultiplet (size_t iHit) const |
void | CheckHitClusterAssociations () |
Static Private Member Functions | |
static bool | areInSameMultiplet (recob::Hit const &first_hit, recob::Hit const &second_hit) |
Returns whether the two hits belong to the same multiplet. More... | |
Private Attributes | |
unsigned short | fNumPass |
number of passes over the hit collection More... | |
std::vector< unsigned short > | fMaxHitsFit |
Max number of hits fitted. More... | |
std::vector< unsigned short > | fMinHits |
Min number of hits to make a cluster. More... | |
std::vector< unsigned short > | fNHitsAve |
std::vector< float > | fChiCut |
stop adding hits to clusters if chisq too high More... | |
std::vector< float > | fKinkChiRat |
std::vector< float > | fKinkAngCut |
kink angle cut made after fKinkChiRat More... | |
std::vector< float > | fChgCut |
charge difference cut for adding a hit to a cluster More... | |
std::vector< unsigned short > | fMaxWirSkip |
max number of wires that can be skipped while crawling More... | |
std::vector< unsigned short > | fMinWirAfterSkip |
std::vector< bool > | fDoMerge |
try to merge clusters? More... | |
std::vector< float > | fTimeDelta |
max time difference for matching More... | |
std::vector< float > | fMergeChgCut |
max charge ratio for matching More... | |
std::vector< bool > | fFindVertices |
run vertexing code after clustering? More... | |
std::vector< bool > | fLACrawl |
Crawl Large Angle clusters on pass? More... | |
bool | fFindHammerClusters |
look for hammer type clusters More... | |
bool | fRefineVertexClusters |
std::vector< float > | fMinAmp |
expected minimum signal in each wire plane More... | |
float | fKillGarbageClusters |
bool | fChkClusterDS |
bool | fVtxClusterSplit |
bool | fFindStarVertices |
float | fHitErrFac |
hit time error = fHitErrFac * hit RMS used for cluster fit More... | |
float | fHitMinAmp |
< ignore hits with Amp < this value More... | |
float | fClProjErrFac |
cluster projection error factor More... | |
float | fMinHitFrac |
float | fLAClusAngleCut |
call Large Angle Clustering code if > 0 More... | |
unsigned short | fLAClusMaxHitsFit |
max hits fitted on a Large Angle cluster More... | |
float | fLAClusSlopeCut |
bool | fMergeAllHits |
float | fHitMergeChiCut |
float | fMergeOverlapAngCut |
angle cut for merging overlapping clusters More... | |
unsigned short | fAllowNoHitWire |
float | fVertex2DCut |
2D vtx -> cluster matching cut (chisq/dof) More... | |
float | fVertex2DWireErrCut |
float | fVertex3DCut |
2D vtx -> 3D vtx matching cut (chisq/dof) More... | |
int | fDebugPlane |
int | fDebugWire |
set to the Begin Wire and Hit of a cluster to print More... | |
int | fDebugHit |
out detailed information while crawling More... | |
std::vector< geo::WireID > | fFilteredWires |
float | clpar [3] |
float | clparerr [2] |
cluster parameter errors More... | |
float | clChisq |
chisq of the current fit More... | |
float | fAveChg |
average charge at leading edge of cluster More... | |
float | fChgSlp |
slope of the charge vs wire More... | |
float | fAveHitWidth |
average width (EndTick - StartTick) of hits More... | |
bool | prt |
bool | vtxprt |
unsigned short | NClusters |
art::ServiceHandle< geo::Geometry const > | geom |
std::vector< recob::Hit > | fHits |
our version of the hits More... | |
std::vector< short > | inClus |
Hit used in cluster (-1 = obsolete, 0 = free) More... | |
std::vector< bool > | mergeAvailable |
set true if hit is with HitMergeChiCut of a neighbor hit More... | |
std::vector< ClusterStore > | tcl |
the clusters we are creating More... | |
std::vector< VtxStore > | vtx |
the endpoints we are reconstructing More... | |
std::vector< Vtx3Store > | vtx3 |
the 3D vertices we are reconstructing More... | |
trkf::LinFitAlg | fLinFitAlg |
float | clBeginSlp |
begin slope (= DS end = high wire number) More... | |
float | clBeginAng |
float | clBeginSlpErr |
unsigned int | clBeginWir |
begin wire More... | |
float | clBeginTim |
begin time More... | |
float | clBeginChg |
begin average charge More... | |
float | clBeginChgNear |
nearby charge More... | |
float | clEndSlp |
slope at the end (= US end = low wire number) More... | |
float | clEndAng |
float | clEndSlpErr |
unsigned int | clEndWir |
begin wire More... | |
float | clEndTim |
begin time More... | |
float | clEndChg |
end average charge More... | |
float | clEndChgNear |
nearby charge More... | |
short | clStopCode |
short | clProcCode |
CTP_t | clCTP |
Cryostat/TPC/Plane code. More... | |
bool | clLA |
using Large Angle crawling code More... | |
unsigned int | fFirstWire |
the first wire with a hit More... | |
unsigned int | fFirstHit |
first hit used More... | |
unsigned int | fLastWire |
the last wire with a hit More... | |
unsigned int | cstat |
unsigned int | tpc |
unsigned int | plane |
unsigned int | fNumWires |
unsigned int | fMaxTime |
float | fScaleF |
scale factor from Tick/Wire to dx/du More... | |
unsigned short | pass |
std::vector< std::pair< int, int > > | WireHitRange |
std::vector< unsigned int > | fcl2hits |
vector of hits used in the cluster More... | |
std::vector< float > | chifits |
fit chisq for monitoring kinks, etc More... | |
std::vector< short > | hitNear |
std::vector< float > | chgNear |
charge near a cluster on each wire More... | |
float | fChgNearWindow |
window (ticks) for finding nearby charge More... | |
float | fChgNearCut |
std::string | fhitsModuleLabel |
Definition at line 35 of file ClusterCrawlerAlg.h.
typedef unsigned int cluster::ClusterCrawlerAlg::CTP_t |
Definition at line 38 of file ClusterCrawlerAlg.h.
|
explicit |
Definition at line 54 of file ClusterCrawlerAlg.cxx.
References art::errors::Configuration, fhicl::ParameterSet::get(), and fhicl::ParameterSet::has_key().
|
private |
Definition at line 4726 of file ClusterCrawlerAlg.cxx.
References util::abs(), lar::util::absDiff(), recob::Hit::Integral(), recob::Hit::LocalIndex(), recob::Hit::Multiplicity(), recob::Hit::PeakTime(), tca::PrintHit(), recob::Hit::RMS(), and cluster::SortByLowHit().
|
private |
Definition at line 4476 of file ClusterCrawlerAlg.cxx.
References util::abs(), and tca::PrintHit().
|
private |
Definition at line 4334 of file ClusterCrawlerAlg.cxx.
References util::abs().
|
staticprivate |
Returns whether the two hits belong to the same multiplet.
Definition at line 6085 of file ClusterCrawlerAlg.cxx.
References recob::Hit::StartTick(), and recob::Hit::WireID().
|
private |
Definition at line 4347 of file ClusterCrawlerAlg.cxx.
|
private |
Definition at line 4059 of file ClusterCrawlerAlg.cxx.
References tca::DeadWireCount().
|
private |
Definition at line 878 of file ClusterCrawlerAlg.cxx.
|
private |
Returns true if there are no duplicates in the hit list for next cluster.
Definition at line 6104 of file ClusterCrawlerAlg.cxx.
References hits().
|
private |
Definition at line 976 of file ClusterCrawlerAlg.cxx.
References util::abs(), and cluster::SortByLowHit().
|
private |
Definition at line 4980 of file ClusterCrawlerAlg.cxx.
References util::abs(), recob::Hit::LocalIndex(), recob::Hit::Multiplicity(), recob::Hit::PeakTime(), and recob::Hit::RMS().
|
private |
Definition at line 2787 of file ClusterCrawlerAlg.cxx.
References util::abs(), and tca::DeadWireCount().
|
private |
Definition at line 2997 of file ClusterCrawlerAlg.cxx.
References util::abs(), cluster::ClusterCrawlerAlg::ClusterStore::EndWir, and cluster::ClusterCrawlerAlg::ClusterStore::tclhits.
|
private |
Definition at line 4012 of file ClusterCrawlerAlg.cxx.
|
private |
Definition at line 2566 of file ClusterCrawlerAlg.cxx.
|
private |
Definition at line 2578 of file ClusterCrawlerAlg.cxx.
References util::abs(), and bin.
|
private |
Definition at line 2366 of file ClusterCrawlerAlg.cxx.
References util::abs(), cluster::ClusterCrawlerAlg::VtxStore::CTP, cluster::ClusterCrawlerAlg::VtxStore::Fixed, cluster::ClusterCrawlerAlg::VtxStore::Time, cluster::ClusterCrawlerAlg::VtxStore::Topo, and cluster::ClusterCrawlerAlg::VtxStore::Wire.
void cluster::ClusterCrawlerAlg::ClearResults | ( | ) |
Deletes all the results (might saves memory)
Definition at line 145 of file ClusterCrawlerAlg.cxx.
Referenced by cluster::LineCluster::produce(), and cluster::ClusterCrawler::produce().
|
private |
Definition at line 4667 of file ClusterCrawlerAlg.cxx.
References lar::util::absDiff().
|
private |
Definition at line 187 of file ClusterCrawlerAlg.cxx.
|
private |
Definition at line 291 of file ClusterCrawlerAlg.cxx.
References util::abs(), art::errors::LogicError, tca::MergeOverlap(), recob::Hit::PeakTime(), tca::PrintClusters(), tca::PrintHit(), and util::span().
|
private |
Definition at line 2269 of file ClusterCrawlerAlg.cxx.
References util::abs().
|
private |
Definition at line 6171 of file ClusterCrawlerAlg.cxx.
References E.
|
private |
Definition at line 155 of file ClusterCrawlerAlg.cxx.
|
private |
Definition at line 3689 of file ClusterCrawlerAlg.cxx.
References util::abs().
|
private |
Definition at line 1193 of file ClusterCrawlerAlg.cxx.
References util::abs().
|
private |
Definition at line 1158 of file ClusterCrawlerAlg.cxx.
References util::abs().
|
private |
Definition at line 6070 of file ClusterCrawlerAlg.cxx.
|
private |
Definition at line 6054 of file ClusterCrawlerAlg.cxx.
References tmp.
|
inlinestatic |
Definition at line 49 of file ClusterCrawlerAlg.h.
Referenced by cluster::LineCluster::produce(), and cluster::ClusterCrawler::produce().
|
private |
Definition at line 6125 of file ClusterCrawlerAlg.cxx.
|
private |
Definition at line 3130 of file ClusterCrawlerAlg.cxx.
References cluster::ClusterCrawlerAlg::ClusterStore::BeginAng, cluster::ClusterCrawlerAlg::ClusterStore::BeginChg, cluster::ClusterCrawlerAlg::ClusterStore::BeginChgNear, cluster::ClusterCrawlerAlg::ClusterStore::BeginSlp, cluster::ClusterCrawlerAlg::ClusterStore::BeginSlpErr, cluster::ClusterCrawlerAlg::ClusterStore::BeginTim, cluster::ClusterCrawlerAlg::ClusterStore::BeginVtx, cluster::ClusterCrawlerAlg::ClusterStore::BeginWir, cluster::ClusterCrawlerAlg::ClusterStore::CTP, cluster::ClusterCrawlerAlg::ClusterStore::EndAng, cluster::ClusterCrawlerAlg::ClusterStore::EndChg, cluster::ClusterCrawlerAlg::ClusterStore::EndChgNear, cluster::ClusterCrawlerAlg::ClusterStore::EndSlp, cluster::ClusterCrawlerAlg::ClusterStore::EndSlpErr, cluster::ClusterCrawlerAlg::ClusterStore::EndTim, cluster::ClusterCrawlerAlg::ClusterStore::EndVtx, cluster::ClusterCrawlerAlg::ClusterStore::EndWir, cluster::ClusterCrawlerAlg::ClusterStore::ID, cluster::ClusterCrawlerAlg::ClusterStore::StopCode, and cluster::ClusterCrawlerAlg::ClusterStore::tclhits.
|
inlinestatic |
Definition at line 41 of file ClusterCrawlerAlg.h.
|
inlinestatic |
Definition at line 45 of file ClusterCrawlerAlg.h.
References geo::CryostatID::Cryostat, tca::EncodeCTP(), geo::PlaneID::Plane, and geo::TPCID::TPC.
|
private |
Definition at line 3989 of file ClusterCrawlerAlg.cxx.
References util::abs().
|
private |
Definition at line 859 of file ClusterCrawlerAlg.cxx.
|
private |
Definition at line 5489 of file ClusterCrawlerAlg.cxx.
References detinfo::DetectorPropertiesData::ConvertTicksToX(), cluster::ClusterCrawlerAlg::Vtx3Store::CStat, cluster::ClusterCrawlerAlg::VtxStore::CTP, e, tca::EncodeCTP(), cluster::ClusterCrawlerAlg::VtxStore::Fixed, geo::TPCGeo::GetCenter(), geo::TPCGeo::HalfHeight(), geo::TPCGeo::Length(), cluster::ClusterCrawlerAlg::Vtx3Store::ProcCode, cluster::ClusterCrawlerAlg::Vtx3Store::Ptr2D, util::size(), geo::InvalidWireError::suggestedWireID(), cluster::ClusterCrawlerAlg::VtxStore::Time, cluster::ClusterCrawlerAlg::VtxStore::TimeErr, cluster::ClusterCrawlerAlg::VtxStore::Topo, cluster::ClusterCrawlerAlg::Vtx3Store::TPC, cluster::ClusterCrawlerAlg::VtxStore::Wire, cluster::ClusterCrawlerAlg::Vtx3Store::Wire, geo::WireID::Wire, cluster::ClusterCrawlerAlg::VtxStore::WireErr, X, cluster::ClusterCrawlerAlg::Vtx3Store::X, cluster::ClusterCrawlerAlg::Vtx3Store::XErr, y, cluster::ClusterCrawlerAlg::Vtx3Store::Y, cluster::ClusterCrawlerAlg::Vtx3Store::YErr, cluster::ClusterCrawlerAlg::Vtx3Store::Z, z, and cluster::ClusterCrawlerAlg::Vtx3Store::ZErr.
|
private |
Returns a pair of first and past-the-last index of all the contiguous hits belonging to the same multiplet
Definition at line 6093 of file ClusterCrawlerAlg.cxx.
|
private |
Definition at line 1763 of file ClusterCrawlerAlg.cxx.
References util::abs(), cluster::ClusterCrawlerAlg::VtxStore::CTP, cluster::ClusterCrawlerAlg::VtxStore::Fixed, tca::PrintClusters(), cluster::ClusterCrawlerAlg::VtxStore::Time, cluster::ClusterCrawlerAlg::VtxStore::TimeErr, cluster::ClusterCrawlerAlg::VtxStore::Topo, cluster::ClusterCrawlerAlg::VtxStore::Wire, and cluster::ClusterCrawlerAlg::VtxStore::WireErr.
|
private |
Definition at line 2025 of file ClusterCrawlerAlg.cxx.
References util::abs(), util::empty(), greaterThan(), and tca::PrintClusters().
|
private |
Definition at line 2014 of file ClusterCrawlerAlg.cxx.
|
private |
Definition at line 4235 of file ClusterCrawlerAlg.cxx.
|
private |
Definition at line 4356 of file ClusterCrawlerAlg.cxx.
|
private |
Definition at line 4127 of file ClusterCrawlerAlg.cxx.
|
private |
Definition at line 4133 of file ClusterCrawlerAlg.cxx.
|
private |
Definition at line 5053 of file ClusterCrawlerAlg.cxx.
References tca::DecodeCTP(), x, and y.
|
private |
Resets the local index and multiplicity of all the hits in [begin;end[.
Definition at line 1708 of file ClusterCrawlerAlg.cxx.
References recob::Hit::Channel(), recob::Hit::DegreesOfFreedom(), util::end(), recob::Hit::EndTick(), recob::Hit::GoodnessOfFit(), recob::Hit::Integral(), recob::Hit::PeakAmplitude(), recob::Hit::PeakTime(), recob::Hit::RMS(), recob::Hit::SigmaIntegral(), recob::Hit::SigmaPeakAmplitude(), recob::Hit::SigmaPeakTime(), recob::Hit::SignalType(), recob::Hit::StartTick(), recob::Hit::SummedADC(), recob::Hit::View(), and recob::Hit::WireID().
|
inline |
Returns a constant reference to the clusters found.
Definition at line 129 of file ClusterCrawlerAlg.h.
Referenced by cluster::LineCluster::produce(), and cluster::ClusterCrawler::produce().
|
inline |
Returns a constant reference to the 2D end points found.
Definition at line 132 of file ClusterCrawlerAlg.h.
Referenced by cluster::LineCluster::produce().
|
private |
Definition at line 5937 of file ClusterCrawlerAlg.cxx.
References util::abs(), tca::DecodeCTP(), and art::errors::LogicError.
|
inline |
Returns the collection of reconstructed hits.
Definition at line 126 of file ClusterCrawlerAlg.h.
|
inline |
Returns (and loses) the collection of reconstructed hits.
Definition at line 120 of file ClusterCrawlerAlg.h.
Referenced by cluster::ClusterCrawler::produce().
|
inline |
Returns a constant reference to the 3D vertices found.
Definition at line 135 of file ClusterCrawlerAlg.h.
Referenced by cluster::LineCluster::produce(), and cluster::ClusterCrawler::produce().
|
private |
Definition at line 500 of file ClusterCrawlerAlg.cxx.
References util::abs().
|
private |
Definition at line 3540 of file ClusterCrawlerAlg.cxx.
References util::abs().
|
private |
Marks the cluster as obsolete and frees hits still associated with it.
Definition at line 828 of file ClusterCrawlerAlg.cxx.
|
private |
Definition at line 1549 of file ClusterCrawlerAlg.cxx.
References util::abs(), recob::Hit::Channel(), recob::Hit::DegreesOfFreedom(), recob::Hit::EndTick(), recob::Hit::Integral(), recob::Hit::Multiplicity(), recob::Hit::PeakAmplitude(), recob::Hit::PeakTime(), recob::Hit::PeakTimeMinusRMS(), recob::Hit::PeakTimePlusRMS(), geo::PlaneID::Plane, recob::Hit::RMS(), recob::Hit::SigmaIntegral(), recob::Hit::SigmaPeakAmplitude(), recob::Hit::SigmaPeakTime(), recob::Hit::SignalType(), recob::Hit::StartTick(), recob::Hit::SummedADC(), recob::Hit::View(), geo::WireID::Wire, and recob::Hit::WireID().
|
private |
Definition at line 636 of file ClusterCrawlerAlg.cxx.
References util::abs(), tca::PrintHit(), and cluster::SortByLowHit().
|
private |
Definition at line 6238 of file ClusterCrawlerAlg.cxx.
|
private |
Definition at line 3319 of file ClusterCrawlerAlg.cxx.
References util::abs(), and art::right().
|
private |
Definition at line 6256 of file ClusterCrawlerAlg.cxx.
References util::to_string().
|
private |
Definition at line 3255 of file ClusterCrawlerAlg.cxx.
References art::right().
|
private |
Definition at line 1259 of file ClusterCrawlerAlg.cxx.
References util::abs().
|
private |
Removes obsolete hits from hits, updating the indices.
Definition at line 936 of file ClusterCrawlerAlg.cxx.
References hits().
|
private |
Restores an obsolete cluster.
Definition at line 844 of file ClusterCrawlerAlg.cxx.
void cluster::ClusterCrawlerAlg::RunCrawler | ( | detinfo::DetectorClocksData const & | clock_data, |
detinfo::DetectorPropertiesData const & | det_prop, | ||
std::vector< recob::Hit > const & | srchits | ||
) |
Definition at line 201 of file ClusterCrawlerAlg.cxx.
References detinfo::DetectorPropertiesData::DriftVelocity(), detinfo::DetectorPropertiesData::Efield(), tca::EncodeCTP(), detinfo::DetectorPropertiesData::NumberTimeSamples(), tca::PrintClusters(), detinfo::sampling_rate(), and detinfo::DetectorPropertiesData::Temperature().
Referenced by cluster::LineCluster::produce(), and cluster::ClusterCrawler::produce().
|
static |
Comparison for sorting hits by wire and hit multiplet.
Definition at line 133 of file ClusterCrawlerAlg.cxx.
References geo::WireID::cmp(), recob::Hit::LocalIndex(), recob::Hit::StartTick(), and recob::Hit::WireID().
|
private |
Definition at line 2670 of file ClusterCrawlerAlg.cxx.
|
private |
Definition at line 3420 of file ClusterCrawlerAlg.cxx.
|
private |
Definition at line 3448 of file ClusterCrawlerAlg.cxx.
References cluster::ClusterCrawlerAlg::ClusterStore::BeginAng, cluster::ClusterCrawlerAlg::ClusterStore::BeginChg, cluster::ClusterCrawlerAlg::ClusterStore::BeginChgNear, cluster::ClusterCrawlerAlg::ClusterStore::BeginSlp, cluster::ClusterCrawlerAlg::ClusterStore::BeginSlpErr, cluster::ClusterCrawlerAlg::ClusterStore::BeginTim, cluster::ClusterCrawlerAlg::ClusterStore::BeginVtx, cluster::ClusterCrawlerAlg::ClusterStore::BeginWir, cluster::ClusterCrawlerAlg::ClusterStore::CTP, tca::EncodeCTP(), cluster::ClusterCrawlerAlg::ClusterStore::EndAng, cluster::ClusterCrawlerAlg::ClusterStore::EndChg, cluster::ClusterCrawlerAlg::ClusterStore::EndChgNear, cluster::ClusterCrawlerAlg::ClusterStore::EndSlp, cluster::ClusterCrawlerAlg::ClusterStore::EndSlpErr, cluster::ClusterCrawlerAlg::ClusterStore::EndTim, cluster::ClusterCrawlerAlg::ClusterStore::EndVtx, cluster::ClusterCrawlerAlg::ClusterStore::EndWir, cluster::ClusterCrawlerAlg::ClusterStore::ID, cluster::ClusterCrawlerAlg::ClusterStore::ProcCode, cluster::ClusterCrawlerAlg::ClusterStore::StopCode, and cluster::ClusterCrawlerAlg::ClusterStore::tclhits.
|
private |
Definition at line 1938 of file ClusterCrawlerAlg.cxx.
|
private |
Definition at line 5182 of file ClusterCrawlerAlg.cxx.
References lar::util::absDiff(), detinfo::DetectorPropertiesData::ConvertXToTicks(), geo::CryostatID::Cryostat, cluster::ClusterCrawlerAlg::VtxStore::CTP, util::empty(), tca::EncodeCTP(), cluster::ClusterCrawlerAlg::VtxStore::Fixed, cluster::ClusterCrawlerAlg::VtxStore::Time, cluster::ClusterCrawlerAlg::VtxStore::Topo, geo::TPCID::TPC, cluster::ClusterCrawlerAlg::VtxStore::Wire, and X.
|
private |
Definition at line 5266 of file ClusterCrawlerAlg.cxx.
References util::abs(), detinfo::DetectorPropertiesData::ConvertXToTicks(), geo::CryostatID::Cryostat, cluster::ClusterCrawlerAlg::VtxStore::CTP, util::empty(), tca::EncodeCTP(), cluster::ClusterCrawlerAlg::VtxStore::Fixed, cluster::ClusterCrawlerAlg::VtxStore::Time, cluster::ClusterCrawlerAlg::VtxStore::TimeErr, cluster::ClusterCrawlerAlg::VtxStore::Topo, geo::TPCID::TPC, cluster::ClusterCrawlerAlg::VtxStore::Wire, cluster::ClusterCrawlerAlg::VtxStore::WireErr, and X.
|
private |
Definition at line 1412 of file ClusterCrawlerAlg.cxx.
|
private |
Definition at line 1210 of file ClusterCrawlerAlg.cxx.
References util::abs(), recob::Hit::PeakTime(), geo::WireID::Wire, and recob::Hit::WireID().
|
private |
Definition at line 5679 of file ClusterCrawlerAlg.cxx.
References detinfo::DetectorPropertiesData::ConvertTicksToX(), geo::CryostatID::Cryostat, cluster::ClusterCrawlerAlg::Vtx3Store::CStat, tca::DecodeCTP(), e, geo::TPCGeo::GetCenter(), geo::TPCGeo::HalfHeight(), evd::kWire, geo::kX, geo::TPCGeo::Length(), geo::TPCGeo::Nplanes(), geo::PlaneID::Plane, cluster::ClusterCrawlerAlg::Vtx3Store::ProcCode, cluster::ClusterCrawlerAlg::Vtx3Store::Ptr2D, geo::InvalidWireError::suggestedWireID(), cluster::ClusterCrawlerAlg::Vtx3Store::TPC, geo::TPCID::TPC, cluster::ClusterCrawlerAlg::Vtx3Store::Wire, geo::WireID::Wire, cluster::ClusterCrawlerAlg::Vtx3Store::X, cluster::ClusterCrawlerAlg::Vtx3Store::XErr, y, cluster::ClusterCrawlerAlg::Vtx3Store::Y, cluster::ClusterCrawlerAlg::Vtx3Store::YErr, cluster::ClusterCrawlerAlg::Vtx3Store::Z, z, and cluster::ClusterCrawlerAlg::Vtx3Store::ZErr.
|
inline |
Returns (and loses) the collection of reconstructed hits.
Definition at line 123 of file ClusterCrawlerAlg.h.
Referenced by cluster::LineCluster::produce(), and cluster::ClusterCrawler::produce().
|
private |
charge near a cluster on each wire
Definition at line 290 of file ClusterCrawlerAlg.h.
|
private |
fit chisq for monitoring kinks, etc
Definition at line 286 of file ClusterCrawlerAlg.h.
|
private |
Definition at line 230 of file ClusterCrawlerAlg.h.
|
private |
begin average charge
Definition at line 234 of file ClusterCrawlerAlg.h.
|
private |
nearby charge
Definition at line 235 of file ClusterCrawlerAlg.h.
|
private |
begin slope (= DS end = high wire number)
Definition at line 229 of file ClusterCrawlerAlg.h.
|
private |
Definition at line 231 of file ClusterCrawlerAlg.h.
|
private |
begin time
Definition at line 233 of file ClusterCrawlerAlg.h.
|
private |
begin wire
Definition at line 232 of file ClusterCrawlerAlg.h.
|
private |
chisq of the current fit
Definition at line 208 of file ClusterCrawlerAlg.h.
|
private |
Cryostat/TPC/Plane code.
Definition at line 265 of file ClusterCrawlerAlg.h.
|
private |
Definition at line 237 of file ClusterCrawlerAlg.h.
|
private |
end average charge
Definition at line 241 of file ClusterCrawlerAlg.h.
|
private |
nearby charge
Definition at line 242 of file ClusterCrawlerAlg.h.
|
private |
slope at the end (= US end = low wire number)
Definition at line 236 of file ClusterCrawlerAlg.h.
|
private |
Definition at line 238 of file ClusterCrawlerAlg.h.
|
private |
begin time
Definition at line 240 of file ClusterCrawlerAlg.h.
|
private |
begin wire
Definition at line 239 of file ClusterCrawlerAlg.h.
|
private |
using Large Angle crawling code
Definition at line 266 of file ClusterCrawlerAlg.h.
|
private |
cluster parameters for the current fit with origin at the US wire on the cluster (in clpar[2])
Definition at line 205 of file ClusterCrawlerAlg.h.
|
private |
cluster parameter errors
Definition at line 207 of file ClusterCrawlerAlg.h.
|
private |
Processor code = pass number
Definition at line 253 of file ClusterCrawlerAlg.h.
|
private |
code for the reason for stopping cluster tracking 0 = no signal on the next wire 1 = skipped too many occupied/dead wires 2 = failed the fMinWirAfterSkip cut 3 = ended on a kink. Fails fKinkChiRat 4 = failed the fChiCut cut 5 = cluster split by VtxClusterSplit 6 = stop at a vertex 7 = LA crawl stopped due to slope cut 8 = SPECIAL CODE FOR STEP CRAWLING
Definition at line 243 of file ClusterCrawlerAlg.h.
|
private |
Definition at line 271 of file ClusterCrawlerAlg.h.
|
static |
Definition at line 40 of file ClusterCrawlerAlg.h.
|
private |
Definition at line 192 of file ClusterCrawlerAlg.h.
|
private |
average charge at leading edge of cluster
Definition at line 209 of file ClusterCrawlerAlg.h.
|
private |
average width (EndTick - StartTick) of hits
Definition at line 212 of file ClusterCrawlerAlg.h.
|
private |
charge difference cut for adding a hit to a cluster
Definition at line 158 of file ClusterCrawlerAlg.h.
|
private |
cut on ratio of nearby/cluster charge to to define a shower-like cluster
Definition at line 292 of file ClusterCrawlerAlg.h.
|
private |
window (ticks) for finding nearby charge
Definition at line 291 of file ClusterCrawlerAlg.h.
|
private |
slope of the charge vs wire
Definition at line 211 of file ClusterCrawlerAlg.h.
|
private |
stop adding hits to clusters if chisq too high
Definition at line 154 of file ClusterCrawlerAlg.h.
|
private |
Definition at line 175 of file ClusterCrawlerAlg.h.
|
private |
vector of hits used in the cluster
Definition at line 285 of file ClusterCrawlerAlg.h.
|
private |
cluster projection error factor
Definition at line 183 of file ClusterCrawlerAlg.h.
|
private |
out detailed information while crawling
Definition at line 199 of file ClusterCrawlerAlg.h.
|
private |
Definition at line 197 of file ClusterCrawlerAlg.h.
|
private |
set to the Begin Wire and Hit of a cluster to print
Definition at line 198 of file ClusterCrawlerAlg.h.
|
private |
try to merge clusters?
Definition at line 163 of file ClusterCrawlerAlg.h.
|
private |
Definition at line 202 of file ClusterCrawlerAlg.h.
|
private |
look for hammer type clusters
Definition at line 168 of file ClusterCrawlerAlg.h.
|
private |
Definition at line 177 of file ClusterCrawlerAlg.h.
|
private |
run vertexing code after clustering?
Definition at line 166 of file ClusterCrawlerAlg.h.
|
private |
first hit used
Definition at line 269 of file ClusterCrawlerAlg.h.
|
private |
the first wire with a hit
Definition at line 268 of file ClusterCrawlerAlg.h.
|
private |
hit time error = fHitErrFac * hit RMS used for cluster fit
Definition at line 181 of file ClusterCrawlerAlg.h.
|
private |
Merge cluster hit-multiplets if the separation chisq is < cut. Set < 0 for no merging
Definition at line 189 of file ClusterCrawlerAlg.h.
|
private |
< ignore hits with Amp < this value
Definition at line 182 of file ClusterCrawlerAlg.h.
|
private |
our version of the hits
Definition at line 220 of file ClusterCrawlerAlg.h.
|
private |
Definition at line 295 of file ClusterCrawlerAlg.h.
|
private |
Definition at line 174 of file ClusterCrawlerAlg.h.
|
private |
kink angle cut made after fKinkChiRat
Definition at line 157 of file ClusterCrawlerAlg.h.
|
private |
Max consecutive chisq increase for the last 3 hits on the cluster
Definition at line 155 of file ClusterCrawlerAlg.h.
|
private |
call Large Angle Clustering code if > 0
Definition at line 185 of file ClusterCrawlerAlg.h.
|
private |
max hits fitted on a Large Angle cluster
Definition at line 186 of file ClusterCrawlerAlg.h.
|
private |
Definition at line 187 of file ClusterCrawlerAlg.h.
|
private |
Crawl Large Angle clusters on pass?
Definition at line 167 of file ClusterCrawlerAlg.h.
|
private |
the last wire with a hit
Definition at line 270 of file ClusterCrawlerAlg.h.
|
private |
Definition at line 227 of file ClusterCrawlerAlg.h.
|
private |
Max number of hits fitted.
Definition at line 150 of file ClusterCrawlerAlg.h.
|
private |
Definition at line 275 of file ClusterCrawlerAlg.h.
|
private |
max number of wires that can be skipped while crawling
Definition at line 160 of file ClusterCrawlerAlg.h.
|
private |
Definition at line 188 of file ClusterCrawlerAlg.h.
|
private |
max charge ratio for matching
Definition at line 165 of file ClusterCrawlerAlg.h.
|
private |
angle cut for merging overlapping clusters
Definition at line 191 of file ClusterCrawlerAlg.h.
|
private |
expected minimum signal in each wire plane
Definition at line 172 of file ClusterCrawlerAlg.h.
|
private |
Definition at line 184 of file ClusterCrawlerAlg.h.
|
private |
Min number of hits to make a cluster.
Definition at line 151 of file ClusterCrawlerAlg.h.
|
private |
minimum number of hits on consecutive wires after skipping
Definition at line 161 of file ClusterCrawlerAlg.h.
|
private |
number of US hits used to compute fAveChg set to > 2 to do a charge fit using fNHitsAve hits
Definition at line 152 of file ClusterCrawlerAlg.h.
|
private |
number of passes over the hit collection
Definition at line 149 of file ClusterCrawlerAlg.h.
|
private |
Definition at line 274 of file ClusterCrawlerAlg.h.
|
private |
Definition at line 170 of file ClusterCrawlerAlg.h.
|
private |
scale factor from Tick/Wire to dx/du
Definition at line 276 of file ClusterCrawlerAlg.h.
|
private |
max time difference for matching
Definition at line 164 of file ClusterCrawlerAlg.h.
|
private |
2D vtx -> cluster matching cut (chisq/dof)
Definition at line 193 of file ClusterCrawlerAlg.h.
|
private |
Definition at line 194 of file ClusterCrawlerAlg.h.
|
private |
2D vtx -> 3D vtx matching cut (chisq/dof)
Definition at line 195 of file ClusterCrawlerAlg.h.
|
private |
Definition at line 176 of file ClusterCrawlerAlg.h.
|
private |
Definition at line 218 of file ClusterCrawlerAlg.h.
|
private |
Number of nearby hits that were merged have hitnear < 0
Definition at line 287 of file ClusterCrawlerAlg.h.
|
private |
Hit used in cluster (-1 = obsolete, 0 = free)
Definition at line 221 of file ClusterCrawlerAlg.h.
|
private |
set true if hit is with HitMergeChiCut of a neighbor hit
Definition at line 222 of file ClusterCrawlerAlg.h.
|
private |
Definition at line 216 of file ClusterCrawlerAlg.h.
|
private |
Definition at line 278 of file ClusterCrawlerAlg.h.
|
private |
Definition at line 273 of file ClusterCrawlerAlg.h.
|
private |
Definition at line 214 of file ClusterCrawlerAlg.h.
|
private |
the clusters we are creating
Definition at line 223 of file ClusterCrawlerAlg.h.
|
private |
Definition at line 272 of file ClusterCrawlerAlg.h.
|
private |
the endpoints we are reconstructing
Definition at line 224 of file ClusterCrawlerAlg.h.
|
private |
the 3D vertices we are reconstructing
Definition at line 225 of file ClusterCrawlerAlg.h.
|
private |
Definition at line 215 of file ClusterCrawlerAlg.h.
|
private |
Definition at line 283 of file ClusterCrawlerAlg.h.