ATLAS Offline Software
Loading...
Searching...
No Matches
displayEndcapPhiZ Class Reference

#include <display_track.h>

Inheritance diagram for displayEndcapPhiZ:
Collaboration diagram for displayEndcapPhiZ:

Public Member Functions

 displayEndcapPhiZ ()
 displayEndcapPhiZ
virtual void displayTrackState (GlobalPosition &trkPosition, GlobalDirection &trkDirection)
 create the graphic objects for a single track state
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
virtual void displayTRT_Measurement (GlobalPosition &strawPosition, double driftRadius, bool onTrack, bool outlierOnTrack, double trackRadius=0.)
 create the graphic objects for a single TRT measurement
virtual void displayTRT_Tubes ()
virtual void displaySiliconMeasurement (GlobalPosition &measurementPosition, bool onTrack)
 create the graphic objects for a single Silicon measurement
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
virtual void clear ()
 clear all graphics vectors
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 108 of file display_track.h.

Constructor & Destructor Documentation

◆ displayEndcapPhiZ()

displayEndcapPhiZ::displayEndcapPhiZ ( )

displayEndcapPhiZ

Definition at line 297 of file display_track.cxx.

297 :
299
300 //ShapeCreator::setProjection(0);
301 m_shapeCreator.setProjection(3);
302
303};
ShapeCreator m_shapeCreator
displayTracks()
base class: displayTracks

Member Function Documentation

◆ clear()

void displayTracks::clear ( )
virtualinherited

clear all graphics vectors

Definition at line 84 of file display_track.cxx.

84 {
89}
virtual void clearRIOGraphics()
virtual void clearCompetingROTsGraphics()
virtual void clearGeometryGraphics()
virtual void clearTrackGraphics()

◆ 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}
std::vector< TObject * > * m_competingRotGraphics

◆ 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}
std::vector< TObject * > * m_geometryGraphics

◆ 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}
std::vector< TObject * > * m_rioGraphics

◆ 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}
std::vector< TObject * > * m_trackGraphics

◆ 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}
l
Printing final latex table to .tex output file.

◆ 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}
virtual void displayTRT_Measurement(GlobalPosition &strawPosition, double driftRadius, bool onTrack, bool outlierOnTrack, double trackRadius=0.)
create the graphic objects for a single TRT measurement

◆ 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 77 of file display_track.h.

◆ m_geometryGraphics

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

Definition at line 76 of file display_track.h.

◆ m_rioGraphics

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

Definition at line 75 of file display_track.h.

◆ m_shapeCreator

ShapeCreator displayTracks::m_shapeCreator
protectedinherited

Definition at line 79 of file display_track.h.

◆ m_trackGraphics

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

Definition at line 74 of file display_track.h.


The documentation for this class was generated from the following files: