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

#include <TrackHandle_TrackContainer.h>

Inheritance diagram for TrackHandle_TrackContainer:
Collaboration diagram for TrackHandle_TrackContainer:

Public Member Functions

 TrackHandle_TrackContainer (TrackCollHandleBase *, ActsTrk::TrackContainer::ConstTrackProxy, const ActsTrk::TrackContainer &)
 
virtual ~TrackHandle_TrackContainer ()
 
virtual QStringList clicked () const
 Called when user selects the node (stringlist is displayed in messagebox). More...
 
virtual bool isRun4EDM () const final
 
virtual Amg::Vector3D momentum () const
 
virtual const std::vector< Amg::Vector3D > * provide_pathInfoPoints ()
 
ActsTrk::TrackContainer::ConstTrackProxy track () const
 
const std::vector< ActsTrk::MultiTrajectory::ConstTrackStateProxy > & trackStates () const
 
virtual bool containsDetElement (const QString &) const
 
virtual void fillObjectBrowser (QList< QTreeWidgetItem * > &list)
 Called in child classes. More...
 
virtual void updateObjectBrowser ()
 
SoNode * zoomToTSOS (unsigned int index)
 Depending on controller configuration attempt to zoom to the corresponding TSOS & returned detailed node matching it. More...
 
virtual QString shortInfo () const
 returns mom and hit information about track More...
 
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 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 hasSubSystemHitInfo () const
 
virtual bool isIDTrack () const
 
virtual unsigned getNPixelHits () const
 
virtual unsigned getNSCTHits () const
 
virtual unsigned getNTRTHits () const
 
virtual unsigned getNMuonHits () const
 
