LArSoft
v07_13_02
Liquid Argon Software toolkit - http://larsoft.org/
|
#include "PmaNode3D.h"
Public Member Functions | |
Node3D (void) | |
Node3D (const TVector3 &p3d, unsigned int tpc, unsigned int cryo, bool vtx=false, double xshift=0) | |
TVector3 const & | Point3D (void) const |
bool | SetPoint3D (const TVector3 &p3d) |
TVector2 const & | Projection2D (unsigned int view) const |
double | GetDistToWall (void) const |
bool | SameTPC (const TVector3 &p3d, float margin=0.0F) const |
Check if p3d is in the same TPC as the node. More... | |
bool | SameTPC (const pma::Vector3D &p3d, float margin=0.0F) const |
bool | IsBranching (void) const |
Belongs to more than one track? More... | |
bool | IsTPCEdge (void) const |
Is the first/last in this TPC? More... | |
bool | IsVertex (void) const |
Check fIsVertex flag. More... | |
void | SetVertex (bool state) |
void | SetVertexToBranching (bool setAllNodes) |
std::vector< pma::Track3D * > | GetBranches (void) const |
double | GetDistance2To (const TVector3 &p3d) const override |
Distance [cm] from the 3D point to the point 3D. More... | |
double | GetDistance2To (const TVector2 &p2d, unsigned int view) const override |
Distance [cm] from the 2D point to the object's 2D projection in one of wire views. More... | |
pma::Vector3D | GetDirection3D (void) const override |
Get 3D direction cosines of the next segment, or pevious segment if this is the last node. More... | |
TVector3 | GetUnconstrainedProj3D (const TVector2 &p2d, unsigned int view) const override |
In case of a node it is simply 3D position of the node. More... | |
void | SetProjection (pma::Hit3D &h) const override |
Set hit 3D position and its 2D projection to the vertex. More... | |
double | Length2 (void) const override |
double | SegmentCos (void) const |
Cosine of 3D angle between connected segments. More... | |
double | SegmentCosWirePlane (void) const |
double | SegmentCosTransverse (void) const |
double | GetObjFunction (float penaltyValue, float endSegWeight) const |
Objective function minimized during oprimization. More... | |
void | Optimize (float penaltyValue, float endSegWeight) |
void | ClearAssigned (pma::Track3D *trk=0) override |
void | ApplyDriftShift (double dx) |
double | GetDriftShift (void) const |
int | TPC (void) const |
TPC index or -1 if out of any TPC. More... | |
int | Cryo (void) const |
Cryostat index or -1 if out of any cryostat. More... | |
double | Length (void) const |
const std::vector< pma::Hit3D * > & | Hits (void) const |
bool | HasHit (const pma::Hit3D *h) const |
pma::Hit3D & | Hit (size_t index) |
void | RemoveHitAt (size_t index) |
void | AddHit (pma::Hit3D *h) |
size_t | NHits (void) const |
unsigned int | NHits (unsigned int view) const |
size_t | NEnabledHits (unsigned int view=geo::kUnknown) const |
size_t | NPrecalcEnabledHits (void) const |
TVector3 const & | ReferencePoint (size_t index) const |
size_t | NPoints (void) const |
void | AddPoint (TVector3 *p) |
void | UpdateHitParams (void) |
void | UpdateProjection (void) |
void | SortHits (void) |
double | SumDist2 (void) const |
double | SumDist2 (unsigned int view) const |
double | SumHitsQ (unsigned int view) const |
unsigned int | NThisHits (unsigned int view) const |
double | HitsRadius3D (unsigned int view) const |
bool | IsFrozen (void) const |
Check if the vertex 3D position is fixed. More... | |
void | SetFrozen (bool state) |
Fix / relese vertex 3D position. More... | |
bool | SelectRndHits (size_t nmax_per_view) |
bool | SelectAllHits (void) |
virtual void | Disconnect (void) |
virtual bool | AddNext (pma::SortedObjectBase *nextElement) |
virtual int | RemoveNext (pma::SortedObjectBase *nextElement) |
virtual pma::SortedObjectBase * | Next (unsigned int index=0) const |
virtual unsigned int | NextCount (void) const |
virtual bool | IsLast (void) const |
virtual bool | IsFirst (void) const |
virtual pma::SortedObjectBase * | Prev (void) const |
Static Public Member Functions | |
static void | SetMargin (double m) |
Set allowed node position margin around TPC. More... | |
static float | OptFactor (unsigned int view) |
static void | SetOptFactor (unsigned int view, float value) |
Protected Attributes | |
int | fTPC |
int | fCryo |
bool | fFrozen |
std::vector< pma::Hit3D * > | fAssignedHits |
std::vector< TVector3 * > | fAssignedPoints |
size_t | fNThisHits [3] |
size_t | fNThisHitsEnabledAll |
size_t | fNHits [3] |
double | fSumHitsQ [3] |
double | fHitsRadius |
std::vector< pma::SortedObjectBase * > | next_vector |
pma::SortedObjectBase * | next |
pma::SortedObjectBase * | prev |
Static Protected Attributes | |
static float | fOptFactors [3] = { 0.2F, 0.8F, 1.0F } |
Private Member Functions | |
bool | LimitPoint3D (void) |
Returns true if node position was trimmed to its TPC volume + fMargin. More... | |
void | UpdateProj2D (void) |
double | EndPtCos2Transverse (void) const |
double | PiInWirePlane (void) const |
double | PenaltyInWirePlane (void) const |
double | Pi (float endSegWeight, bool doAsymm) const |
double | Penalty (float endSegWeight) const |
double | Mse (void) const |
double | MakeGradient (float penaltyValue, float endSegWeight) |
double | StepWithGradient (float alfa, float tol, float penalty, float weight) |
double | SumDist2Hits (void) const override |
Private Attributes | |
geo::TPCGeo const & | fTpcGeo |
double | fMinX |
double | fMaxX |
double | fMinY |
double | fMaxY |
double | fMinZ |
double | fMaxZ |
TVector3 | fPoint3D |
TVector2 | fProj2D [3] |
double | fDriftOffset |
TVector3 | fGradient |
bool | fIsVertex |
Static Private Attributes | |
static bool | fGradFixed [3] = { false, false, false } |
static double | fMargin = 3.0 |
Definition at line 27 of file PmaNode3D.h.
pma::Node3D::Node3D | ( | void | ) |
Definition at line 25 of file PmaNode3D.cxx.
References pma::Element3D::fCryo, fProj2D, and pma::Element3D::fTPC.
pma::Node3D::Node3D | ( | const TVector3 & | p3d, |
unsigned int | tpc, | ||
unsigned int | cryo, | ||
bool | vtx = false , |
||
double | xshift = 0 |
||
) |
Definition at line 41 of file PmaNode3D.cxx.
References pma::Element3D::fCryo, fMaxX, fMaxY, fMaxZ, fMinX, fMinY, fMinZ, pma::Element3D::fTPC, fTpcGeo, geo::TPCGeo::HasPlane(), geo::kZ, geo::BoxBoundedGeo::MaxY(), geo::BoxBoundedGeo::MaxZ(), geo::BoxBoundedGeo::MinY(), geo::BoxBoundedGeo::MinZ(), SetPoint3D(), and tmp.
|
inlineinherited |
Definition at line 65 of file PmaElement3D.h.
References pma::Element3D::fAssignedHits, and pma::Element3D::SetProjection().
Referenced by pma::Track3D::MakeProjection().
|
virtualinherited |
Reimplemented from pma::SortedObjectBase.
Definition at line 71 of file SortedObjects.cxx.
References pma::SortedObjectBase::next, art::productstatus::present(), pma::SortedObjectBase::prev, and pma::SortedObjectBase::RemoveNext().
Referenced by pma::Track3D::AttachBackToSameTPC(), and pma::Track3D::AttachToSameTPC().
|
inlineinherited |
Definition at line 77 of file PmaElement3D.h.
References pma::Element3D::ClearAssigned(), pma::Element3D::fAssignedPoints, and pma::Element3D::UpdateHitParams().
Referenced by pma::Track3D::MakeProjection().
|
inline |
Definition at line 101 of file PmaNode3D.h.
References fDriftOffset, and fPoint3D.
Referenced by pma::Track3D::ApplyDriftShiftInTree().
|
overridevirtual |
Clear hits/points vectors of this element, optionally only those which are owned by given track.
Reimplemented from pma::Element3D.
Definition at line 766 of file PmaNode3D.cxx.
References pma::Element3D::fAssignedHits, pma::Element3D::fAssignedPoints, pma::Element3D::fHitsRadius, pma::SortedBranchBase::Next(), pma::SortedBranchBase::NextCount(), pma::Segment3D::Parent(), and pma::SortedObjectBase::Prev().
Referenced by GetUnconstrainedProj3D(), and pma::Track3D::Split().
|
inlineinherited |
Cryostat index or -1 if out of any cryostat.
Definition at line 33 of file PmaElement3D.h.
References pma::Element3D::fCryo, pma::Element3D::GetDirection3D(), pma::Element3D::GetDistance2To(), pma::Element3D::GetUnconstrainedProj3D(), pma::Element3D::Length2(), and pma::Element3D::SetProjection().
Referenced by pma::ProjectionMatchingAlg::mergeTracks(), pma::Segment3D::Segment3D(), and pma::Track3D::Split().
|
virtualinherited |
Reimplemented from pma::SortedObjectBase.
Definition at line 65 of file SortedObjects.cxx.
References pma::SortedObjectBase::prev, and pma::SortedObjectBase::RemoveNext().
|
private |
Definition at line 321 of file PmaNode3D.cxx.
References fPoint3D, pma::SortedObjectBase::Next(), pma::SortedObjectBase::next, pma::SortedObjectBase::Prev(), and pma::SortedObjectBase::prev.
Referenced by PenaltyInWirePlane(), and SetMargin().
std::vector< pma::Track3D * > pma::Node3D::GetBranches | ( | void | ) | const |
Definition at line 406 of file PmaNode3D.cxx.
References pma::SortedBranchBase::Next(), pma::SortedBranchBase::NextCount(), and pma::Segment3D::Parent().
Referenced by pma::VtxCandidate::JoinTracks(), and SetVertexToBranching().
|
overridevirtual |
Get 3D direction cosines of the next segment, or pevious segment if this is the last node.
Implements pma::Element3D.
Definition at line 160 of file PmaNode3D.cxx.
References pma::Element3D::GetDirection3D(), pma::SortedObjectBase::next, and pma::SortedObjectBase::prev.
Referenced by SetVertexToBranching().
|
overridevirtual |
Distance [cm] from the 3D point to the point 3D.
Implements pma::Element3D.
Definition at line 133 of file PmaNode3D.cxx.
References pma::Dist2(), and fPoint3D.
Referenced by pma::Track3D::MakeFastProjection(), and SetVertexToBranching().
|
overridevirtual |
Distance [cm] from the 2D point to the object's 2D projection in one of wire views.
Implements pma::Element3D.
Definition at line 138 of file PmaNode3D.cxx.
References pma::Dist2(), and fProj2D.
double pma::Node3D::GetDistToWall | ( | void | ) | const |
Definition at line 64 of file PmaNode3D.cxx.
References d, fMaxX, fMaxY, fMaxZ, fMinX, fMinY, fMinZ, and fPoint3D.
Referenced by Projection2D(), and pma::PMAlgTracker::validate().
|
inline |
Definition at line 102 of file PmaNode3D.h.
References fDriftOffset.
Referenced by pma::Track3D::Split().
double pma::Node3D::GetObjFunction | ( | float | penaltyValue, |
float | endSegWeight | ||
) | const |
Objective function minimized during oprimization.
Definition at line 522 of file PmaNode3D.cxx.
References Mse(), Penalty(), and PenaltyInWirePlane().
Referenced by GetUnconstrainedProj3D(), MakeGradient(), and StepWithGradient().
|
inlineoverridevirtual |
In case of a node it is simply 3D position of the node.
Implements pma::Element3D.
Definition at line 73 of file PmaNode3D.h.
References ClearAssigned(), fPoint3D, GetObjFunction(), Length2(), Optimize(), SegmentCos(), SegmentCosTransverse(), SegmentCosWirePlane(), and SetProjection().
|
inlineinherited |
Definition at line 53 of file PmaElement3D.h.
References pma::Element3D::fAssignedHits.
|
inlineinherited |
Definition at line 59 of file PmaElement3D.h.
References pma::Element3D::fAssignedHits.
Referenced by pma::Track3D::AddNode(), pma::Track3D::DisableSingleViewEnds(), and pma::Track3D::SortHits().
|
inlineinherited |
Definition at line 51 of file PmaElement3D.h.
References pma::Element3D::fAssignedHits.
|
inherited |
Definition at line 224 of file PmaElement3D.cxx.
References pma::Dist2(), pma::Element3D::fAssignedHits, and pma::Element3D::fTPC.
Referenced by pma::Element3D::NThisHits().
bool pma::Node3D::IsBranching | ( | void | ) | const |
Belongs to more than one track?
Definition at line 379 of file PmaNode3D.cxx.
References pma::SortedBranchBase::Next(), pma::SortedBranchBase::NextCount(), pma::Segment3D::Parent(), and pma::SortedObjectBase::prev.
Referenced by pma::PMAlgVertexing::getKinks(), pma::PMAlgVertexing::getVertices(), Projection2D(), and SetVertexToBranching().
|
inlinevirtualinherited |
|
inlineinherited |
Check if the vertex 3D position is fixed.
Definition at line 96 of file PmaElement3D.h.
References pma::Element3D::fFrozen.
Referenced by pma::Track3D::AddNode(), and pma::ProjectionMatchingAlg::mergeTracks().
|
inlinevirtualinherited |
Reimplemented from pma::SortedObjectBase.
Definition at line 85 of file SortedObjects.h.
bool pma::Node3D::IsTPCEdge | ( | void | ) | const |
Is the first/last in this TPC?
Definition at line 394 of file PmaNode3D.cxx.
References pma::SortedBranchBase::Next(), pma::SortedBranchBase::NextCount(), pma::SortedObjectBase::prev, and pma::Element3D::TPC().
Referenced by Projection2D().
|
inline |
Check fIsVertex flag.
Definition at line 54 of file PmaNode3D.h.
References fIsVertex.
Referenced by pma::PMAlgVertexing::getKinks().
|
inlineinherited |
Definition at line 49 of file PmaElement3D.h.
References pma::Element3D::Length2().
Referenced by pma::VtxCandidate::Add(), pma::Track3D::AddNode(), pma::VtxCandidate::Compute(), pma::ProjectionMatchingAlg::guideEndpoints(), Pi(), and pma::Track3D::ShiftEndsToHits().
|
overridevirtual |
Squared sum of half-lengths of connected 3D segments (used in the vertex position optimization).
Implements pma::Element3D.
Definition at line 250 of file PmaNode3D.cxx.
References pma::SortedObjectBase::next, and pma::SortedObjectBase::prev.
Referenced by GetUnconstrainedProj3D(), Pi(), and PiInWirePlane().
|
private |
Returns true if node position was trimmed to its TPC volume + fMargin.
Definition at line 99 of file PmaNode3D.cxx.
References fMargin, fMaxX, fMaxY, fMaxZ, fMinX, fMinY, fMinZ, and fPoint3D.
Referenced by SetMargin(), and SetPoint3D().
|
private |
Definition at line 527 of file PmaNode3D.cxx.
References E, fGradFixed, fGradient, fPoint3D, GetObjFunction(), pma::Segment3D::Length2(), pma::SortedObjectBase::next, pma::SortedObjectBase::prev, SetPoint3D(), and tmp.
Referenced by SetMargin(), and StepWithGradient().
|
private |
Definition at line 500 of file PmaNode3D.cxx.
References pma::SortedBranchBase::Next(), pma::SortedBranchBase::NextCount(), pma::Element3D::NPrecalcEnabledHits(), pma::SortedObjectBase::prev, and pma::Element3D::SumDist2().
Referenced by GetObjFunction(), and SetMargin().
|
inherited |
Definition at line 35 of file PmaElement3D.cxx.
References pma::Element3D::fAssignedHits, geo::kUnknown, and n.
Referenced by pma::Track3D::AddNode(), and pma::Element3D::NHits().
|
inlinevirtualinherited |
Reimplemented from pma::SortedObjectBase.
Definition at line 79 of file SortedObjects.h.
Referenced by pma::Track3D::ApplyDriftShiftInTree(), pma::Track3D::AttachBackTo(), pma::Track3D::AttachBackToSameTPC(), pma::Track3D::AttachTo(), pma::Track3D::AttachToSameTPC(), ClearAssigned(), GetBranches(), pma::Track3D::GetNearestTrkInTree(), pma::Track3D::GetObjFnInTree(), pma::TrkCandidateColl::getTreeCopy(), IsBranching(), IsTPCEdge(), pma::VtxCandidate::JoinTracks(), pma::Track3D::MakeProjectionInTree(), pma::PMAlgVertexing::mergeBrokenTracks(), Mse(), pma::Track3D::NextSegment(), Penalty(), Pi(), PiInWirePlane(), pma::Track3D::ReassignHitsInTree(), pma::TrkCandidateColl::setParentDaughterConnections(), pma::TrkCandidateColl::setTreeId(), pma::Track3D::SortHitsInTree(), pma::Track3D::Split(), pma::Track3D::TuneSinglePass(), and pma::Track3D::UpdateParamsInTree().
|
inlinevirtualinherited |
Reimplemented from pma::SortedObjectBase.
Definition at line 84 of file SortedObjects.h.
Referenced by pma::Track3D::ApplyDriftShiftInTree(), pma::Track3D::AttachBackTo(), pma::Track3D::AttachBackToSameTPC(), pma::Track3D::AttachTo(), pma::Track3D::AttachToSameTPC(), pma::Track3D::CleanupTails(), ClearAssigned(), GetBranches(), pma::Track3D::GetNearestTrkInTree(), pma::Track3D::GetObjFnInTree(), pma::TrkCandidateColl::getTreeCopy(), IsBranching(), IsTPCEdge(), pma::VtxCandidate::JoinTracks(), pma::Track3D::MakeProjectionInTree(), pma::PMAlgVertexing::mergeBrokenTracks(), Mse(), pma::Track3D::NextSegment(), Penalty(), Pi(), PiInWirePlane(), pma::Track3D::ReassignHitsInTree(), pma::Track3D::RemoveNode(), pma::TrkCandidateColl::setParentDaughterConnections(), pma::TrkCandidateColl::setTreeId(), pma::Track3D::ShiftEndsToHits(), pma::Track3D::SortHitsInTree(), pma::Track3D::TuneSinglePass(), and pma::Track3D::UpdateParamsInTree().
|
inlineinherited |
Definition at line 71 of file PmaElement3D.h.
References pma::Element3D::fAssignedHits, geo::kUnknown, and pma::Element3D::NEnabledHits().
Referenced by pma::Track3D::CleanupTails(), pma::Track3D::DisableSingleViewEnds(), PiInWirePlane(), pma::Element3D::SelectRndHits(), and pma::Track3D::SortHits().
|
inlineinherited |
|
inlineinherited |
Definition at line 76 of file PmaElement3D.h.
References pma::Element3D::fAssignedPoints.
Referenced by pma::Track3D::DisableSingleViewEnds().
|
inlineinherited |
Definition at line 73 of file PmaElement3D.h.
References pma::Element3D::fNThisHitsEnabledAll.
Referenced by Mse().
|
inlineinherited |
Definition at line 91 of file PmaElement3D.h.
References pma::Element3D::fNThisHits, and pma::Element3D::HitsRadius3D().
|
inlinestaticinherited |
Definition at line 103 of file PmaElement3D.h.
References pma::Element3D::fOptFactors.
Referenced by pma::Element3D::SumDist2(), pma::Segment3D::SumDist2Hits(), and SumDist2Hits().
void pma::Node3D::Optimize | ( | float | penaltyValue, |
float | endSegWeight | ||
) |
Optimize vertex 3D position with given penalty on connected segments angle and weight assigned to the outermost segments. Only MSE is used in case of branching nodes.
Definition at line 756 of file PmaNode3D.cxx.
References pma::Element3D::fFrozen, and StepWithGradient().
Referenced by GetUnconstrainedProj3D(), and pma::Track3D::TuneSinglePass().
|
private |
Definition at line 481 of file PmaNode3D.cxx.
References pma::SortedObjectBase::Next(), pma::SortedBranchBase::Next(), pma::SortedBranchBase::NextCount(), Pi(), pma::SortedObjectBase::Prev(), and pma::SortedObjectBase::prev.
Referenced by GetObjFunction(), and SetMargin().
|
private |
Definition at line 358 of file PmaNode3D.cxx.
References EndPtCos2Transverse(), fIsVertex, pma::SortedObjectBase::Next(), pma::SortedObjectBase::next, PiInWirePlane(), pma::SortedObjectBase::Prev(), and pma::SortedObjectBase::prev.
Referenced by GetObjFunction(), and SetMargin().
|
private |
Definition at line 421 of file PmaNode3D.cxx.
References pma::Element3D::fHitsRadius, fIsVertex, pma::Element3D::Length(), pma::Segment3D::Length2(), Length2(), pma::SortedObjectBase::Next(), pma::SortedObjectBase::next, pma::SortedBranchBase::Next(), pma::SortedObjectBase::NextCount(), pma::SortedBranchBase::NextCount(), pma::SortedObjectBase::Prev(), pma::SortedObjectBase::prev, scale, SegmentCos(), and pma::Element3D::TPC().
Referenced by Penalty(), and SetMargin().
|
private |
Definition at line 338 of file PmaNode3D.cxx.
References pma::Element3D::fHitsRadius, geo::kU, Length2(), pma::SortedBranchBase::Next(), pma::SortedBranchBase::NextCount(), pma::Element3D::NHits(), pma::SortedObjectBase::prev, and SegmentCosWirePlane().
Referenced by PenaltyInWirePlane(), and SetMargin().
|
inline |
Definition at line 33 of file PmaNode3D.h.
References fPoint3D, and SetPoint3D().
Referenced by pma::Track3D::AttachTo(), pma::VtxCandidate::Compute(), pma::Segment3D::GetDirection3D(), pma::Segment3D::GetDistance2To(), pma::PMAlgVertexing::getKinks(), pma::Segment3D::GetProjection(), pma::Segment3D::GetUnconstrainedProj3D(), pma::VtxCandidate::JoinTracks(), pma::VtxCandidate::MaxAngle(), pma::Segment3D::SetProjection(), SetProjection(), and pma::Track3D::Split().
|
inlinevirtualinherited |
Definition at line 44 of file SortedObjects.h.
References pma::SortedObjectBase::prev.
Referenced by pma::Track3D::AttachBackTo(), pma::Track3D::AttachBackToOtherTPC(), pma::Track3D::AttachBackToSameTPC(), pma::Track3D::AttachTo(), pma::Track3D::AttachToSameTPC(), pma::Track3D::CanFlip(), ClearAssigned(), EndPtCos2Transverse(), pma::Track3D::Flip(), pma::VtxCandidate::JoinTracks(), pma::Track3D::MakeFastProjection(), pma::PMAlgVertexing::mergeBrokenTracks(), Penalty(), PenaltyInWirePlane(), Pi(), pma::Track3D::PrevSegment(), pma::Track3D::RemoveNode(), SegmentCos(), SegmentCosTransverse(), SegmentCosWirePlane(), pma::TrkCandidateColl::setParentDaughterConnections(), SetProjection(), pma::TrkCandidateColl::setTreeOriginAtFront(), pma::Track3D::ShiftEndsToHits(), pma::Track3D::Split(), pma::Segment3D::Start(), and pma::Element3D::UpdateHitParams().
|
inline |
Definition at line 39 of file PmaNode3D.h.
References fProj2D, GetDistToWall(), IsBranching(), IsTPCEdge(), and SameTPC().
Referenced by pma::Segment3D::GetDistance2To(), pma::Segment3D::GetProjection(), pma::Segment3D::GetUnconstrainedProj3D(), pma::Segment3D::SetProjection(), SetProjection(), and pma::Segment3D::SumDist2Hits().
|
inlineinherited |
Definition at line 75 of file PmaElement3D.h.
References pma::Element3D::fAssignedPoints.
|
inlineinherited |
Definition at line 60 of file PmaElement3D.h.
References pma::Element3D::fAssignedHits.
|
virtualinherited |
Reimplemented from pma::SortedObjectBase.
Definition at line 107 of file SortedObjects.cxx.
References pma::SortedObjectBase::next, and pma::SortedObjectBase::prev.
Referenced by pma::Track3D::AttachBackToSameTPC(), pma::Track3D::AttachToSameTPC(), and pma::Track3D::Split().
bool pma::Node3D::SameTPC | ( | const TVector3 & | p3d, |
float | margin = 0.0F |
||
) | const |
Check if p3d is in the same TPC as the node.
Definition at line 83 of file PmaNode3D.cxx.
References fMaxX, fMaxY, fMaxZ, fMinX, fMinY, and fMinZ.
Referenced by pma::Track3D::GetUnconstrainedProj3D(), pma::ProjectionMatchingAlg::isContained(), Projection2D(), pma::ProjectionMatchingAlg::validate(), pma::ProjectionMatchingAlg::validate_on_adc(), and pma::ProjectionMatchingAlg::validate_on_adc_test().
bool pma::Node3D::SameTPC | ( | const pma::Vector3D & | p3d, |
float | margin = 0.0F |
||
) | const |
double pma::Node3D::SegmentCos | ( | void | ) | const |
Cosine of 3D angle between connected segments.
Definition at line 260 of file PmaNode3D.cxx.
References fPoint3D, pma::SortedObjectBase::Next(), pma::SortedObjectBase::next, pma::SortedObjectBase::Prev(), and pma::SortedObjectBase::prev.
Referenced by GetUnconstrainedProj3D(), and Pi().
double pma::Node3D::SegmentCosTransverse | ( | void | ) | const |
Cosine of 2D angle (in horizontal plane, parallel to drift) between connected segments. Should be changed / generalized for horizontal wire planes (e.g. 2-phase LAr).
Definition at line 300 of file PmaNode3D.cxx.
References fPoint3D, pma::SortedObjectBase::Next(), pma::SortedObjectBase::next, pma::SortedObjectBase::Prev(), and pma::SortedObjectBase::prev.
Referenced by GetUnconstrainedProj3D().
double pma::Node3D::SegmentCosWirePlane | ( | void | ) | const |
Cosine of 2D angle (in plane parallel to wire planes) between connected segments. Should be changed / generalized for horizontal wire planes (e.g. 2-phase LAr).
Definition at line 280 of file PmaNode3D.cxx.
References fPoint3D, pma::SortedObjectBase::Next(), pma::SortedObjectBase::next, pma::SortedObjectBase::Prev(), and pma::SortedObjectBase::prev.
Referenced by GetUnconstrainedProj3D(), and PiInWirePlane().
|
inherited |
Definition at line 296 of file PmaElement3D.cxx.
References pma::Element3D::fAssignedHits.
Referenced by pma::Track3D::SelectHits(), pma::Element3D::SelectRndHits(), and pma::Element3D::SetFrozen().
|
inherited |
Definition at line 250 of file PmaElement3D.cxx.
References pma::Element3D::fAssignedHits, pma::Element3D::NHits(), and pma::Element3D::SelectAllHits().
Referenced by pma::Element3D::SetFrozen().
|
inlineinherited |
Fix / relese vertex 3D position.
Definition at line 98 of file PmaElement3D.h.
References pma::Element3D::fFrozen, pma::Element3D::SelectAllHits(), and pma::Element3D::SelectRndHits().
|
inlinestatic |
Set allowed node position margin around TPC.
Definition at line 105 of file PmaNode3D.h.
References EndPtCos2Transverse(), fMargin, LimitPoint3D(), MakeGradient(), Mse(), Penalty(), PenaltyInWirePlane(), Pi(), PiInWirePlane(), StepWithGradient(), SumDist2Hits(), UpdateProj2D(), and weight.
Referenced by pma::ProjectionMatchingAlg::ProjectionMatchingAlg().
|
inlinestaticinherited |
Definition at line 104 of file PmaElement3D.h.
References pma::Element3D::Element3D(), pma::Element3D::fOptFactors, and fhicl::detail::atom::value().
Referenced by pma::ProjectionMatchingAlg::ProjectionMatchingAlg().
bool pma::Node3D::SetPoint3D | ( | const TVector3 & | p3d | ) |
Returns true if the new position was accepted; returns false if the new position was trimmed to fit insite TPC volume + fMargin.
Definition at line 123 of file PmaNode3D.cxx.
References fPoint3D, LimitPoint3D(), and UpdateProj2D().
Referenced by pma::VtxCandidate::JoinTracks(), MakeGradient(), Node3D(), Point3D(), and StepWithGradient().
|
overridevirtual |
Set hit 3D position and its 2D projection to the vertex.
Implements pma::Element3D.
Definition at line 171 of file PmaNode3D.cxx.
References pma::Element3D::fFrozen, fPoint3D, pma::SortedObjectBase::Next(), pma::SortedObjectBase::next, pma::Hit3D::Point2D(), Point3D(), pma::SortedObjectBase::Prev(), pma::SortedObjectBase::prev, Projection2D(), pma::Hit3D::SetPoint3D(), pma::Hit3D::SetProjection(), and pma::Hit3D::View2D().
Referenced by GetUnconstrainedProj3D().
|
inline |
|
inline |
Definition at line 56 of file PmaNode3D.h.
References fIsVertex, GetBranches(), GetDirection3D(), GetDistance2To(), and IsBranching().
|
inherited |
Definition at line 44 of file PmaElement3D.cxx.
References pma::Element3D::fAssignedHits.
Referenced by pma::Track3D::AddNode(), pma::Track3D::SortHits(), and pma::Element3D::UpdateProjection().
|
private |
Definition at line 609 of file PmaNode3D.cxx.
References fGradient, fPoint3D, GetObjFunction(), MakeGradient(), SetPoint3D(), t1, t2, and tmp.
Referenced by Optimize(), and SetMargin().
|
inherited |
Definition at line 171 of file PmaElement3D.cxx.
References d, pma::Element3D::fAssignedHits, pma::Element3D::fAssignedPoints, pma::Element3D::fTPC, pma::Element3D::GetDistance2To(), and pma::Element3D::SumDist2Hits().
Referenced by Mse(), and pma::Element3D::UpdateProjection().
|
inherited |
Definition at line 199 of file PmaElement3D.cxx.
References pma::Element3D::fAssignedHits, pma::Element3D::fTPC, pma::Element3D::GetDistance2To(), geo::kUnknown, and pma::Element3D::OptFactor().
|
overrideprivatevirtual |
Implements pma::Element3D.
Definition at line 143 of file PmaNode3D.cxx.
References pma::Dist2(), pma::Element3D::fAssignedHits, fProj2D, and pma::Element3D::OptFactor().
Referenced by SetMargin().
|
inlineinherited |
|
inlineinherited |
TPC index or -1 if out of any TPC.
Definition at line 31 of file PmaElement3D.h.
References pma::Element3D::fTPC.
Referenced by pma::Track3D::AttachBackTo(), pma::Track3D::AttachTo(), pma::Track3D::HasTPC(), IsTPCEdge(), pma::Track3D::MakeFastProjection(), pma::ProjectionMatchingAlg::mergeTracks(), Pi(), pma::Segment3D::Segment3D(), pma::Track3D::Split(), pma::ProjectionMatchingAlg::validate(), pma::ProjectionMatchingAlg::validate_on_adc(), and pma::ProjectionMatchingAlg::validate_on_adc_test().
|
inherited |
Definition at line 56 of file PmaElement3D.cxx.
References pma::Element3D::fAssignedHits, pma::Element3D::fHitsRadius, pma::Element3D::fNHits, pma::Element3D::fNThisHits, pma::Element3D::fNThisHitsEnabledAll, pma::Element3D::fSumHitsQ, pma::GetHitsRadius2D(), geo::kU, geo::kV, geo::kZ, pma::SortedObjectBase::Next(), pma::SortedObjectBase::NextCount(), and pma::SortedObjectBase::Prev().
Referenced by pma::Element3D::AddPoint().
|
private |
Definition at line 115 of file PmaNode3D.cxx.
References fDriftOffset, fPoint3D, fProj2D, fTpcGeo, geo::TPCGeo::Nplanes(), geo::TPCGeo::Plane(), and geo::PlaneGeo::PlaneCoordinate().
Referenced by SetMargin(), and SetPoint3D().
|
inlineinherited |
Definition at line 84 of file PmaElement3D.h.
References pma::Element3D::fAssignedHits, pma::Element3D::SetProjection(), pma::Element3D::SortHits(), and pma::Element3D::SumDist2().
|
protectedinherited |
Definition at line 113 of file PmaElement3D.h.
Referenced by pma::Element3D::AddHit(), pma::Element3D::ClearAssigned(), ClearAssigned(), pma::Element3D::HasHit(), pma::Element3D::Hit(), pma::Element3D::Hits(), pma::Element3D::HitsRadius3D(), pma::Element3D::NEnabledHits(), pma::Element3D::NHits(), pma::Element3D::RemoveHitAt(), pma::Element3D::SelectAllHits(), pma::Element3D::SelectRndHits(), pma::Element3D::SortHits(), pma::Element3D::SumDist2(), pma::Segment3D::SumDist2Hits(), SumDist2Hits(), pma::Element3D::UpdateHitParams(), and pma::Element3D::UpdateProjection().
|
protectedinherited |
Definition at line 114 of file PmaElement3D.h.
Referenced by pma::Element3D::AddPoint(), pma::Element3D::ClearAssigned(), ClearAssigned(), pma::Element3D::NPoints(), pma::Element3D::ReferencePoint(), and pma::Element3D::SumDist2().
|
protectedinherited |
Definition at line 108 of file PmaElement3D.h.
Referenced by pma::Element3D::Cryo(), Node3D(), and pma::Segment3D::Segment3D().
|
private |
Definition at line 131 of file PmaNode3D.h.
Referenced by ApplyDriftShift(), GetDriftShift(), and UpdateProj2D().
|
protectedinherited |
Definition at line 112 of file PmaElement3D.h.
Referenced by pma::Element3D::IsFrozen(), Optimize(), pma::Element3D::SetFrozen(), and SetProjection().
|
staticprivate |
Definition at line 136 of file PmaNode3D.h.
Referenced by MakeGradient().
|
private |
Definition at line 133 of file PmaNode3D.h.
Referenced by MakeGradient(), and StepWithGradient().
|
protectedinherited |
Definition at line 119 of file PmaElement3D.h.
Referenced by pma::Element3D::ClearAssigned(), ClearAssigned(), Pi(), PiInWirePlane(), and pma::Element3D::UpdateHitParams().
|
private |
Definition at line 134 of file PmaNode3D.h.
Referenced by IsVertex(), PenaltyInWirePlane(), Pi(), SetVertex(), and SetVertexToBranching().
|
staticprivate |
Definition at line 137 of file PmaNode3D.h.
Referenced by LimitPoint3D(), and SetMargin().
|
private |
Definition at line 127 of file PmaNode3D.h.
Referenced by GetDistToWall(), LimitPoint3D(), Node3D(), and SameTPC().
|
private |
Definition at line 127 of file PmaNode3D.h.
Referenced by GetDistToWall(), LimitPoint3D(), Node3D(), and SameTPC().
|
private |
Definition at line 127 of file PmaNode3D.h.
Referenced by GetDistToWall(), LimitPoint3D(), Node3D(), and SameTPC().
|
private |
Definition at line 127 of file PmaNode3D.h.
Referenced by GetDistToWall(), LimitPoint3D(), Node3D(), and SameTPC().
|
private |
Definition at line 127 of file PmaNode3D.h.
Referenced by GetDistToWall(), LimitPoint3D(), Node3D(), and SameTPC().
|
private |
Definition at line 127 of file PmaNode3D.h.
Referenced by GetDistToWall(), LimitPoint3D(), Node3D(), and SameTPC().
|
protectedinherited |
Definition at line 117 of file PmaElement3D.h.
Referenced by pma::Element3D::Element3D(), pma::Element3D::NHits(), and pma::Element3D::UpdateHitParams().
|
protectedinherited |
Definition at line 115 of file PmaElement3D.h.
Referenced by pma::Element3D::Element3D(), pma::Element3D::NThisHits(), and pma::Element3D::UpdateHitParams().
|
protectedinherited |
Definition at line 116 of file PmaElement3D.h.
Referenced by pma::Element3D::Element3D(), pma::Element3D::NPrecalcEnabledHits(), and pma::Element3D::UpdateHitParams().
|
staticprotectedinherited |
Definition at line 121 of file PmaElement3D.h.
Referenced by pma::Element3D::OptFactor(), and pma::Element3D::SetOptFactor().
|
private |
Definition at line 129 of file PmaNode3D.h.
Referenced by ApplyDriftShift(), pma::Track3D::ApplyDriftShiftInTree(), EndPtCos2Transverse(), GetDistance2To(), GetDistToWall(), GetUnconstrainedProj3D(), LimitPoint3D(), MakeGradient(), Point3D(), SegmentCos(), SegmentCosTransverse(), SegmentCosWirePlane(), SetPoint3D(), SetProjection(), StepWithGradient(), and UpdateProj2D().
|
private |
Definition at line 130 of file PmaNode3D.h.
Referenced by GetDistance2To(), Node3D(), Projection2D(), SumDist2Hits(), and UpdateProj2D().
|
protectedinherited |
Definition at line 118 of file PmaElement3D.h.
Referenced by pma::Element3D::Element3D(), pma::Element3D::SumHitsQ(), and pma::Element3D::UpdateHitParams().
|
protectedinherited |
Definition at line 108 of file PmaElement3D.h.
Referenced by pma::Element3D::HitsRadius3D(), Node3D(), pma::Segment3D::Segment3D(), pma::Element3D::SumDist2(), and pma::Element3D::TPC().
|
private |
Definition at line 125 of file PmaNode3D.h.
Referenced by Node3D(), and UpdateProj2D().
|
protectedinherited |
Definition at line 53 of file SortedObjects.h.
Referenced by pma::SortedObjectBase::AddNext(), pma::SortedBranchBase::AddNext(), pma::SortedObjectBase::Disconnect(), EndPtCos2Transverse(), pma::Segment3D::GetDirection3D(), GetDirection3D(), pma::Segment3D::GetDistance2To(), pma::Segment3D::GetProjection(), pma::Segment3D::GetUnconstrainedProj3D(), pma::SortedObjectBase::IsLast(), pma::Segment3D::Length2(), Length2(), MakeGradient(), pma::SortedObjectBase::Next(), pma::SortedObjectBase::NextCount(), PenaltyInWirePlane(), Pi(), pma::SortedObjectBase::RemoveNext(), pma::SortedBranchBase::RemoveNext(), SegmentCos(), SegmentCosTransverse(), SegmentCosWirePlane(), pma::Segment3D::SetProjection(), SetProjection(), pma::SortedBranchBase::SortedBranchBase(), and pma::Segment3D::SumDist2Hits().
|
protectedinherited |
Definition at line 88 of file SortedObjects.h.
|
protectedinherited |
Definition at line 54 of file SortedObjects.h.
Referenced by pma::SortedObjectBase::AddNext(), pma::SortedBranchBase::AddNext(), pma::SortedObjectBase::Disconnect(), pma::SortedBranchBase::Disconnect(), EndPtCos2Transverse(), pma::Segment3D::GetDirection3D(), GetDirection3D(), pma::Segment3D::GetDistance2To(), pma::Segment3D::GetProjection(), pma::Segment3D::GetUnconstrainedProj3D(), IsBranching(), pma::SortedObjectBase::IsFirst(), IsTPCEdge(), pma::Segment3D::Length2(), Length2(), MakeGradient(), Mse(), Penalty(), PenaltyInWirePlane(), Pi(), PiInWirePlane(), pma::SortedObjectBase::Prev(), pma::SortedObjectBase::RemoveNext(), pma::SortedBranchBase::RemoveNext(), SegmentCos(), SegmentCosTransverse(), SegmentCosWirePlane(), pma::Segment3D::SetProjection(), SetProjection(), and pma::Segment3D::SumDist2Hits().