82 const art::FindManyP<recob::Hit>& fmh =
85 std::vector<art::Ptr<recob::SpacePoint>> trackSpacePoints;
95 auto const clockData =
101 TVector3 trackCentre;
102 TVector3 Eigenvector =
ShowerPCAVector(clockData, detProp, trackSpacePoints, fmh, trackCentre);
105 TVector3 StartPositionVec = {-999, -999, -999};
107 TVector3 GeneralDir = (trackCentre - StartPositionVec).Unit();
110 double DotProduct = Eigenvector.Dot(GeneralDir);
113 if (DotProduct < 0) {
114 Eigenvector[0] = -Eigenvector[0];
115 Eigenvector[1] = -Eigenvector[1];
116 Eigenvector[2] = -Eigenvector[2];
119 TVector3 EigenvectorErr = {-999, -999, -999};
void SetElement(T &dataproduct, const std::string &Name, bool checktag=false)
const art::FindManyP< T1 > & GetFindManyP(const art::ValidHandle< std::vector< T2 > > &handle, const art::Event &evt, const art::InputTag &moduleTag)
MaybeLogger_< ELseverityLevel::ELsev_error, false > LogError
ValidHandle< PROD > getValidHandle(InputTag const &tag) const
bool CheckElement(const std::string &Name) const
int GetElement(const std::string &Name, T &Element) const
2D representation of charge deposited in the TDC/wire plane
QTextStream & endl(QTextStream &s)