virtual unsigned getNMuonPhiHits () const
 The number of phi hits is part of hit counts below (i.e. More...
 
virtual unsigned getNMDTHits () const
 
virtual unsigned getNRPCHits () const
 
virtual unsigned getNTGCHits () const
 
virtual unsigned getNCSCHits () const
 
virtual unsigned getNMMHits () 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...
 
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...
 
virtual void ensureTouchedMuonChambersInitialised () const
 
void registerTouchedMuonChamber (const GeoPVConstLink &) const
 If not earlier, touched muon chambers must me registered at latest when this method is invoked. More...
 
const QList< AssociatedObjectHandleBase * > & getAllAscObjHandles () const
 override if need to take action in this case. More...
 
void registerAssocObject (AssociatedObjectHandleBase *)
 Trackhandle assumes ownership. More...
 

Protected Attributes

ActsTrk::TrackContainer::ConstTrackProxy m_track
 
const ActsTrk::TrackContainerm_container
 
std::vector< ActsTrk::MultiTrajectory::ConstTrackStateProxy > m_trackStates
 

Private Member Functions

void visibleStateChanged ()
 override if need to take action in this case. More...
 
void currentMaterialChanged ()
 
virtual void ensureInitTSOSs (std::vector< AssociatedObjectHandleBase * > *&ascobjs)
 Ensure that the TSOSs are initialized. More...
 
void ensureInitTrackStateCache ()
 Ensure that the track state cache is initialized. More...
 
void addTrackState (const typename ActsTrk::TrackStateBackend::ConstTrackStateProxy &state, std::vector< AssociatedObjectHandleBase * > *ascobjs, unsigned int index)
 
TrkObjToString::MeasurementType measurementType (const ActsTrk::TrackStateBackend::ConstTrackStateProxy &state) const
 
QString measurementText (const ActsTrk::TrackStateBackend::ConstTrackStateProxy &state) 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

Impm_d
 
bool m_visible
 
TrackCollHandleBasem_collhandle
 
SoMaterial * m_currentmaterial
 

Detailed Description

Definition at line 28 of file TrackHandle_TrackContainer.h.

Constructor & Destructor Documentation

◆ TrackHandle_TrackContainer()

TrackHandle_TrackContainer::TrackHandle_TrackContainer ( TrackCollHandleBase ch,
ActsTrk::TrackContainer::ConstTrackProxy  tp,
const ActsTrk::TrackContainer container 
)

Definition at line 34 of file TrackHandle_TrackContainer.cxx.

37  : TrackHandleBase(ch), m_track(tp), m_container(container) {}

◆ ~TrackHandle_TrackContainer()

TrackHandle_TrackContainer::~TrackHandle_TrackContainer ( )
virtual

Definition at line 40 of file TrackHandle_TrackContainer.cxx.

40 {}

Member Function Documentation

◆ addTrackState()

void TrackHandle_TrackContainer::addTrackState ( const typename ActsTrk::TrackStateBackend::ConstTrackStateProxy &  state,
std::vector< AssociatedObjectHandleBase * > *  ascobjs,
unsigned int  index 
)
private

Definition at line 389 of file TrackHandle_TrackContainer.cxx.

391  {
392 
393  AscObj_TrackState* ao = new AscObj_TrackState(this, index, state);
394 
396 
397  ascobjs->push_back(ao);
398  if (ao->parts() & shownTSOSParts()){
399  ao->setVisible(true);
400  }
401 }

◆ 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 1551 of file TrackHandleBase.cxx.

1552 {
1553  QStringList l;
1555  mom /= CLHEP::GeV;
1556  if (mom.mag2()==0.0) {
1557  l << "Momentum : 0 (undefined)";
1558  } else {
1559  l << "Momentum [GeV]: "+VP1Msg::str(mom);
1560  l << "|Pt|/|P| [GeV]: "+VP1Msg::str(mom.perp())+" / " + VP1Msg::str(mom.mag());
1561  l << VP1Msg::str("(")+QChar(0x03B7)+","+QChar(0x03D5)+VP1Msg::str(")=(")
1563 
1564  l << "Eta: "+VP1Msg::str(mom.eta());
1565  l << "Phi: "+VP1Msg::str(VP1LinAlgUtils::phiFromXY(mom.x(), mom.y() ));
1566  }
1567  l<<"Hit summary: Pix["+VP1Msg::str(getNPixelHits())+"], SCT["+VP1Msg::str(getNSCTHits())+"], TRT["+VP1Msg::str(getNTRTHits())
1569 
1570  return l;
1584 }

◆ browserTreeItem()

QTreeWidgetItem * TrackHandleBase::browserTreeItem ( ) const
inherited

Definition at line 2026 of file TrackHandleBase.cxx.

2026 {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 1481 of file TrackHandleBase.cxx.

1482 {
1483  //look up from pdgCode(); // valid PDG codes > 0
1484  int pdg = pdgCode();
1485  if (pdg) {
1486  bool ok;
1487  double c = VP1ParticleData::particleCharge(pdg,ok);
1488  if (ok) {
1489  VP1Msg::messageDebug("TrackHandleBase: Determined charge from pdg code "+VP1Msg::str(pdg)+": "+VP1Msg::str(c));
1490  return c;
1491  }
1492  }
1493 
1494  //Attempt to look at the first trackparameter.
1495  const Trk::Track * trk = provide_pathInfoTrkTrack();
1496  if (trk&&!trk->trackParameters()->empty()) {
1497  double c = (*(trk->trackParameters()->begin()))->charge();
1498  VP1Msg::messageDebug("TrackHandleBase: Determined charge from first track parameter: "+VP1Msg::str(c));
1499  return c;
1500  }
1501  if (VP1Msg::verbose())
1502  VP1Msg::messageDebug("Failed to determine charge.");
1503 
1504  return unknown();
1505 }

◆ charge()

double TrackHandleBase::charge ( ) const
inherited

Definition at line 1508 of file TrackHandleBase.cxx.

1509 {
1510  if (m_d->chargeinit)
1511  return m_d->charge;
1512  m_d->chargeinit = true;
1513  m_d->charge = calculateCharge();
1514  return m_d->charge;
1515 }

◆ clearLine()

void TrackHandleBase::clearLine ( )
privateinherited

Definition at line 640 of file TrackHandleBase.cxx.

641 {
642  if (m_d->line) {
644  m_d->line->unref();
645  m_d->line=nullptr;
646  }
647 }

◆ clicked()

QStringList TrackHandle_TrackContainer::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 43 of file TrackHandle_TrackContainer.cxx.

43  {
44  QStringList l;
45  l << "TrackProxy:";
47  return l;
48 }

◆ 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()

bool TrackHandle_TrackContainer::containsDetElement ( const QString &  ) const
virtual

Reimplemented from TrackHandleBase.

Definition at line 354 of file TrackHandle_TrackContainer.cxx.

355  {
356  return false;
357 }

◆ currentMaterial()

SoMaterial* TrackHandleBase::currentMaterial ( ) const
inlineinherited

Definition at line 76 of file TrackHandleBase.h.

76 { return m_currentmaterial; }

◆ currentMaterialChanged()

void TrackHandle_TrackContainer::currentMaterialChanged ( )
privatevirtual

Reimplemented from TrackHandleBase.

Definition at line 84 of file TrackHandle_TrackContainer.cxx.

84 {}

◆ 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 1607 of file TrackHandleBase.cxx.

1608 {
1610  if (m_d->pathInfo_TrkTrack) {
1613  for (; tsos_iter != tsos_end; ++tsos_iter) {
1614  if (common()->trackSanityHelper()->isSafe(*tsos_iter)) {
1615  const Trk::TrackParameters* trackParam = (*tsos_iter)->trackParameters();
1616  if (common()->trackSanityHelper()->isSafe(trackParam))
1617  return trackParam->position();
1618  }
1619  }
1620  } else if (m_d->pathInfo_Points&&!m_d->pathInfo_Points->empty()) {
1621  return m_d->pathInfo_Points->back();
1622  }
1623  return {};
1624 }

◆ ensureInitTrackStateCache()

void TrackHandle_TrackContainer::ensureInitTrackStateCache ( )
private

Ensure that the track state cache is initialized.

Definition at line 359 of file TrackHandle_TrackContainer.cxx.

360  {
361  // Unfortunately actsTracks are stored in reverse order, so we need to do some
362  // gymnastics (There is certainly a more elegant way to do this, but since
363  // this will all be changed soon I don't think it matters)
364  if (!m_trackStates.empty())
365  return;
366  m_trackStates.reserve(m_track.nTrackStates());
367  for (auto trackstate : m_track.trackStatesReversed()) {
368  m_trackStates.push_back(trackstate);
369  }
370 
371  std::reverse(m_trackStates.begin(), m_trackStates.end());
372 }

◆ ensureInitTSOSs()

void TrackHandle_TrackContainer::ensureInitTSOSs ( std::vector< AssociatedObjectHandleBase * > *&  ascobjs)
privatevirtual

Ensure that the TSOSs are initialized.

This is called by update3DObjects() and should be called by any method that needs to access the TSOSs.

Reimplemented from TrackHandleBase.

Definition at line 375 of file TrackHandle_TrackContainer.cxx.

376  {
377  if (ascobjs)
378  return;
380 
381  ascobjs = new std::vector<AssociatedObjectHandleBase*>;
382  unsigned int index =0;
383 
384  for (const auto trackState : m_trackStates) {
385  addTrackState(trackState, ascobjs, index++);
386  }
387 }

◆ ensureTouchedMuonChambersInitialised()

virtual void TrackHandleBase::ensureTouchedMuonChambersInitialised ( ) const
inlineprotectedvirtualinherited

◆ extrapolationParticleHypothesis()

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

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

Definition at line 1534 of file TrackHandleBase.cxx.

1535 {
1536  switch(abs(pdgCode())) {
1537  case 211: return Trk::pion;
1538  case 2212: return Trk::proton;
1539  case 11: return Trk::electron;
1540  case 13: return Trk::muon;
1541  case 321://k+
1542  case 323://k*+
1543  return Trk::kaon;
1544  case 0:
1545  default:
1547  }
1548 }

◆ fillObjectBrowser()

void TrackHandle_TrackContainer::fillObjectBrowser ( QList< QTreeWidgetItem * > &  list)
virtual

Called in child classes.

Reimplemented from TrackHandleBase.

Definition at line 86 of file TrackHandle_TrackContainer.cxx.

87  {
88  TrackHandleBase::fillObjectBrowser(listOfItems); // Obligatory!
89 
90 
91  // Fill sub-data.
92  QList<AssociatedObjectHandleBase*> list = getAllAscObjHandles();
93  unsigned int listSize = list.size();
94 
96 
97  unsigned int trackStateNum=0;
98  for (const auto trackState : m_trackStates) {
99  QString surfaceText = QString(" ");
100  surfaceText += trackState.hasReferenceSurface()?QString::number(trackState.referenceSurface().type()):"No Surface";
101 
102  // VP1Msg::messageVerbose("TrackState #"+QString::number(trackStateNum) + surfaceText);
103 
104  bool visible=false;
105  QTreeWidgetItem* TSOSitem = new QTreeWidgetItem(browserTreeItem());
106 
107  AscObj_TrackState* asc=nullptr;
108  if (trackStateNum<listSize) asc = dynamic_cast<AscObj_TrackState*>(list.at(trackStateNum));
109 
110  if (asc) {
111  asc->setBrowserTreeItem(TSOSitem);
112  visible=asc->visible();
113  }
114 
115  if (!visible) {
116  TSOSitem->setFlags(Qt::ItemFlag());// not selectable, not enabled
117  QFont itemFont = TSOSitem->font(0);
118  itemFont.setStrikeOut(true);
119  TSOSitem->setFont(0, itemFont);
120  TSOSitem->setFont(1, itemFont);
121  }
122  std::ostringstream s;
123 
124  s << " | Flags: "<< trackState.typeFlags();
125  QString text = QString::number( trackStateNum )+QString(s.str().c_str());
126  TSOSitem->setText(0, QString("Track State "+text ) );
127 
128  if (trackState.hasReferenceSurface()) {
129  auto& surface = trackState.referenceSurface();
130  QString surfaceText = QString(surface.toString(common()->geometryContext().context()).c_str());
131  QTreeWidgetItem* surfItem = new QTreeWidgetItem(TSOSitem);
132  surfItem->setExpanded(true);
133  surfItem->setFlags(Qt::ItemIsEnabled);
134  surfItem->setText(0, QString(surface.name().c_str()));
135  surfItem->setText(1, surfaceText );
136  }
137 
138  // TSOSitem->setText(1,
139 
140  QString trackStateText;
141  // bool first=true;
142 
143  // const Trk::MeasurementBase* meas = (*it)->measurementOnTrack();
144  if (trackState.hasCalibrated() ){
145  QString measName = QString(TrkObjToString::typeName(measurementType(trackState)).c_str());
146  trackStateText+=measName;
147 
148  QTreeWidgetItem* measItem = new QTreeWidgetItem(TSOSitem);
149  measItem->setExpanded(true); // want it opened so subparams seen easily
150  measItem->setFlags(Qt::ItemIsEnabled);
151  measItem->setText(0, measName);
152  measItem->setText(1, measurementText(trackState) ); //TODO expand this with more info
153 
154  // QStringList list = TrkObjToString::fullInfo( *((*it)->measurementOnTrack ()) );
155  // for (int i = 0; i < (list.size()-1); ){
156  // QTreeWidgetItem* subparamItem = new QTreeWidgetItem(measItem);
157  // subparamItem->setText(0, list.at(i++) );
158  // subparamItem->setText(1, list.at(i++) );
159  // subparamItem->setFlags(Qt::ItemIsEnabled);
160  // }
161  }
162  // first=false;
163  // }
164  // if ( (*it)->trackParameters () ) {
165  // if (!first) trackStateText.append(" + ");
166  // trackStateText.append("Parameters");
167 
168  // QTreeWidgetItem* paramItem = new QTreeWidgetItem(TSOSitem);
169  // paramItem->setExpanded(true); // want it opened so subparams seen easily
170  // paramItem->setFlags(Qt::ItemIsEnabled);
171  // paramItem->setText(0, TrkObjToString::name( *((*it)->trackParameters ()) ) );
172  // // paramItem->setText(1, TrkObjToString::shortInfo( *((*it)->trackParameters ()) ) );
173 
174  // QStringList list = TrkObjToString::fullInfo( *((*it)->trackParameters ()) );
175  // for (int i = 0; i < (list.size()-1); ){
176  // QTreeWidgetItem* subparamItem = new QTreeWidgetItem(paramItem);
177  // subparamItem->setText(0, list.at(i++) );
178  // subparamItem->setText(1, list.at(i++) );
179  // subparamItem->setFlags(Qt::ItemIsEnabled);
180  // }
181  // first=false;
182  // }
183  // if ( (*it)->materialEffectsOnTrack () ){
184  // if (!first) trackStateText.append(" + ");
185  // trackStateText.append("MaterialEffectsOnTrack");
186  // QTreeWidgetItem* meItem = new QTreeWidgetItem(TSOSitem);
187  // meItem->setExpanded(true); // want it opened so subparams seen easily
188  // meItem->setFlags(Qt::ItemIsEnabled);
189 
190  // meItem->setText(0, TrkObjToString::name( *((*it)->materialEffectsOnTrack ()) ) );
191  // meItem->setText(1, TrkObjToString::shortInfo( *((*it)->materialEffectsOnTrack ()) ) );
192 
193  // first=false;
194  // }
195  // if ( (*it)->fitQualityOnSurface () ){
196  // if (!first) trackStateText.append(" + ");
197  // trackStateText.append("FitQuality");
198  // QTreeWidgetItem* fqItem = new QTreeWidgetItem(TSOSitem);
199  // fqItem->setExpanded(true); // want it opened so subparams seen easily
200  // fqItem->setFlags(Qt::ItemIsEnabled);
201  // fqItem->setText(0, QString("FitQuality") );
202  // fqItem->setText(1, TrkObjToString::shortInfo( (*it)->fitQualityOnSurface () ) );
203 
204  // first=false;
205  // }
206  // FIXME - add information about chamber for Muon systems?
207 
208  // if ( (*it)->type(Trk::TrackStateOnSurface::Outlier) ){
209  // if (!first) trackStateText.append(" + ");
210  // trackStateText.append("Outlier");
211  // }
212 
213  // if ( (*it)->type(Trk::TrackStateOnSurface::InertMaterial) ){
214  // if (!first) trackStateText.append(" + ");
215  // trackStateText.append("InertMaterial");
216  // }
217 
218  // if ( (*it)->type(Trk::TrackStateOnSurface::BremPoint) ){
219  // if (!first) trackStateText.append(" + ");
220  // trackStateText.append("BremPoint");
221  // }
222 
223  // if ( (*it)->type(Trk::TrackStateOnSurface::Perigee) ){
224  // if (!first) trackStateText.append(" + ");
225  // trackStateText.append("Perigee");
226  // }
227 
228  // if ( (*it)->type(Trk::TrackStateOnSurface::Hole) ){
229  // if (!first) trackStateText.append(" + ");
230  // trackStateText.append("Hole");
231  // }
232  TSOSitem->setText(1, trackStateText );
233  trackStateNum++;
234  }
235  // listOfItems << browserTreeItem();
236 
237 }

◆ getAllAscObjHandles()

const 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 1634 of file TrackHandleBase.cxx.

1635 {
1636  return m_d->associatedObjects;
1637 }

◆ getAttachmentHandle()

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

Definition at line 1468 of file TrackHandleBase.cxx.

1469 {
1470  std::map<std::pair<int,double>,AssocObjAttachmentHandle *>::iterator
1471  it = m_d->attachmentHandles.find(std::make_pair(regionIndex,crossoverval));
1472  if (it!=m_d->attachmentHandles.end())
1473  return it->second;
1474  AssocObjAttachmentHandle *attachHandle
1475  = new AssocObjAttachmentHandle(common()->trackLODManager()->getLODHandle(regionIndex,crossoverval),this);
1476  m_d->attachmentHandles[std::make_pair(regionIndex,crossoverval)] = attachHandle;
1477  return attachHandle;
1478 }

◆ getFitQuality()

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

Reimplemented in TrackHandle_TrkTrack.

Definition at line 119 of file TrackHandleBase.h.

119 {return nullptr;}

◆ getMuonReadoutElement()

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

Definition at line 1966 of file TrackHandleBase.cxx.

1966  {
1967  const MuonGM::MuonReadoutElement* re = nullptr;
1968  switch (TrkObjToString::type(&mb)){
1969  case TrkObjToString::MDT:
1971  break;
1972  case TrkObjToString::CSC:
1974  break;
1975  case TrkObjToString::RPC:
1977  break;
1978  case TrkObjToString::TGC:
1980  break;
1981  case TrkObjToString::sTGC:
1983  break;
1984  case TrkObjToString::MM:
1986  break;
1987  default:
1988  VP1Msg::message("TrackHandleBase::getReadoutElement:: Unable to find matching readoutElement");
1989  }
1990  return re;
1991  }

◆ getNCSCHits()

virtual unsigned TrackHandleBase::getNCSCHits ( ) const
inlinevirtualinherited

Reimplemented in TrackHandle_TrkTrack, TrackHandle_xAODTrackParticle, TrackHandle_TrkSegment, and TrackHandle_TrackParticle.

Definition at line 115 of file TrackHandleBase.h.

115 { return 0; }

◆ getNMDTHits()

virtual unsigned TrackHandleBase::getNMDTHits ( ) const
inlinevirtualinherited

Reimplemented in TrackHandle_TrkTrack, TrackHandle_TrkSegment, TrackHandle_xAODTrackParticle, and TrackHandle_TrackParticle.

Definition at line 112 of file TrackHandleBase.h.

112 { return 0; }

◆ getNMMHits()

virtual unsigned TrackHandleBase::getNMMHits ( ) const
inlinevirtualinherited

Reimplemented in TrackHandle_TrkTrack, and TrackHandle_TrkSegment.

Definition at line 116 of file TrackHandleBase.h.

116 { return 0; }

◆ getNMuonHits()

virtual unsigned TrackHandleBase::getNMuonHits ( ) const
inlinevirtualinherited

Definition at line 110 of file TrackHandleBase.h.

◆ getNMuonPhiHits()

virtual unsigned TrackHandleBase::getNMuonPhiHits ( ) const
inlinevirtualinherited

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 in TrackHandle_TrkTrack, TrackHandle_xAODTrackParticle, TrackHandle_TrkSegment, and TrackHandle_TrackParticle.

Definition at line 111 of file TrackHandleBase.h.

◆ getNMuonPrecisionHits()

virtual unsigned TrackHandleBase::getNMuonPrecisionHits ( ) const
inlinevirtualinherited

Reimplemented in TrackHandle_TrackParticle.

Definition at line 118 of file TrackHandleBase.h.

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

◆ getNPixelHits()

virtual unsigned TrackHandleBase::getNPixelHits ( ) const
inlinevirtualinherited

Reimplemented in TrackHandle_TrkTrack, TrackHandle_xAODTrackParticle, TrackHandle_TrkSegment, and TrackHandle_TrackParticle.

Definition at line 107 of file TrackHandleBase.h.

107 { return 0; }

◆ getNRPCHits()

virtual unsigned TrackHandleBase::getNRPCHits ( ) const
inlinevirtualinherited

Reimplemented in TrackHandle_TrkTrack, TrackHandle_xAODTrackParticle, TrackHandle_TrkSegment, and TrackHandle_TrackParticle.

Definition at line 113 of file TrackHandleBase.h.

113 { return 0; }

◆ getNSCTHits()

virtual unsigned TrackHandleBase::getNSCTHits ( ) const
inlinevirtualinherited

Reimplemented in TrackHandle_TrkTrack, TrackHandle_xAODTrackParticle, TrackHandle_TrkSegment, and TrackHandle_TrackParticle.

Definition at line 108 of file TrackHandleBase.h.

108 { return 0; }

◆ getNsTGCHits()

virtual unsigned TrackHandleBase::getNsTGCHits ( ) const
inlinevirtualinherited

Reimplemented in TrackHandle_TrkTrack.

Definition at line 117 of file TrackHandleBase.h.

117 { return 0; }

◆ getNTGCHits()

virtual unsigned TrackHandleBase::getNTGCHits ( ) const
inlinevirtualinherited

Reimplemented in TrackHandle_TrkTrack, TrackHandle_xAODTrackParticle, TrackHandle_TrkSegment, and TrackHandle_TrackParticle.

Definition at line 114 of file TrackHandleBase.h.

114 { return 0; }

◆ getNTRTHits()

virtual unsigned TrackHandleBase::getNTRTHits ( ) const
inlinevirtualinherited

Reimplemented in TrackHandle_TrkTrack, TrackHandle_xAODTrackParticle, TrackHandle_TrkSegment, and TrackHandle_TrackParticle.

Definition at line 109 of file TrackHandleBase.h.

109 { return 0; }

◆ getVisibleMeasurements()

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

Definition at line 1996 of file TrackHandleBase.cxx.

1997 {
1998  QList<AssociatedObjectHandleBase*> l;
1999  if (!m_d->tsos_ascobjs) return l;
2001  it(m_d->tsos_ascobjs->begin()),
2002  itE(m_d->tsos_ascobjs->end());
2003  for (;it!=itE;++it)
2004  if ((*it)->hasMeasurement()&&(*it)->visible())
2005  l << (*it);
2006  return l;
2007 }

◆ hackGetPointsPropagated()

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

FIXME.

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

Definition at line 1639 of file TrackHandleBase.cxx.

1640 {
1642  return m_d->points_propagated;
1643 }

◆ 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 TrackHandleBase::hasSubSystemHitInfo ( ) const
inlinevirtualinherited

Reimplemented in TrackHandle_xAODTrackParticle, TrackHandle_TrackParticle, TrackHandle_TrkTrack, and TrackHandle_TrkSegment.

Definition at line 104 of file TrackHandleBase.h.

104 { return false; }

◆ isIDTrack()

bool TrackHandleBase::isIDTrack ( ) const
virtualinherited

Definition at line 1626 of file TrackHandleBase.cxx.

1627 {
1628  std::optional<Amg::Vector3D> start = startPoint();
1629  if (!start) return false;
1630  return start->perp()<1100 &&fabs( start->z())<3500;
1631 }

◆ isRun4EDM()

virtual bool TrackHandle_TrackContainer::isRun4EDM ( ) const
inlinefinalvirtual

Reimplemented from TrackHandleBase.

Definition at line 35 of file TrackHandle_TrackContainer.h.

35 { return true; }

◆ mass()

double TrackHandleBase::mass ( ) const
virtualinherited

Definition at line 1518 of file TrackHandleBase.cxx.

1519 {
1520  if (m_d->massinit)
1521  return m_d->mass;
1522  m_d->massinit = true;
1523  int pdg = pdgCode();
1524  if (pdg) {
1525  bool ok;
1526  double m = VP1ParticleData::particleMass(pdg,ok);
1527  if (ok)
1528  m_d->mass = m;
1529  }
1530  return m_d->mass;
1531 }

◆ measurementText()

QString TrackHandle_TrackContainer::measurementText ( const ActsTrk::TrackStateBackend::ConstTrackStateProxy &  state) const
private

Definition at line 430 of file TrackHandle_TrackContainer.cxx.

431  {
432  QString text("Unknown Measurement");
433  if (state.hasReferenceSurface()) {
434  const auto* actsElement = dynamic_cast<const ActsDetectorElement*>(
435  state.referenceSurface().associatedDetectorElement());
436  if (actsElement) {
437  auto& helperSvc = common()->muonIdHelperSvc();
438  if (helperSvc->isMuon(actsElement->identify()))
439  text = QString(helperSvc->toString(actsElement->identify()).c_str());
440  }
441  }
442  return text;
443 }

◆ measurementType()

TrkObjToString::MeasurementType TrackHandle_TrackContainer::measurementType ( const ActsTrk::TrackStateBackend::ConstTrackStateProxy &  state) const
private

Definition at line 403 of file TrackHandle_TrackContainer.cxx.

404  {
406  if (state.hasReferenceSurface()) {
407  const auto *actsElement = dynamic_cast<const ActsDetectorElement *>(
408  state.referenceSurface().associatedDetectorElement());
409  if (actsElement && common()->muonIdHelperSvc().get()) {
410  auto& idhelper = common()->muonIdHelperSvc()->mdtIdHelper(); // This is a lazy way to get an AtlasID helper. Not ideal if muon geometry is off.
411  if (idhelper.is_mdt(actsElement->identify())) {
413  } else if (idhelper.is_tgc(actsElement->identify())) {
415  } else if (idhelper.is_rpc(actsElement->identify())) {
417  } else if (idhelper.is_csc(actsElement->identify())) {
419  } else if (idhelper.is_stgc(actsElement->identify())) {
421  } else if (idhelper.is_mm(actsElement->identify())) {
423  }
424  }
425  return type;
426  }
428 }

◆ momentum()

Amg::Vector3D TrackHandle_TrackContainer::momentum ( ) const
virtual

Reimplemented from TrackHandleBase.

Definition at line 51 of file TrackHandle_TrackContainer.cxx.

51  {
52  const Acts::BoundTrackParameters trackparams(
53  m_track.referenceSurface().getSharedPtr(), m_track.parameters(),
54  std::nullopt, Acts::ParticleHypothesis::pion());
55  return trackparams.momentum()*1000.;
56 }

◆ 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_TrackContainer::provide_pathInfoPoints ( )
virtual

Reimplemented from TrackHandleBase.

Definition at line 59 of file TrackHandle_TrackContainer.cxx.

59  {
61  auto trackContainerCollHandle =
62  dynamic_cast<const TrackCollHandle_TrackContainer*>(collHandle());
63  auto points = new std::vector<Amg::Vector3D>;
64 
65  auto ctx = trackContainerCollHandle->common()->geometryContext().context();
66  for (auto trackstate : m_trackStates) {
67  if (trackstate.hasSmoothed() && trackstate.hasReferenceSurface()) {
68  const Acts::BoundTrackParameters params(
69  trackstate.referenceSurface().getSharedPtr(), trackstate.smoothed(),
70  trackstate.smoothedCovariance(), Acts::ParticleHypothesis::pion());
71  points->push_back(params.position(ctx));
72  }
73  }
74 
75  return points;
76 }

◆ provide_pathInfoTrkTrack()

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

◆ registerAssocObject()

void TrackHandleBase::registerAssocObject ( AssociatedObjectHandleBase ao)
protectedinherited

Trackhandle assumes ownership.

Definition at line 1449 of file TrackHandleBase.cxx.

1450 {
1451  if (VP1Msg::verbose()) {
1452  if (m_d->associatedObjects.contains(ao)) {
1453  m_d->theclass->collHandle()->systemBase()->message("TrackHandleBase::registerAssocObject ERROR: object already registered!");
1454  return;
1455  }
1456  }
1457  //Assume ownership of this associated object:
1458  if (!ao) {
1459  m_d->theclass->collHandle()->systemBase()->message("TrackHandleBase::registerAssocObject ERROR: object is null!");
1460  return;
1461  }
1462 
1463  m_d->associatedObjects << ao;
1464 }

◆ 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 1269 of file TrackHandleBase.cxx.

1270 {
1271  m_d->touchedmuonchambers.insert(chamberPV);
1272 }

◆ registerTrack()

void TrackHandleBase::registerTrack ( )
privateinherited

Definition at line 650 of file TrackHandleBase.cxx.

651 {
652  if (m_d->line)
653  common()->registerTrack(m_d->line,this);
654 }

◆ rerandomiseRandomMaterial()

void TrackHandleBase::rerandomiseRandomMaterial ( )
inherited

Definition at line 1395 of file TrackHandleBase.cxx.

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

◆ setCustomColouredTSOSParts()

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

Definition at line 356 of file TrackHandleBase.cxx.

357 {
359  return;
360  //Figure out changed bits:
361  TrackCommonFlags::TSOSPartsFlags change(m_d->customColouredTSOSParts ^ f);//^ is XOR
363 
365  return;
366 
367  TrackCommonFlags::TSOSPartsFlags changedShownParts(change & m_d->shownTSOSParts);
368 
369  if (!changedShownParts)
370  return;
371 
373  for (;it!=itE;++it) {
374  if ((*it)->parts()&changedShownParts)
375  (*it)->update3DObjects();
376  }
377 }

◆ 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  VP1Msg::messageDebug(QString("->No change in shown parts. Skipping."));
318  return;
319  }
320 
321  //Figure out changed bits:
322  TrackCommonFlags::TSOSPartsFlags change(m_d->shownTSOSParts ^ f);//^ is XOR
325  return;
326 
328  //Loop over all TSOS objects. Those with changed parts needs shape
329  //and visibility update:
331  for (;it!=itE;++it) {
332  const bool vis = (*it)->parts() & m_d->shownTSOSParts;
333  if (!((*it)->parts()&change)){
334  continue;
335  }
336 
337  if (vis==(*it)->visible()) {
338  //Just update shape:
339  (*it)->update3DObjects();
340  continue;
341  }
342  //Need both shape and visibility updates.
343  if (vis) {
344  //update shape and then turn visible:
345  (*it)->update3DObjects();
346  (*it)->setVisible(vis);
347  } else {
348  //turn invisible and then update (i.e. invalidate) shape:
349  (*it)->setVisible(vis);
350  (*it)->update3DObjects();
351  }
352  }
353 }

