LArSoft
v07_13_02
Liquid Argon Software toolkit - http://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) | |
virtual void | reconfigure (fhicl::ParameterSet const &pset) |
void | RunCrawler (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 (geo::TPCID const &tpcid) |
void | Vtx3ClusterMatch (geo::TPCID const &tpcid) |
void | Vtx3ClusterSplit (geo::TPCID const &tpcid) |
void | FindHammerClusters () |
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 |
set to > 2 to do a charge fit using fNHitsAve hits More... | |
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 |
after skipping More... | |
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 |
is < cut. Set < 0 for no merging More... | |
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 > | 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 |
8 = SPECIAL CODE FOR STEP CRAWLING More... | |
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 |
to define a shower-like cluster More... | |
std::string | fhitsModuleLabel |
Definition at line 36 of file ClusterCrawlerAlg.h.
typedef unsigned int cluster::ClusterCrawlerAlg::CTP_t |
Definition at line 40 of file ClusterCrawlerAlg.h.
cluster::ClusterCrawlerAlg::ClusterCrawlerAlg | ( | fhicl::ParameterSet const & | pset | ) |
Definition at line 45 of file ClusterCrawlerAlg.cxx.
|
private |
Definition at line 4907 of file ClusterCrawlerAlg.cxx.
References 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 4643 of file ClusterCrawlerAlg.cxx.
References tca::PrintHit().
|
private |
Definition at line 4506 of file ClusterCrawlerAlg.cxx.
|
staticprivate |
Returns whether the two hits belong to the same multiplet.
Definition at line 6219 of file ClusterCrawlerAlg.cxx.
References recob::Hit::StartTick(), and recob::Hit::WireID().
|
private |
Definition at line 4519 of file ClusterCrawlerAlg.cxx.
|
private |
Definition at line 4238 of file ClusterCrawlerAlg.cxx.
References tca::DeadWireCount().
|
private |
Definition at line 1006 of file ClusterCrawlerAlg.cxx.
|
private |
Returns true if there are no duplicates in the hit list for next cluster.
Definition at line 6257 of file ClusterCrawlerAlg.cxx.
References hits().
|
private |
Definition at line 1095 of file ClusterCrawlerAlg.cxx.
References cluster::SortByLowHit().
|
private |
Definition at line 5158 of file ClusterCrawlerAlg.cxx.
References recob::Hit::LocalIndex(), recob::Hit::Multiplicity(), recob::Hit::PeakTime(), and recob::Hit::RMS().
|
private |
Definition at line 2954 of file ClusterCrawlerAlg.cxx.
References tca::DeadWireCount().
|
private |
Definition at line 3153 of file ClusterCrawlerAlg.cxx.
References cluster::ClusterCrawlerAlg::ClusterStore::EndWir, and cluster::ClusterCrawlerAlg::ClusterStore::tclhits.
|
private |
Definition at line 4191 of file ClusterCrawlerAlg.cxx.
|
private |
Definition at line 2735 of file ClusterCrawlerAlg.cxx.
|
private |
Definition at line 2747 of file ClusterCrawlerAlg.cxx.
References bin.
|
private |
Definition at line 2539 of file ClusterCrawlerAlg.cxx.
References 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 142 of file ClusterCrawlerAlg.cxx.
Referenced by GetVertices(), and cluster::ClusterCrawler::produce().
|
private |
Definition at line 4847 of file ClusterCrawlerAlg.cxx.
References util::absDiff(), max, and min.
|
private |
Definition at line 166 of file ClusterCrawlerAlg.cxx.
|
private |
Definition at line 329 of file ClusterCrawlerAlg.cxx.
References art::errors::LogicError, tca::MergeOverlap(), recob::Hit::PeakTime(), tca::PrintClusters(), and tca::PrintHit().
|
private |
Definition at line 2456 of file ClusterCrawlerAlg.cxx.
|
private |
Definition at line 6320 of file ClusterCrawlerAlg.cxx.
References E.
|
private |
Definition at line 152 of file ClusterCrawlerAlg.cxx.
|
private |
Definition at line 3876 of file ClusterCrawlerAlg.cxx.
|
private |
Definition at line 1306 of file ClusterCrawlerAlg.cxx.
|
private |
Definition at line 1271 of file ClusterCrawlerAlg.cxx.
|
private |
Definition at line 6204 of file ClusterCrawlerAlg.cxx.
|
private |
Definition at line 6189 of file ClusterCrawlerAlg.cxx.
References tmp.
|
inlinestatic |
Definition at line 48 of file ClusterCrawlerAlg.h.
References CTPpad.
Referenced by cluster::LineCluster::produce(), cluster::SimpleLineCluster::produce(), and cluster::ClusterCrawler::produce().
|
private |
Definition at line 6277 of file ClusterCrawlerAlg.cxx.
|
private |
Definition at line 3303 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 44 of file ClusterCrawlerAlg.h.
References plane.
Referenced by EncodeCTP().
|
inlinestatic |
Definition at line 46 of file ClusterCrawlerAlg.h.
References geo::CryostatID::Cryostat, EncodeCTP(), geo::PlaneID::Plane, and geo::TPCID::TPC.
|
private |
Definition at line 4168 of file ClusterCrawlerAlg.cxx.
|
private |
Definition at line 882 of file ClusterCrawlerAlg.cxx.
|
private |
Definition at line 5638 of file ClusterCrawlerAlg.cxx.
References detinfo::DetectorProperties::ConvertTicksToX(), cluster::ClusterCrawlerAlg::Vtx3Store::CStat, cluster::ClusterCrawlerAlg::VtxStore::CTP, e, tca::EncodeCTP(), cluster::ClusterCrawlerAlg::VtxStore::Fixed, geo::TPCGeo::LocalToWorld(), cluster::ClusterCrawlerAlg::Vtx3Store::ProcCode, cluster::ClusterCrawlerAlg::Vtx3Store::Ptr2D, 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 6227 of file ClusterCrawlerAlg.cxx.
|
private |
Definition at line 1916 of file ClusterCrawlerAlg.cxx.
References 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 2217 of file ClusterCrawlerAlg.cxx.
References greaterThan(), CluLen::index, CluLen::length, and tca::PrintClusters().
|
private |
Definition at line 2153 of file ClusterCrawlerAlg.cxx.
|
private |
Definition at line 4410 of file ClusterCrawlerAlg.cxx.
|
private |
Definition at line 4528 of file ClusterCrawlerAlg.cxx.
|
private |
Definition at line 4304 of file ClusterCrawlerAlg.cxx.
|
private |
Definition at line 4310 of file ClusterCrawlerAlg.cxx.
|
private |
Definition at line 5229 of file ClusterCrawlerAlg.cxx.
References geo::CryostatID::Cryostat, tca::DecodeCTP(), min, geo::PlaneID::Plane, geo::TPCID::TPC, x, and y.
|
private |
Resets the local index and multiplicity of all the hits in [begin;end[.
Definition at line 1859 of file ClusterCrawlerAlg.cxx.
References recob::Hit::Channel(), recob::Hit::DegreesOfFreedom(), evd::details::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 125 of file ClusterCrawlerAlg.h.
References tcl.
Referenced by cluster::ClusterCrawler::produce().
|
inline |
Returns a constant reference to the 2D end points found.
Definition at line 128 of file ClusterCrawlerAlg.h.
References vtx.
|
private |
Definition at line 6075 of file ClusterCrawlerAlg.cxx.
References geo::CryostatID::Cryostat, tca::DecodeCTP(), art::errors::LogicError, max, geo::PlaneID::Plane, and geo::TPCID::TPC.
|
inline |
Returns the collection of reconstructed hits.
Definition at line 122 of file ClusterCrawlerAlg.h.
References fHits.
|
inline |
Returns (and loses) the collection of reconstructed hits.
Definition at line 116 of file ClusterCrawlerAlg.h.
References inClus.
Referenced by cluster::ClusterCrawler::produce().
|
inline |
Returns a constant reference to the 3D vertices found.
Definition at line 131 of file ClusterCrawlerAlg.h.
References ClearResults(), SortByMultiplet(), and vtx3.
Referenced by cluster::ClusterCrawler::produce().
|
private |
Definition at line 530 of file ClusterCrawlerAlg.cxx.
|
private |
Definition at line 3736 of file ClusterCrawlerAlg.cxx.
|
private |
Marks the cluster as obsolete and frees hits still associated with it.
Definition at line 854 of file ClusterCrawlerAlg.cxx.
|
private |
Definition at line 1654 of file ClusterCrawlerAlg.cxx.
References 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 679 of file ClusterCrawlerAlg.cxx.
References tca::PrintHit(), and cluster::SortByLowHit().
|
private |
Definition at line 6383 of file ClusterCrawlerAlg.cxx.
|
private |
Definition at line 3499 of file ClusterCrawlerAlg.cxx.
References art::right().
|
private |
Definition at line 6402 of file ClusterCrawlerAlg.cxx.
References util::flags::to_string().
|
private |
Definition at line 3436 of file ClusterCrawlerAlg.cxx.
References art::right().
|
virtual |
Definition at line 51 of file ClusterCrawlerAlg.cxx.
References art::errors::Configuration, fhicl::ParameterSet::get(), and fhicl::ParameterSet::has_key().
Referenced by cluster::ClusterCrawler::reconfigure().
|
private |
Definition at line 1366 of file ClusterCrawlerAlg.cxx.
|
private |
Removes obsolete hits from hits, updating the indices.
Definition at line 1059 of file ClusterCrawlerAlg.cxx.
References hits().
|
private |
Restores an obsolete cluster.
Definition at line 868 of file ClusterCrawlerAlg.cxx.
void cluster::ClusterCrawlerAlg::RunCrawler | ( | std::vector< recob::Hit > const & | srchits | ) |
Definition at line 181 of file ClusterCrawlerAlg.cxx.
References detinfo::DetectorProperties::DriftVelocity(), detinfo::DetectorProperties::Efield(), tca::EncodeCTP(), geo::TPCGeo::Nplanes(), detinfo::DetectorProperties::NumberTimeSamples(), tca::PrintClusters(), detinfo::DetectorProperties::SamplingRate(), and detinfo::DetectorProperties::Temperature().
Referenced by cluster::ClusterCrawler::produce().
|
static |
Comparison for sorting hits by wire and hit multiplet.
Definition at line 129 of file ClusterCrawlerAlg.cxx.
References geo::WireID::cmp(), recob::Hit::LocalIndex(), recob::Hit::StartTick(), and recob::Hit::WireID().
Referenced by GetVertices().
|
private |
Definition at line 2838 of file ClusterCrawlerAlg.cxx.
|
private |
Definition at line 3595 of file ClusterCrawlerAlg.cxx.
|
private |
Definition at line 3625 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 2083 of file ClusterCrawlerAlg.cxx.
|
private |
Definition at line 5361 of file ClusterCrawlerAlg.cxx.
References util::absDiff(), detinfo::DetectorProperties::ConvertXToTicks(), geo::CryostatID::Cryostat, cluster::ClusterCrawlerAlg::VtxStore::CTP, 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 5444 of file ClusterCrawlerAlg.cxx.
References detinfo::DetectorProperties::ConvertXToTicks(), geo::CryostatID::Cryostat, cluster::ClusterCrawlerAlg::VtxStore::CTP, 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 1509 of file ClusterCrawlerAlg.cxx.
|
private |
Definition at line 1322 of file ClusterCrawlerAlg.cxx.
References recob::Hit::PeakTime(), geo::WireID::Wire, and recob::Hit::WireID().
|
private |
Definition at line 5830 of file ClusterCrawlerAlg.cxx.
References detinfo::DetectorProperties::ConvertTicksToX(), geo::CryostatID::Cryostat, cluster::ClusterCrawlerAlg::Vtx3Store::CStat, tca::DecodeCTP(), e, evd::kWire, geo::kX, geo::TPCGeo::LocalToWorld(), 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 119 of file ClusterCrawlerAlg.h.
References fHits.
Referenced by cluster::ClusterCrawler::produce().
|
private |
charge near a cluster on each wire
Definition at line 287 of file ClusterCrawlerAlg.h.
|
private |
fit chisq for monitoring kinks, etc
Definition at line 283 of file ClusterCrawlerAlg.h.
|
private |
Definition at line 227 of file ClusterCrawlerAlg.h.
|
private |
begin average charge
Definition at line 231 of file ClusterCrawlerAlg.h.
|
private |
nearby charge
Definition at line 232 of file ClusterCrawlerAlg.h.
|
private |
begin slope (= DS end = high wire number)
Definition at line 226 of file ClusterCrawlerAlg.h.
|
private |
Definition at line 228 of file ClusterCrawlerAlg.h.
|
private |
begin time
Definition at line 230 of file ClusterCrawlerAlg.h.
|
private |
begin wire
Definition at line 229 of file ClusterCrawlerAlg.h.
|
private |
chisq of the current fit
Definition at line 205 of file ClusterCrawlerAlg.h.
|
private |
Cryostat/TPC/Plane code.
Definition at line 262 of file ClusterCrawlerAlg.h.
|
private |
Definition at line 234 of file ClusterCrawlerAlg.h.
|
private |
end average charge
Definition at line 238 of file ClusterCrawlerAlg.h.
|
private |
nearby charge
Definition at line 239 of file ClusterCrawlerAlg.h.
|
private |
slope at the end (= US end = low wire number)
Definition at line 233 of file ClusterCrawlerAlg.h.
|
private |
Definition at line 235 of file ClusterCrawlerAlg.h.
|
private |
begin time
Definition at line 237 of file ClusterCrawlerAlg.h.
|
private |
begin wire
Definition at line 236 of file ClusterCrawlerAlg.h.
|
private |
using Large Angle crawling code
Definition at line 263 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 202 of file ClusterCrawlerAlg.h.
|
private |
cluster parameter errors
Definition at line 204 of file ClusterCrawlerAlg.h.
|
private |
Processor code = pass number + 10 ChkMerge
Definition at line 250 of file ClusterCrawlerAlg.h.
|
private |
8 = SPECIAL CODE FOR STEP CRAWLING
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
Definition at line 240 of file ClusterCrawlerAlg.h.
|
private |
Definition at line 268 of file ClusterCrawlerAlg.h.
|
static |
Definition at line 42 of file ClusterCrawlerAlg.h.
Referenced by DecodeCTP().
|
private |
Definition at line 189 of file ClusterCrawlerAlg.h.
|
private |
average charge at leading edge of cluster
Definition at line 206 of file ClusterCrawlerAlg.h.
|
private |
average width (EndTick - StartTick) of hits
Definition at line 209 of file ClusterCrawlerAlg.h.
|
private |
charge difference cut for adding a hit to a cluster
Definition at line 156 of file ClusterCrawlerAlg.h.
|
private |
to define a shower-like cluster
cut on ratio of nearby/cluster charge to
Definition at line 289 of file ClusterCrawlerAlg.h.
|
private |
window (ticks) for finding nearby charge
Definition at line 288 of file ClusterCrawlerAlg.h.
|
private |
slope of the charge vs wire
Definition at line 208 of file ClusterCrawlerAlg.h.
|
private |
stop adding hits to clusters if chisq too high
Definition at line 152 of file ClusterCrawlerAlg.h.
|
private |
Definition at line 172 of file ClusterCrawlerAlg.h.
|
private |
vector of hits used in the cluster
Definition at line 282 of file ClusterCrawlerAlg.h.
|
private |
cluster projection error factor
Definition at line 180 of file ClusterCrawlerAlg.h.
|
private |
out detailed information while crawling
Definition at line 196 of file ClusterCrawlerAlg.h.
|
private |
Definition at line 194 of file ClusterCrawlerAlg.h.
|
private |
set to the Begin Wire and Hit of a cluster to print
Definition at line 195 of file ClusterCrawlerAlg.h.
|
private |
try to merge clusters?
Definition at line 160 of file ClusterCrawlerAlg.h.
|
private |
Definition at line 199 of file ClusterCrawlerAlg.h.
|
private |
look for hammer type clusters
Definition at line 165 of file ClusterCrawlerAlg.h.
|
private |
Definition at line 174 of file ClusterCrawlerAlg.h.
|
private |
run vertexing code after clustering?
Definition at line 163 of file ClusterCrawlerAlg.h.
|
private |
first hit used
Definition at line 266 of file ClusterCrawlerAlg.h.
|
private |
the first wire with a hit
Definition at line 265 of file ClusterCrawlerAlg.h.
|
private |
hit time error = fHitErrFac * hit RMS used for cluster fit
Definition at line 178 of file ClusterCrawlerAlg.h.
|
private |
is < cut. Set < 0 for no merging
Merge cluster hit-multiplets if the separation chisq
Definition at line 186 of file ClusterCrawlerAlg.h.
|
private |
< ignore hits with Amp < this value
Definition at line 179 of file ClusterCrawlerAlg.h.
|
private |
our version of the hits
Definition at line 217 of file ClusterCrawlerAlg.h.
Referenced by GetHits(), and YieldHits().
|
private |
Definition at line 292 of file ClusterCrawlerAlg.h.
|
private |
Definition at line 171 of file ClusterCrawlerAlg.h.
|
private |
kink angle cut made after fKinkChiRat
Definition at line 155 of file ClusterCrawlerAlg.h.
|
private |
Max consecutive chisq increase for the last 3 hits on the cluster
Definition at line 153 of file ClusterCrawlerAlg.h.
|
private |
call Large Angle Clustering code if > 0
Definition at line 182 of file ClusterCrawlerAlg.h.
|
private |
max hits fitted on a Large Angle cluster
Definition at line 183 of file ClusterCrawlerAlg.h.
|
private |
Definition at line 184 of file ClusterCrawlerAlg.h.
|
private |
Crawl Large Angle clusters on pass?
Definition at line 164 of file ClusterCrawlerAlg.h.
|
private |
the last wire with a hit
Definition at line 267 of file ClusterCrawlerAlg.h.
|
private |
Definition at line 224 of file ClusterCrawlerAlg.h.
|
private |
Max number of hits fitted.
Definition at line 148 of file ClusterCrawlerAlg.h.
|
private |
Definition at line 272 of file ClusterCrawlerAlg.h.
|
private |
max number of wires that can be skipped while crawling
Definition at line 157 of file ClusterCrawlerAlg.h.
|
private |
Definition at line 185 of file ClusterCrawlerAlg.h.
|
private |
max charge ratio for matching
Definition at line 162 of file ClusterCrawlerAlg.h.
|
private |
angle cut for merging overlapping clusters
Definition at line 188 of file ClusterCrawlerAlg.h.
|
private |
expected minimum signal in each wire plane
Definition at line 169 of file ClusterCrawlerAlg.h.
|
private |
Definition at line 181 of file ClusterCrawlerAlg.h.
|
private |
Min number of hits to make a cluster.
Definition at line 149 of file ClusterCrawlerAlg.h.
|
private |
after skipping
minimum number of hits on consecutive wires
Definition at line 158 of file ClusterCrawlerAlg.h.
|
private |
set to > 2 to do a charge fit using fNHitsAve hits
number of US hits used to compute fAveChg
Definition at line 150 of file ClusterCrawlerAlg.h.
|
private |
number of passes over the hit collection
Definition at line 147 of file ClusterCrawlerAlg.h.
|
private |
Definition at line 271 of file ClusterCrawlerAlg.h.
|
private |
Definition at line 167 of file ClusterCrawlerAlg.h.
|
private |
scale factor from Tick/Wire to dx/du
Definition at line 273 of file ClusterCrawlerAlg.h.
|
private |
max time difference for matching
Definition at line 161 of file ClusterCrawlerAlg.h.
|
private |
2D vtx -> cluster matching cut (chisq/dof)
Definition at line 190 of file ClusterCrawlerAlg.h.
|
private |
Definition at line 191 of file ClusterCrawlerAlg.h.
|
private |
2D vtx -> 3D vtx matching cut (chisq/dof)
Definition at line 192 of file ClusterCrawlerAlg.h.
|
private |
Definition at line 173 of file ClusterCrawlerAlg.h.
|
private |
Definition at line 215 of file ClusterCrawlerAlg.h.
|
private |
Number of nearby hits that were merged have hitnear < 0
Definition at line 284 of file ClusterCrawlerAlg.h.
|
private |
Hit used in cluster (-1 = obsolete, 0 = free)
Definition at line 218 of file ClusterCrawlerAlg.h.
Referenced by GetinClus().
|
private |
set true if hit is with HitMergeChiCut of a neighbor hit
Definition at line 219 of file ClusterCrawlerAlg.h.
|
private |
Definition at line 213 of file ClusterCrawlerAlg.h.
|
private |
Definition at line 275 of file ClusterCrawlerAlg.h.
|
private |
Definition at line 270 of file ClusterCrawlerAlg.h.
Referenced by EncodeCTP().
|
private |
Definition at line 211 of file ClusterCrawlerAlg.h.
|
private |
the clusters we are creating
Definition at line 220 of file ClusterCrawlerAlg.h.
Referenced by GetClusters().
|
private |
Definition at line 269 of file ClusterCrawlerAlg.h.
|
private |
the endpoints we are reconstructing
Definition at line 221 of file ClusterCrawlerAlg.h.
Referenced by GetEndPoints().
|
private |
the 3D vertices we are reconstructing
Definition at line 222 of file ClusterCrawlerAlg.h.
Referenced by GetVertices().
|
private |
Definition at line 212 of file ClusterCrawlerAlg.h.
|
private |
Definition at line 280 of file ClusterCrawlerAlg.h.