27 put(
cfg,
"pitch_mm.u", pitch);
28 put(
cfg,
"pitch_mm.v", pitch);
29 put(
cfg,
"pitch_mm.w", pitch);
35 WireGenerator::output_pointer wires;
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.
const Ray & bounds() const
void put(Configuration &cfg, const std::string &dotpath, const T &val)
Put value in configuration at the dotted path.
virtual void configure(const WireCell::Configuration &config)
wire_selector select_u_wires
wire_selector select_w_wires
wire_selector select_v_wires
const GenericPointer< typename T::ValueType > & pointer
virtual WireCell::Configuration default_configuration() const
Optional, override to return a hard-coded default configuration.