ATLAS Offline Software
display_track.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #include "display_track.h"
6 
7 //#include "PlotValNtuple/Display.h"
8 #include "ShapeCreator.h"
9 
10 #include <vector>
11 #include <iostream>
12 #include <sstream>
13 
14 
15 #include "TArc.h"
16 #include "TLine.h"
17 #include "TPolyLine.h"
18 #include "TText.h"
19 #include "TMath.h"
20 
25 
26  m_trackGraphics = new std::vector<TObject*>();
27  m_rioGraphics = new std::vector<TObject*>();
28  m_geometryGraphics = new std::vector<TObject*>();
29  m_competingRotGraphics = new std::vector<TObject*>();
30 
31 };
32 
35  delete m_trackGraphics;
36  m_trackGraphics = 0;
37  delete m_rioGraphics;
38  m_rioGraphics = 0;
39  delete m_geometryGraphics;
43 }
44 
45 std::vector<TObject*>* displayTracks::getTrackGraphics() {
46  return m_trackGraphics;
47 }
48 std::vector<TObject*>* displayTracks::getRIOGraphics() {
49  return m_rioGraphics;
50 }
51 std::vector<TObject*>* displayTracks::getGeometryGraphics() {
52  return m_geometryGraphics;
53 }
54 std::vector<TObject*>* displayTracks::getCompetingROTsGraphics() {
56 }
57 
59  while(m_trackGraphics->size()!=0) {
60  delete m_trackGraphics->back();
61  m_trackGraphics->pop_back();
62  }
63 }
65  while(m_rioGraphics->size()!=0) {
66  delete m_rioGraphics->back();
67  m_rioGraphics->pop_back();
68  }
69 }
70 
72  while(m_geometryGraphics->size()!=0) {
73  delete m_geometryGraphics->back();
74  m_geometryGraphics->pop_back();
75  }
76 }
78  while(m_competingRotGraphics->size()!=0) {
79  delete m_competingRotGraphics->back();
80  m_competingRotGraphics->pop_back();
81  }
82 }
83 
89 }
90 
91 
93 displayTracks() {
94 
95  //ShapeCreator::setProjection(0);
97 
98 };
99 
103 
105  int color(2);
106  //if( pt[i] == 1) color = 4;
107  // length of track parameters in display (mm)
108  double tp_len = 2*10.;
109  double tp_r = 0.1;
110 
111  // draw circle at track position
112  TArc* trackpp = m_shapeCreator.createArc( trkPosition, tp_r );
113  trackpp->SetLineColor( color );
114  //m_arcs.push_back(trackpp);
115  TObject* trackppObj = trackpp;
116  m_trackGraphics->push_back(trackppObj);
117 
118  //m_display->addArc( trackpp );
119 
120  // draw line in track direction
121  TLine* trackp = m_shapeCreator.createLine( trkPosition, trkDirection, tp_len );
122  trackp->SetLineWidth( 2 );
123  trackp->SetLineColor( color );
124  //m_display->addLine( trackp );
125  //m_lines.push_back(trackp);
126  TObject* trackpObj = trackp;
127  m_trackGraphics->push_back(trackpObj);
128 
129  // draw line perp. to track direction
130  TLine* trackp_o = m_shapeCreator.createOrthogonalLine( trkPosition, trkDirection, tp_len );
131  trackp_o->SetLineColor( color );
132  //m_display->addLine( trackp_o );
133  //m_lines.push_back(trackp_o);
134  TObject* trackp_oObj = trackp_o;
135  m_trackGraphics->push_back(trackp_oObj);
136 
137 }
138 
139 void displayBarrelXY::displayTRT_MeasurementOnTrack( GlobalPosition& strawPosition, double driftRadius, GlobalDirection& trkDirection, bool isOutlier, double) {
140  displayTRT_Measurement(strawPosition, driftRadius, true, isOutlier);
141  if (!isOutlier) {
142  // display marker for left/right solution
143  GlobalDirection dir_o(trkDirection.y(), -trkDirection.x(), 0.);
144  dir_o *= (trkDirection.z()<0 ? -1 : 1);
145 
146  // use an arrow as marker: fine for higher zoom, with less zoom looks strange
147  //TArrow* marker = ShapeCreator::createArrow(strawPosition, dir_o, driftRadius);
148  TPolyLine* marker = m_shapeCreator.createTriangle(strawPosition, dir_o,
149  0.45*driftRadius+(driftRadius<0?-0.3:0.3));
150  marker->SetLineColor( 311 );
151  marker->SetLineWidth( 2 );
152  //m_display->addLine( marker_o );
153  //m_lines.push_back(marker_o);
154  TObject* markerObj = marker;
155  m_trackGraphics->push_back(markerObj);
156  }
157 }
158 
160  bool onTrack, bool outlierOnTrack, double) {
161  // tube radius
162  double tube_radius = 2.;
163 
164  std::vector<TObject*>* geometry=0;
165  bool backside = strawPosition.z() < 0.;
166  int color_hit = 4; // blue
167  int color_tube = 1; // black
168  if (onTrack && !outlierOnTrack ) {
169  color_hit = backside ? 303 : 4; // dark/full blue
171  } else if (onTrack && outlierOnTrack) {
172  color_hit = backside ? 302 : 3; // dark/full green
174  } else {
175  color_hit = backside ? 306 : 6; // dark/full magenta
177  }
178  // draw TRT tube
179  TArc* tube = m_shapeCreator.createArc( strawPosition, tube_radius );
180  tube->SetLineColor( color_tube );
181  if (!onTrack && backside) tube->SetFillColor( 310 );
182  //m_display->addArc( tube );
183  //m_arcs.push_back(tube);
184  TObject* tubeObj = tube;
185  geometry->push_back(tubeObj);
186 
187  // draw little flag to distinguish z<0 / z>0 in XY view
188  double x_flag = backside ? -1.6 : 1.6;
189  GlobalPosition gp_flag(strawPosition.x()+1.6,strawPosition.y()+x_flag,strawPosition.z());
190  TArc* tubeFlag = m_shapeCreator.createArc( gp_flag,0.25 );
191  tubeFlag->SetLineColor( color_hit );
192  tubeFlag->SetFillColor( color_hit );
193  TObject* flagObj = tubeFlag;
194  geometry->push_back(flagObj);
195 
196  // draw drift circle or full NODRIFTTIME tube
197  if (driftRadius != 0.0) {
198  TArc* hit = m_shapeCreator.createArc( strawPosition, driftRadius );
199  hit->SetLineColor( color_hit );
200  hit->SetLineWidth( 2 );
201  //m_display->addArc( hit );
202  //m_arcs.push_back(hit);
203  TObject* hitObj = hit;
204  geometry->push_back(hitObj);
205  } else {
206  TArc* hit = m_shapeCreator.createArc( strawPosition, 1.15 ); // tube used w/o drift time -> 4mm/sqrt(12) error
207  hit->SetLineColor( color_hit );
208  hit->SetFillColor( color_hit );
209  hit->SetLineWidth( 2 );
210  TObject* hitObj = hit;
211  geometry->push_back(hitObj);
212  }
213 
214  // draw circle at straw (wire) position
215  TArc* tube_c = m_shapeCreator.createArc( strawPosition, 0.05 );
216  tube_c->SetLineColor( 1 );
217  tube_c->SetFillColor( 1 );
218  //m_display->addArc( tube_c );
219  //m_arcs.push_back(tube_c);
220  TObject* tube_cObj = tube_c;
221  geometry->push_back(tube_cObj);
222 }
224 
225 void displayBarrelXY::displaySiliconMeasurement( GlobalPosition& measurementPosition, bool onTrack) {
226  // marker radius
227  double hit_r = 0.15;
228  std::vector<TObject*>* geometry=0;
229 
230  int color = 6;
231  if (onTrack) {
232  color = 4;
234  } else {
235  color = 6;
237  }
238 
239  // draw measurement position
240  TArc* hit = m_shapeCreator.createArc( measurementPosition, hit_r );
241  hit->SetLineColor( color );
242  hit->SetFillColor( color );
243  //m_display->addArc( hit );
244  //m_arcs.push_back(hit);
245  TObject* hitObj = hit;
246  geometry->push_back(hitObj);
247 
248 }
249 
250 void displayBarrelXY::displayCompetingTRT_ROT( std::vector<GlobalPosition>& strawPositions, std::vector<double> driftRadii, std::vector<double> assgnProbs, GlobalDirection& trkDirection) {
251 
252  GlobalDirection dir_o(trkDirection.y(), -trkDirection.x(), 0.);
253  dir_o *= (trkDirection.z()<0 ? -1 : 1);
254  char assgnProbText[50];
255 
256  // write the value of the assignment prob near the measurement
257  sprintf(assgnProbText,"%e", assgnProbs[0]);
258  TText* text = m_shapeCreator.createText(strawPositions[0]+(driftRadii[0]*2.)*dir_o.Unit(), assgnProbText);
259  //TText* text = m_shapeCreator.createText(strawPositions[0], assgnProbText);
260  // align left if direction points left and align right if direction points right
261  text->SetTextAlign((dir_o.x()*driftRadii[0])>0 ? 12 : 32);
262  TObject* textObj = text;
263  m_competingRotGraphics->push_back(textObj);
264 
265  // loop over remaining competing measurements
266  for (unsigned int i = 1; i < strawPositions.size(); i++) {
267  // draw drift circle
268  //TArc* hit = m_shapeCreator.createArc( strawPosition, driftRadius );
269  //hit->SetLineColor( color );
270  //TObject* hitObj = hit;
271  //m_competingRotGraphics->push_back(hitObj);
272 
273  // write the value of the assignment prob near the measurement
274  sprintf(assgnProbText,"%e", assgnProbs[i]);
275  TText* text = m_shapeCreator.createText(strawPositions[i]+(driftRadii[i]*2.)*dir_o.Unit(), assgnProbText);
276  //TText* text = m_shapeCreator.createText(strawPositions[i], assgnProbText);
277  // align left if direction points left and align right if direction points right
278  text->SetTextAlign((dir_o.x()*driftRadii[i])>0 ? 12 : 32);
279  TObject* textObj = text;
280  m_competingRotGraphics->push_back(textObj);
281 
282  if (strawPositions[i] != strawPositions[i-1]) {
283  // we have another straw: draw line between straws
284  TLine* connection = m_shapeCreator.createLine(strawPositions[i-1], strawPositions[i-1]);
285  connection->SetLineColor(16); // gray
286  TObject* connectionObj = connection;
287  m_competingRotGraphics->push_back(connectionObj);
288  }
289  }
290 }
291 
292 
296 
298 displayTracks() {
299 
300  //ShapeCreator::setProjection(0);
302 
303 };
304 
305 
307  int color(2);
308  //if( pt[i] == 1) color = 4;
309  // length of track parameters in display (mm)
310  double tp_len = 2*10.;
311  double tp_r = 0.1;
312 
313  // draw circle at track position
314  TArc* trackpp = m_shapeCreator.createArc( trkPosition, tp_r );
315  trackpp->SetLineColor( color );
316  //m_arcs.push_back(trackpp);
317  TObject* trackppObj = trackpp;
318  m_trackGraphics->push_back(trackppObj);
319  // if (trackpp) {
320  // std::cout << "set line color of the circle "<<trackpp<< " to "<< color << std::endl;
321  // }
322  // std::cout << "display: "<<m_display << std::endl;
323 
324  //m_display->addArc( trackpp );
325 
326  // draw line in track direction
327  TLine* trackp = m_shapeCreator.createLine( trkPosition, trkDirection, tp_len );
328  trackp->SetLineWidth( 2 );
329  trackp->SetLineColor( color );
330  //m_display->addLine( trackp );
331  //m_lines.push_back(trackp);
332  TObject* trackpObj = trackp;
333  m_trackGraphics->push_back(trackpObj);
334 
335  // draw line perp. to track direction
336  TLine* trackp_o = m_shapeCreator.createOrthogonalLine( trkPosition, trkDirection, tp_len );
337  trackp_o->SetLineColor( color );
338  //m_display->addLine( trackp_o );
339  //m_lines.push_back(trackp_o);
340  TObject* trackp_oObj = trackp_o;
341  m_trackGraphics->push_back(trackp_oObj);
342 
343 // TVector3 endOfDirPointer = trkPosition + trkDirection;
344 //
345 // TEllipse* endOfDir = m_shapeCreator.createEllipse( endOfDirPointer, 0.05, atan(0.05 / trkPosition.Perp()) * 1000. );
346 // endOfDir->SetLineColor( color );
347 // endOfDir->SetFillColor( color );
348 // //m_display->addArc( tube_c );
349 // //m_arcs.push_back(tube_c);
350 // TObject* endOfDirObj = endOfDir;
351 // m_trackGraphics->push_back(endOfDirObj);
352 
353 }
354 
355 void displayEndcapPhiZ::displayTRT_MeasurementOnTrack( GlobalPosition& strawPosition, double driftRadius, GlobalDirection& trkDirection, bool isOutlier, double trackRadius) {
356  displayTRT_Measurement(strawPosition, driftRadius, true, isOutlier, trackRadius);
357 /* // display marker for left/right solution
358  GlobalDirection dir_o(trkDirection.y(), -trkDirection.x(), 0.);
359  dir_o *= (trkDirection.z()<0 ? -1 : 1);
360 
361  // use an arrow as marker: fine for higher zoom, with less zoom looks strange
362  //TArrow* marker = ShapeCreator::createArrow(strawPosition, dir_o, driftRadius);
363  TPolyLine* marker = ShapeCreator::createTriangle(strawPosition, dir_o, driftRadius);
364  marker->SetLineColor( 3 );
365  //marker->SetLineWidth( 2 );
366  //m_display->addLine( marker_o );
367  //m_lines.push_back(marker_o);
368  TObject* markerObj = marker;
369  m_trackGraphics->push_back(markerObj);*/
370 
371 }
372 
373 void displayEndcapPhiZ::displayTRT_Measurement( GlobalPosition& strawPosition, double driftRadius, bool onTrack,
374  bool outlierOnTrack, double trackRadius) {
375  // tube radius
376  const double tube_radius = 2.;
377  const double radiusOfStrawCenters = 823.9;
378  //const double phiScale = 180. / TMath::Pi(); // use deg
379  const double phiScale = 1000.; // use mrad
380  //const double tube_radiusInPhi = tube_radius / radiusOfStrawCenters * phiScale;
381  double Rho = radiusOfStrawCenters;
382  if (onTrack && (trackRadius > 0.)) {
383  Rho = trackRadius;
384  }
385  //std::cout << " rho=" << Rho << ", driftradius=" << driftRadius << std::endl;
386  std::vector<TObject*>* geometry=0;
387  int color_hit = 4; // blue
388  int color_tube = 1; // black
389  if (onTrack && !outlierOnTrack ) {
390  color_hit = 4; // full blue
392  } else if (onTrack && outlierOnTrack) {
393  color_hit = 3; // full green
395  } else {
396  color_hit = 6; // full magenta
398  }
399 
400  // draw drift circle or full NODRIFTTIME tube
401  if (driftRadius != 0.0) {
402  TEllipse* hit = m_shapeCreator.createEllipse( strawPosition, driftRadius, std::atan(driftRadius / Rho) * phiScale );
403  hit->SetLineColor( color_hit );
404  hit->SetLineWidth( 2 );
405  //m_display->addArc( hit );
406  //m_arcs.push_back(hit);
407  TObject* hitObj = hit;
408  geometry->push_back(hitObj);
409  } else {
410  // tube used w/o drift time -> 4mm/sqrt(12) error
411  TEllipse* hit = m_shapeCreator.createEllipse( strawPosition, 1.15, std::atan(1.15 / Rho) * phiScale );
412  hit->SetLineColor( color_hit );
413  hit->SetFillColor( color_hit );
414  hit->SetLineWidth( 2 );
415  TObject* hitObj = hit;
416  geometry->push_back(hitObj);
417  }
418 
419  // draw TRT tube
420  TEllipse* tube = m_shapeCreator.createEllipse( strawPosition, tube_radius, std::atan(tube_radius / Rho) * phiScale );
421  tube->SetLineColor( color_tube );
422  //m_display->addArc( tube );
423  //m_arcs.push_back(tube);
424  TObject* tubeObj = tube;
425  geometry->push_back(tubeObj);
426 
427  // draw circle at straw (wire) position
428  TEllipse* tube_c = m_shapeCreator.createEllipse( strawPosition, 0.05, std::atan(0.05 / Rho) * phiScale );
429  tube_c->SetLineColor( color_tube );
430  tube_c->SetFillColor( color_tube );
431  //m_display->addArc( tube_c );
432  //m_arcs.push_back(tube_c);
433  TObject* tube_cObj = tube_c;
434  geometry->push_back(tube_cObj);
435 
436  double l = sqrt(strawPosition.y()*strawPosition.y() + strawPosition.x()*strawPosition.x());
437  TVector3 maxRadiusInPhiPosition1(Rho*strawPosition.x()/l - driftRadius * strawPosition.y()/l,
438  Rho*strawPosition.y()/l + driftRadius * strawPosition.x()/l,
439  strawPosition.z());
440 
441  TEllipse* maxRad1 = m_shapeCreator.createEllipse( maxRadiusInPhiPosition1, 0.05, std::atan(0.05 / Rho) * phiScale );
442  maxRad1->SetLineColor( color_hit );
443  maxRad1->SetFillColor( color_hit );
444  //m_display->addArc( tube_c );
445  //m_arcs.push_back(tube_c);
446  TObject* maxRad1Obj = maxRad1;
447  geometry->push_back(maxRad1Obj);
448  TVector3 maxRadiusInPhiPosition2(Rho*strawPosition.x()/l + driftRadius * strawPosition.y()/l,
449  Rho*strawPosition.y()/l - driftRadius * strawPosition.x()/l,
450  strawPosition.z());
451 
452  TEllipse* maxRad2 = m_shapeCreator.createEllipse( maxRadiusInPhiPosition2, 0.05, std::atan(0.05 / Rho) * phiScale );
453  maxRad2->SetLineColor( color_hit );
454  maxRad2->SetFillColor( color_hit );
455  //m_display->addArc( tube_c );
456  //m_arcs.push_back(tube_c);
457  TObject* maxRad2Obj = maxRad2;
458  geometry->push_back(maxRad2Obj);
459 }
461 
462 void displayEndcapPhiZ::displaySiliconMeasurement( GlobalPosition& measurementPosition, bool onTrack) {
463  // marker radius
464  double hit_r = 0.1;
465  std::vector<TObject*>* geometry=0;
466 
467  int color = 6;
468  if (onTrack) {
469  color = 4;
471  } else {
472  color = 6;
474  }
475 
476  // draw measurement position
477  TArc* hit = m_shapeCreator.createArc( measurementPosition, hit_r );
478  hit->SetLineColor( color );
479  hit->SetFillColor( color );
480  //m_display->addArc( hit );
481  //m_arcs.push_back(hit);
482  TObject* hitObj = hit;
483  geometry->push_back(hitObj);
484 
485 }
486 
487 void displayEndcapPhiZ::displayCompetingTRT_ROT( std::vector<GlobalPosition>& strawPositions, std::vector<double> driftRadii, std::vector<double> assgnProbs, GlobalDirection& trkDirection) {
488 
489 /* GlobalDirection dir_o(trkDirection.y(), -trkDirection.x(), 0.);
490  dir_o *= (trkDirection.z()<0 ? -1 : 1);
491  char assgnProbText[50];
492 
493  // write the value of the assignment prob near the measurement
494  sprintf(assgnProbText,"%e", assgnProbs[0]);
495  TText* text = ShapeCreator::createText(strawPositions[0]+(driftRadii[0]*2.)*dir_o.Unit(), assgnProbText);
496  //TText* text = ShapeCreator::createText(strawPositions[0], assgnProbText);
497  // align left if direction points left and align right if direction points right
498  text->SetTextAlign((dir_o.x()*driftRadii[0])>0 ? 12 : 32);
499  TObject* textObj = text;
500  m_competingRotGraphics->push_back(textObj);
501 
502  // loop over remaining competing measurements
503  for (unsigned int i = 1; i < strawPositions.size(); i++) {
504  // draw drift circle
505  //TArc* hit = ShapeCreator::createArc( strawPosition, driftRadius );
506  //hit->SetLineColor( color );
507  //TObject* hitObj = hit;
508  //m_competingRotGraphics->push_back(hitObj);
509 
510  // write the value of the assignment prob near the measurement
511  sprintf(assgnProbText,"%e", assgnProbs[i]);
512  TText* text = ShapeCreator::createText(strawPositions[i]+(driftRadii[i]*2.)*dir_o.Unit(), assgnProbText);
513  //TText* text = ShapeCreator::createText(strawPositions[i], assgnProbText);
514  // align left if direction points left and align right if direction points right
515  text->SetTextAlign((dir_o.x()*driftRadii[i])>0 ? 12 : 32);
516  TObject* textObj = text;
517  m_competingRotGraphics->push_back(textObj);
518 
519  if (strawPositions[i] != strawPositions[i-1]) {
520  // we have another straw: draw line between straws
521  TLine* connection = ShapeCreator::createLine(strawPositions[i-1], strawPositions[i-1]);
522  connection->SetLineColor(16); // gray
523  TObject* connectionObj = connection;
524  m_competingRotGraphics->push_back(connectionObj);
525  }
526  }*/
527 }
528 
529 
displayEndcapPhiZ::displayTRT_MeasurementOnTrack
virtual void displayTRT_MeasurementOnTrack(GlobalPosition &strawPosition, double driftRadius, GlobalDirection &trkDirection, bool isOutlier, double trackRadius=0.)
create the graphic objects for a single TRT measurement on track
Definition: display_track.cxx:355
displayTracks::getCompetingROTsGraphics
virtual std::vector< TObject * > * getCompetingROTsGraphics()
Definition: display_track.cxx:54
ShapeCreator::createEllipse
TEllipse * createEllipse(const TVector3 &pos, double r1, double r2)
Definition: ShapeCreator.cxx:201
ShapeCreator.h
color
Definition: jFexInputByteStreamTool.cxx:25
displayTracks::m_shapeCreator
ShapeCreator m_shapeCreator
Definition: display_track.h:79
displayTracks::clearTrackGraphics
virtual void clearTrackGraphics()
Definition: display_track.cxx:58
displayBarrelXY::displayTrackState
virtual void displayTrackState(GlobalPosition &trkPosition, GlobalDirection &trkDirection)
create the graphic objects for a single track state
Definition: display_track.cxx:104
displayEndcapPhiZ::displayEndcapPhiZ
displayEndcapPhiZ()
displayEndcapPhiZ
Definition: display_track.cxx:297
displayTracks::clear
virtual void clear()
clear all graphics vectors
Definition: display_track.cxx:84
displayTracks
Definition: display_track.h:28
UploadAMITag.l
list l
Definition: UploadAMITag.larcaf.py:158
displayTracks::m_geometryGraphics
std::vector< TObject * > * m_geometryGraphics
Definition: display_track.h:76
python.Include.marker
string marker
Definition: Include.py:21
displayTracks::displayTracks
displayTracks()
base class: displayTracks
Definition: display_track.cxx:24
drawFromPickle.atan
atan
Definition: drawFromPickle.py:36
ShapeCreator::createArc
TArc * createArc(const TVector3 &pos, double r)
Definition: ShapeCreator.cxx:175
displayTracks::getRIOGraphics
virtual std::vector< TObject * > * getRIOGraphics()
Definition: display_track.cxx:48
displayBarrelXY::displayBarrelXY
displayBarrelXY()
Definition: display_track.cxx:92
ShapeCreator::createTriangle
TPolyLine * createTriangle(const TVector3 &pos, const TVector3 &dir, double length)
Definition: ShapeCreator.cxx:161
displayBarrelXY::displayCompetingTRT_ROT
virtual void displayCompetingTRT_ROT(std::vector< GlobalPosition > &strawPositions, std::vector< double > driftRadii, std::vector< double > assgnProbs, GlobalDirection &trkDirection)
create the graphic objects for a single CompetingTRT_DriftCirclesOnTrack
Definition: display_track.cxx:250
lumiFormat.i
int i
Definition: lumiFormat.py:85
displayTracks::m_trackGraphics
std::vector< TObject * > * m_trackGraphics
Definition: display_track.h:74
ShapeCreator::createLine
TLine * createLine(const TVector3 &pos, const TVector3 &dir, double length)
Definition: ShapeCreator.cxx:106
displayTracks::getGeometryGraphics
virtual std::vector< TObject * > * getGeometryGraphics()
Definition: display_track.cxx:51
Trk::driftRadius
@ driftRadius
trt, straws
Definition: ParamDefs.h:53
displayEndcapPhiZ::displayCompetingTRT_ROT
virtual void displayCompetingTRT_ROT(std::vector< GlobalPosition > &strawPositions, std::vector< double > driftRadii, std::vector< double > assgnProbs, GlobalDirection &trkDirection)
create the graphic objects for a single CompetingTRT_DriftCirclesOnTrack
Definition: display_track.cxx:487
color
color
Definition: BinsDiffFromStripMedian.h:18
displayTracks::clearGeometryGraphics
virtual void clearGeometryGraphics()
Definition: display_track.cxx:71
LArG4GenerateShowerLib.geometry
geometry
Definition: LArG4GenerateShowerLib.py:19
displayTracks::m_competingRotGraphics
std::vector< TObject * > * m_competingRotGraphics
Definition: display_track.h:77
displayTracks::clearRIOGraphics
virtual void clearRIOGraphics()
Definition: display_track.cxx:64
displayBarrelXY::displayTRT_Tubes
virtual void displayTRT_Tubes()
Definition: display_track.cxx:223
displayBarrelXY::displayTRT_MeasurementOnTrack
virtual void displayTRT_MeasurementOnTrack(GlobalPosition &strawPosition, double driftRadius, GlobalDirection &trkDirection, bool isOutlier, double=0.)
create the graphic objects for a single TRT measurement on track
Definition: display_track.cxx:139
displayTracks::~displayTracks
virtual ~displayTracks()
Definition: display_track.cxx:33
displayBarrelXY::displayTRT_Measurement
virtual void displayTRT_Measurement(GlobalPosition &strawPosition, double driftRadius, bool onTrack, bool outlierOnTrack, double=0.)
create the graphic objects for a single TRT measurement
Definition: display_track.cxx:159
ShapeCreator::createOrthogonalLine
TLine * createOrthogonalLine(const TVector3 &pos, const TVector3 &dir, double length)
Definition: ShapeCreator.cxx:133
displayBarrelXY::displaySiliconMeasurement
virtual void displaySiliconMeasurement(GlobalPosition &measurementPosition, bool onTrack)
create the graphic objects for a single Silicon measurement
Definition: display_track.cxx:225
displayTracks::getTrackGraphics
virtual std::vector< TObject * > * getTrackGraphics()
Definition: display_track.cxx:45
ShapeCreator::setProjection
void setProjection(int p)
Definition: ShapeCreator.cxx:95
displayEndcapPhiZ::displaySiliconMeasurement
virtual void displaySiliconMeasurement(GlobalPosition &measurementPosition, bool onTrack)
create the graphic objects for a single Silicon measurement
Definition: display_track.cxx:462
displayTracks::clearCompetingROTsGraphics
virtual void clearCompetingROTsGraphics()
Definition: display_track.cxx:77
display_track.h
GlobalPosition
TVector3 GlobalPosition
Definition: display_track.h:14
makeTransCanvas.text
text
Definition: makeTransCanvas.py:11
displayEndcapPhiZ::displayTRT_Measurement
virtual void displayTRT_Measurement(GlobalPosition &strawPosition, double driftRadius, bool onTrack, bool outlierOnTrack, double trackRadius=0.)
create the graphic objects for a single TRT measurement
Definition: display_track.cxx:373
displayTracks::m_rioGraphics
std::vector< TObject * > * m_rioGraphics
Definition: display_track.h:75
GlobalDirection
TVector3 GlobalDirection
Definition: display_track.h:15
calibdata.tube
tube
Definition: calibdata.py:31
displayEndcapPhiZ::displayTRT_Tubes
virtual void displayTRT_Tubes()
Definition: display_track.cxx:460
ShapeCreator::createText
TText * createText(const TVector3 &pos, const char *text)
Definition: ShapeCreator.cxx:195
displayEndcapPhiZ::displayTrackState
virtual void displayTrackState(GlobalPosition &trkPosition, GlobalDirection &trkDirection)
create the graphic objects for a single track state
Definition: display_track.cxx:306