ATLAS Offline Software
Public Member Functions | Static Public Member Functions | Protected Member Functions | Private Member Functions | Private Attributes | List of all members
TrackHandle_TrkSegment Class Reference

#include <TrackHandle_TrkSegment.h>

Inheritance diagram for TrackHandle_TrkSegment:
Collaboration diagram for TrackHandle_TrkSegment:

Public Member Functions

 TrackHandle_TrkSegment (TrackCollHandleBase *, const Trk::Segment *)
 
virtual ~TrackHandle_TrkSegment ()
 
QStringList clicked () const
 Called when user selects the node (stringlist is displayed in messagebox). More...
 
virtual bool hasSubSystemHitInfo () const
 
virtual unsigned getNPixelHits () const
 
virtual unsigned getNSCTHits () const
 
virtual unsigned getNTRTHits () const
 
virtual unsigned getNMuonPhiHits () const
 The number of phi hits is part of hit counts below (i.e. More...
 
virtual unsigned getNRPCHits () const
 
virtual unsigned getNMDTHits () const
 
virtual unsigned getNTGCHits () const
 
virtual unsigned getNCSCHits () const
 
virtual unsigned getNMMHits () const
 
virtual unsigned getNSTGCHits () const
 
void visibleStateChanged ()
 override if need to take action in this case. More...
 
const std::vector< Amg::Vector3D > * provide_pathInfoPoints () const
 
void ensureTouchedMuonChambersInitialised () const
 
const Trk::SegmenttrkSegmentPointer () const
 
virtual QString type () const
 return very short word with type (maybe link with collection type?) More...
 
TrackSysCommonDatacommon () const
 
void setVisible (bool)
 use by the collection handle. More...
 
bool visible () const
 
TrackCollHandleBasecollHandle () const
 
const std::set< GeoPVConstLink > & touchedMuonChambers () const
 
void update3DObjects (bool invalidatePropagatedPoints=false, float maxR=0.0)
 
void updateInDetProjections ()
 
void updateMuonProjections ()
 
void updateMaterial ()
 
void rerandomiseRandomMaterial ()
 
void updateRandomColourTransparencyAndBrightness ()
 
SoMaterial * currentMaterial () const
 
QStringList baseInfo () const
 
virtual Amg::Vector3D momentum () const
 
virtual std::optional< Amg::Vector3DstartPoint () const
 returns 0 if can't find start point. More...
 
virtual std::optional< Amg::Vector3DendPoint () const
 returns 0 if can't find start point. More...
 
virtual int pdgCode () const
 0 means unknown More...
 
double charge () const
 
virtual double mass () const
 
bool hasCharge () const
 
bool hasMass () const
 
virtual bool isIDTrack () const
 
virtual unsigned getNMuonHits () const
 
virtual unsigned getNsTGCHits () const
 
virtual unsigned getNMuonPrecisionHits () const
 
virtual const Trk::FitQualitygetFitQuality () const
 
virtual const MuonGM::MuonReadoutElementgetMuonReadoutElement (const Trk::RIO_OnTrack &mb) const
 
QList< AssociatedObjectHandleBase * > getVisibleMeasurements () const
 
TrackCommonFlags::TSOSPartsFlags shownTSOSParts () const
 
TrackCommonFlags::TSOSPartsFlags customColouredTSOSParts () const
 
std::vector< Amg::Vector3D > * hackGetPointsPropagated ()
 FIXME. More...
 
virtual QString shortInfo () const
 returns mom and hit information about track More...
 
virtual void fillObjectBrowser (QList< QTreeWidgetItem * > &list)
 Overload in child classes. More...
 
void updateObjectBrowser ()
 
QTreeWidgetItem * browserTreeItem () const
 

Static Public Member Functions

static int numberOfInstances ()
 
static double unknown ()
 

Protected Member Functions

virtual double calculateCharge () const
 
virtual const Trk::Trackprovide_pathInfoTrkTrack () const
 
virtual Trk::ParticleHypothesis extrapolationParticleHypothesis () const
 Default implementation of this next method bases hypothesis on pdgCode() and charge(): More...
 
void registerTouchedMuonChamber (const GeoPVConstLink &) const
 If not earlier, touched muon chambers must me registered at latest when this method is invoked. More...
 
QList< AssociatedObjectHandleBase * > getAllAscObjHandles () const
 override if need to take action in this case. More...
 
virtual bool containsDetElement (const QString &) const
 
void registerAssocObject (AssociatedObjectHandleBase *)
 Trackhandle assumes ownership. More...
 

Private Member Functions

void currentMaterialChanged ()
 
void ensureInitSubSysHitInfo () const
 
void clearLine ()
 
void registerTrack ()
 
void updateShapes_TSOSWithMeasurements ()
 
void updateShapes_TSOSWithErrors ()
 
void updateShapes_TSOSWithMaterialEffects ()
 
void setShownTSOSParts (TrackCommonFlags::TSOSPartsFlags f)
 
void setCustomColouredTSOSParts (TrackCommonFlags::TSOSPartsFlags f)
 
AssocObjAttachmentHandlegetAttachmentHandle (int regionIndex, const double &crossoverval)
 

Private Attributes

unsigned m_nhits_pixel
 
unsigned m_nhits_sct
 
unsigned m_nhits_trt
 
unsigned m_nhits_muon_phi
 
unsigned m_nhits_rpc
 
unsigned m_nhits_mdt
 
unsigned m_nhits_tgc
 
unsigned m_nhits_csc
 
unsigned m_nhits_mm
 
unsigned m_nhits_stgc
 
int m_hitInfoStatus
 -1: uninitialized, 0: not present, 1: present. More...
 
const Trk::Segmentm_segment
 
std::vector< Amg::Vector3D > * m_points
 
Impm_d
 
bool m_visible
 
TrackCollHandleBasem_collhandle
 
SoMaterial * m_currentmaterial
 

Detailed Description

Definition at line 28 of file TrackHandle_TrkSegment.h.

Constructor & Destructor Documentation

◆ TrackHandle_TrkSegment()

TrackHandle_TrkSegment::TrackHandle_TrkSegment ( TrackCollHandleBase ch,
const Trk::Segment segment 
)

Definition at line 32 of file TrackHandle_TrkSegment.cxx.

◆ ~TrackHandle_TrkSegment()

TrackHandle_TrkSegment::~TrackHandle_TrkSegment ( )
virtual

Definition at line 40 of file TrackHandle_TrkSegment.cxx.

41 {
42  delete m_points;
43 }

Member Function Documentation

◆ baseInfo()

QStringList TrackHandleBase::baseInfo ( ) const
inherited

coverity 17186: this code is unreachable int pdg = pdgCode(); if (pdg) { bool ok; QString name = VP1ParticleData::particleName(pdg,ok); if (ok) l << "pdg: "+QString::number(pdg)+" ["+name+"]"; else l << "pdg: "+QString::number(pdg); }

return l;

Definition at line 1534 of file TrackHandleBase.cxx.

1535 {
1536  QStringList l;
1538  mom /= CLHEP::GeV;
1539  if (mom.mag2()==0.0) {
1540  l << "Momentum : 0 (undefined)";
1541  } else {
1542  l << "Momentum [GeV]: "+VP1Msg::str(mom);
1543  l << "|Pt|/|P| [GeV]: "+VP1Msg::str(mom.perp())+" / " + VP1Msg::str(mom.mag());
1544  l << VP1Msg::str("(")+QChar(0x03B7)+","+QChar(0x03D5)+VP1Msg::str(")=(")
1546 
1547  l << "Eta: "+VP1Msg::str(mom.eta());
1548  l << "Phi: "+VP1Msg::str(VP1LinAlgUtils::phiFromXY(mom.x(), mom.y() ));
1549  }
1550  l<<"Hit summary: Pix["+VP1Msg::str(getNPixelHits())+"], SCT["+VP1Msg::str(getNSCTHits())+"], TRT["+VP1Msg::str(getNTRTHits())
1552 
1553  return l;
1567 }

◆ browserTreeItem()

QTreeWidgetItem * TrackHandleBase::browserTreeItem ( ) const
inherited

Definition at line 2009 of file TrackHandleBase.cxx.

2009 {return m_d->m_objBrowseTree;}

◆ calculateCharge()

double TrackHandleBase::calculateCharge ( ) const
protectedvirtualinherited

Reimplemented in TrackHandle_TruthTrack, TrackHandle_xAODTrackParticle, TrackHandle_TrackParticle, and TrackHandle_SimulationTrack.

Definition at line 1464 of file TrackHandleBase.cxx.

1465 {
1466  //look up from pdgCode(); // valid PDG codes > 0
1467  int pdg = pdgCode();
1468  if (pdg) {
1469  bool ok;
1470  double c = VP1ParticleData::particleCharge(pdg,ok);
1471  if (ok) {
1472  VP1Msg::messageDebug("TrackHandleBase: Determined charge from pdg code "+VP1Msg::str(pdg)+": "+VP1Msg::str(c));
1473  return c;
1474  }
1475  }
1476 
1477  //Attempt to look at the first trackparameter.
1478  const Trk::Track * trk = provide_pathInfoTrkTrack();
1479  if (trk&&!trk->trackParameters()->empty()) {
1480  double c = (*(trk->trackParameters()->begin()))->charge();
1481  VP1Msg::messageDebug("TrackHandleBase: Determined charge from first track parameter: "+VP1Msg::str(c));
1482  return c;
1483  }
1484  if (VP1Msg::verbose())
1485  VP1Msg::messageDebug("Failed to determine charge.");
1486 
1487  return unknown();
1488 }

◆ charge()

double TrackHandleBase::charge ( ) const
inherited

Definition at line 1491 of file TrackHandleBase.cxx.

1492 {
1493  if (m_d->chargeinit)
1494  return m_d->charge;
1495  m_d->chargeinit = true;
1496  m_d->charge = calculateCharge();
1497  return m_d->charge;
1498 }

◆ clearLine()

void TrackHandleBase::clearLine ( )
privateinherited

Definition at line 623 of file TrackHandleBase.cxx.

624 {
625  if (m_d->line) {
627  m_d->line->unref();
628  m_d->line=nullptr;
629  }
630 }

◆ clicked()

QStringList TrackHandle_TrkSegment::clicked ( ) const
virtual

Called when user selects the node (stringlist is displayed in messagebox).

Reimplementations should add info momInfo() to get momentum, eta, phi, pid,charge, mass printed.

Implements TrackHandleBase.

Definition at line 46 of file TrackHandle_TrkSegment.cxx.

47 {
48  QStringList l;
49  l << "Trk::Segment";//fixme - more info
51 
52  const Muon::MuonSegment* muonSegment = dynamic_cast<const Muon::MuonSegment*>(m_segment);
53  if (muonSegment && common()->controller()->muonEDMPrinterTool()) {
54  std::string temp = common()->controller()->muonEDMPrinterTool()->print(*muonSegment);
55  l << QString(temp.c_str());
56  }
57 
58  if (m_segment&&common()->controller()->printVerboseInfoOnSingleSelection()) {
59  l << " ===== dump =====";
60  std::ostringstream s;
61  s << *m_segment;
62  l << QString(s.str().c_str()).split('\n');
63  }
64  return l;
65 }

◆ collHandle()

TrackCollHandleBase* TrackHandleBase::collHandle ( ) const
inlineinherited

Definition at line 68 of file TrackHandleBase.h.

68 { return m_collhandle; }

◆ common()

TrackSysCommonData * TrackHandleBase::common ( ) const
inherited

Definition at line 255 of file TrackHandleBase.cxx.

256 {
257  return m_collhandle->common();
258 }

◆ containsDetElement()

virtual bool TrackHandleBase::containsDetElement ( const QString &  ) const
inlineprotectedvirtualinherited

Reimplemented in TrackHandle_TrkTrack.

Definition at line 163 of file TrackHandleBase.h.

163 {return false; }

◆ currentMaterial()

SoMaterial* TrackHandleBase::currentMaterial ( ) const
inlineinherited

Definition at line 76 of file TrackHandleBase.h.

76 { return m_currentmaterial; }

◆ currentMaterialChanged()

void TrackHandle_TrkSegment::currentMaterialChanged ( )
privatevirtual

Reimplemented from TrackHandleBase.

Definition at line 97 of file TrackHandle_TrkSegment.cxx.

98 {
99  if (visible())
100  static_cast<TrackCollHandle_TrkSegment*>(collHandle())->visibleStateUpdated(this);
101 }

◆ customColouredTSOSParts()

TrackCommonFlags::TSOSPartsFlags TrackHandleBase::customColouredTSOSParts ( ) const
inherited

Definition at line 306 of file TrackHandleBase.cxx.

307 {
308  return m_d->customColouredTSOSParts;//FIXME: inline?
309 }

◆ endPoint()

std::optional< Amg::Vector3D > TrackHandleBase::endPoint ( ) const
virtualinherited

returns 0 if can't find start point.

Definition at line 1590 of file TrackHandleBase.cxx.

1591 {
1593  if (m_d->pathInfo_TrkTrack) {
1596  for (; tsos_iter != tsos_end; ++tsos_iter) {
1597  if (common()->trackSanityHelper()->isSafe(*tsos_iter)) {
1598  const Trk::TrackParameters* trackParam = (*tsos_iter)->trackParameters();
1599  if (common()->trackSanityHelper()->isSafe(trackParam))
1600  return trackParam->position();
1601  }
1602  }
1603  } else if (m_d->pathInfo_Points&&!m_d->pathInfo_Points->empty()) {
1604  return m_d->pathInfo_Points->back();
1605  }
1606  return {};
1607 }

◆ ensureInitSubSysHitInfo()

void TrackHandle_TrkSegment::ensureInitSubSysHitInfo ( ) const
private

◆ ensureTouchedMuonChambersInitialised()

void TrackHandle_TrkSegment::ensureTouchedMuonChambersInitialised ( ) const
virtual

Reimplemented from TrackHandleBase.

Definition at line 68 of file TrackHandle_TrkSegment.cxx.

69 {
71  if (VP1Msg::verbose())
73  return;
74  }
75  const Trk::MeasurementBase* meas;
76  const MuonGM::MuonReadoutElement* muonDetEl;
77  std::vector < const Trk::MeasurementBase * >::const_iterator tsos_iter, tsos_end(m_segment->containedMeasurements().end());
78  for (tsos_iter = m_segment->containedMeasurements().begin(); tsos_iter != tsos_end; ++tsos_iter) {
79  meas = *tsos_iter;
80  const Trk::RIO_OnTrack* rio = dynamic_cast<const Trk::RIO_OnTrack*>(meas);
81  if (rio) {
82  muonDetEl = getMuonReadoutElement(*rio);
83  if (muonDetEl)
85  }
86  }
87 }

