11 #include "cetlib_except/exception.h" 22 #include "larevt/CalibrationDBI/Interface/ChannelStatusService.h" 23 #include "larevt/CalibrationDBI/Interface/ChannelStatusProvider.h" 25 #include "TPolyLine.h" 26 #include "TPolyLine3D.h" 109 TPolyLine3D& top = view->
AddPolyLine3D(5, color, width, style);
110 top.SetPoint(0, coordsLo[0], coordsHi[1], coordsLo[2]);
111 top.SetPoint(1, coordsHi[0], coordsHi[1], coordsLo[2]);
112 top.SetPoint(2, coordsHi[0], coordsHi[1], coordsHi[2]);
113 top.SetPoint(3, coordsLo[0], coordsHi[1], coordsHi[2]);
114 top.SetPoint(4, coordsLo[0], coordsHi[1], coordsLo[2]);
116 TPolyLine3D& side = view->
AddPolyLine3D(5, color, width, style);
117 side.SetPoint(0, coordsHi[0], coordsHi[1], coordsLo[2]);
118 side.SetPoint(1, coordsHi[0], coordsLo[1], coordsLo[2]);
119 side.SetPoint(2, coordsHi[0], coordsLo[1], coordsHi[2]);
120 side.SetPoint(3, coordsHi[0], coordsHi[1], coordsHi[2]);
121 side.SetPoint(4, coordsHi[0], coordsHi[1], coordsLo[2]);
123 TPolyLine3D& side2 = view->
AddPolyLine3D(5, color, width, style);
124 side2.SetPoint(0, coordsLo[0], coordsHi[1], coordsLo[2]);
125 side2.SetPoint(1, coordsLo[0], coordsLo[1], coordsLo[2]);
126 side2.SetPoint(2, coordsLo[0], coordsLo[1], coordsHi[2]);
127 side2.SetPoint(3, coordsLo[0], coordsHi[1], coordsHi[2]);
128 side2.SetPoint(4, coordsLo[0], coordsHi[1], coordsLo[2]);
130 TPolyLine3D& bottom = view->
AddPolyLine3D(5, color, width, style);
131 bottom.SetPoint(0, coordsLo[0], coordsLo[1], coordsLo[2]);
132 bottom.SetPoint(1, coordsHi[0], coordsLo[1], coordsLo[2]);
133 bottom.SetPoint(2, coordsHi[0], coordsLo[1], coordsHi[2]);
134 bottom.SetPoint(3, coordsLo[0], coordsLo[1], coordsHi[2]);
135 bottom.SetPoint(4, coordsLo[0], coordsLo[1], coordsLo[2]);
142 double z = coordsLo[2];
145 TPolyLine3D& gridt = view->
AddPolyLine3D(2, color, style, width);
146 gridt.SetPoint(0, coordsLo[0], coordsLo[1], z);
147 gridt.SetPoint(1, coordsHi[0], coordsLo[1], z);
149 TPolyLine3D& grids = view->
AddPolyLine3D(2, color, style, width);
150 grids.SetPoint(0, coordsHi[0], coordsLo[1], z);
151 grids.SetPoint(1, coordsHi[0], coordsHi[1], z);
154 if (z>coordsHi[2])
break;
160 TPolyLine3D& gridt = view->
AddPolyLine3D(2, color, style, width);
161 gridt.SetPoint(0, x, coordsLo[1], coordsLo[2]);
162 gridt.SetPoint(1, x, coordsLo[1], coordsHi[2]);
164 if (x>coordsHi[0])
break;
170 TPolyLine3D& grids = view->
AddPolyLine3D(2, color, style, width);
171 grids.SetPoint(0, coordsHi[0], y, coordsLo[2]);
172 grids.SetPoint(1, coordsHi[0], y, coordsHi[2]);
174 if (y>coordsHi[1])
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<coordsLo[1])
break;
193 double y0 = 1.10*coordsLo[1];
194 double z0 = -0.10*coordsHi[2];
195 double sz = 0.20*coordsHi[2];
198 TPolyLine3D& yaxis = view->
AddPolyLine3D(2, color, style, width);
199 TPolyLine3D& zaxis = view->
AddPolyLine3D(2, color, style, width);
200 xaxis.SetPoint(0, x0, y0, z0);
201 xaxis.SetPoint(1, sz+x0, y0, z0);
203 yaxis.SetPoint(0, x0, y0, z0);
204 yaxis.SetPoint(1, x0, y0+sz, z0);
206 zaxis.SetPoint(0, x0, y0, z0);
207 zaxis.SetPoint(1, x0, y0, z0+sz);
209 TPolyLine3D& xpoint = view->
AddPolyLine3D(3, color, style, width);
210 TPolyLine3D& ypoint = view->
AddPolyLine3D(3, color, style, width);
211 TPolyLine3D& zpoint = view->
AddPolyLine3D(3, color, style, width);
213 xpoint.SetPoint(0, 0.95*sz+x0, y0, z0-0.05*sz);
214 xpoint.SetPoint(1, 1.00*sz+x0, y0, z0);
215 xpoint.SetPoint(2, 0.95*sz+x0, y0, z0+0.05*sz);
217 ypoint.SetPoint(0, x0, 0.95*sz+y0, z0-0.05*sz);
218 ypoint.SetPoint(1, x0, 1.00*sz+y0, z0);
219 ypoint.SetPoint(2, x0, 0.95*sz+y0, z0+0.05*sz);
221 zpoint.SetPoint(0, x0-0.05*sz, y0, 0.95*sz+z0);
222 zpoint.SetPoint(1, x0+0.00*sz, y0, 1.00*sz+z0);
223 zpoint.SetPoint(2, x0+0.05*sz, y0, 0.95*sz+z0);
225 TPolyLine3D& zleg = view->
AddPolyLine3D(4, color, style, width);
226 zleg.SetPoint(0, x0-0.05*sz, y0+0.05*sz, z0+1.05*sz);
227 zleg.SetPoint(1, x0+0.05*sz, y0+0.05*sz, z0+1.05*sz);
228 zleg.SetPoint(2, x0-0.05*sz, y0-0.05*sz, z0+1.05*sz);
229 zleg.SetPoint(3, x0+0.05*sz, y0-0.05*sz, z0+1.05*sz);
231 TPolyLine3D& yleg = view->
AddPolyLine3D(5, color, style, width);
232 yleg.SetPoint(0, x0-0.05*sz, y0+1.15*sz, z0);
233 yleg.SetPoint(1, x0+0.00*sz, y0+1.10*sz, z0);
234 yleg.SetPoint(2, x0+0.00*sz, y0+1.05*sz, z0);
235 yleg.SetPoint(3, x0+0.00*sz, y0+1.10*sz, z0);
236 yleg.SetPoint(4, x0+0.05*sz, y0+1.15*sz, z0);
238 TPolyLine3D& xleg = view->
AddPolyLine3D(7, color, style, width);
239 xleg.SetPoint(0, x0+1.05*sz, y0+0.05*sz, z0-0.05*sz);
240 xleg.SetPoint(1, x0+1.05*sz, y0+0.00*sz, z0-0.00*sz);
241 xleg.SetPoint(2, x0+1.05*sz, y0+0.05*sz, z0+0.05*sz);
242 xleg.SetPoint(3, x0+1.05*sz, y0+0.00*sz, z0-0.00*sz);
243 xleg.SetPoint(4, x0+1.05*sz, y0-0.05*sz, z0-0.05*sz);
244 xleg.SetPoint(5, x0+1.05*sz, y0+0.00*sz, z0-0.00*sz);
245 xleg.SetPoint(6, x0+1.05*sz, y0-0.05*sz, z0+0.05*sz);
255 lariov::ChannelStatusProvider
const& channelStatus
259 for(
size_t viewNo = 0; viewNo < geo->
Nviews(); viewNo++)
261 for(
size_t wireNo = 0; wireNo < geo->
Nwires(viewNo); wireNo++)
267 if (channelStatus.IsBad(channel))
277 TPolyLine3D& pl = view->
AddPolyLine3D(2, color, style, width);
278 pl.SetPoint(0, coords[0]-0.5, wireStart[1], wireStart[2]);
279 pl.SetPoint(1, coords[0]-0.5, wireEnd[1], wireEnd[2]);
void GetStart(double *xyz) const
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.
geo::Length_t DetHalfWidth(geo::TPCID const &tpcid) const
Returns the half width of the active volume of the specified TPC.
A collection of drawable 2-D objects.
unsigned int Nwires(unsigned int p, unsigned int tpc=0, unsigned int cstat=0) const
Returns the total number of wires in the specified plane.
TPolyLine3D & AddPolyLine3D(int n, int c, int w, int s)
geo::Length_t DetHalfHeight(geo::TPCID const &tpcid) const
Returns the half height of the active volume of the specified TPC.
unsigned int fCryostat
Cryostat number to draw, typically set by TWQProjectionView.
T get(std::string const &key) const
geo::Length_t DetLength(geo::TPCID const &tpcid) const
Returns the length of the active volume of the specified TPC.
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.
void GetEnd(double *xyz) const
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.
This is the interface class for drawing 3D detector geometries.
Namespace collecting geometry-related classes utilities.
art framework interface to geometry description
WireGeo const * WirePtr(geo::WireID const &wireid) const
Returns the specified wire.