11 template<
typename Type>
15 ss <<
"[" << tt.first <<
"," << tt.second <<
"]";
23 const double halfwireextent = pitch_dist * 0.5 * (nwires - 1);
24 cerr <<
"Wires at extremes +/- " << halfwireextent/
units::mm <<
"mm\n";
27 const Point zero(0,0,0);
31 for (
int ind=0; ind<3; ++ind) {
32 cerr <<
"axis" << ind <<
": " << pimpos.
axis(ind) <<
endl;
37 cerr <<
"relative: " <<
val <<
endl;
43 cerr <<
"distance 0: " <<
val <<
endl;
48 cerr <<
str(rb.range()) <<
" " <<
str(rb.irange()) <<
" binsize:" << rb.binsize()/
units::mm <<
"mm\n";
52 Assert(rb.binsize() == pitch_dist);
54 Assert(rb.bin(0) == nwires/2);
55 Assert(rb.center(rb.bin(0)) == 0.0);
58 const double outside = halfwireextent+pitch_dist;
59 Assert(!rb.inside(outside));
63 const int center_wire = nwires/2;
64 auto center_wi = pimpos.
closest(0.0);
65 Assert(center_wi.first == center_wire);
66 Assert(center_wi.second == 0);
68 const int center_imp = pimpos.
wire_impact(center_wire);
69 auto ref1 = pimpos.
reflect(center_wire, center_imp+4);
70 Assert(ref1 == center_imp - 4);
std::pair< int, int > closest(double pitch) const
const Point & origin() const
Return given 3-point origin for plane pitch.
const Binning & region_binning() const
double distance(const Point &pt, int axis=2) const
int reflect(int wireind, int impind) const
std::tuple< double, double, const reco::ClusterHit3D * > Point
Definitions used by the VoronoiDiagram algorithm.
std::string str(const std::pair< Type, Type > &tt)
int wire_impact(int wireind) const
Return the impact position index coincident with the wire index.
Pimpos pimpos(nwires, min_wire_pitch, max_wire_pitch)
Vector relative(const Point &pt) const
Return the vector from the origin to the given point.
const Vector & axis(int i) const
QTextStream & endl(QTextStream &s)