◆ extrapolationParticleHypothesis()

Trk::ParticleHypothesis TrackHandleBase::extrapolationParticleHypothesis ( ) const
protectedvirtualinherited

Default implementation of this next method bases hypothesis on pdgCode() and charge():

Definition at line 1517 of file TrackHandleBase.cxx.

1518 {
1519  switch(abs(pdgCode())) {
1520  case 211: return Trk::pion;
1521  case 2212: return Trk::proton;
1522  case 11: return Trk::electron;
1523  case 13: return Trk::muon;
1524  case 321://k+
1525  case 323://k*+
1526  return Trk::kaon;
1527  case 0:
1528  default:
1530  }
1531 }

◆ fillObjectBrowser()

void TrackHandleBase::fillObjectBrowser ( QList< QTreeWidgetItem * > &  list)
virtualinherited

Overload in child classes.

Reimplemented in TrackHandle_TrkTrack.

Definition at line 1992 of file TrackHandleBase.cxx.

1992  {
1993  VP1Msg::messageVerbose("TrackHandleBase::fillObjectBrowser");
1994 
1995  assert(m_d->m_objBrowseTree==0);
1996  m_d->m_objBrowseTree = new QTreeWidgetItem();
1997 
1998  QString direction = QString::fromUtf8("(\u03B7,\u03D5)=[") + QString::number(momentum().eta(),'f',2) + ","+QString::number(momentum().phi(),'f',2)+"], ";
1999  QString l = direction + shortInfo();
2000  m_d->m_objBrowseTree->setText(0, type()+QString(QString::number(listOfItems.size())) );
2001  m_d->m_objBrowseTree->setText(1, l );
2002 
2003  if (!visible()) {
2004  m_d->m_objBrowseTree->setFlags(Qt::ItemFlags()); // not selectable, not enabled
2005  }
2006  listOfItems << browserTreeItem();
2007 }

◆ getAllAscObjHandles()

QList< AssociatedObjectHandleBase * > TrackHandleBase::getAllAscObjHandles ( ) const
protectedinherited

override if need to take action in this case.

Return list of all AscObj handles. Not guaranteed to be filled unless tsoses are visible.

Definition at line 1617 of file TrackHandleBase.cxx.

1618 {
1619  return m_d->associatedObjects;
1620 }

◆ getAttachmentHandle()

AssocObjAttachmentHandle * TrackHandleBase::getAttachmentHandle ( int  regionIndex,
const double &  crossoverval 
)
privateinherited

Definition at line 1451 of file TrackHandleBase.cxx.

1452 {
1453  std::map<std::pair<int,double>,AssocObjAttachmentHandle *>::iterator
1454  it = m_d->attachmentHandles.find(std::make_pair(regionIndex,crossoverval));
1455  if (it!=m_d->attachmentHandles.end())
1456  return it->second;
1457  AssocObjAttachmentHandle *attachHandle
1458  = new AssocObjAttachmentHandle(common()->trackLODManager()->getLODHandle(regionIndex,crossoverval),this);
1459  m_d->attachmentHandles[std::make_pair(regionIndex,crossoverval)] = attachHandle;
1460  return attachHandle;
1461 }

◆ getFitQuality()

virtual const Trk::FitQuality* TrackHandleBase::getFitQuality ( ) const
inlinevirtualinherited

Reimplemented in TrackHandle_TrkTrack.

Definition at line 118 of file TrackHandleBase.h.

118 {return nullptr;}

◆ getMuonReadoutElement()

const MuonGM::MuonReadoutElement * TrackHandleBase::getMuonReadoutElement ( const Trk::RIO_OnTrack mb) const
virtualinherited

