8 #ifndef PrincipalComponentsAlg_h 9 #define PrincipalComponentsAlg_h 22 #include <Eigen/Dense> 83 const Eigen::Vector3f& axisDir,
85 Eigen::Vector3f& poca,
float m_parallel
means lines are parallel
void PCAAnalysis_2D(const reco::HitPairListPtr &hitPairVector, reco::PrincipalComponents &pca, bool updateAvePos=false) const
std::list< const reco::ClusterHit2D * > Hit2DListPtr
export some data structure definitions
void PCAAnalysis_calc3DDocas(const reco::HitPairListPtr &hitPairVector, const reco::PrincipalComponents &pca) const
int PCAAnalysis_reject3DOutliers(const reco::HitPairListPtr &hitPairVector, const reco::PrincipalComponents &pca, float aveHitDoca) const
void PCAAnalysis_3D(const reco::HitPairListPtr &hitPairList, reco::PrincipalComponents &pca, bool skeletonOnly=false) const
PrincipalComponentsAlg(fhicl::ParameterSet const &pset)
Constructor.
geo::Geometry * m_geometry
void reconfigure(fhicl::ParameterSet const &pset)
a handler for the case where the algorithm control parameters are to be reset
int PCAAnalysis_reject2DOutliers(const reco::HitPairListPtr &hitPairVector, reco::PrincipalComponents &pca, float aveHitDoca) const
std::list< const reco::ClusterHit3D * > HitPairListPtr
The geometry of one entire detector, as served by art.
void getHit2DPocaToAxis(const Eigen::Vector3f &axisPos, const Eigen::Vector3f &axisDir, const reco::ClusterHit2D *hit2D, Eigen::Vector3f &poca, float &arcLenAxis, float &arcLenWire, float &doca)
This is used to get the poca, doca and arclen along cluster axis to 2D hit.
virtual ~PrincipalComponentsAlg()
Destructor.
void PCAAnalysis_calc2DDocas(const reco::Hit2DListPtr &hit2DVector, const reco::PrincipalComponents &pca) const
const detinfo::DetectorProperties * m_detector
art framework interface to geometry description
void PCAAnalysis(const reco::HitPairListPtr &hitPairVector, reco::PrincipalComponents &pca, float doca3DScl=3.) const
Run the Principal Components Analysis.