|
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
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
QList< AssociatedObjectHandleBase * > getAllAscObjHandles() const
override if need to take action in this case.
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()
PVConstLink parentStationPV() const
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