Definition at line 1949 of file TrackHandleBase.cxx.

1949  {
1950  const MuonGM::MuonReadoutElement* re = nullptr;
1951  switch (TrkObjToString::type(&mb)){
1952  case TrkObjToString::MDT:
1954  break;
1955  case TrkObjToString::CSC:
1957  break;
1958  case TrkObjToString::RPC:
1960  break;
1961  case TrkObjToString::TGC:
1963  break;
1964  case TrkObjToString::sTGC:
1966  break;
1967  case TrkObjToString::MM:
1969  break;
1970  default:
1971  VP1Msg::message("TrackHandleBase::getReadoutElement:: Unable to find matching readoutElement");
1972  }
1973  return re;
1974  }

◆ getNCSCHits()

virtual unsigned TrackHandle_TrkSegment::getNCSCHits ( ) const
inlinevirtual

Reimplemented from TrackHandleBase.

Definition at line 43 of file TrackHandle_TrkSegment.h.

◆ getNMDTHits()

virtual unsigned TrackHandle_TrkSegment::getNMDTHits ( ) const
inlinevirtual

Reimplemented from TrackHandleBase.

Definition at line 41 of file TrackHandle_TrkSegment.h.

◆ getNMMHits()

virtual unsigned TrackHandle_TrkSegment::getNMMHits ( ) const
inlinevirtual

Reimplemented from TrackHandleBase.

Definition at line 44 of file TrackHandle_TrkSegment.h.

◆ getNMuonHits()

virtual unsigned TrackHandleBase::getNMuonHits ( ) const
inlinevirtualinherited

Definition at line 109 of file TrackHandleBase.h.

◆ getNMuonPhiHits()

virtual unsigned TrackHandle_TrkSegment::getNMuonPhiHits ( ) const
inlinevirtual

The number of phi hits is part of hit counts below (i.e.

RPC hits include phi hits), but reported separately due to importance.

Reimplemented from TrackHandleBase.

Definition at line 39 of file TrackHandle_TrkSegment.h.

◆ getNMuonPrecisionHits()

virtual unsigned TrackHandleBase::getNMuonPrecisionHits ( ) const
inlinevirtualinherited

Reimplemented in TrackHandle_TrackParticle.

Definition at line 117 of file TrackHandleBase.h.

117 { return getNMDTHits() + getNCSCHits(); } // This should really only count eta csc hits.

◆ getNPixelHits()

virtual unsigned TrackHandle_TrkSegment::getNPixelHits ( ) const
inlinevirtual

Reimplemented from TrackHandleBase.

Definition at line 36 of file TrackHandle_TrkSegment.h.

◆ getNRPCHits()

virtual unsigned TrackHandle_TrkSegment::getNRPCHits ( ) const
inlinevirtual

Reimplemented from TrackHandleBase.

Definition at line 40 of file TrackHandle_TrkSegment.h.

◆ getNSCTHits()

virtual unsigned TrackHandle_TrkSegment::getNSCTHits ( ) const
inlinevirtual

Reimplemented from TrackHandleBase.

Definition at line 37 of file TrackHandle_TrkSegment.h.

◆ getNSTGCHits()

virtual unsigned TrackHandle_TrkSegment::getNSTGCHits ( ) const
inlinevirtual

Definition at line 45 of file TrackHandle_TrkSegment.h.

◆ getNsTGCHits()

virtual unsigned TrackHandleBase::getNsTGCHits ( ) const
inlinevirtualinherited

Reimplemented in TrackHandle_TrkTrack.

Definition at line 116 of file TrackHandleBase.h.

116 { return 0; }

◆ getNTGCHits()

virtual unsigned TrackHandle_TrkSegment::getNTGCHits ( ) const
inlinevirtual

Reimplemented from TrackHandleBase.

Definition at line 42 of file TrackHandle_TrkSegment.h.

◆ getNTRTHits()

virtual unsigned TrackHandle_TrkSegment::getNTRTHits ( ) const
inlinevirtual

Reimplemented from TrackHandleBase.

Definition at line 38 of file TrackHandle_TrkSegment.h.

◆ getVisibleMeasurements()

QList< AssociatedObjectHandleBase * > TrackHandleBase::getVisibleMeasurements ( ) const
inherited

Definition at line 1979 of file TrackHandleBase.cxx.

1980 {
1981  QList<AssociatedObjectHandleBase*> l;
1982  if (!m_d->tsos_ascobjs) return l;
1984  it(m_d->tsos_ascobjs->begin()),
1985  itE(m_d->tsos_ascobjs->end());
1986  for (;it!=itE;++it)
1987  if ((*it)->hasMeasurement()&&(*it)->visible())
1988  l << (*it);
1989  return l;
1990 }

◆ hackGetPointsPropagated()

std::vector< Amg::Vector3D > * TrackHandleBase::hackGetPointsPropagated ( )
inherited

FIXME.

Used to get position of track for use in short tubes etc.

Definition at line 1622 of file TrackHandleBase.cxx.

1623 {
1625  return m_d->points_propagated;
1626 }

◆ hasCharge()

bool TrackHandleBase::hasCharge ( ) const
inlineinherited

Definition at line 99 of file TrackHandleBase.h.

99 { return charge()!=unknown(); }

◆ hasMass()

bool TrackHandleBase::hasMass ( ) const
inlineinherited

Definition at line 100 of file TrackHandleBase.h.

100 { return mass()!=unknown(); }

◆ hasSubSystemHitInfo()

virtual bool TrackHandle_TrkSegment::hasSubSystemHitInfo ( ) const
inlinevirtual

Reimplemented from TrackHandleBase.

Definition at line 35 of file TrackHandle_TrkSegment.h.

◆ isIDTrack()

bool TrackHandleBase::isIDTrack ( ) const
virtualinherited

Definition at line 1609 of file TrackHandleBase.cxx.

1610 {
1611  std::optional<Amg::Vector3D> start = startPoint();
1612  if (!start) return false;
1613  return start->perp()<1100 &&fabs( start->z())<3500;
1614 }

◆ mass()

double TrackHandleBase::mass ( ) const
virtualinherited

Definition at line 1501 of file TrackHandleBase.cxx.

1502 {
1503  if (m_d->massinit)
1504  return m_d->mass;
1505  m_d->massinit = true;
1506  int pdg = pdgCode();
1507  if (pdg) {
1508  bool ok;
1509  double m = VP1ParticleData::particleMass(pdg,ok);
1510  if (ok)
1511  m_d->mass = m;
1512  }
1513  return m_d->mass;
1514 }

◆ momentum()

virtual Amg::Vector3D TrackHandleBase::momentum ( ) const
inlinevirtualinherited

◆ numberOfInstances()

int TrackHandleBase::numberOfInstances ( )
staticinherited

Definition at line 249 of file TrackHandleBase.cxx.

250 {
251  return Imp::ntrackhandles;
252 }

◆ pdgCode()

virtual int TrackHandleBase::pdgCode ( ) const
inlinevirtualinherited

0 means unknown

Reimplemented in TrackHandle_TruthTrack, and TrackHandle_SimulationTrack.

Definition at line 86 of file TrackHandleBase.h.

◆ provide_pathInfoPoints()

const std::vector< Amg::Vector3D > * TrackHandle_TrkSegment::provide_pathInfoPoints ( ) const
virtual

Reimplemented from TrackHandleBase.

Definition at line 111 of file TrackHandle_TrkSegment.cxx.

112 {
113  if (!m_points) {
114  m_points = new std::vector< Amg::Vector3D >;
116  const bool muonsegment = it!=itE;
117 
119  // Find the two endpoints of the segment: //
121  double radius = ( muonsegment ? 1000.0 : 150.0 );//A bit arbitrary for ID segments.
122 
123  double xOffset(0),yOffset(0),zOffset(0);
124  if (muonsegment) {
125  //Fixme: jobconfig safety.
126  double phi = m_segment->localParameters()[Trk::phi0];
128  xOffset = radius*cos(phi)*sin(theta);
129  yOffset = radius*sin(phi)*sin(theta);
130  zOffset = radius*cos(theta);
131  }
132 
133  //TK: Fixme: globalPosition can cause a crash!
134 
136  const Amg::Vector3D globalPos = m_segment->associatedSurface().localToGlobal(localPos);
137  Amg::Vector3D pointA(globalPos.x()-xOffset,globalPos.y()-yOffset,globalPos.z()-zOffset);
138  Amg::Vector3D pointB(globalPos.x()+xOffset,globalPos.y()+yOffset,globalPos.z()+zOffset);
139 
140  bool hasnonmdtchamber(false);
141  bool outsidechamber, success;
142  if (muonsegment) {
143  for (;it!=itE;++it) {
144  if (true||/*FIXME: TEMPORARY DISABLE CLIPPING DUE TO BUG IN clipLineSegmentToMDTChamber*/
145  !common()->muonChamberProjectionHelper()->isKnownMDTChamber(*it)) {
146  hasnonmdtchamber = true;
147  break;
148  }
149  Amg::Vector3D a(pointA),b(pointB);
150  success = common()->muonChamberProjectionHelper()->clipLineSegmentToMDTChamber( *it,a,b, outsidechamber,200.0 );
151  if (!success) {
152  collHandle()->message("Error: Something we wrong with clipLineSegmentToMDTChamber");
153  continue;
154  }
155  if (outsidechamber) {
156  collHandle()->messageDebug("WARNING: Segment is outside a chamber that it is touching!");
157  continue;
158  }
159  m_points->push_back(a);
160  m_points->push_back(b);
161  }
162  if (hasnonmdtchamber) {
163  m_points->clear();//Fixme: ok?
164  m_points->push_back(pointA);
165  m_points->push_back(pointB);
166  } else if (m_points->size()>2) {
167  if (VP1Msg::verbose())
168  collHandle()->messageVerbose("Combining segment points into a single line!");
169  (*m_points)[1] = m_points->back();
170  m_points->resize(2);
171  }
172  } else {
173  //Fixme: Do we need something better for ID segments?
174  m_points->push_back(pointA);
175  m_points->push_back(pointB);
176  }
177 
178  }
179  return m_points;
180 }

