ATLAS Offline Software
Public Member Functions | Protected Attributes | List of all members
displayEndcapPhiZ Class Reference

#include <display_track.h>

Inheritance diagram for displayEndcapPhiZ:
Collaboration diagram for displayEndcapPhiZ:

Public Member Functions

 displayEndcapPhiZ ()
 displayEndcapPhiZ More...
 
virtual void displayTrackState (GlobalPosition &trkPosition, GlobalDirection &trkDirection)
 create the graphic objects for a single track state More...
 
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 More...
 
virtual void displayTRT_Measurement (GlobalPosition &strawPosition, double driftRadius, bool onTrack, bool outlierOnTrack, double trackRadius=0.)
 create the graphic objects for a single TRT measurement More...
 
virtual void displayTRT_Tubes ()
 
virtual void displaySiliconMeasurement (GlobalPosition &measurementPosition, bool onTrack)
 create the graphic objects for a single Silicon measurement More...
 
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 More...
 
virtual void clear ()
 clear all graphics vectors More...
 
virtual void clearTrackGraphics ()
 
virtual void clearRIOGraphics ()
 
virtual void clearGeometryGraphics ()
 
virtual void clearCompetingROTsGraphics ()
 
virtual std::vector< TObject * > * getTrackGraphics ()
 
virtual std::vector< TObject * > * getRIOGraphics ()
 
virtual std::vector< TObject * > * getGeometryGraphics ()
 
virtual std::vector< TObject * > * getCompetingROTsGraphics ()
 

Protected Attributes

std::vector< TObject * > * m_trackGraphics
 
std::vector< TObject * > * m_rioGraphics
 
std::vector< TObject * > * m_geometryGraphics
 
std::vector< TObject * > * m_competingRotGraphics
 
ShapeCreator m_shapeCreator
 

Detailed Description

Definition at line 106 of file display_track.h.

Constructor & Destructor Documentation

◆ displayEndcapPhiZ()

displayEndcapPhiZ::displayEndcapPhiZ ( )

displayEndcapPhiZ

Definition at line 297 of file display_track.cxx.

297  :
298 displayTracks() {
299 
300  //ShapeCreator::setProjection(0);
302 
303 };

Member Function Documentation

◆ clear()

void displayTracks::clear ( )
virtualinherited

clear all graphics vectors

Definition at line 84 of file display_track.cxx.

◆ clearCompetingROTsGraphics()

void displayTracks::clearCompetingROTsGraphics ( )
virtualinherited

Definition at line 77 of file display_track.cxx.

77  {
78  while(m_competingRotGraphics->size()!=0) {
79  delete m_competingRotGraphics->back();
80  m_competingRotGraphics->pop_back();
81  }
82 }

◆ clearGeometryGraphics()

void displayTracks::clearGeometryGraphics ( )
virtualinherited

Definition at line 71 of file display_track.cxx.

71  {
72  while(m_geometryGraphics->size()!=0) {
73  delete m_geometryGraphics->back();
74  m_geometryGraphics->pop_back();
75  }
76 }

◆ clearRIOGraphics()

void displayTracks::clearRIOGraphics ( )
virtualinherited

Definition at line 64 of file display_track.cxx.

64  {
65  while(m_rioGraphics->size()!=0) {
66  delete m_rioGraphics->back();
67  m_rioGraphics->pop_back();
68  }
69 }

◆ clearTrackGraphics()

void displayTracks::clearTrackGraphics ( )
virtualinherited

Definition at line 58 of file display_track.cxx.

58  {
59  while(m_trackGraphics->size()!=0) {
60  delete m_trackGraphics->back();
61  m_trackGraphics->pop_back();
62  }
63 }

◆ displayCompetingTRT_ROT()

void displayEndcapPhiZ::displayCompetingTRT_ROT ( std::vector< GlobalPosition > &  strawPositions,
std::vector< double >  driftRadii,
std::vector< double >  assgnProbs,
GlobalDirection trkDirection 
)
virtual

create the graphic objects for a single CompetingTRT_DriftCirclesOnTrack

Implements displayTracks.

Definition at line 487 of file display_track.cxx.

487  {
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 }

◆ displaySiliconMeasurement()

void displayEndcapPhiZ::displaySiliconMeasurement ( GlobalPosition measurementPosition,
bool  onTrack 
)
virtual

create the graphic objects for a single Silicon measurement

Implements displayTracks.

Definition at line 462 of file display_track.cxx.

462  {
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 }

◆ displayTrackState()

void displayEndcapPhiZ::displayTrackState ( GlobalPosition trkPosition,
GlobalDirection trkDirection 
)
virtual