◆ setVisible()

void TrackHandleBase::setVisible ( bool  vis)
inherited

use by the collection handle.

Definition at line 434 of file TrackHandleBase.cxx.

435 {
436  std::cout<<"TrackHandleBase::setVisible"<<std::endl;
437  QString tmp = (vis)?"True":"False";
438  QString tmp2 = (m_visible)?"True":"False";
439  VP1Msg::messageDebug(QString("TrackHandleBase calling setVisible with vis=")+tmp+QString(", and m_visible=")+tmp2 );
440  if (vis==m_visible)
441  return;
442  std::cout<<"TrackHandleBase::setVisible 1"<<std::endl;
443 
444  m_visible=vis;
445  if (vis) {
447  if (!touchedMuonChambers().empty()) {
450  }
451  if (!m_d->line)
452  m_d->rebuild3DObjects();//The call to rebuild also fixes attached state.
453  else
454  m_d->attach3DObjects();
455  } else {
457  if (!touchedMuonChambers().empty()) {
460  }
461  m_d->detach3DObjects();
462  }
463 
464  std::cout<<"TrackHandleBase::setVisible 2"<<std::endl;
465 
466 
467  bool initTSOS(false);
470  initTSOS = true;
471  }
472  std::cout<<"m_d->tsos_ascobjs: "<<m_d->tsos_ascobjs<<std::endl;
473  std::cout<<"m_d->shownTSOSParts!=TrackCommonFlags::TSOS_NoObjects "<<(m_d->shownTSOSParts!=TrackCommonFlags::TSOS_NoObjects)<<std::endl;
474  std::cout<<"TrackHandleBase::setVisible 3"<<std::endl;
475 
476  if (!initTSOS && m_d->tsos_ascobjs) {
478  it(m_d->tsos_ascobjs->begin()),
479  itE(m_d->tsos_ascobjs->end());
481  for (;it!=itE;++it) {
482  if ((*it)->visible()!=((*it)->parts() & m_d->shownTSOSParts))
483  (*it)->toggleVisible();
484  }
485  } else {
486  for (;it!=itE;++it) {
487  if ((*it)->visible())
488  (*it)->setVisible(false);
489  }
490  }
491  }
492  std::cout<<"TrackHandleBase::setVisible 4"<<std::endl;
493 
495 
496  std::map<std::pair<int,double>,AssocObjAttachmentHandle *>::iterator it,itE(m_d->attachmentHandles.end());
497  for (it = m_d->attachmentHandles.begin();it!=itE;++it)
498  it->second->trackVisibilityChanged();
499 
500  //Label
501 
502 }

