|
ATLAS Offline Software
|
Go to the documentation of this file.
34 #include <Inventor/nodes/SoSeparator.h>
35 #include <Inventor/nodes/SoNode.h>
42 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),
43 m_nhits_tgc(0), m_nhits_csc(0), m_nhits_mm(0), m_nhits_stgc(0), m_hitInfoStatus(-1),
65 l <<
"ERROR: This TrackHandle_TrkTrack handle has a NULL track pointer!!";
73 if (
common()->controller()->printVerboseInfoOnSingleSelection()) {
74 l <<
" ===== dump =====";
77 l << QString(
s.str().c_str()).split(
'\n');
94 for (; tsos_iter != tsos_end; ++tsos_iter) {
97 VP1Msg::messageVerbose(
"TrackHandle_TrkTrack WARNING: Skipping unsafe TSOS for touched muon chamber determination.");
114 VP1Msg::messageVerbose(
"TrackHandle_TrkTrack WARNING: Skipping unsafe TSOS for touched muon chamber determination.");
133 if (!
common()->trackSanityHelper()->isSafe(param))
135 return param->momentum();
158 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;
185 TSOSitem->setFlags(Qt::ItemFlag());
186 QFont itemFont = TSOSitem->font(0);
187 itemFont.setStrikeOut(
true);
188 TSOSitem->setFont(0, itemFont);
189 TSOSitem->setFont(1, itemFont);
200 QTreeWidgetItem* measItem =
new QTreeWidgetItem(TSOSitem);
201 measItem->setExpanded(
true);
202 measItem->setFlags(Qt::ItemIsEnabled);
203 measItem->setText(0, measName);
207 for (
int i = 0;
i < (
list.size()-1); ){
208 QTreeWidgetItem* subparamItem =
new QTreeWidgetItem(measItem);
209 subparamItem->setText(0,
list.at(
i++) );
210 subparamItem->setText(1,
list.at(
i++) );
211 subparamItem->setFlags(Qt::ItemIsEnabled);
216 if ( (*it)->trackParameters () ) {
217 if (!
first) tsosText.append(
" + ");
218 tsosText.append(
"Parameters");
220 QTreeWidgetItem* paramItem =
new QTreeWidgetItem(TSOSitem);
221 paramItem->setExpanded(
true);
222 paramItem->setFlags(Qt::ItemIsEnabled);
227 for (
int i = 0;
i < (
list.size()-1); ){
228 QTreeWidgetItem* subparamItem =
new QTreeWidgetItem(paramItem);
229 subparamItem->setText(0,
list.at(
i++) );
230 subparamItem->setText(1,
list.at(
i++) );
231 subparamItem->setFlags(Qt::ItemIsEnabled);
236 if ( (*it)->materialEffectsOnTrack () ){
237 if (!
first) tsosText.append(
" + ");
238 tsosText.append(
"MaterialEffectsOnTrack");
239 QTreeWidgetItem* meItem =
new QTreeWidgetItem(TSOSitem);
240 meItem->setExpanded(
true);
241 meItem->setFlags(Qt::ItemIsEnabled);
248 if ( (*it)->fitQualityOnSurface () ){
249 if (!
first) tsosText.append(
" + ");
250 tsosText.append(
"FitQuality");
251 QTreeWidgetItem* fqItem =
new QTreeWidgetItem(TSOSitem);
252 fqItem->setExpanded(
true);
253 fqItem->setFlags(Qt::ItemIsEnabled);
254 fqItem->setText(0, QString(
"FitQuality") );
262 if (!
first) tsosText.append(
" + ");
263 tsosText.append(
"Outlier");
267 if (!
first) tsosText.append(
" + ");
268 tsosText.append(
"InertMaterial");
272 if (!
first) tsosText.append(
" + ");
273 tsosText.append(
"BremPoint");
277 if (!
first) tsosText.append(
" + ");
278 tsosText.append(
"Perigee");
282 if (!
first) tsosText.append(
" + ");
283 tsosText.append(
"Hole");
285 TSOSitem->setText(1, tsosText );
296 for (
int i = 0;
i <
list.size(); ++
i) {
354 VP1Msg::message(
"No ASC objects associated with this track - no track components visible yet?");
360 unsigned int numOfTSOS=0;
361 for (;
it!=
itE;++
it,++numOfTSOS){
366 for (
int i = 0;
i <
list.size(); ++
i) {
391 asc->
browserTreeItem()->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled);
394 itemFont.setStrikeOut(!asc->
visible());
418 if ((*it)->surface().associatedDetectorElementIdentifier()==tmpInt) {
422 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)
Overload 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
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()
void updateObjectBrowser()
PVConstLink parentStationPV() const
virtual void setBrowserTreeItem(QTreeWidgetItem *obt)
virtual void fillObjectBrowser(QList< QTreeWidgetItem * > &list)
Overload 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