create the graphic objects for a single track state

Implements displayTracks.

Definition at line 306 of file display_track.cxx.

306  {
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 }

◆ displayTRT_Measurement()

void displayEndcapPhiZ::displayTRT_Measurement ( GlobalPosition strawPosition,
double  driftRadius,
bool  onTrack,
bool  outlierOnTrack,
double  trackRadius = 0. 
)
virtual

create the graphic objects for a single TRT measurement

Implements displayTracks.

Definition at line 373 of file display_track.cxx.

374  {
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 }

◆ displayTRT_MeasurementOnTrack()

void displayEndcapPhiZ::displayTRT_MeasurementOnTrack ( GlobalPosition strawPosition,
double  driftRadius,
GlobalDirection trkDirection,
bool  isOutlier,
double  trackRadius = 0. 
)
virtual

create the graphic objects for a single TRT measurement on track

Implements displayTracks.

Definition at line 355 of file display_track.cxx.

355  {
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 }

◆ displayTRT_Tubes()

void displayEndcapPhiZ::displayTRT_Tubes ( )
virtual

Implements displayTracks.

Definition at line 460 of file display_track.cxx.

460 {}

◆ getCompetingROTsGraphics()

std::vector< TObject * > * displayTracks::getCompetingROTsGraphics ( )
virtualinherited

Definition at line 54 of file display_track.cxx.

54  {
56 }

◆ getGeometryGraphics()

std::vector< TObject * > * displayTracks::getGeometryGraphics ( )
virtualinherited

Definition at line 51 of file display_track.cxx.

51  {
52  return m_geometryGraphics;
53 }

◆ getRIOGraphics()

std::vector< TObject * > * displayTracks::getRIOGraphics ( )
virtualinherited

Definition at line 48 of file display_track.cxx.

48  {
49  return m_rioGraphics;
50 }

◆ getTrackGraphics()

std::vector< TObject * > * displayTracks::getTrackGraphics ( )
virtualinherited

Definition at line 45 of file display_track.cxx.

45  {
46  return m_trackGraphics;
47 }

Member Data Documentation

◆ m_competingRotGraphics

std::vector<TObject*>* displayTracks::m_competingRotGraphics
protectedinherited

Definition at line 75 of file display_track.h.

◆ m_geometryGraphics

std::vector<TObject*>* displayTracks::m_geometryGraphics
protectedinherited

Definition at line 74 of file display_track.h.

◆ m_rioGraphics

std::vector<TObject*>* displayTracks::m_rioGraphics
protectedinherited

Definition at line 73 of file display_track.h.

◆ m_shapeCreator

ShapeCreator displayTracks::m_shapeCreator
protectedinherited

Definition at line 77 of file display_track.h.

◆ m_trackGraphics

std::vector<TObject*>* displayTracks::m_trackGraphics
protectedinherited

Definition at line 72 of file display_track.h.


The documentation for this class was generated from the following files:
ShapeCreator::createEllipse
TEllipse * createEllipse(const TVector3 &pos, double r1, double r2)
Definition: ShapeCreator.cxx:201
color
Definition: jFexInputByteStreamTool.cxx:25
displayTracks::m_shapeCreator
ShapeCreator m_shapeCreator
Definition: display_track.h:77
displayTracks::clearTrackGraphics
virtual void clearTrackGraphics()
Definition: display_track.cxx:58
UploadAMITag.l
list l
Definition: UploadAMITag.larcaf.py:158
displayTracks::m_geometryGraphics
std::vector< TObject * > * m_geometryGraphics
Definition: display_track.h:74
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::m_trackGraphics
std::vector< TObject * > * m_trackGraphics
Definition: display_track.h:72
ShapeCreator::createLine
TLine * createLine(const TVector3 &pos, const TVector3 &dir, double length)
Definition: ShapeCreator.cxx:106
Trk::driftRadius
@ driftRadius
trt, straws
Definition: ParamDefs.h:59
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:75
displayTracks::clearRIOGraphics
virtual void clearRIOGraphics()
Definition: display_track.cxx:64
ShapeCreator::createOrthogonalLine
TLine * createOrthogonalLine(const TVector3 &pos, const TVector3 &dir, double length)
Definition: ShapeCreator.cxx:133
ShapeCreator::setProjection
void setProjection(int p)
Definition: ShapeCreator.cxx:95
displayTracks::clearCompetingROTsGraphics
virtual void clearCompetingROTsGraphics()
Definition: display_track.cxx:77
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:73
calibdata.tube
tube
Definition: calibdata.py:31