◆ shortInfo()

QString TrackHandle_TrackContainer::shortInfo ( ) const
virtual

returns mom and hit information about track

Reimplemented from TrackHandleBase.

Definition at line 261 of file TrackHandle_TrackContainer.cxx.

261  {
263  mom /= CLHEP::GeV;
264 
265  // format info string
266  QString l;
267  l += "|Pt|=" + VP1Msg::str(mom.perp()) + " [GeV], ";
268  l += "|P|=" + VP1Msg::str(mom.mag()) + " [GeV], ";
269  return l;
270 }

◆ 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 1587 of file TrackHandleBase.cxx.

1588 {
1590  if (m_d->pathInfo_TrkTrack) {
1593  for (; tsos_iter != tsos_end; ++tsos_iter) {
1594  if (common()->trackSanityHelper()->isSafe(*tsos_iter)) {
1595  const Trk::TrackParameters* trackParam = (*tsos_iter)->trackParameters();
1596  if (common()->trackSanityHelper()->isSafe(trackParam))
1597  return trackParam->position();
1598  }
1599  }
1600  } else if (m_d->pathInfo_Points&&!m_d->pathInfo_Points->empty()) {
1601  return m_d->pathInfo_Points->at(0);
1602  }
1603  return {};
1604 }

◆ touchedMuonChambers()

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

