12 #include "cetlib_except/exception.h" 33 const std::shared_ptr<const Surface>& psurf)
34 :
KHit(psurf), fHit(hit)
47 if (terr < 1. / std::sqrt(12.)) terr = 1. / std::sqrt(12.);
59 if (psurf.get() == 0) {
60 std::shared_ptr<const Surface> new_psurf(
new SurfWireLine(wireid, x));
65 if (!check_surf.
isEqual(*psurf))
66 throw cet::exception(
"KHitWireLine") <<
"Measurement surface doesn't match hit.\n";
77 merr(0, 0) = xerr * xerr;
111 merr(0, 0) = xerr * xerr;
126 <<
"Track surface not the same as measurement surface.\n";
131 pvec.resize(1,
false);
135 perr.resize(1,
false);
144 double cosphi = std::cos(phi);
145 double slopevar = pitch * pitch * cosphi * cosphi / 12.;
146 perr(0, 0) += slopevar;
150 hmatrix.resize(1, size,
false);
void setMeasSurface(const std::shared_ptr< const Surface > &psurf)
Measurement surface.
ublas::symmetric_matrix< double, ublas::lower, ublas::row_major, ublas::bounded_array< double, N *(N+1)/2 > > type
const TrackError & getError() const
Track error matrix.
bool isEqual(float x1, float x2)
const std::shared_ptr< const Surface > & getSurface() const
Surface.
double GetXTicksCoefficient(int t, int c) const
geo::WireID WireID() const
CryostatID_t Cryostat
Index of cryostat.
virtual bool isEqual(const Surface &surf) const
Test two surfaces for equality, within tolerance.
geo::Length_t WirePitch(geo::PlaneID const &planeid) const
Returns the distance between two consecutive wires.
art framework interface to geometry description
decltype(auto) constexpr size(T &&obj)
ADL-aware version of std::size.
KMatrix< N, 5 >::type type
void setMeasVector(const typename KVector< N >::type &mvec)
Set measurement vector.
ublas::vector< double, ublas::bounded_array< double, N > > type
Linear surface defined by wire id and x coordinate.
void setMeasError(const typename KSymMatrix< N >::type &merr)
Set measurement error.
PlaneID_t Plane
Index of the plane within its TPC.
Detector simulation of raw signals on wires.
double ConvertTicksToX(double ticks, int p, int t, int c) const
float PeakTime() const
Time of the signal peak, in tick units.
const TrackVector & getVector() const
Track state vector.
Kalman filter wire-time measurement on a SurfWireLine surface.
KHitWireLine(const detinfo::DetectorPropertiesData &detProp, const art::Ptr< recob::Hit > &hit, const std::shared_ptr< const Surface > &psurf)
Constructor from Hit.
bool subpredict(const KETrack &tre, KVector< 1 >::type &pvec, KSymMatrix< 1 >::type &perr, KHMatrix< 1 >::type &hmatrix) const override
void setMeasPlane(int plane)
Measurement plane.
float SigmaPeakTime() const
Uncertainty for the signal peak, in tick units.
TPCID_t TPC
Index of the TPC within its cryostat.
raw::ChannelID_t Channel() const
ID of the readout channel the hit was extracted from.
const std::shared_ptr< const Surface > & getMeasSurface() const
Measurement surface.
cet::coded_exception< error, detail::translate > exception