12 #include <boost/range.hpp> 27 put(
cfg,
"pitch_mm.u", pitch);
28 put(
cfg,
"pitch_mm.v", pitch);
29 put(
cfg,
"pitch_mm.w", pitch);
36 bool ok = wg(iwp, wires);
44 TH1F* frame = pdf.
canvas.DrawFrame(bbox.first.z(), bbox.first.y(),
45 bbox.second.z(), bbox.second.y());
46 frame->SetTitle(
"red=U, blue=V, +X (-drift) direction into page");
47 frame->SetXTitle(
"Transverse Z direction");
48 frame->SetYTitle(
"Transverse Y (W) direction");
53 vector<IWire::pointer> u_wires, v_wires, w_wires;
54 copy_if(wires->begin(), wires->end(), back_inserter(u_wires),
select_u_wires);
55 copy_if(wires->begin(), wires->end(), back_inserter(v_wires),
select_v_wires);
56 copy_if(wires->begin(), wires->end(), back_inserter(w_wires),
select_w_wires);
64 for (
auto wit = wires->begin(); wit != wires->end(); ++wit) {
66 int iplane = wire->planeid().index();
67 int index = wire->index();
69 AssertMsg(n_wires[iplane],
"Empty plane");
70 double width = 1.0+ (((index+1)*max_width)/n_wires[iplane]);
72 const Ray ray = wire->ray();
74 TArrow* a_wire =
new TArrow(ray.first.z(), ray.first.y(),
75 ray.second.z(), ray.second.y(), 0.01,
"|>");
76 a_wire->SetLineColor(colors[iplane]);
77 a_wire->SetLineWidth(width);
std::pair< Point, Point > Ray
A line segment running from a first (tail) to a second (head) point.
std::shared_ptr< const IWire > pointer
std::shared_ptr< IWireParameters > pointer
Access subclass facet by pointer.
const Ray & bounds() const
void put(Configuration &cfg, const std::string &dotpath, const T &val)
Put value in configuration at the dotted path.
int main(int argc, char **argv)
virtual void configure(const WireCell::Configuration &config)
void test3D(MultiPdf &pdf, bool interactive)
wire_selector select_u_wires
wire_selector select_w_wires
std::shared_ptr< const IWire::vector > output_pointer
wire_selector select_v_wires
virtual WireCell::Configuration default_configuration() const
Optional, override to return a hard-coded default configuration.