Definition at line 1275 of file TrackHandleBase.cxx.

1276 {
1277  if (!m_d->inittouchedchambers) {
1280  m_d->inittouchedchambers=true;
1281  }
1282  return m_d->touchedmuonchambers;
1283 }

◆ track()

ActsTrk::TrackContainer::ConstTrackProxy TrackHandle_TrackContainer::track ( ) const
inline

Definition at line 40 of file TrackHandle_TrackContainer.h.

40 { return m_track; }

◆ trackStates()

const std::vector<ActsTrk::MultiTrajectory::ConstTrackStateProxy>& TrackHandle_TrackContainer::trackStates ( ) const
inline

Definition at line 41 of file TrackHandle_TrackContainer.h.

41 { return m_trackStates; }

◆ type()

virtual QString TrackHandle_TrackContainer::type ( ) const
inlinevirtual

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

Reimplemented from TrackHandleBase.

Definition at line 51 of file TrackHandle_TrackContainer.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 505 of file TrackHandleBase.cxx.

506 {
507  VP1Msg::messageVerbose(QString("TrackHandleBase::update3DObject with maxR set to ")+QString::number(maxR) );
508  if (maxR>0.0) {
509  m_d->tempMaxPropRadius=maxR;
510  }
511  if ( invalidatePropagatedPoints) {
512  if (m_d->points_propagated != m_d->points_raw) {
513  delete m_d->points_propagated;m_d->points_propagated = nullptr;
514  }
515  delete m_d->points_raw;m_d->points_raw = nullptr;
518  }
519  if (m_visible) {
521  } else {
522  //Simply clear the present 3D objects. They will only be recreated if/when the track becomes visible again.
523  clearLine();
524  }
525  m_d->tempMaxPropRadius=0.0;
526 }

◆ updateInDetProjections()

void TrackHandleBase::updateInDetProjections ( )
inherited

Definition at line 529 of file TrackHandleBase.cxx.

530 {
531  //Invalidate points of indet projections if already calculated:
535  m_d->points_raw_id_projections = nullptr;
537  //Rebuild 3D objects:
538  update3DObjects();
539 }

◆ updateMaterial()

void TrackHandleBase::updateMaterial ( )
inherited

Definition at line 954 of file TrackHandleBase.cxx.

955 {
956  //We need to change the current material. This means we need to
957  //clear the cache. Only if we are visible do we need to do a
958  //detach->clear material->attach cycle to trigger attachment under new material.
959 
960  if (!m_currentmaterial)
961  return;//We have no material cached and is thus not attached either.
962  if (m_visible) {
963  //See if the material changed. If it did, detach, update the material, attach again.
964  SoMaterial * newmat = m_d->determineMaterial();
965  newmat->ref();
966  if (newmat!=m_currentmaterial) {
967  m_d->detach3DObjects();
968  m_currentmaterial->unref();
969  m_currentmaterial = newmat;
970  m_d->attach3DObjects();
971  m_d->materialChanged();
972  } else {
973  newmat->unref();
974  }
975  } else {
976  //Just clear material.
977  m_currentmaterial->unref();
978  m_currentmaterial = nullptr;
979  m_d->materialChanged();
980  }
981 }

