9 #include "larevt/CalibrationDBI/Interface/ChannelStatusProvider.h" 10 #include "larevt/CalibrationDBI/Interface/ChannelStatusService.h" 16 #include "TPolyLine3D.h" 83 double threeWinCoordsHi[] = {
112 TPolyLine3D& top = view->
AddPolyLine3D(5, color, width, style);
113 top.SetPoint(0, coordsLo[0], coordsHi[1], coordsLo[2]);
114 top.SetPoint(1, coordsHi[0], coordsHi[1], coordsLo[2]);
115 top.SetPoint(2, coordsHi[0], coordsHi[1], coordsHi[2]);
116 top.SetPoint(3, coordsLo[0], coordsHi[1], coordsHi[2]);
117 top.SetPoint(4, coordsLo[0], coordsHi[1], coordsLo[2]);
119 TPolyLine3D& side = view->
AddPolyLine3D(5, color, width, style);
120 side.SetPoint(0, coordsHi[0], coordsHi[1], coordsLo[2]);
121 side.SetPoint(1, coordsHi[0], coordsLo[1], coordsLo[2]);
122 side.SetPoint(2, coordsHi[0], coordsLo[1], coordsHi[2]);
123 side.SetPoint(3, coordsHi[0], coordsHi[1], coordsHi[2]);
124 side.SetPoint(4, coordsHi[0], coordsHi[1], coordsLo[2]);
126 TPolyLine3D& side2 = view->
AddPolyLine3D(5, color, width, style);
127 side2.SetPoint(0, coordsLo[0], coordsHi[1], coordsLo[2]);
128 side2.SetPoint(1, coordsLo[0], coordsLo[1], coordsLo[2]);
129 side2.SetPoint(2, coordsLo[0], coordsLo[1], coordsHi[2]);
130 side2.SetPoint(3, coordsLo[0], coordsHi[1], coordsHi[2]);
131 side2.SetPoint(4, coordsLo[0], coordsHi[1], coordsLo[2]);
133 TPolyLine3D& bottom = view->
AddPolyLine3D(5, color, width, style);
134 bottom.SetPoint(0, coordsLo[0], coordsLo[1], coordsLo[2]);
135 bottom.SetPoint(1, coordsHi[0], coordsLo[1], coordsLo[2]);
136 bottom.SetPoint(2, coordsHi[0], coordsLo[1], coordsHi[2]);
137 bottom.SetPoint(3, coordsLo[0], coordsLo[1], coordsHi[2]);
138 bottom.SetPoint(4, coordsLo[0], coordsLo[1], coordsLo[2]);
150 double z = coordsLo[2];
153 TPolyLine3D& gridt = view->
AddPolyLine3D(2, color, style, width);
154 gridt.SetPoint(0, coordsLo[0], coordsLo[1], z);
155 gridt.SetPoint(1, coordsHi[0], coordsLo[1], z);
157 TPolyLine3D& grids = view->
AddPolyLine3D(2, color, style, width);
158 grids.SetPoint(0, coordsHi[0], coordsLo[1], z);
159 grids.SetPoint(1, coordsHi[0], coordsHi[1], z);
162 if (z > coordsHi[2])
break;
168 TPolyLine3D& gridt = view->
AddPolyLine3D(2, color, style, width);
169 gridt.SetPoint(0, x, coordsLo[1], coordsLo[2]);
170 gridt.SetPoint(1, x, coordsLo[1], coordsHi[2]);
172 if (x > coordsHi[0])
break;
178 TPolyLine3D& grids = view->
AddPolyLine3D(2, color, style, width);
179 grids.SetPoint(0, coordsHi[0], y, coordsLo[2]);
180 grids.SetPoint(1, coordsHi[0], y, coordsHi[2]);
182 if (y > coordsHi[1])
break;
186 TPolyLine3D& grids = view->
AddPolyLine3D(2, color, style, width);
187 grids.SetPoint(0, coordsHi[0], y, coordsLo[2]);
188 grids.SetPoint(1, coordsHi[0], y, coordsHi[2]);
190 if (y < coordsLo[1])
break;
206 double y0 = 1.10 * coordsLo[1];
207 double z0 = -0.10 * coordsHi[2];
208 double sz = 0.20 * coordsHi[2];
211 TPolyLine3D& yaxis = view->
AddPolyLine3D(2, color, style, width);
212 TPolyLine3D& zaxis = view->
AddPolyLine3D(2, color, style, width);
213 xaxis.SetPoint(0, x0, y0, z0);
214 xaxis.SetPoint(1, sz + x0, y0, z0);
216 yaxis.SetPoint(0, x0, y0, z0);
217 yaxis.SetPoint(1, x0, y0 + sz, z0);
219 zaxis.SetPoint(0, x0, y0, z0);
220 zaxis.SetPoint(1, x0, y0, z0 + sz);
222 TPolyLine3D& xpoint = view->
AddPolyLine3D(3, color, style, width);
223 TPolyLine3D& ypoint = view->
AddPolyLine3D(3, color, style, width);
224 TPolyLine3D& zpoint = view->
AddPolyLine3D(3, color, style, width);
226 xpoint.SetPoint(0, 0.95 * sz + x0, y0, z0 - 0.05 * sz);
227 xpoint.SetPoint(1, 1.00 * sz + x0, y0, z0);
228 xpoint.SetPoint(2, 0.95 * sz + x0, y0, z0 + 0.05 * sz);
230 ypoint.SetPoint(0, x0, 0.95 * sz + y0, z0 - 0.05 * sz);
231 ypoint.SetPoint(1, x0, 1.00 * sz + y0, z0);
232 ypoint.SetPoint(2, x0, 0.95 * sz + y0, z0 + 0.05 * sz);
234 zpoint.SetPoint(0, x0 - 0.05 * sz, y0, 0.95 * sz + z0);
235 zpoint.SetPoint(1, x0 + 0.00 * sz, y0, 1.00 * sz + z0);
236 zpoint.SetPoint(2, x0 + 0.05 * sz, y0, 0.95 * sz + z0);
238 TPolyLine3D& zleg = view->
AddPolyLine3D(4, color, style, width);
239 zleg.SetPoint(0, x0 - 0.05 * sz, y0 + 0.05 * sz, z0 + 1.05 * sz);
240 zleg.SetPoint(1, x0 + 0.05 * sz, y0 + 0.05 * sz, z0 + 1.05 * sz);
241 zleg.SetPoint(2, x0 - 0.05 * sz, y0 - 0.05 * sz, z0 + 1.05 * sz);
242 zleg.SetPoint(3, x0 + 0.05 * sz, y0 - 0.05 * sz, z0 + 1.05 * sz);
244 TPolyLine3D& yleg = view->
AddPolyLine3D(5, color, style, width);
245 yleg.SetPoint(0, x0 - 0.05 * sz, y0 + 1.15 * sz, z0);
246 yleg.SetPoint(1, x0 + 0.00 * sz, y0 + 1.10 * sz, z0);
247 yleg.SetPoint(2, x0 + 0.00 * sz, y0 + 1.05 * sz, z0);
248 yleg.SetPoint(3, x0 + 0.00 * sz, y0 + 1.10 * sz, z0);
249 yleg.SetPoint(4, x0 + 0.05 * sz, y0 + 1.15 * sz, z0);
251 TPolyLine3D& xleg = view->
AddPolyLine3D(7, color, style, width);
252 xleg.SetPoint(0, x0 + 1.05 * sz, y0 + 0.05 * sz, z0 - 0.05 * sz);
253 xleg.SetPoint(1, x0 + 1.05 * sz, y0 + 0.00 * sz, z0 - 0.00 * sz);
254 xleg.SetPoint(2, x0 + 1.05 * sz, y0 + 0.05 * sz, z0 + 0.05 * sz);
255 xleg.SetPoint(3, x0 + 1.05 * sz, y0 + 0.00 * sz, z0 - 0.00 * sz);
256 xleg.SetPoint(4, x0 + 1.05 * sz, y0 - 0.05 * sz, z0 - 0.05 * sz);
257 xleg.SetPoint(5, x0 + 1.05 * sz, y0 + 0.00 * sz, z0 - 0.00 * sz);
258 xleg.SetPoint(6, x0 + 1.05 * sz, y0 - 0.05 * sz, z0 + 0.05 * sz);
272 lariov::ChannelStatusProvider
const& channelStatus =
276 for (
size_t viewNo = 0; viewNo < geo->
Nviews(); viewNo++) {
278 for (
size_t wireNo = 0; wireNo < geo->
Nwires(planeID); wireNo++) {
283 if (channelStatus.IsBad(channel)) {
286 auto const wireStart = wireGeo->
GetStart();
287 auto const wireEnd = wireGeo->
GetEnd();
289 TPolyLine3D& pl = view->
AddPolyLine3D(2, color, style, width);
290 pl.SetPoint(0, coords[0] - 0.5, wireStart.Y(), wireStart.Z());
291 pl.SetPoint(1, coords[0] - 0.5, wireEnd.Y(), wireEnd.Z());
Geometry description of a TPC wireThe wire is a single straight segment on a wire plane...
unsigned int fTPC
TPC number to draw, typically set by TWQProjectionView.
Length_t DetHalfWidth(TPCID const &tpcid=tpc_zero) const
Returns the half width of the active volume of the specified TPC.
The data type to uniquely identify a Plane.
Point_t GetStart() const
Returns the world coordinate of one end of the wire [cm].
Point_t GetEnd() const
Returns the world coordinate of one end of the wire [cm].
Length_t DetLength(TPCID const &tpcid=tpc_zero) const
Returns the length of the active volume of the specified TPC.
TPolyLine3D & AddPolyLine3D(int n, int c, int w, int s)
IDparameter< geo::WireID > WireID
Member type of validated geo::WireID parameter.
unsigned int fCryostat
Cryostat number to draw, typically set by TWQProjectionView.
T get(std::string const &key) const
std::size_t color(std::string const &procname)
raw::ChannelID_t PlaneWireToChannel(WireID const &wireid) const
Returns the ID of the TPC channel connected to the specified wire.
unsigned int Nwires(PlaneID const &planeid) const
Returns the total number of wires in the specified plane.
Length_t DetHalfHeight(TPCID const &tpcid=tpc_zero) const
Returns the half height of the active volume of the specified TPC.
A collection of 3D drawable objects.
unsigned int Nviews() const
Returns the number of views (different wire orientations)
unsigned int ChannelID_t
Type representing the ID of a readout channel.
WireGeo const * WirePtr(WireID const &wireid) const
Returns the specified wire.
This is the interface class for drawing 3D detector geometries.
Namespace collecting geometry-related classes utilities.
art framework interface to geometry description