◆ provide_pathInfoTrkTrack()

virtual const Trk::Track* TrackHandleBase::provide_pathInfoTrkTrack ( ) const
inlineprotectedvirtualinherited

◆ registerAssocObject()

void TrackHandleBase::registerAssocObject ( AssociatedObjectHandleBase ao)
protectedinherited

Trackhandle assumes ownership.

Definition at line 1432 of file TrackHandleBase.cxx.

1433 {
1434  if (VP1Msg::verbose()) {
1435  if (m_d->associatedObjects.contains(ao)) {
1436  m_d->theclass->collHandle()->systemBase()->message("TrackHandleBase::registerAssocObject ERROR: object already registered!");
1437  return;
1438  }
1439  }
1440  //Assume ownership of this associated object:
1441  if (!ao) {
1442  m_d->theclass->collHandle()->systemBase()->message("TrackHandleBase::registerAssocObject ERROR: object is null!");
1443  return;
1444  }
1445 
1446  m_d->associatedObjects << ao;
1447 }

◆ registerTouchedMuonChamber()

void TrackHandleBase::registerTouchedMuonChamber ( const GeoPVConstLink &  chamberPV) const
protectedinherited

If not earlier, touched muon chambers must me registered at latest when this method is invoked.

Call this from constructor - (at least) once for each muon chamber "touched" by this track.

Definition at line 1252 of file TrackHandleBase.cxx.

1253 {
1254  m_d->touchedmuonchambers.insert(chamberPV);
1255 }

◆ registerTrack()

void TrackHandleBase::registerTrack ( )
privateinherited

Definition at line 633 of file TrackHandleBase.cxx.

634 {
635  if (m_d->line)
636  common()->registerTrack(m_d->line,this);
637 }

◆ rerandomiseRandomMaterial()

void TrackHandleBase::rerandomiseRandomMaterial ( )
inherited

Definition at line 1378 of file TrackHandleBase.cxx.

1379 {
1380  if ( !m_d->randommaterial )//We will anyway rerandomize it when we need it
1381  return;
1382 
1383  double r2 = 0.3*0.3;
1384  unsigned i(0);
1385  double r,g,b;
1386  bool ok;
1387  while (true) {
1388  r = (rand() / static_cast<double>(RAND_MAX));
1389  g = (rand() / static_cast<double>(RAND_MAX));
1390  b = (rand() / static_cast<double>(RAND_MAX));
1391  ok = true;
1392  //For now we make sure that we avoid black and red. This should be updated from bgd and highlight col automatically! (fixme).
1393  // -> and we should probably also make sure that tracks close in (eta,phi) are well separated in colour-space.
1394  if ( (r-1.0)*(r-1.0)+g*g+b*b < r2*0.5 )//avoid red (distance)
1395  ok = false;
1396  else if ( r*r/(r*r+g*g+b*b) > 0.8 )//avoid red (angle)
1397  ok = false;
1398  else if ( r*r+g*g+b*b < r2*2.0 )//avoid black
1399  ok = false;
1400  if (ok)
1401  break;
1402  ++i;
1403  if (i>50 ) {
1404  r2 *= 0.99;//To avoid problem in case we add too many forbidden spheres.
1405  if (i>1000) {
1406  //Just a safety
1407  m_d->theclass->collHandle()->systemBase()->message("TrackHandleBase::rerandomiseRandomMaterial Warning: Random colour could"
1408  " not be selected such as to satisfy all separation criterias");
1409  break;
1410  }
1411  }
1412  }
1414  collHandle()->collMaterialBrightness(),
1415  collHandle()->collMaterialTransparency());
1416 }

◆ setCustomColouredTSOSParts()

void TrackHandleBase::setCustomColouredTSOSParts ( TrackCommonFlags::TSOSPartsFlags  f)
privateinherited

Definition at line 351 of file TrackHandleBase.cxx.

352 {
354  return;
355  //Figure out changed bits:
356  TrackCommonFlags::TSOSPartsFlags change(m_d->customColouredTSOSParts ^ f);//^ is XOR
358 
360  return;
361 
362  TrackCommonFlags::TSOSPartsFlags changedShownParts(change & m_d->shownTSOSParts);
363 
364  if (!changedShownParts)
365  return;
366 
367  //redundant m_d->ensureInitTSOSs();
369  for (;it!=itE;++it) {
370  if ((*it)->parts()&changedShownParts)
371  (*it)->update3DObjects();
372  }
373 }

◆ setShownTSOSParts()

void TrackHandleBase::setShownTSOSParts ( TrackCommonFlags::TSOSPartsFlags  f)
privateinherited

Definition at line 312 of file TrackHandleBase.cxx.

313 {
314  VP1Msg::messageDebug(QString("TrackHandleBase::setShownTSOSParts to ")+QString::number(f) );
315 
316  if (m_d->shownTSOSParts==f)
317  return;
318  //Figure out changed bits:
319  TrackCommonFlags::TSOSPartsFlags change(m_d->shownTSOSParts ^ f);//^ is XOR
322  return;
323 
324  m_d->ensureInitTSOSs();
325  //Loop over all TSOS objects. Those with changed parts needs shape
326  //and visibility update:
328  for (;it!=itE;++it) {
329  if (!((*it)->parts()&change))
330  continue;
331  const bool vis = (*it)->parts() & m_d->shownTSOSParts;
332  if (vis==(*it)->visible()) {
333  //Just update shape:
334  (*it)->update3DObjects();
335  continue;
336  }
337  //Need both shape and visibility updates.
338  if (vis) {
339  //update shape and then turn visible:
340  (*it)->update3DObjects();
341  (*it)->setVisible(vis);
342  } else {
343  //turn invisible and then update (i.e. invalidate) shape:
344  (*it)->setVisible(vis);
345  (*it)->update3DObjects();
346  }
347  }
348 }

◆ setVisible()

void TrackHandleBase::setVisible ( bool  vis)
inherited

use by the collection handle.

Definition at line 426 of file TrackHandleBase.cxx.

427 {
428  QString tmp = (vis)?"True":"False";
429  QString tmp2 = (m_visible)?"True":"False";
430  VP1Msg::messageDebug(QString("TrackHandleBase calling setVisible with vis=")+tmp+QString(", and m_visible=")+tmp2 );
431  if (vis==m_visible)
432  return;
433 
434  m_visible=vis;
435  if (vis) {
437  if (!touchedMuonChambers().empty()) {
440  }
441  if (!m_d->line)
442  m_d->rebuild3DObjects();//The call to rebuild also fixes attached state.
443  else
444  m_d->attach3DObjects();
445  } else {
447  if (!touchedMuonChambers().empty()) {
450  }
451  m_d->detach3DObjects();
452  }
453 
454  bool initTSOS(false);
456  m_d->ensureInitTSOSs();
457  initTSOS = true;
458  }
459 
460  if (!initTSOS && m_d->tsos_ascobjs) {
462  it(m_d->tsos_ascobjs->begin()),
463  itE(m_d->tsos_ascobjs->end());
465  for (;it!=itE;++it) {
466  if ((*it)->visible()!=((*it)->parts() & m_d->shownTSOSParts))
467  (*it)->toggleVisible();
468  }
469  } else {
470  for (;it!=itE;++it) {
471  if ((*it)->visible())
472  (*it)->setVisible(false);
473  }
474  }
475  }
476 
478 
479  std::map<std::pair<int,double>,AssocObjAttachmentHandle *>::iterator it,itE(m_d->attachmentHandles.end());
480  for (it = m_d->attachmentHandles.begin();it!=itE;++it)
481  it->second->trackVisibilityChanged();
482 
483  //Label
484 
485 }

◆ shortInfo()

virtual QString TrackHandleBase::shortInfo ( ) const
inlinevirtualinherited

returns mom and hit information about track

Reimplemented in TrackHandle_TrkTrack.

Definition at line 127 of file TrackHandleBase.h.

◆ shownTSOSParts()

TrackCommonFlags::TSOSPartsFlags TrackHandleBase::shownTSOSParts ( ) const
inherited

Definition at line 300 of file TrackHandleBase.cxx.

301 {
302  return m_d->shownTSOSParts;//FIXME: inline?
303 }

◆ startPoint()