◆ updateMuonProjections()

void TrackHandleBase::updateMuonProjections ( )
inherited

Definition at line 542 of file TrackHandleBase.cxx.

543 {
544  //Invalidate points of indet projections if already calculated:
548  m_d->points_raw_muon_projections = nullptr;
550  //Rebuild 3D objects:
551  update3DObjects();
552 }

◆ updateObjectBrowser()

void TrackHandle_TrackContainer::updateObjectBrowser ( )
virtual

Reimplemented from TrackHandleBase.

Definition at line 272 of file TrackHandle_TrackContainer.cxx.

272  {
273  VP1Msg::messageVerbose("TrackHandle_TrackContainer::updateObjectBrowser");
274 
275  if (!browserTreeItem()) {
277  "TrackHandle_TrackContainer::updateObjectBrowser: No m_objBrowseTree!");
278  return;
279  }
280 
281  if (!visible()) {
282  browserTreeItem()->setFlags(Qt::ItemFlag()); // not selectable, not enabled
283  } else {
284  browserTreeItem()->setFlags(Qt::ItemIsSelectable |
285  Qt::ItemIsEnabled); // selectable, enabled
286  }
287  QFont font = browserTreeItem()->font(0);
288  font.setStrikeOut(!visible());
289  browserTreeItem()->setFont(0, font);
290  browserTreeItem()->setFont(1, font);
291  // FIXME! Only do if necessary i.e. if something affecting this TSOS has
292  // changed.
293 
294  QList<AssociatedObjectHandleBase*> list = getAllAscObjHandles();
295 
296  if (list.empty()) {
298  "No ASC objects associated with this track - no track components "
299  "visible yet?");
300  return;
301  }
302 
303  unsigned int numOfTS = 0;
304 
305  for (auto trackstate : m_trackStates) {
306  // We assume that there is an ASC for every trackstate
307  AscObj_TrackState* asc = dynamic_cast<AscObj_TrackState*>(list.at(numOfTS));
308  if (!asc) {
310  "Could not cast to AscObj_TrackState, or could not find matching Asc "
311  "in list of size " +
312  QString::number(list.size()));
313  numOfTS++;
314  continue;
315  }
316 
317  if (asc->trackState().index() != trackstate.index()) {
319  "WARNING! TrackHandle_TrackContainer::updateObjectBrowser: " +
320  QString::number(numOfTS) +
321  ": ASC index mismatch with trackstate from loop having " +
322  QString::number(trackstate.index()) + " and ASC TS having " +
323  QString::number(asc->trackState().index()));
324  numOfTS++;
325  continue;
326  }
327 
328  if (!asc->browserTreeItem()) {
329  // not set yet - so need to do this now. Can we just use the index?
330  asc->setBrowserTreeItem(browserTreeItem()->child(numOfTS));
331  }
332 
333  if (!asc->browserTreeItem()) {
334  VP1Msg::message("Could not find matching browserTreeItem");
335  numOfTS++;
336  continue;
337  }
338 
339  if (!asc->visible()) {
340  asc->browserTreeItem()->setFlags(
341  Qt::ItemFlag()); // not selectable, not enabled
342  } else {
343  asc->browserTreeItem()->setFlags(
344  Qt::ItemIsSelectable | Qt::ItemIsEnabled); // selectable, enabled
345  }
346  QFont itemFont = asc->browserTreeItem()->font(0);
347  itemFont.setStrikeOut(!asc->visible());
348  asc->browserTreeItem()->setFont(0, itemFont);
349  asc->browserTreeItem()->setFont(1, itemFont);
350  numOfTS++;
351  }
352 }

◆ updateRandomColourTransparencyAndBrightness()

void TrackHandleBase::updateRandomColourTransparencyAndBrightness ( )
inherited

Definition at line 1436 of file TrackHandleBase.cxx.

1437 {
1438  if ( !m_d->randommaterial )//We will anyway set up correctly when needed.
1439  return;
1440  float r,g,b;
1441  m_d->randommaterial->diffuseColor[0].getValue(r,g,b);
1443  collHandle()->collMaterialBrightness(),
1444  collHandle()->collMaterialTransparency());
1445 }

◆ 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_TrackContainer::visibleStateChanged ( )
privatevirtual

override if need to take action in this case.

Reimplemented from TrackHandleBase.

Definition at line 79 of file TrackHandle_TrackContainer.cxx.

◆ zoomToTSOS()

SoNode * TrackHandle_TrackContainer::zoomToTSOS ( unsigned int  index)

Depending on controller configuration attempt to zoom to the corresponding TSOS & returned detailed node matching it.

Definition at line 239 of file TrackHandle_TrackContainer.cxx.

239  {
241  // now find matching AscObj_TSOS
242  auto trackState = m_trackStates.at(index);
243  QList<AssociatedObjectHandleBase*> list = getAllAscObjHandles();
245  "TrackHandle_TrackContainer::zoomToTSOS: checking ASC " +
246  QString::number(index) + " of " + QString::number(list.size()));
247 
248  if ( (int)index < list.size()){
249  AscObj_TrackState* asc = dynamic_cast<AscObj_TrackState*>(list.at(index));
250  if (asc && asc->trackState().index()==trackState.index()) {
252  "TrackHandle_TrackContainer::zoomToTSOS: this ASC matches " +
254  return asc->shapeDetailed();
255  }
256  }
257 
258  return nullptr;
259 }

Member Data Documentation

◆ m_collhandle

TrackCollHandleBase* TrackHandleBase::m_collhandle
privateinherited

Definition at line 178 of file TrackHandleBase.h.

◆ m_container

const ActsTrk::TrackContainer& TrackHandle_TrackContainer::m_container
protected

Definition at line 63 of file TrackHandle_TrackContainer.h.

◆ m_currentmaterial

SoMaterial* TrackHandleBase::m_currentmaterial
privateinherited

Definition at line 179 of file TrackHandleBase.h.

◆ m_d

Imp* TrackHandleBase::m_d
privateinherited

Definition at line 173 of file TrackHandleBase.h.

◆ m_track

ActsTrk::TrackContainer::ConstTrackProxy TrackHandle_TrackContainer::m_track
protected

Definition at line 62 of file TrackHandle_TrackContainer.h.

◆ m_trackStates

std::vector<ActsTrk::MultiTrajectory::ConstTrackStateProxy> TrackHandle_TrackContainer::m_trackStates
protected

Definition at line 64 of file TrackHandle_TrackContainer.h.

◆ m_visible

bool TrackHandleBase::m_visible
privateinherited

