16 #include "cetlib_except/exception.h" 32 const std::shared_ptr<const Surface>& psurf) :
47 if(psurf.get() == 0) {
48 std::shared_ptr<const Surface> new_psurf(
new SurfWireX(wireid));
54 throw cet::exception(
"KHitWireX") <<
"Measurement surface doesn't match wire id.\n";
62 double terr = hit->
RMS();
67 if(terr < 1./std::sqrt(12.))
68 terr = 1./std::sqrt(12.);
81 merr(0,0) = xerr * xerr;
86 fID = (hit->
Channel() % 200000) * 10000 + (
int(std::abs(t)) % 10000);
114 merr(0,0) = xerr * xerr;
131 throw cet::exception(
"KHitWireX") <<
"Track surface not the same as measurement surface.\n";
136 pvec.resize(1,
false);
140 perr.resize(1,
false);
149 double slopevar = pitch*pitch * slope*slope / 12.;
150 perr(0,0) += slopevar;
154 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.
virtual bool subpredict(const KETrack &tre, KVector< 1 >::type &pvec, KSymMatrix< 1 >::type &perr, KHMatrix< 1 >::type &hmatrix) const
const std::shared_ptr< const Surface > & getSurface() const
Surface.
geo::WireID WireID() const
Initial tdc tick for hit.
float RMS() const
RMS of the hit shape, in tick units.
Kalman filter wire-time measurement on a SurfWireX surface.
CryostatID_t Cryostat
Index of cryostat.
geo::Length_t WirePitch(geo::PlaneID const &planeid) const
Returns the distance between two consecutive wires.
KMatrix< N, 5 >::type type
void setMeasVector(const typename KVector< N >::type &mvec)
Set measurement vector.
virtual double GetXTicksCoefficient(int t, int c) const =0
ublas::vector< double, ublas::bounded_array< double, N > > type
void setMeasError(const typename KSymMatrix< N >::type &merr)
Set measurement error.
PlaneID_t Plane
Index of the plane within its TPC.
virtual ~KHitWireX()
Destructor.
Detector simulation of raw signals on wires.
virtual double ConvertTicksToX(double ticks, int p, int t, int c) const =0
float PeakTime() const
Time of the signal peak, in tick units.
const TrackVector & getVector() const
Track state vector.
virtual bool isEqual(const Surface &surf) const
Test two surfaces for equality, within tolerance.
KHitWireX(const art::Ptr< recob::Hit > &hit, const std::shared_ptr< const Surface > &psurf)
Constructor from Hit.
void setMeasPlane(int plane)
Measurement plane.
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.
Planar surface defined by wire id and x-axis.
art framework interface to geometry description
const std::shared_ptr< const Surface > & getMeasSurface() const
Measurement surface.
cet::coded_exception< error, detail::translate > exception