|  | ATLAS Offline Software
    | 
 
 
 
Go to the documentation of this file.
   27 #include "Identifier/Identifier.h" 
   35 #include <Inventor/nodes/SoSeparator.h> 
   36 #include <Inventor/nodes/SoNode.h> 
   43     m_nhits_pixel(0), m_nhits_sct(0), m_nhits_trt(0), m_nhits_muon_phi(0), m_nhits_rpc(0), m_nhits_mdt(0), 
 
   44     m_nhits_tgc(0), m_nhits_csc(0), m_nhits_mm(0), m_nhits_stgc(0), m_hitInfoStatus(-1),
 
   66     l << 
"ERROR: This TrackHandle_TrkTrack handle has a NULL track pointer!!";
 
   74   if (
common()->controller()->printVerboseInfoOnSingleSelection()) {
 
   75     l << 
" ===== dump =====";
 
   78     l << QString(
s.str().c_str()).split(
'\n');
 
   95   for (; tsos_iter != tsos_end; ++tsos_iter) {
 
   98     VP1Msg::messageVerbose(
"TrackHandle_TrkTrack WARNING: Skipping unsafe TSOS for touched muon chamber determination.");
 
  115         VP1Msg::messageVerbose(
"TrackHandle_TrkTrack WARNING: Skipping unsafe TSOS for touched muon chamber determination.");
 
  134     if (!
common()->trackSanityHelper()->isSafe(param))
 
  136     return param->momentum();
 
  159     m_hitInfoStatus = 
VP1TrackSummary::countHits( 
m_trk, 
m_nhits_pixel, 
m_nhits_sct, 
m_nhits_trt, 
m_nhits_muon_phi, 
m_nhits_rpc, 
m_nhits_mdt, 
m_nhits_tgc, 
m_nhits_csc, 
m_nhits_mm, 
m_nhits_stgc) ? 1 : 0;
 
  186       TSOSitem->setFlags(Qt::ItemFlag());
 
  187       QFont itemFont = TSOSitem->font(0);
 
  188       itemFont.setStrikeOut(
true);
 
  189       TSOSitem->setFont(0, itemFont);
 
  190       TSOSitem->setFont(1, itemFont);
 
  201       QTreeWidgetItem* measItem = 
new QTreeWidgetItem(TSOSitem);
 
  202       measItem->setExpanded(
true); 
 
  203       measItem->setFlags(Qt::ItemIsEnabled);
 
  204       measItem->setText(0, measName);
 
  208       for (
int i = 0; 
i < (
list.size()-1); ){
 
  209         QTreeWidgetItem* subparamItem = 
new QTreeWidgetItem(measItem);
 
  210         subparamItem->setText(0, 
list.at(
i++) );
 
  211         subparamItem->setText(1, 
list.at(
i++) );   
 
  212         subparamItem->setFlags(Qt::ItemIsEnabled); 
 
  217     if ( (*it)->trackParameters () ) {
 
  218       if (!
first) tsosText.append(
" + ");
 
  219       tsosText.append(
"Parameters");
 
  221       QTreeWidgetItem* paramItem = 
new QTreeWidgetItem(TSOSitem);
 
  222       paramItem->setExpanded(
true); 
 
  223       paramItem->setFlags(Qt::ItemIsEnabled); 
 
  228       for (
int i = 0; 
i < (
list.size()-1); ){
 
  229         QTreeWidgetItem* subparamItem = 
new QTreeWidgetItem(paramItem);
 
  230         subparamItem->setText(0, 
list.at(
i++) );
 
  231         subparamItem->setText(1, 
list.at(
i++) ); 
 
  232         subparamItem->setFlags(Qt::ItemIsEnabled);   
 
  237     if ( (*it)->materialEffectsOnTrack () ){
 
  238       if (!
first) tsosText.append(
" + ");
 
  239       tsosText.append(
"MaterialEffectsOnTrack"); 
 
  240       QTreeWidgetItem* meItem = 
new QTreeWidgetItem(TSOSitem);
 
  241       meItem->setExpanded(
true); 
 
  242       meItem->setFlags(Qt::ItemIsEnabled);
 
  249     if ( (*it)->fitQualityOnSurface () ){ 
 
  250       if (!
first) tsosText.append(
" + ");
 
  251       tsosText.append(
"FitQuality");
 
  252       QTreeWidgetItem* fqItem = 
new QTreeWidgetItem(TSOSitem);
 
  253       fqItem->setExpanded(
true); 
 
  254       fqItem->setFlags(Qt::ItemIsEnabled);
 
  255       fqItem->setText(0,       QString(
"FitQuality") );
 
  263       if (!
first) tsosText.append(
" + ");
 
  264       tsosText.append(
"Outlier"); 
 
  268       if (!
first) tsosText.append(
" + ");
 
  269       tsosText.append(
"InertMaterial"); 
 
  273       if (!
first) tsosText.append(
" + ");
 
  274       tsosText.append(
"BremPoint"); 
 
  278       if (!
first) tsosText.append(
" + ");
 
  279       tsosText.append(
"Perigee"); 
 
  283       if (!
first) tsosText.append(
" + ");
 
  284       tsosText.append(
"Hole"); 
 
  286     TSOSitem->setText(1, tsosText );
 
  297     for (
int i = 0; 
i < 
list.size(); ++
i) {
 
  352     VP1Msg::message(
"No ASC objects associated with this track - no track components visible yet?");
 
  358   unsigned int numOfTSOS=0;
 
  359   for (;
it!=
itE;++
it,++numOfTSOS){
 
  364       for (
int i = 0; 
i < 
list.size(); ++
i) {          
 
  389       asc->
browserTreeItem()->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled); 
 
  392     itemFont.setStrikeOut(!asc->
visible());
 
  416     if ((*it)->surface().associatedDetectorElementIdentifier()==tmpInt) {
 
  420     if ((*it)->surface().associatedDetectorElementIdentifier()==tmpInt2) {
 
  
QTreeWidgetItem * browserTreeItem() const
virtual void visibleStateChanged()
override if need to take action in this case.
@ Perigee
This represents a perigee, and so will contain a Perigee object only.
void ensureTouchedMuonChambersInitialiasedFromMeas(const Trk::MeasurementBase *meas) const
Const iterator class for DataVector/DataList.
const FitQuality * fitQuality() const
return a pointer to the fit quality const-overload
TrackSystemController * controller() const
virtual void fillObjectBrowser(QList< QTreeWidgetItem * > &list)
Called in child classes.
void registerTouchedMuonChamber(const GeoPVConstLink &) const
If not earlier, touched muon chambers must me registered at latest when this method is invoked.
void visibleStateChanged()
override if need to take action in this case.
void currentMaterialChanged()
virtual unsigned getNMDTHits() const
virtual unsigned getNTRTHits() const
const Trk::TrackStates * trackStateOnSurfaces() const
return a pointer to a const DataVector of const TrackStateOnSurfaces.
const TrackInfo & info() const
Returns a const ref to info of a const tracks.
static bool isSafe(const Trk::TrackStateOnSurface *)
virtual unsigned getNTGCHits() const
TrackCollHandleBase * collHandle() const
const QList< AssociatedObjectHandleBase * > & getAllAscObjHandles() const
override if need to take action in this case.
virtual unsigned getNRPCHits() const
virtual const Trk::FitQuality * getFitQuality() const
virtual unsigned getNMMHits() const
const Trk::Track * trkTrackPointer() const
virtual QStringList clicked() const
Called when user selects the node (stringlist is displayed in messagebox).
static QString str(const QString &s)
virtual const MuonGM::MuonReadoutElement * getMuonReadoutElement(const Trk::RIO_OnTrack &mb) const
Base class for the XxxReadoutElement, with Xxx = Mdt, Rpc, Tgc, Csc.
@ Outlier
This TSoS contains an outlier, that is, it contains a MeasurementBase/RIO_OnTrack which was not used ...
unsigned m_nhits_muon_phi
virtual bool containsDetElement(const QString &) const
static QStringList fullInfo(const Trk::MeasurementBase &tp)
Returns list of key, value, key, value etc.
virtual unsigned getNCSCHits() const
SoNode * zoomToTSOS(unsigned int index)
Depending on controller configuration attempt to zoom to the corresponding TSOS & returned detailed n...
virtual const RIO_OnTrack & rioOnTrack(unsigned int) const =0
returns the RIO_OnTrack (also known as ROT) objects depending on the integer.
virtual unsigned getNPixelHits() const
@ Hole
A hole on the track - this is defined in the following way.
virtual Amg::Vector3D momentum() const
virtual Amg::Vector3D momentum() const
static QString name(const Trk::MeasurementBase &mb)
Base class for all CompetingRIOsOnTack implementations, extends the common MeasurementBase.
void ensureTouchedMuonChambersInitialised() const
Class to represent and store fit qualities from track reconstruction in terms of  and number of degre...
virtual unsigned getNsTGCHits() const
@ BremPoint
This represents a brem point on the track, and so will contain TrackParameters and MaterialEffectsBas...
TrackHandle_TrkTrack(TrackCollHandleBase *, const Trk::Track *)
TrackSysCommonData * common() const
const DataVector< const TrackParameters > * trackParameters() const
Return a pointer to a vector of TrackParameters.
represents the track state (measurement, material, fit parameters and quality) at a surface.
void ensureInitSubSysHitInfo() const
@ InertMaterial
This represents inert material, and so will contain MaterialEffectsBase.
static void messageVerbose(const QString &)
std::string dumpInfo() const
Returns a string with the name of the fitter of this track (i.e.
Eigen::Matrix< double, 3, 1 > Vector3D
static QString shortInfo(const Trk::MeasurementBase &mb)
const_iterator end() const noexcept
Return a const_iterator pointing past the end of the collection.
QTreeWidget * trackObjBrowser() const
Returns a pointer to the Track Object Browser (if it exists)
static void message(const QString &, IVP1System *sys=0)
virtual QString shortInfo() const
returns mom and hit information about track
int m_hitInfoStatus
-1: uninitialized, 0: not present, 1: present.
double chiSquared() const
returns the  of the overall track fit
unsigned long long value_type
QStringList baseInfo() const
SoSeparator * shapeDetailed() const
virtual unsigned getNSCTHits() const
const Trk::TrackStateOnSurface * trackStateOnSurface() const
virtual ~TrackHandle_TrkTrack()
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)
static bool hasMuonGeometry()
virtual void updateObjectBrowser()
virtual void setBrowserTreeItem(QTreeWidgetItem *obt)
virtual void fillObjectBrowser(QList< QTreeWidgetItem * > &list)
Called in child classes.
VP1TrackSanity * trackSanityHelper() const
const_iterator begin() const noexcept
Return a const_iterator pointing at the beginning of the collection.
double doubleNumberDoF() const
returns the number of degrees of freedom of the overall track or vertex fit as double
virtual QTreeWidgetItem * browserTreeItem() const