Definition at line 177 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_TrackContainer::addTrackState
void addTrackState(const typename ActsTrk::TrackStateBackend::ConstTrackStateProxy &state, std::vector< AssociatedObjectHandleBase * > *ascobjs, unsigned int index)
Definition: TrackHandle_TrackContainer.cxx:389
TrackHandleBase::browserTreeItem
QTreeWidgetItem * browserTreeItem() const
Definition: TrackHandleBase.cxx:2026
beamspotman.r
def r
Definition: beamspotman.py:676
AscObj_TrackState::parts
virtual TrackCommonFlags::TSOSPartsFlags parts() const
Definition: AscObj_TrackState.h:42
TrackHandleBase::touchedMuonChambers
const std::set< GeoPVConstLink > & touchedMuonChambers() const
Definition: TrackHandleBase.cxx:1275
TrackHandleBase::visibleStateChanged
virtual void visibleStateChanged()
override if need to take action in this case.
Definition: TrackHandleBase.cxx:2029
Trk::proton
@ proton
Definition: ParticleHypothesis.h:31
TrackHandleBase::Imp::theclass
TrackHandleBase * theclass
Definition: TrackHandleBase.cxx:109
GeV
#define GeV
Definition: PhysicsAnalysis/TauID/TauAnalysisTools/Root/HelperFunctions.cxx:17
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
TrackHandleBase::fillObjectBrowser
virtual void fillObjectBrowser(QList< QTreeWidgetItem * > &list)
Called in child classes.
Definition: TrackHandleBase.cxx:2009
DeMoUpdate.tmp2
string tmp2
Definition: DeMoUpdate.py:1168
python.SystemOfUnits.m
int m
Definition: SystemOfUnits.py:91
TrackHandle_TrackContainer::m_track
ActsTrk::TrackContainer::ConstTrackProxy m_track
Definition: TrackHandle_TrackContainer.h:62
TrackHandleBase::Imp::attachmentHandles
std::map< std::pair< int, double >, AssocObjAttachmentHandle * > attachmentHandles
Definition: TrackHandleBase.cxx:155
AssociatedObjectHandleBase::visible
bool visible() const
Definition: AssociatedObjectHandleBase.h:61
TrackHandle_TrackContainer::measurementType
TrkObjToString::MeasurementType measurementType(const ActsTrk::TrackStateBackend::ConstTrackStateProxy &state) const
Definition: TrackHandle_TrackContainer.cxx:403
TrkObjToString::RPC
@ RPC
Definition: TrkObjToString.h:44
TrackHandleBase::clearLine
void clearLine()
Definition: TrackHandleBase.cxx:640
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:1508
DataVector::rend
const_reverse_iterator rend() const noexcept
Return a const_reverse_iterator pointing at the beginning of the collection.
Trk::ParametersBase::position
const Amg::Vector3D & position() const
Access method for the position.
TrkObjToString::TGC
@ TGC
Definition: TrkObjToString.h:45
index
Definition: index.py:1
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:179
TrackHandleBase::Imp::detach3DObjects
void detach3DObjects()
Definition: TrackHandleBase.cxx:935
mergePhysValFiles.start
start
Definition: DataQuality/DataQualityUtils/scripts/mergePhysValFiles.py:14
TrackHandleBase::Imp::touchedmuonchambers
std::set< GeoPVConstLink > touchedmuonchambers
Definition: TrackHandleBase.cxx:143
TrackHandleBase::getNTGCHits
virtual unsigned getNTGCHits() const
Definition: TrackHandleBase.h:114
TrackSysCommonData::touchedMuonChamberHelper
TouchedMuonChamberHelper * touchedMuonChamberHelper() const
Definition: TrackSysCommonData.h:129
TrackHandle_TrackContainer::type
virtual QString type() const
return very short word with type (maybe link with collection type?)
Definition: TrackHandle_TrackContainer.h:51
PlotCalibFromCool.begin
begin
Definition: PlotCalibFromCool.py:94
TrackHandleBase::collHandle
TrackCollHandleBase * collHandle() const
Definition: TrackHandleBase.h:68
TrackHandleBase::getAllAscObjHandles
const QList< AssociatedObjectHandleBase * > & getAllAscObjHandles() const
override if need to take action in this case.
Definition: TrackHandleBase.cxx:1634
skel.it
it
Definition: skel.GENtoEVGEN.py:396
TrackHandle_TrackContainer::m_container
const ActsTrk::TrackContainer & m_container
Definition: TrackHandle_TrackContainer.h:63
TrackHandleBase::Imp::massinit
bool massinit
Definition: TrackHandleBase.cxx:113
ParticleTest.tp
tp
Definition: ParticleTest.py:25
xAOD::pion
@ pion
Definition: TrackingPrimitives.h:196
UploadAMITag.l
list l
Definition: UploadAMITag.larcaf.py:158
TrackSysCommonData::registerTrack
void registerTrack(SoNode *, TrackHandleBase *)
Definition: TrackSysCommonData.cxx:132
TrackHandleBase::getNSCTHits
virtual unsigned getNSCTHits() const
Definition: TrackHandleBase.h:108
MCP::ScaleSmearParam::r2
@ r2
VP1String::str
static QString str(const QString &s)
Definition: VP1String.h:49
empty
bool empty(TH1 *h)
Definition: computils.cxx:295
TrackHandleBase::Imp::points_propagated_muon_projections
Amg::SetVectorVector3D * points_propagated_muon_projections
Definition: TrackHandleBase.cxx:130
TruthTest.itE
itE
Definition: TruthTest.py:25
TrackHandleBase::AssocObjAttachmentHandle
friend class AssocObjAttachmentHandle
Definition: TrackHandleBase.h:171
AscObj_TrackState
Definition: AscObj_TrackState.h:29
DeMoUpdate.reverse
reverse
Definition: DeMoUpdate.py:563
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
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:117
TrackHandleBase::Imp::determineMaterial
SoMaterial * determineMaterial()
Definition: TrackHandleBase.cxx:1286
TrackHandleBase::registerAssocObject
void registerAssocObject(AssociatedObjectHandleBase *)
Trackhandle assumes ownership.
Definition: TrackHandleBase.cxx:1449
TrackHandleBase::calculateCharge
virtual double calculateCharge() const
Definition: TrackHandleBase.cxx:1481
TrackHandleBase::ensureTouchedMuonChambersInitialised
virtual void ensureTouchedMuonChambersInitialised() const
Definition: TrackHandleBase.h:156
TrackHandleBase::getNTRTHits
virtual unsigned getNTRTHits() const
Definition: TrackHandleBase.h:109
TrackHandleBase::Imp::points_propagated_id_projections
Amg::SetVectorVector3D * points_propagated_id_projections
Definition: TrackHandleBase.cxx:129
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:152
MuonGM::MuonDetectorManager::getMdtReadoutElement
const MdtReadoutElement * getMdtReadoutElement(const Identifier &id) const
access via extended identifier (requires unpacking)
Definition: MuonDetDescr/MuonReadoutGeometry/src/MuonDetectorManager.cxx:204
TrackHandle_TrackContainer::m_trackStates
std::vector< ActsTrk::MultiTrajectory::ConstTrackStateProxy > m_trackStates
Definition: TrackHandle_TrackContainer.h:64
LArG4FSStartPointFilter.rand
rand
Definition: LArG4FSStartPointFilter.py:80
TrackHandleBase::Imp::pathInfo_TrkTrack
const Trk::Track * pathInfo_TrkTrack
Used in the case of a Trk::Track.
Definition: TrackHandleBase.cxx:159
lumiFormat.i
int i
Definition: lumiFormat.py:85
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:833
python.CaloCondTools.g
g
Definition: CaloCondTools.py:15
TrackHandleBase::visible
bool visible() const
Definition: TrackHandleBase.h:67
TrackHandleBase::ensureInitTSOSs
virtual void ensureInitTSOSs(std::vector< AssociatedObjectHandleBase * > *&)
Ensure that the TSOSs are initialized.
Definition: TrackHandleBase.cxx:380
TrackHandleBase::Imp::ntrackhandles
static int ntrackhandles
Definition: TrackHandleBase.cxx:81
Trk::electron
@ electron
Definition: ParticleHypothesis.h:27
TrackHandleBase::getNRPCHits
virtual unsigned getNRPCHits() const
Definition: TrackHandleBase.h:113
TrackHandleBase::Imp::associatedObjects
QList< AssociatedObjectHandleBase * > associatedObjects
Definition: TrackHandleBase.cxx:154
TrkObjToString::CSC
@ CSC
Definition: TrkObjToString.h:43
AssocObjAttachmentHandle
Definition: TrackHandleBase.h:202
Trk::pion
@ pion
Definition: ParticleHypothesis.h:29
TrackHandleBase::getNMuonHits
virtual unsigned getNMuonHits() const
Definition: TrackHandleBase.h:110
VP1ParticleData::particleCharge
static double particleCharge(const int &pdgcode, bool &ok)
Definition: VP1ParticleData.cxx:103
TrkObjToString::MDT
@ MDT
Definition: TrkObjToString.h:46
AscObj_TrackState::setVisible
virtual void setVisible(bool)
Definition: AscObj_TrackState.cxx:484
TrkObjToString::type
static MeasurementType type(const Trk::PrepRawData *prd)
Definition: TrkObjToString.cxx:64
TrackHandleBase::Imp::chargeinit
bool chargeinit
Definition: TrackHandleBase.cxx:111
hist_file_dump.f
f
Definition: hist_file_dump.py:135
TrackHandleBase::Imp::ensureInitPointsPropagated
void ensureInitPointsPropagated()
Definition: TrackHandleBase.cxx:1062
histSizes.list
def list(name, path='/')
Definition: histSizes.py:38
ActsDetectorElement
Definition: ActsDetectorElement.h:42
Trk::ParametersBase
Definition: ParametersBase.h:55
AscObj_TrackState::setBrowserTreeItem
virtual void setBrowserTreeItem(QTreeWidgetItem *obt)
Definition: AscObj_TrackState.h:52
TrackHandle_TrackContainer::ensureInitTrackStateCache
void ensureInitTrackStateCache()
Ensure that the track state cache is initialized.
Definition: TrackHandle_TrackContainer.cxx:359
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:112
TrackHandleBase::Imp::rebuild3DObjects
void rebuild3DObjects()
Definition: TrackHandleBase.cxx:658
TrackSysCommonData::unregisterTrack
void unregisterTrack(SoNode *)
Definition: TrackSysCommonData.cxx:147
TrackHandleBase::getNMMHits
virtual unsigned getNMMHits() const
Definition: TrackHandleBase.h:116
TrackHandleBase::m_collhandle
TrackCollHandleBase * m_collhandle
Definition: TrackHandleBase.h:178
TrackHandleBase::common
TrackSysCommonData * common() const
Definition: TrackHandleBase.cxx:255
TrackHandleBase::TrackHandleBase
TrackHandleBase(TrackCollHandleBase *)
Definition: TrackHandleBase.cxx:204
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:107
TrackHandleBase::Imp::attach3DObjects
void attach3DObjects()
Definition: TrackHandleBase.cxx:900
TrackHandleBase::startPoint
virtual std::optional< Amg::Vector3D > startPoint() const
returns 0 if can't find start point.
Definition: TrackHandleBase.cxx:1587
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:176
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
Used in all other cases.
Definition: TrackHandleBase.cxx:160
TrackHandleBase::Imp::charge
double charge
Definition: TrackHandleBase.cxx:112
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition: GeoPrimitives.h:47
TrackSysCommonData::muonIdHelperSvc
ServiceHandle< Muon::IMuonIdHelperSvc > & muonIdHelperSvc()
Definition: TrackSysCommonData.cxx:217
Trk::kaon
@ kaon
Definition: ParticleHypothesis.h:30
TrackHandle_TrackContainer::momentum
virtual Amg::Vector3D momentum() const
Definition: TrackHandle_TrackContainer.cxx:51
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:172
TrkObjToString::typeName
static std::string typeName(MeasurementType type)
Returns a very short summary of the object type.
Definition: TrkObjToString.h:87
TrackHandleBase::getNCSCHits
virtual unsigned getNCSCHits() const
Definition: TrackHandleBase.h:115
TrackHandle_TrackContainer::measurementText
QString measurementText(const ActsTrk::TrackStateBackend::ConstTrackStateProxy &state) const
Definition: TrackHandle_TrackContainer.cxx:430
VP1DetInfo::muonDetMgr
static const MuonGM::MuonDetectorManager * muonDetMgr()
Definition: VP1DetInfo.cxx:148
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
TrkObjToString::Unknown
@ Unknown
Definition: TrkObjToString.h:53
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:505
TrackHandleBase::provide_pathInfoTrkTrack
virtual const Trk::Track * provide_pathInfoTrkTrack() const
Definition: TrackHandleBase.h:149
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:83
TrackHandleBase::Imp::points_raw_muon_projections
Amg::SetVectorVector3D * points_raw_muon_projections
Definition: TrackHandleBase.cxx:128
TrackCommonFlags::TSOS_NoObjects
@ TSOS_NoObjects
Definition: TrackCommonFlags.h:43
TrackHandleBase::shownTSOSParts
TrackCommonFlags::TSOSPartsFlags shownTSOSParts() const
Definition: TrackHandleBase.cxx:300
TrackHandleBase::Imp::points_raw_id_projections
Amg::SetVectorVector3D * points_raw_id_projections
Definition: TrackHandleBase.cxx:127
TrackHandleBase::Imp::tempMaxPropRadius
float tempMaxPropRadius
Definition: TrackHandleBase.cxx:182
TrackCollHandle_TrackContainer
Definition: TrackCollHandle_TrackContainer.h:20
makeTransCanvas.text
text
Definition: makeTransCanvas.py:11
TrackHandleBase::Imp::customColouredTSOSParts
TrackCommonFlags::TSOSPartsFlags customColouredTSOSParts
Definition: TrackHandleBase.cxx:177
TrackHandleBase::Imp::points_propagated
std::vector< Amg::Vector3D > * points_propagated
Definition: TrackHandleBase.cxx:125
TrackHandleBase::Imp::line
SoLineSet * line
Definition: TrackHandleBase.cxx:116
plotBeamSpotMon.font
font
Definition: plotBeamSpotMon.py:80
TrackHandleBase::baseInfo
QStringList baseInfo() const
Definition: TrackHandleBase.cxx:1551
TrackHandleBase::hasCharge
bool hasCharge() const
Definition: TrackHandleBase.h:99
AssociatedObjectHandleBase::shapeDetailed
SoSeparator * shapeDetailed() const
Definition: AssociatedObjectHandleBase.cxx:206
VP1Msg::verbose
static bool verbose()
Definition: VP1Msg.h:31
AscObj_TrackState::trackState
const ActsTrk::TrackStateBackend::ConstTrackStateProxy trackState() const
Definition: AscObj_TrackState.h:46
MuonGM::MuonDetectorManager::getsTgcReadoutElement
const sTgcReadoutElement * getsTgcReadoutElement(const Identifier &id) const
access via extended identifier (requires unpacking)
Definition: MuonDetDescr/MuonReadoutGeometry/src/MuonDetectorManager.cxx:259
TrackCollHandleBase::common
TrackSysCommonData * common() const
Definition: TrackCollHandleBase.h:79
PowhegControl_ttFCNC_NLO.params
params
Definition: PowhegControl_ttFCNC_NLO.py:226
TrackHandleBase::m_visible
bool m_visible
Definition: TrackHandleBase.h:177
TrackHandleBase::mass
virtual double mass() const
Definition: TrackHandleBase.cxx:1518
VP1JobConfigInfo::hasMuonGeometry
static bool hasMuonGeometry()
Definition: VP1JobConfigInfo.cxx:134
TrkObjToString::sTGC
@ sTGC
Definition: TrkObjToString.h:48
TrackHandleBase::Imp::inittouchedchambers
bool inittouchedchambers
Definition: TrackHandleBase.cxx:144
AscObj_TrackState::browserTreeItem
virtual QTreeWidgetItem * browserTreeItem() const
Definition: AscObj_TrackState.h:51
TrackHandleBase::unknown
static double unknown()
Definition: TrackHandleBase.h:102
python.compressB64.c
def c
Definition: compressB64.py:93
TrkObjToString::MeasurementType
MeasurementType
Definition: TrkObjToString.h:39
TrackHandleBase::Imp::tsos_ascobjs
std::vector< AssociatedObjectHandleBase * > * tsos_ascobjs
Definition: TrackHandleBase.cxx:178
IVP1System::message
void message(const QString &) const
Definition: IVP1System.cxx:336
jobOptions.points
points
Definition: jobOptions.GenevaPy8_Zmumu.py:97
TrackHandleBase::Imp::mass
double mass
Definition: TrackHandleBase.cxx:114
DataVector::begin
const_iterator begin() const noexcept
Return a const_iterator pointing at the beginning of the collection.
common
Definition: common.py:1
TrackHandleBase::Imp::points_raw
std::vector< Amg::Vector3D > * points_raw
Definition: TrackHandleBase.cxx:124