10 #include "larevt/CalibrationDBI/Interface/ChannelStatusProvider.h" 11 #include "larevt/CalibrationDBI/Interface/ChannelStatusService.h" 17 #include "TPolyLine3D.h" 79 double threeWinCoordsLo[] = {-2. * tpc.HalfWidth(), -tpc.HalfHeight(), 0.};
80 double threeWinCoordsHi[] = {4. * tpc.HalfWidth(), tpc.HalfHeight(), tpc.Length()};
86 double coordsLo[] = {0., -tpc.HalfHeight(), 0.};
87 double coordsHi[] = {2. * tpc.HalfWidth(), tpc.HalfHeight(), tpc.Length()};
106 TPolyLine3D& top = view->
AddPolyLine3D(5, color, width, style);
107 top.SetPoint(0, coordsLo[0], coordsHi[1], coordsLo[2]);
108 top.SetPoint(1, coordsHi[0], coordsHi[1], coordsLo[2]);
109 top.SetPoint(2, coordsHi[0], coordsHi[1], coordsHi[2]);
110 top.SetPoint(3, coordsLo[0], coordsHi[1], coordsHi[2]);
111 top.SetPoint(4, coordsLo[0], coordsHi[1], coordsLo[2]);
113 TPolyLine3D& side = view->
AddPolyLine3D(5, color, width, style);
114 side.SetPoint(0, coordsHi[0], coordsHi[1], coordsLo[2]);
115 side.SetPoint(1, coordsHi[0], coordsLo[1], coordsLo[2]);
116 side.SetPoint(2, coordsHi[0], coordsLo[1], coordsHi[2]);
117 side.SetPoint(3, coordsHi[0], coordsHi[1], coordsHi[2]);
118 side.SetPoint(4, coordsHi[0], coordsHi[1], coordsLo[2]);
120 TPolyLine3D& side2 = view->
AddPolyLine3D(5, color, width, style);
121 side2.SetPoint(0, coordsLo[0], coordsHi[1], coordsLo[2]);
122 side2.SetPoint(1, coordsLo[0], coordsLo[1], coordsLo[2]);
123 side2.SetPoint(2, coordsLo[0], coordsLo[1], coordsHi[2]);
124 side2.SetPoint(3, coordsLo[0], coordsHi[1], coordsHi[2]);
125 side2.SetPoint(4, coordsLo[0], coordsHi[1], coordsLo[2]);
127 TPolyLine3D& bottom = view->
AddPolyLine3D(5, color, width, style);
128 bottom.SetPoint(0, coordsLo[0], coordsLo[1], coordsLo[2]);
129 bottom.SetPoint(1, coordsHi[0], coordsLo[1], coordsLo[2]);
130 bottom.SetPoint(2, coordsHi[0], coordsLo[1], coordsHi[2]);
131 bottom.SetPoint(3, coordsLo[0], coordsLo[1], coordsHi[2]);
132 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;
179 TPolyLine3D& grids = view->
AddPolyLine3D(2, color, style, width);
180 grids.SetPoint(0, coordsHi[0], y, coordsLo[2]);
181 grids.SetPoint(1, coordsHi[0], y, coordsHi[2]);
183 if (y < coordsLo[1])
break;
196 double y0 = 1.10 * coordsLo[1];
197 double z0 = -0.10 * coordsHi[2];
198 double sz = 0.20 * coordsHi[2];
201 TPolyLine3D& yaxis = view->
AddPolyLine3D(2, color, style, width);
202 TPolyLine3D& zaxis = view->
AddPolyLine3D(2, color, style, width);
203 xaxis.SetPoint(0, x0, y0, z0);
204 xaxis.SetPoint(1, sz + x0, y0, z0);
206 yaxis.SetPoint(0, x0, y0, z0);
207 yaxis.SetPoint(1, x0, y0 + sz, z0);
209 zaxis.SetPoint(0, x0, y0, z0);
210 zaxis.SetPoint(1, x0, y0, z0 + sz);
212 TPolyLine3D& xpoint = view->
AddPolyLine3D(3, color, style, width);
213 TPolyLine3D& ypoint = view->
AddPolyLine3D(3, color, style, width);
214 TPolyLine3D& zpoint = view->
AddPolyLine3D(3, color, style, width);
216 xpoint.SetPoint(0, 0.95 * sz + x0, y0, z0 - 0.05 * sz);
217 xpoint.SetPoint(1, 1.00 * sz + x0, y0, z0);
218 xpoint.SetPoint(2, 0.95 * sz + x0, y0, z0 + 0.05 * sz);
220 ypoint.SetPoint(0, x0, 0.95 * sz + y0, z0 - 0.05 * sz);
221 ypoint.SetPoint(1, x0, 1.00 * sz + y0, z0);
222 ypoint.SetPoint(2, x0, 0.95 * sz + y0, z0 + 0.05 * sz);
224 zpoint.SetPoint(0, x0 - 0.05 * sz, y0, 0.95 * sz + z0);
225 zpoint.SetPoint(1, x0 + 0.00 * sz, y0, 1.00 * sz + z0);
226 zpoint.SetPoint(2, x0 + 0.05 * sz, y0, 0.95 * sz + z0);
228 TPolyLine3D& zleg = view->
AddPolyLine3D(4, color, style, width);
229 zleg.SetPoint(0, x0 - 0.05 * sz, y0 + 0.05 * sz, z0 + 1.05 * sz);
230 zleg.SetPoint(1, x0 + 0.05 * sz, y0 + 0.05 * sz, z0 + 1.05 * sz);
231 zleg.SetPoint(2, x0 - 0.05 * sz, y0 - 0.05 * sz, z0 + 1.05 * sz);
232 zleg.SetPoint(3, x0 + 0.05 * sz, y0 - 0.05 * sz, z0 + 1.05 * sz);
234 TPolyLine3D& yleg = view->
AddPolyLine3D(5, color, style, width);
235 yleg.SetPoint(0, x0 - 0.05 * sz, y0 + 1.15 * sz, z0);
236 yleg.SetPoint(1, x0 + 0.00 * sz, y0 + 1.10 * sz, z0);
237 yleg.SetPoint(2, x0 + 0.00 * sz, y0 + 1.05 * sz, z0);
238 yleg.SetPoint(3, x0 + 0.00 * sz, y0 + 1.10 * sz, z0);
239 yleg.SetPoint(4, x0 + 0.05 * sz, y0 + 1.15 * sz, z0);
241 TPolyLine3D& xleg = view->
AddPolyLine3D(7, color, style, width);
242 xleg.SetPoint(0, x0 + 1.05 * sz, y0 + 0.05 * sz, z0 - 0.05 * sz);
243 xleg.SetPoint(1, x0 + 1.05 * sz, y0 + 0.00 * sz, z0 - 0.00 * sz);
244 xleg.SetPoint(2, x0 + 1.05 * sz, y0 + 0.05 * sz, z0 + 0.05 * sz);
245 xleg.SetPoint(3, x0 + 1.05 * sz, y0 + 0.00 * sz, z0 - 0.00 * sz);
246 xleg.SetPoint(4, x0 + 1.05 * sz, y0 - 0.05 * sz, z0 - 0.05 * sz);
247 xleg.SetPoint(5, x0 + 1.05 * sz, y0 + 0.00 * sz, z0 - 0.00 * sz);
248 xleg.SetPoint(6, x0 + 1.05 * sz, y0 - 0.05 * sz, z0 + 0.05 * sz);
260 lariov::ChannelStatusProvider
const& channelStatus =
264 for (
size_t viewNo = 0; viewNo < wireReadoutGeom.Nviews(); viewNo++) {
266 for (
size_t wireNo = 0; wireNo < wireReadoutGeom.Nwires(planeID); wireNo++) {
271 if (channelStatus.IsBad(channel)) {
272 const geo::WireGeo* wireGeo = wireReadoutGeom.WirePtr(wireID);
274 auto const wireStart = wireGeo->
GetStart();
275 auto const wireEnd = wireGeo->
GetEnd();
277 TPolyLine3D& pl = view->
AddPolyLine3D(2, color, style, width);
278 pl.SetPoint(0, coords[0] - 0.5, wireStart.Y(), wireStart.Z());
279 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.
The data type to uniquely identify a Plane.
cout<< "Opened file "<< fin<< " ixs= "<< ixs<< endl;if(ixs==0) hhh=(TH1F *) fff-> Get("h1")
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].
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)
A collection of 3D drawable objects.
unsigned int ChannelID_t
Type representing the ID of a readout channel.
This is the interface class for drawing 3D detector geometries.
art framework interface to geometry description