std::optional< Amg::Vector3D > TrackHandleBase::startPoint ( ) const
virtualinherited

returns 0 if can't find start point.

Definition at line 1570 of file TrackHandleBase.cxx.

1571 {
1573  if (m_d->pathInfo_TrkTrack) {
1576  for (; tsos_iter != tsos_end; ++tsos_iter) {
1577  if (common()->trackSanityHelper()->isSafe(*tsos_iter)) {
1578  const Trk::TrackParameters* trackParam = (*tsos_iter)->trackParameters();
1579  if (common()->trackSanityHelper()->isSafe(trackParam))
1580  return trackParam->position();
1581  }
1582  }
1583  } else if (m_d->pathInfo_Points&&!m_d->pathInfo_Points->empty()) {
1584  return m_d->pathInfo_Points->at(0);
1585  }
1586  return {};
1587 }

◆ touchedMuonChambers()

const std::set< GeoPVConstLink > & TrackHandleBase::touchedMuonChambers ( ) const
inherited

Definition at line 1258 of file TrackHandleBase.cxx.

1259 {
1260  if (!m_d->inittouchedchambers) {
1263  m_d->inittouchedchambers=true;
1264  }
1265  return m_d->touchedmuonchambers;
1266 }

◆ trkSegmentPointer()

const Trk::Segment* TrackHandle_TrkSegment::trkSegmentPointer ( ) const
inline

Definition at line 50 of file TrackHandle_TrkSegment.h.

50 { return m_segment; }

◆ type()

virtual QString TrackHandle_TrkSegment::type ( ) const
inlinevirtual

return very short word with type (maybe link with collection type?)

Reimplemented from TrackHandleBase.

Definition at line 52 of file TrackHandle_TrkSegment.h.

◆ unknown()

static double TrackHandleBase::unknown ( )
inlinestaticinherited

Definition at line 102 of file TrackHandleBase.h.

102 { return -999.0; }

◆ update3DObjects()

void TrackHandleBase::update3DObjects ( bool  invalidatePropagatedPoints = false,
float  maxR = 0.0 
)
inherited

Definition at line 488 of file TrackHandleBase.cxx.

489 {
490  VP1Msg::messageVerbose(QString("TrackHandleBase::update3DObject with maxR set to ")+QString::number(maxR) );
491  if (maxR>0.0) {
492  m_d->tempMaxPropRadius=maxR;
493  }
494  if ( invalidatePropagatedPoints) {
495  if (m_d->points_propagated != m_d->points_raw) {
496  delete m_d->points_propagated;m_d->points_propagated = nullptr;
497  }
498  delete m_d->points_raw;m_d->points_raw = nullptr;
501  }
502  if (m_visible) {
504  } else {
505  //Simply clear the present 3D objects. They will only be recreated if/when the track becomes visible again.
506  clearLine();
507  }
508  m_d->tempMaxPropRadius=0.0;
509 }

◆ updateInDetProjections()

void TrackHandleBase::updateInDetProjections ( )
inherited

Definition at line 512 of file TrackHandleBase.cxx.

513 {
514  //Invalidate points of indet projections if already calculated:
518  m_d->points_raw_id_projections = nullptr;
520  //Rebuild 3D objects:
521  update3DObjects();
522 }

◆ updateMaterial()

void TrackHandleBase::updateMaterial ( )
inherited

Definition at line 937 of file TrackHandleBase.cxx.

938 {
939  //We need to change the current material. This means we need to
940  //clear the cache. Only if we are visible do we need to do a
941  //detach->clear material->attach cycle to trigger attachment under new material.
942 
943  if (!m_currentmaterial)
944  return;//We have no material cached and is thus not attached either.
945  if (m_visible) {
946  //See if the material changed. If it did, detach, update the material, attach again.
947  SoMaterial * newmat = m_d->determineMaterial();
948  newmat->ref();
949  if (newmat!=m_currentmaterial) {
950  m_d->detach3DObjects();
951  m_currentmaterial->unref();
952  m_currentmaterial = newmat;
953  m_d->attach3DObjects();
954  m_d->materialChanged();
955  } else {
956  newmat->unref();
957  }
958  } else {
959  //Just clear material.
960  m_currentmaterial->unref();
961  m_currentmaterial = nullptr;
962  m_d->materialChanged();
963  }
964 }

◆ updateMuonProjections()

void TrackHandleBase::updateMuonProjections ( )
inherited

Definition at line 525 of file TrackHandleBase.cxx.

526 {
527  //Invalidate points of indet projections if already calculated:
531  m_d->points_raw_muon_projections = nullptr;
533  //Rebuild 3D objects:
534  update3DObjects();
535 }

◆ updateObjectBrowser()

void TrackHandleBase::updateObjectBrowser ( )
inlineinherited

Definition at line 133 of file TrackHandleBase.h.

133 {};

◆ updateRandomColourTransparencyAndBrightness()

void TrackHandleBase::updateRandomColourTransparencyAndBrightness ( )
inherited

Definition at line 1419 of file TrackHandleBase.cxx.

1420 {
1421  if ( !m_d->randommaterial )//We will anyway set up correctly when needed.
1422  return;
1423  float r,g,b;
1424  m_d->randommaterial->diffuseColor[0].getValue(r,g,b);
1426  collHandle()->collMaterialBrightness(),
1427  collHandle()->collMaterialTransparency());
1428 }

◆ updateShapes_TSOSWithErrors()

void TrackHandleBase::updateShapes_TSOSWithErrors ( )
privateinherited

Definition at line 274 of file TrackHandleBase.cxx.

275 {
276  if (!m_d->tsos_ascobjs)
277  return;
279  it(m_d->tsos_ascobjs->begin()),
280  itE(m_d->tsos_ascobjs->end());
281  for (;it!=itE;++it)
282  if ((*it)->hasError())
283  (*it)->update3DObjects();
284 }

◆ updateShapes_TSOSWithMaterialEffects()

void TrackHandleBase::updateShapes_TSOSWithMaterialEffects ( )
privateinherited

Definition at line 287 of file TrackHandleBase.cxx.

288 {
289  if (!m_d->tsos_ascobjs)
290  return;
292  it(m_d->tsos_ascobjs->begin()),
293  itE(m_d->tsos_ascobjs->end());
294  for (;it!=itE;++it)
295  if ((*it)->hasMaterialEffect())
296  (*it)->update3DObjects();
297 }

◆ updateShapes_TSOSWithMeasurements()

void TrackHandleBase::updateShapes_TSOSWithMeasurements ( )
privateinherited

Definition at line 261 of file TrackHandleBase.cxx.

262 {
263  if (!m_d->tsos_ascobjs)
264  return;
266  it(m_d->tsos_ascobjs->begin()),
267  itE(m_d->tsos_ascobjs->end());
268  for (;it!=itE;++it)
269  if ((*it)->hasMeasurement())
270  (*it)->update3DObjects();
271 }

◆ visible()

bool TrackHandleBase::visible ( ) const
inlineinherited

Definition at line 67 of file TrackHandleBase.h.

67 { return m_visible; }

◆ visibleStateChanged()

void TrackHandle_TrkSegment::visibleStateChanged ( )
virtual

override if need to take action in this case.

Reimplemented from TrackHandleBase.

Definition at line 90 of file TrackHandle_TrkSegment.cxx.

91 {
93  static_cast<TrackCollHandle_TrkSegment*>(collHandle())->visibleStateUpdated(this);
94 }

Member Data Documentation

◆ m_collhandle

TrackCollHandleBase* TrackHandleBase::m_collhandle
privateinherited

Definition at line 177 of file TrackHandleBase.h.

◆ m_currentmaterial

SoMaterial* TrackHandleBase::m_currentmaterial
privateinherited

Definition at line 178 of file TrackHandleBase.h.

◆ m_d

Imp* TrackHandleBase::m_d
privateinherited

Definition at line 172 of file TrackHandleBase.h.

◆ m_hitInfoStatus

int TrackHandle_TrkSegment::m_hitInfoStatus
mutableprivate

-1: uninitialized, 0: not present, 1: present.

Definition at line 67 of file TrackHandle_TrkSegment.h.

◆ m_nhits_csc

unsigned TrackHandle_TrkSegment::m_nhits_csc
mutableprivate

Definition at line 64 of file TrackHandle_TrkSegment.h.

◆ m_nhits_mdt

unsigned TrackHandle_TrkSegment::m_nhits_mdt
mutableprivate

Definition at line 62 of file TrackHandle_TrkSegment.h.

◆ m_nhits_mm

unsigned TrackHandle_TrkSegment::m_nhits_mm
mutableprivate

Definition at line 65 of file TrackHandle_TrkSegment.h.

◆ m_nhits_muon_phi

unsigned TrackHandle_TrkSegment::m_nhits_muon_phi
mutableprivate

Definition at line 60 of file TrackHandle_TrkSegment.h.

◆ m_nhits_pixel

unsigned TrackHandle_TrkSegment::m_nhits_pixel
mutableprivate

Definition at line 57 of file TrackHandle_TrkSegment.h.

◆ m_nhits_rpc

unsigned TrackHandle_TrkSegment::m_nhits_rpc
mutableprivate

Definition at line 61 of file TrackHandle_TrkSegment.h.

