64 m_hitDelTSigVec.clear();
65 m_wireIDVector.clear();
68 m_hitDelTSigVec.resize(3, 0.);
70 m_hitVector.resize(3, NULL);
74 unsigned int statusBits,
75 const float* position,
84 const std::vector<float>& hitDelTSigVec,
85 const std::vector<geo::WireID>& wireIDs) :
87 m_statusBits(statusBits),
88 m_position{position[0],position[1],position[2]},
100 std::copy(hitVec.begin(),hitVec.end(),
m_hitVector.begin());
123 unsigned int statusBits,
124 const float* position,
133 const std::vector<float>& hitDelTSigVec,
134 const std::vector<geo::WireID>& wireIDs)
162 o <<
"ClusterHit3D has " << c.
getHits().size() <<
" hits associated";
176 m_eigenValues{0.,0.,0.},
177 m_avePosition{0.,0.,0.},
183 m_numHitsUsed(nHits),
184 m_eigenVectors(eigenVecs),
185 m_aveHitDoca(aveHitDoca)
199 for(
auto& val : axis) val *= -1.;
208 o << std::setiosflags(std::ios::fixed) << std::setprecision(2);
209 o <<
" PCAxis ID run with " << a.
m_numHitsUsed <<
" space points" << std::endl;
213 o <<
" - average doca: " << a.
m_aveHitDoca << std::endl;
219 o <<
" Principal Components Axis is not valid" << std::endl;
235 m_startPosition{0.,0.,0.},
236 m_endPosition{0.,0.,0.},
243 const float* startPosition,
244 const float* endPosition,
246 m_statusBits(statusBits),
247 m_pcaResults(pcaResults),
248 m_totalCharge(totalCharge),
249 m_startPosition{startPosition[0],startPosition[1],startPosition[2]},
313 o << std::setiosflags(std::ios::fixed) << std::setprecision(2);
377 m_hitVector.push_back(clusterHit);
void setWireID(const geo::WireID &wid) const
bool m_svdOK
SVD Decomposition was successful.
Cluster3D operator+(Cluster3D)
size_t m_id
"id" of this hit (useful for indexing)
constexpr auto const & right(const_AssnsIter< L, R, D, Dir > const &a, const_AssnsIter< L, R, D, Dir > const &b)
float m_hitChiSquare
Hit ChiSquare relative to the average time.
void flipAxis(size_t axis)
float m_arclenToPoca
arc length along axis to DOCA point
double m_aveHitDoca
Average doca of hits used in PCA.
geo::WireID WireID() const
Initial tdc tick for hit.
Declaration of signal hit object.
float m_deltaPeakTime
Largest delta peak time of associated recob::Hits.
const float * getStartPosition() const
unsigned m_statusBits
Volatile status information of this 3D hit.
float Integral() const
Integral under the calibrated signal waveform of the hit, in tick x ADC units.
geo::View_t View() const
View for the plane of the hit.
WireID_t Wire
Index of the wire within its plane.
float m_docaToAxis
DOCA of hit at POCA to associated cluster axis.
friend bool operator<(const ClusterHit2D &a, const ClusterHit2D &b)
friend bool operator<(const Cluster3D &a, const Cluster3D &b)
float m_sigmaPeakTime
Quad sum of peak time sigmas.
const recob::Hit * m_hit
Hit we are augmenting.
float m_avePeakTime
Average peak time of all associated recob::Hits.
float m_arcLenToPoca
arc length to POCA along cluster axis
float m_totalCharge
Total charge in the cluster.
float m_docaToAxis
DOCA to the associated cluster axis.
float m_timeTicks
The time (in ticks) for this hit.
std::vector< geo::WireID > m_wireIDVector
Wire ID's for the planes making up hit.
const recob::Hit & getHit() const
float m_endPosition[3]
"end" position for cluster
float m_totalCharge
Sum of charges of all associated recob::Hits.
std::vector< std::vector< float > > EigenVectors
PlaneID_t Plane
Index of the plane within its TPC.
float PeakTimeMinusRMS(float sigmas=+1.) const
Returns a time sigmas RMS away from the peak time.
Detector simulation of raw signals on wires.
float m_eigenValues[3]
Eigen values from SVD decomposition.
std::vector< const reco::ClusterHit2D * > ClusterHit2DVec
void initialize(size_t id, unsigned int statusBits, const float *position, float totalCharge, float avePeakTime, float deltaPeakTime, float sigmaPeakTime, float hitChiSquare, float docaToAxis, float arclenToPoca, const ClusterHit2DVec &hitVec, const std::vector< float > &hitDelTSigVec, const std::vector< geo::WireID > &wireIDVec)
unsigned int m_statusBits
Volatile status information of this 3D hit.
Definition of utility objects for use in the 3D clustering for LArSoft.
int m_clusterIdx
ID for this cluster.
std::vector< float > m_hitDelTSigVec
Delta t of hit to matching pair / sig.
float SigmaPeakTime() const
Uncertainty for the signal peak, in tick units.
2D representation of charge deposited in the TDC/wire plane
friend bool operator<(const PrincipalComponents &a, const PrincipalComponents &b)
EigenVectors m_eigenVectors
The three principle axes.
float m_xPosition
The x coordinate for this hit.
float PeakTimePlusRMS(float sigmas=+1.) const
Returns a time sigmas RMS away from the peak time.
friend std::ostream & operator<<(std::ostream &o, const ClusterHit2D &c)
float m_position[3]
position of this hit combination in world coordinates
const ClusterHit2DVec & getHits() const
ClusterHit2DVec m_hitVector
Hits comprising this 3D hit.
int getClusterIdx() const
void UpdateParameters(const reco::ClusterHit2D *hit)
friend std::ostream & operator<<(std::ostream &o, const Cluster3D &c)
friend std::ostream & operator<<(std::ostream &o, const ClusterHit3D &c)
float m_avePosition[3]
Average position of hits fed to PCA.
int m_numHitsUsed
Number of hits in the decomposition.
friend std::ostream & operator<<(std::ostream &o, const PrincipalComponents &a)