◆ m_nhits_sct

unsigned TrackHandle_TrkSegment::m_nhits_sct
mutableprivate

Definition at line 58 of file TrackHandle_TrkSegment.h.

◆ m_nhits_stgc

unsigned TrackHandle_TrkSegment::m_nhits_stgc
mutableprivate

Definition at line 66 of file TrackHandle_TrkSegment.h.

◆ m_nhits_tgc

unsigned TrackHandle_TrkSegment::m_nhits_tgc
mutableprivate

Definition at line 63 of file TrackHandle_TrkSegment.h.

◆ m_nhits_trt

unsigned TrackHandle_TrkSegment::m_nhits_trt
mutableprivate

Definition at line 59 of file TrackHandle_TrkSegment.h.

◆ m_points

std::vector< Amg::Vector3D >* TrackHandle_TrkSegment::m_points
mutableprivate

Definition at line 70 of file TrackHandle_TrkSegment.h.

◆ m_segment

const Trk::Segment* TrackHandle_TrkSegment::m_segment
private

Definition at line 69 of file TrackHandle_TrkSegment.h.

◆ m_visible

bool TrackHandleBase::m_visible
privateinherited

Definition at line 176 of file TrackHandleBase.h.


The documentation for this class was generated from the following files:
xAOD::iterator
JetConstituentVector::iterator iterator
Definition: JetConstituentVector.cxx:68
MuonGM::MuonDetectorManager::getRpcReadoutElement
const RpcReadoutElement * getRpcReadoutElement(const Identifier &id) const
access via extended identifier (requires unpacking)
Definition: MuonDetDescr/MuonReadoutGeometry/src/MuonDetectorManager.cxx:168
TrackHandle_TrkSegment::m_nhits_trt
unsigned m_nhits_trt
Definition: TrackHandle_TrkSegment.h:59
TrackHandleBase::browserTreeItem
QTreeWidgetItem * browserTreeItem() const
Definition: TrackHandleBase.cxx:2009
beamspotman.r
def r
Definition: beamspotman.py:676
TrackSysCommonData::muonChamberProjectionHelper
MuonChamberProjectionHelper * muonChamberProjectionHelper() const
Definition: TrackSysCommonData.h:117
TrackHandleBase::touchedMuonChambers
const std::set< GeoPVConstLink > & touchedMuonChambers() const
Definition: TrackHandleBase.cxx:1258
TrackHandleBase::visibleStateChanged
virtual void visibleStateChanged()
override if need to take action in this case.
Definition: TrackHandleBase.cxx:2012
Trk::proton
@ proton
Definition: ParticleHypothesis.h:31
python.CaloRecoConfig.f
f
Definition: CaloRecoConfig.py:127
TrackHandleBase::Imp::theclass
TrackHandleBase * theclass
Definition: TrackHandleBase.cxx:108
DataModel_detail::const_iterator
Const iterator class for DataVector/DataList.
Definition: DVLIterator.h:82
sendEI_SPB.ch
ch
Definition: sendEI_SPB.py:35
python.SystemOfUnits.s
int s
Definition: SystemOfUnits.py:131
TrackCollHandleBase::decrementNShownHandles
void decrementNShownHandles()
Definition: TrackCollHandleBase.h:126
TrackSysCommonData::controller
TrackSystemController * controller() const
Definition: TrackSysCommonData.h:116
TrackHandleBase::registerTouchedMuonChamber
void registerTouchedMuonChamber(const GeoPVConstLink &) const
If not earlier, touched muon chambers must me registered at latest when this method is invoked.
Definition: TrackHandleBase.cxx:1252
DeMoUpdate.tmp2
string tmp2
Definition: DeMoUpdate.py:1168
python.SystemOfUnits.m
int m
Definition: SystemOfUnits.py:91
TrackHandle_TrkSegment::m_nhits_mdt
unsigned m_nhits_mdt
Definition: TrackHandle_TrkSegment.h:62
TrackHandleBase::Imp::attachmentHandles
std::map< std::pair< int, double >, AssocObjAttachmentHandle * > attachmentHandles
Definition: TrackHandleBase.cxx:154
phi
Scalar phi() const
phi method
Definition: AmgMatrixBasePlugin.h:64
TrkObjToString::RPC
@ RPC
Definition: TrkObjToString.h:44
TrackHandleBase::clearLine
void clearLine()
Definition: TrackHandleBase.cxx:623
Trk::Track
The ATLAS Track class.
Definition: Tracking/TrkEvent/TrkTrack/TrkTrack/Track.h:73
TouchedMuonChamberHelper::incrementNumberOfObjectsForPV
void incrementNumberOfObjectsForPV(const GeoPVConstLink &chamberPV)
Definition: TouchedMuonChamberHelper.cxx:59
TrackHandleBase::charge
double charge() const
Definition: TrackHandleBase.cxx:1491
DataVector::rend
const_reverse_iterator rend() const noexcept
Return a const_reverse_iterator pointing at the beginning of the collection.
eta
Scalar eta() const
pseudorapidity method
Definition: AmgMatrixBasePlugin.h:79
Trk::ParametersBase::position
const Amg::Vector3D & position() const
Access method for the position.
TrkObjToString::TGC
@ TGC
Definition: TrkObjToString.h:45
TrackHandle_TrkSegment::m_nhits_mm
unsigned m_nhits_mm
Definition: TrackHandle_TrkSegment.h:65
Amg::Vector2D
Eigen::Matrix< double, 2, 1 > Vector2D
Definition: GeoPrimitives.h:48
TrkObjToString::MM
@ MM
Definition: TrkObjToString.h:47
Trk::Track::trackStateOnSurfaces
const Trk::TrackStates * trackStateOnSurfaces() const
return a pointer to a const DataVector of const TrackStateOnSurfaces.
TrackHandleBase::m_currentmaterial
SoMaterial * m_currentmaterial
Definition: TrackHandleBase.h:178
VP1HelperClassBase::messageVerbose
void messageVerbose(const QString &) const
Definition: VP1HelperClassBase.cxx:78
TrackHandleBase::Imp::detach3DObjects
void detach3DObjects()
Definition: TrackHandleBase.cxx:918
mergePhysValFiles.start
start
Definition: DataQuality/DataQualityUtils/scripts/mergePhysValFiles.py:14
theta
Scalar theta() const
theta method
Definition: AmgMatrixBasePlugin.h:71
TrackHandleBase::Imp::touchedmuonchambers
std::set< GeoPVConstLink > touchedmuonchambers
Definition: TrackHandleBase.cxx:142
TrackHandleBase::getNTGCHits
virtual unsigned getNTGCHits() const
Definition: TrackHandleBase.h:113
TrackSysCommonData::touchedMuonChamberHelper
TouchedMuonChamberHelper * touchedMuonChamberHelper() const
Definition: TrackSysCommonData.h:121
PlotCalibFromCool.begin
begin
Definition: PlotCalibFromCool.py:94
TrackHandleBase::collHandle
TrackCollHandleBase * collHandle() const
Definition: TrackHandleBase.h:68
skel.it
it
Definition: skel.GENtoEVGEN.py:423
TrackHandleBase::Imp::massinit
bool massinit
Definition: TrackHandleBase.cxx:112
Trk::loc2
@ loc2
generic first and second local coordinate
Definition: ParamDefs.h:41
UploadAMITag.l
list l
Definition: UploadAMITag.larcaf.py:158
Trk::RIO_OnTrack
Definition: RIO_OnTrack.h:70
TrackSysCommonData::registerTrack
void registerTrack(SoNode *, TrackHandleBase *)
Definition: TrackSysCommonData.cxx:125
drawFromPickle.cos
cos
Definition: drawFromPickle.py:36
TrackHandleBase::getNSCTHits
virtual unsigned getNSCTHits() const
Definition: TrackHandleBase.h:107
MCP::ScaleSmearParam::r2
@ r2
VP1String::str
static QString str(const QString &s)
Definition: VP1String.h:49
empty
bool empty(TH1 *h)
Definition: computils.cxx:294
VP1HelperClassBase::messageDebug
void messageDebug(const QString &) const
Definition: VP1HelperClassBase.cxx:65
TrackHandleBase::Imp::tsos_ascobjs
std::vector< AscObj_TSOS * > * tsos_ascobjs
Definition: TrackHandleBase.cxx:177
TrackHandleBase::Imp::ensureInitTSOSs
void ensureInitTSOSs()
Definition: TrackHandleBase.cxx:376
TrackHandleBase::Imp::points_propagated_muon_projections
Amg::SetVectorVector3D * points_propagated_muon_projections
Definition: TrackHandleBase.cxx:129
TrackHandle_TrkSegment::m_nhits_stgc
unsigned m_nhits_stgc
Definition: TrackHandle_TrkSegment.h:66
TrackHandle_TrkSegment::m_nhits_muon_phi
unsigned m_nhits_muon_phi
Definition: TrackHandle_TrkSegment.h:60
TruthTest.itE
itE
Definition: TruthTest.py:25
TrackHandleBase::AssocObjAttachmentHandle
friend class AssocObjAttachmentHandle
Definition: TrackHandleBase.h:170
mergePhysValFiles.end
end
Definition: DataQuality/DataQualityUtils/scripts/mergePhysValFiles.py:93
TrackHandleBase::type
virtual QString type() const
return very short word with type (maybe link with collection type?)
Definition: TrackHandleBase.h:128
TrackHandleBase::getMuonReadoutElement
virtual const MuonGM::MuonReadoutElement * getMuonReadoutElement(const Trk::RIO_OnTrack &mb) const
Definition: TrackHandleBase.cxx:1949
MuonGM::MuonReadoutElement
Base class for the XxxReadoutElement, with Xxx = Mdt, Rpc, Tgc, Csc.
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MuonReadoutElement.h:40
VP1LinAlgUtils::phiFromXY
static double phiFromXY(const double &x, const double &y)
Definition: VP1LinAlgUtils.cxx:374
TrackHandle_TrkSegment::m_points
std::vector< Amg::Vector3D > * m_points
Definition: TrackHandle_TrkSegment.h:70
MuonGM::MuonDetectorManager::getTgcReadoutElement
const TgcReadoutElement * getTgcReadoutElement(const Identifier &id) const
access via extended identifier (requires unpacking)
Definition: MuonDetDescr/MuonReadoutGeometry/src/MuonDetectorManager.cxx:247
TrackHandleBase::getNsTGCHits
virtual unsigned getNsTGCHits() const
Definition: TrackHandleBase.h:116
TrackHandleBase::Imp::determineMaterial
SoMaterial * determineMaterial()
Definition: TrackHandleBase.cxx:1269
TrackHandleBase::calculateCharge
virtual double calculateCharge() const
Definition: TrackHandleBase.cxx:1464
TrackHandleBase::ensureTouchedMuonChambersInitialised
virtual void ensureTouchedMuonChambersInitialised() const
Definition: TrackHandleBase.h:155
TrackHandleBase::getNTRTHits
virtual unsigned getNTRTHits() const
Definition: TrackHandleBase.h:108
TrackHandleBase::Imp::points_propagated_id_projections
Amg::SetVectorVector3D * points_propagated_id_projections
Definition: TrackHandleBase.cxx:128
TrackHandle_TrkSegment::m_segment
const Trk::Segment * m_segment
Definition: TrackHandle_TrkSegment.h:69
ParticleGun_EoverP_Config.mom
mom
Definition: ParticleGun_EoverP_Config.py:63
TrackHandleBase::Imp::m_objBrowseTree
QTreeWidgetItem * m_objBrowseTree
Definition: TrackHandleBase.cxx:181
TrackHandleBase::Imp::randommaterial
SoMaterial * randommaterial
Definition: TrackHandleBase.cxx:151
MuonGM::MuonDetectorManager::getMdtReadoutElement
const MdtReadoutElement * getMdtReadoutElement(const Identifier &id) const
access via extended identifier (requires unpacking)
Definition: MuonDetDescr/MuonReadoutGeometry/src/MuonDetectorManager.cxx:204
Muon::MuonEDMPrinterTool::print
std::string print(const Trk::Track &track) const
print track parameters to string
Definition: MuonEDMPrinterTool.cxx:276
LArG4FSStartPointFilter.rand
rand
Definition: LArG4FSStartPointFilter.py:80
MuonChamberProjectionHelper::clipLineSegmentToMDTChamber
bool clipLineSegmentToMDTChamber(const GeoPVConstLink &mdtChamber, Amg::Vector3D &pointA, Amg::Vector3D &pointB, bool &outsidechamber, const double &extradist=0.0)
Definition: MuonChamberProjectionHelper.cxx:482
TrackCollHandle_TrkSegment
Definition: TrackCollHandle_TrkSegment.h:25
TrackHandleBase::Imp::pathInfo_TrkTrack
const Trk::Track * pathInfo_TrkTrack
Definition: TrackHandleBase.cxx:158
TrackHandle_TrkSegment::m_nhits_csc
unsigned m_nhits_csc
Definition: TrackHandle_TrkSegment.h:64
lumiFormat.i
int i
Definition: lumiFormat.py:92
TrackHandle_TrkSegment::m_hitInfoStatus
int m_hitInfoStatus
-1: uninitialized, 0: not present, 1: present.
Definition: TrackHandle_TrkSegment.h:67
TrackHandleBase::momentum
virtual Amg::Vector3D momentum() const
Definition: TrackHandleBase.h:83
VP1MaterialButton::setMaterialParameters
static void setMaterialParameters(SoMaterial *m, const QColor &, const double &brightness=0.0, const double &transp=0.0)
Definition: VP1MaterialButton.cxx:802
MuonGM::MuonDetectorManager::getCscReadoutElement
const CscReadoutElement * getCscReadoutElement(const Identifier &id) const
access via extended identifier (requires unpacking)
Definition: MuonDetDescr/MuonReadoutGeometry/src/MuonDetectorManager.cxx:225
TrackHandleBase::Imp::materialChanged
void materialChanged()
Definition: TrackHandleBase.cxx:816
python.CaloCondTools.g
g
Definition: CaloCondTools.py:15
TrackSystemController::muonEDMPrinterTool
Muon::MuonEDMPrinterTool * muonEDMPrinterTool() const
Definition: TrackSystemController.cxx:1678
TrackHandleBase::visible
bool visible() const
Definition: TrackHandleBase.h:67
Trk::theta
@ theta
Definition: ParamDefs.h:72
TrackHandleBase::Imp::ntrackhandles
static int ntrackhandles
Definition: TrackHandleBase.cxx:80
Trk::electron
@ electron
Definition: ParticleHypothesis.h:27
TrackHandleBase::getNRPCHits
virtual unsigned getNRPCHits() const
Definition: TrackHandleBase.h:112
TrackHandleBase::Imp::associatedObjects
QList< AssociatedObjectHandleBase * > associatedObjects
Definition: TrackHandleBase.cxx:153
TrackHandle_TrkSegment::m_nhits_tgc
unsigned m_nhits_tgc
Definition: TrackHandle_TrkSegment.h:63
TrkObjToString::CSC
@ CSC
Definition: TrkObjToString.h:43
TrackHandle_TrkSegment::m_nhits_rpc
unsigned m_nhits_rpc
Definition: TrackHandle_TrkSegment.h:61
AssocObjAttachmentHandle
Definition: TrackHandleBase.h:197
Trk::pion
@ pion
Definition: ParticleHypothesis.h:29
Trk::Segment::containedMeasurements
const std::vector< const Trk::MeasurementBase * > & containedMeasurements() const
returns the vector of Trk::MeasurementBase objects
Definition: TrkEvent/TrkSegment/TrkSegment/Segment.h:166
TrackHandleBase::getNMuonHits
virtual unsigned getNMuonHits() const
Definition: TrackHandleBase.h:109
VP1ParticleData::particleCharge
static double particleCharge(const int &pdgcode, bool &ok)
Definition: VP1ParticleData.cxx:104
TrkObjToString::MDT
@ MDT
Definition: TrkObjToString.h:46
TrkObjToString::type
static MeasurementType type(const Trk::PrepRawData *prd)
Definition: TrkObjToString.cxx:64
TrackHandleBase::Imp::chargeinit
bool chargeinit
Definition: TrackHandleBase.cxx:110
TrackHandleBase::shortInfo
virtual QString shortInfo() const
returns mom and hit information about track
Definition: TrackHandleBase.h:127
TrackHandleBase::Imp::ensureInitPointsPropagated
void ensureInitPointsPropagated()
Definition: TrackHandleBase.cxx:1045
Trk::ParametersBase
Definition: ParametersBase.h:55
DeMoUpdate.tmp
string tmp
Definition: DeMoUpdate.py:1167
Trk::muon
@ muon
Definition: ParticleHypothesis.h:28
TrackHandleBase::pdgCode
virtual int pdgCode() const
0 means unknown
Definition: TrackHandleBase.h:86
DataVector::rbegin
const_reverse_iterator rbegin() const noexcept
Return a const_reverse_iterator pointing past the end of the collection.
TrackHandleBase::getNMDTHits
virtual unsigned getNMDTHits() const
Definition: TrackHandleBase.h:111
TrackHandleBase::Imp::rebuild3DObjects
void rebuild3DObjects()
Definition: TrackHandleBase.cxx:641
TrackSysCommonData::unregisterTrack
void unregisterTrack(SoNode *)
Definition: TrackSysCommonData.cxx:140
TrackHandleBase::getNMMHits
virtual unsigned getNMMHits() const
Definition: TrackHandleBase.h:115
TrackHandleBase::m_collhandle
TrackCollHandleBase * m_collhandle
Definition: TrackHandleBase.h:177
TrackHandleBase::common
TrackSysCommonData * common() const
Definition: TrackHandleBase.cxx:255
TrackHandleBase::TrackHandleBase
TrackHandleBase(TrackCollHandleBase *)
Definition: TrackHandleBase.cxx:204
Trk::MeasurementBase
Definition: MeasurementBase.h:58
Trk::Track::trackParameters
const DataVector< const TrackParameters > * trackParameters() const
Return a pointer to a vector of TrackParameters.
Definition: Tracking/TrkEvent/TrkTrack/src/Track.cxx:97
TrackHandleBase::getNPixelHits
virtual unsigned getNPixelHits() const
Definition: TrackHandleBase.h:106
TrackHandleBase::Imp::attach3DObjects
void attach3DObjects()
Definition: TrackHandleBase.cxx:883
TrackHandleBase::startPoint
virtual std::optional< Amg::Vector3D > startPoint() const
returns 0 if can't find start point.
Definition: TrackHandleBase.cxx:1570
VP1HelperClassBase::systemBase
IVP1System * systemBase() const
Definition: VP1HelperClassBase.h:50
python.selection.number
number
Definition: selection.py:20
TrackHandleBase::Imp::shownTSOSParts
TrackCommonFlags::TSOSPartsFlags shownTSOSParts
Definition: TrackHandleBase.cxx:175
Trk::MeasurementBase::associatedSurface
virtual const Surface & associatedSurface() const =0
Interface method to get the associated Surface.
DataVector< const Trk::TrackStateOnSurface >::const_reverse_iterator
std::reverse_iterator< const_iterator > const_reverse_iterator
Standard const_reverse_iterator.
Definition: DataVector.h:846
plotBeamSpotMon.b
b
Definition: plotBeamSpotMon.py:77
Trk::nonInteracting
@ nonInteracting
Definition: ParticleHypothesis.h:25
VP1Msg::messageVerbose
static void messageVerbose(const QString &)
Definition: VP1Msg.cxx:84
TrackHandleBase::Imp::pathInfo_Points
const std::vector< Amg::Vector3D > * pathInfo_Points
Definition: TrackHandleBase.cxx:159
TrackHandleBase::Imp::charge
double charge
Definition: TrackHandleBase.cxx:111
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition: GeoPrimitives.h:47
ParticleGun_SamplingFraction.radius
radius
Definition: ParticleGun_SamplingFraction.py:96
Trk::kaon
@ kaon
Definition: ParticleHypothesis.h:30
Trk::MeasurementBase::localParameters
const LocalParameters & localParameters() const
Interface method to get the LocalParameters.
Definition: MeasurementBase.h:132
DataVector::end
const_iterator end() const noexcept
Return a const_iterator pointing past the end of the collection.
TouchedMuonChamberHelper::decrementNumberOfObjectsForPV
void decrementNumberOfObjectsForPV(const GeoPVConstLink &chamberPV)
Definition: TouchedMuonChamberHelper.cxx:73
TrackHandleBase::m_d
Imp * m_d
Definition: TrackHandleBase.h:171
TrackHandleBase::getNCSCHits
virtual unsigned getNCSCHits() const
Definition: TrackHandleBase.h:114
VP1DetInfo::muonDetMgr
static const MuonGM::MuonDetectorManager * muonDetMgr()
Definition: VP1DetInfo.cxx:148
a
TList * a
Definition: liststreamerinfos.cxx:10
VP1Msg::messageDebug
static void messageDebug(const QString &)
Definition: VP1Msg.cxx:39
TrackCollHandleBase::incrementNShownHandles
void incrementNShownHandles()
Definition: TrackCollHandleBase.h:125
VP1Msg::message
static void message(const QString &, IVP1System *sys=0)
Definition: VP1Msg.cxx:30
TrackHandleBase::Imp::ensureLoadPathInfo
void ensureLoadPathInfo()
Definition: TrackHandleBase.cxx:189
TRT_PAI_physicsConstants::mb
const double mb
1mb to cm2
Definition: TRT_PAI_physicsConstants.h:15
TrackHandleBase::update3DObjects
void update3DObjects(bool invalidatePropagatedPoints=false, float maxR=0.0)
Definition: TrackHandleBase.cxx:488
TrackHandleBase::provide_pathInfoTrkTrack
virtual const Trk::Track * provide_pathInfoTrkTrack() const
Definition: TrackHandleBase.h:148
MuonGM::MuonDetectorManager::getMMReadoutElement
const MMReadoutElement * getMMReadoutElement(const Identifier &id) const
access via extended identifier (requires unpacking)
Definition: MuonDetDescr/MuonReadoutGeometry/src/MuonDetectorManager.cxx:255
re
const boost::regex re(r_e)
VP1ParticleData::particleMass
static double particleMass(const int &pdgcode, bool &ok)
Definition: VP1ParticleData.cxx:84
TrackHandleBase::Imp::points_raw_muon_projections
Amg::SetVectorVector3D * points_raw_muon_projections
Definition: TrackHandleBase.cxx:127
TrackCommonFlags::TSOS_NoObjects
@ TSOS_NoObjects
Definition: TrackCommonFlags.h:43
TrackHandleBase::Imp::points_raw_id_projections
Amg::SetVectorVector3D * points_raw_id_projections
Definition: TrackHandleBase.cxx:126
TrackHandleBase::Imp::tempMaxPropRadius
float tempMaxPropRadius
Definition: TrackHandleBase.cxx:182
VP1HelperClassBase::message
void message(const QString &) const
Definition: VP1HelperClassBase.cxx:49
TrackHandleBase::Imp::customColouredTSOSParts
TrackCommonFlags::TSOSPartsFlags customColouredTSOSParts
Definition: TrackHandleBase.cxx:176
TrackHandleBase::Imp::points_propagated
std::vector< Amg::Vector3D > * points_propagated
Definition: TrackHandleBase.cxx:124
TrackHandleBase::Imp::line
SoLineSet * line
Definition: TrackHandleBase.cxx:115
TrackHandle_TrkSegment::m_nhits_pixel
unsigned m_nhits_pixel
Definition: TrackHandle_TrkSegment.h:57
TrackHandleBase::baseInfo
QStringList baseInfo() const
Definition: TrackHandleBase.cxx:1534
TrackHandleBase::hasCharge
bool hasCharge() const
Definition: TrackHandleBase.h:99
VP1Msg::verbose
static bool verbose()
Definition: VP1Msg.h:31
MuonGM::MuonDetectorManager::getsTgcReadoutElement
const sTgcReadoutElement * getsTgcReadoutElement(const Identifier &id) const
access via extended identifier (requires unpacking)
Definition: MuonDetDescr/MuonReadoutGeometry/src/MuonDetectorManager.cxx:259
Muon::MuonSegment
Definition: MuonSpectrometer/MuonReconstruction/MuonRecEvent/MuonSegment/MuonSegment/MuonSegment.h:45
TrackCollHandleBase::common
TrackSysCommonData * common() const
Definition: TrackCollHandleBase.h:79
drawFromPickle.sin
sin
Definition: drawFromPickle.py:36
TrackHandleBase::m_visible
bool m_visible
Definition: TrackHandleBase.h:176
VP1TrackSummary::countHits
static bool countHits(const Trk::Track *, unsigned &nPixelHits, unsigned &nSCTHits, unsigned &nTRTHits, unsigned &nhits_muon_phi, unsigned &nhits_rpc, unsigned &nhits_mdt, unsigned &nhits_tgc, unsigned &nhits_csc, unsigned &nhits_mm, unsigned &nhits_stgc)
Definition: VP1TrackSummary.cxx:30
TrackHandleBase::mass
virtual double mass() const
Definition: TrackHandleBase.cxx:1501
Trk::loc1
@ loc1
Definition: ParamDefs.h:40
VP1JobConfigInfo::hasMuonGeometry
static bool hasMuonGeometry()
Definition: VP1JobConfigInfo.cxx:134
TrkObjToString::sTGC
@ sTGC
Definition: TrkObjToString.h:48
TrackHandleBase::Imp::inittouchedchambers
bool inittouchedchambers
Definition: TrackHandleBase.cxx:143
GeV
#define GeV
Definition: CaloTransverseBalanceVecMon.cxx:30
TrackHandleBase::unknown
static double unknown()
Definition: TrackHandleBase.h:102
TrackHandle_TrkSegment::m_nhits_sct
unsigned m_nhits_sct
Definition: TrackHandle_TrkSegment.h:58
python.compressB64.c
def c
Definition: compressB64.py:93
MuonGM::MuonReadoutElement::parentStationPV
PVConstLink parentStationPV() const
Definition: MuonDetDescr/MuonReadoutGeometry/src/MuonReadoutElement.cxx:100
IVP1System::message
void message(const QString &) const
Definition: IVP1System.cxx:336
TrackHandleBase::Imp::mass
double mass
Definition: TrackHandleBase.cxx:113
Trk::phi0
@ phi0
Definition: ParamDefs.h:71
Trk::Surface::localToGlobal
virtual void localToGlobal(const Amg::Vector2D &locp, const Amg::Vector3D &mom, Amg::Vector3D &glob) const =0
Specified by each surface type: LocalToGlobal method without dynamic memory allocation.
DataVector::begin
const_iterator begin() const noexcept
Return a const_iterator pointing at the beginning of the collection.
NSWL1::PadTriggerAdapter::segment
Muon::NSW_PadTriggerSegment segment(const NSWL1::PadTrigger &data)
Definition: PadTriggerAdapter.cxx:5
TrackHandleBase::Imp::points_raw
std::vector< Amg::Vector3D > * points_raw
Definition: TrackHandleBase.cxx:123
TrackHandle_TrkSegment::ensureInitSubSysHitInfo
void ensureInitSubSysHitInfo() const
Definition: TrackHandle_TrkSegment.cxx:104