|
ATLAS Offline Software
|
#include <AscObj_TSOS.h>
|
virtual | ~AscObj_TSOS () |
|
double | deviationFromMeasurement (const bool &absolute=false) |
|
void | addDeviationFromMeasurementInfoToShapes (SoSeparator *&shape_simple, SoSeparator *&shape_detailed) |
|
void | addTransformToSurface (SoSeparator *&shape_simple, SoSeparator *&shape_detailed) |
|
void | addTrackParamInfoToShapes (SoSeparator *&shape_simple, SoSeparator *&shape_detailed, bool showPars, bool showParsErrors, bool showSurfaces) |
|
void | addErrors (const Trk::Surface &theSurface, const AmgSymMatrix(5)&tmpCovMat, const Amg::Vector2D &localPos, const Amg::Vector3D &p1, bool showSurfaces, SoSeparator *shape_simple, SoSeparator *shape_detailed, bool force1D, bool applyLocalTrans) |
|
void | addRIO_OnTrackInfoToShapes (SoSeparator *&shape_simple, SoSeparator *&shape_detailed, const Trk::RIO_OnTrack *rio, bool blockDrawingOfGP=false) |
|
void | addCompetingRIO_OnTrackInfoToShapes (SoSeparator *&shape_simple, SoSeparator *&shape_detailed) |
|
void | addSurfaceToShapes (SoSeparator *&shape_simple, SoSeparator *&shape_detailed) |
|
void | addMaterialEffectsToShapes (SoSeparator *&shape_simple, SoSeparator *&shape_detailed) |
|
SoTranslation * | getZTranslationTube (const Trk::Surface *, const double &maxTrans) const |
|
void | registerShapes (SoSeparator *simple, SoSeparator *detailed) |
|
void | unregisterShapes (SoSeparator *simple, SoSeparator *detailed) |
|
AssocObjAttachmentHandle * | getAttachmentHandle () |
|
|
static void | ensureInitSeps (SoSeparator *&shape_simple, SoSeparator *&shape_detailed) |
|
Definition at line 45 of file AscObj_TSOS.h.
◆ PICKSTYLE
◆ AscObj_TSOS()
Definition at line 94 of file AscObj_TSOS.cxx.
156 if (surf->associatedDetectorElement())
◆ ~AscObj_TSOS()
virtual AscObj_TSOS::~AscObj_TSOS |
( |
| ) |
|
|
inlineprivatevirtual |
◆ addCompetingRIO_OnTrackInfoToShapes()
void AscObj_TSOS::addCompetingRIO_OnTrackInfoToShapes |
( |
SoSeparator *& |
shape_simple, |
|
|
SoSeparator *& |
shape_detailed |
|
) |
| |
|
private |
Definition at line 749 of file AscObj_TSOS.cxx.
760 shape_simple->addChild(
mat);
761 shape_detailed->addChild(
mat);
764 shape_simple->addChild(
mat);
765 shape_detailed->addChild(
mat);
768 if (
common()->controller()->drawMeasGlobalPositions()){
774 SoTranslation * theTransform =
new SoTranslation;
783 theTransform->translation.setValue( locPos.x(), locPos.y(), locPos.z());
794 SoSeparator * gpSep =
new SoSeparator;
796 gpSep->addChild(theTransform);
798 shape_detailed->addChild(gpSep);
805 if (showcRioOnTrack){
808 SoSeparator * rotSepSimple =
new SoSeparator;
809 SoSeparator * rotSepDetailed =
new SoSeparator;
815 shape_detailed->addChild(rotSepDetailed);
816 shape_simple->addChild(rotSepSimple);
822 shape_detailed->addChild( transparent );
826 if (!rot) {
VP1Msg::message(
"WARNING: cROT has empty max prob ROT. Aborting.");
return;}
836 if ( (!tgcDetEl) && (!rpcDetEl)) {
VP1Msg::message(
"WARNING: most prob ROT from cROT has Unknown DE type. Aborting."); std::cout<<*rot<<std::endl;
return;}
849 for (
unsigned int n = 0;
n < nrio;
n++)
851 if (
n==maxProb)
continue;
856 if (!rot) {
VP1Msg::message(
"WARNING: cROT has empty ROT. Skipping.");
continue;}
877 SoSeparator * rotSepSimple =
new SoSeparator;
878 SoSeparator * rotSepDetailed =
new SoSeparator;
892 SoTranslation * theTransform =
new SoTranslation;
893 theTransform->translation.setValue( locPos.x(), locPos.y(), locPos.z());
894 rotSepDetailed->addChild(theTransform);
895 rotSepSimple->addChild(theTransform);
904 shape_simple->addChild(rotSepSimple);
905 shape_detailed->addChild(rotSepDetailed);
◆ addDeviationFromMeasurementInfoToShapes()
void AscObj_TSOS::addDeviationFromMeasurementInfoToShapes |
( |
SoSeparator *& |
shape_simple, |
|
|
SoSeparator *& |
shape_detailed |
|
) |
| |
|
private |
Definition at line 306 of file AscObj_TSOS.cxx.
312 const bool isTRT = idhelper && idhelper->
is_indet(
id) && idhelper->
is_trt(
id);
313 const bool isMDT = idhelper && idhelper->
is_muon(
id) && idhelper->
is_mdt(
id);
314 if ( idhelper && ( isTRT||isMDT ) )
329 SoLineSet *
line =
new SoLineSet();
330 SoVertexProperty * vertices =
new SoVertexProperty();
331 vertices->vertex.set1Value(0,point.x(),point.y(),point.z());
332 vertices->vertex.set1Value(1,pointMeas.x(),pointMeas.y(),pointMeas.z());
333 line->numVertices = 2;
334 line->vertexProperty = vertices;
340 if (not dcot)
return;
343 SoSeparator *
sep =
new SoSeparator;
344 SoMaterial *
mat =
new SoMaterial;
346 mat->diffuseColor.setValue(1,0,0);
348 mat->diffuseColor.setValue(0,1,0);
351 shape_detailed->addChild(
sep);
356 if (not dcot)
return;
359 SoSeparator *
sep =
new SoSeparator;
360 SoMaterial *
mat =
new SoMaterial;
362 mat->diffuseColor.setValue(1,0,0);
364 mat->diffuseColor.setValue(0,1,0);
367 shape_detailed->addChild(
sep);
373 shape_detailed->addChild(
line);
◆ addErrors()
Definition at line 454 of file AscObj_TSOS.cxx.
462 const bool settingsDRAWZERRCIRCLES = settingsDRAWCYLINDER;
465 SoSeparator * errSimple =
new SoSeparator;
466 SoSeparator * errDetailed =
new SoSeparator;
472 errSimple->addChild(
mat );
473 errDetailed->addChild(
mat );
491 if (applyLocalTrans) {
492 SoTranslation * theTransform =
new SoTranslation;
495 theTransform->translation.setValue(locPosTmp->x(),locPosTmp->y(),0.0);
497 errSimple->addChild(theTransform);
498 errDetailed->addChild(theTransform);
500 VP1Msg::message(
"AscObj_TSOS::addErrors - failed to get tmp position");
508 shape_simple->addChild( errSimple );
509 shape_detailed->addChild( errDetailed );
510 }
else if ( strSurf || perSurf) {
513 if (applyLocalTrans){
515 errSimple->addChild(theTransform);
516 errDetailed->addChild(theTransform);
518 VP1ErrorUtils::errorAtStraightLineSurface(errSimple, errDetailed, tmpCovMat, localPos, &theSurface, settingsSIGMASCALE, settingsDRAWZERRCIRCLES, settingsDRAWCYLINDER,
npoints, force1D,
false);
520 shape_simple->addChild( errSimple );
521 shape_detailed->addChild( errDetailed );
522 }
else if ( cylSurf ) {
523 VP1Msg::message(
"WARNING: Visualisation of errors on Cylinder Surface not implemented");
524 }
else if ( disSurf ) {
525 VP1Msg::message(
"WARNING: Visualisation of errors on Disc Surface not implemented");
◆ addMaterialEffectsToShapes()
void AscObj_TSOS::addMaterialEffectsToShapes |
( |
SoSeparator *& |
shape_simple, |
|
|
SoSeparator *& |
shape_detailed |
|
) |
| |
|
private |
Definition at line 585 of file AscObj_TSOS.cxx.
587 const double settingsForceOnTrack =
false;
590 SoSeparator * matSepSimple =
new SoSeparator;
591 SoSeparator * matSepDetailed =
new SoSeparator;
598 SoTranslation * theTransform =
new SoTranslation;
599 theTransform->translation.setValue(
p1.x(),
p1.y(),
p1.z());
600 matSepSimple->addChild(theTransform);
601 matSepDetailed->addChild(theTransform);
605 VP1Msg::message(
"AscObj_TSOS::addMaterialEffectsToShapes WARNING: Has neither surface or parameter to get position!");
607 if (settingsForceOnTrack) {
608 VP1Msg::message(
"AscObj_TSOS::addMaterialEffectsToShapes WARNING: settingsForceOnTrack not implemented");
615 matSepSimple->addChild(theTransform);
616 matSepDetailed->addChild(theTransform);
624 matSepSimple->addChild(
mat);
625 matSepDetailed->addChild(
mat);
631 matSepSimple->addChild(point);
634 matSepDetailed->addChild(point);
644 SoSphere * meotSphere =
new SoSphere;
646 matSepDetailed->addChild(meotSphere);
648 matSepDetailed->addChild(point);
654 shape_simple->addChild(matSepSimple);
655 shape_detailed->addChild(matSepDetailed);
◆ addRIO_OnTrackInfoToShapes()
void AscObj_TSOS::addRIO_OnTrackInfoToShapes |
( |
SoSeparator *& |
shape_simple, |
|
|
SoSeparator *& |
shape_detailed, |
|
|
const Trk::RIO_OnTrack * |
rio, |
|
|
bool |
blockDrawingOfGP = false |
|
) |
| |
|
private |
Definition at line 659 of file AscObj_TSOS.cxx.
687 shape_simple->addChild(
mat);
688 shape_detailed->addChild(
mat);
701 theTransform->translation.getValue().getValue(
x,
y,zShift);
702 shape_simple->addChild(theTransform);
703 shape_detailed->addChild(theTransform);
707 SoTranslation * theTransform =
new SoTranslation;
708 theTransform->translation.setValue(0,0,-zShift);
709 shape_simple->addChild(theTransform);
710 shape_detailed->addChild(theTransform);
736 VP1Msg::message(
"WARNING: ROT has inconsistent dimensions between cov matrix and local parameters. Forcing to 1D.");
743 shape_simple, shape_detailed, force1D,
true);
◆ addSurfaceToShapes()
void AscObj_TSOS::addSurfaceToShapes |
( |
SoSeparator *& |
shape_simple, |
|
|
SoSeparator *& |
shape_detailed |
|
) |
| |
|
private |
Definition at line 531 of file AscObj_TSOS.cxx.
536 static int ignoreECModules=-1;
537 if (ignoreECModules==-1)
543 if (ignoreECModules) {
548 double abscostheta = std::abs(
cos(angle_z_normal));
549 if (abscostheta>0.707)
return;
557 SoNode * nodeToAddSimple = theSurfSepSimple;
558 SoNode * nodeToAdd = theSurfSep;
562 if (theSurfSep->getTypeId().isDerivedFrom(SoSeparator::getClassTypeId())) {
563 static_cast<SoSeparator*
>(theSurfSepSimple)->insertChild(
mat,0);
564 static_cast<SoSeparator*
>(theSurfSep)->insertChild(
mat,0);
566 SoSeparator * sepSimple =
new SoSeparator;
567 sepSimple->addChild(
mat);
568 sepSimple->addChild(theSurfSepSimple);
569 nodeToAddSimple = sepSimple;
570 SoSeparator *
sep =
new SoSeparator;
572 sep->addChild(theSurfSep);
577 shape_simple->addChild(nodeToAddSimple);
578 shape_detailed->addChild(nodeToAdd);
580 VP1Msg::message(
"AscObj_TSOS::addSurfaceToShapes WARNING: Got null shape.");
◆ addTrackParamInfoToShapes()
void AscObj_TSOS::addTrackParamInfoToShapes |
( |
SoSeparator *& |
shape_simple, |
|
|
SoSeparator *& |
shape_detailed, |
|
|
bool |
showPars, |
|
|
bool |
showParsErrors, |
|
|
bool |
showSurfaces |
|
) |
| |
|
private |
Definition at line 378 of file AscObj_TSOS.cxx.
383 Q_ASSERT(trackParams);
399 SoLineSet *
line =
new SoLineSet();
400 SoVertexProperty * vertices =
new SoVertexProperty();
401 vertices->vertex.set1Value(0,
p1.x(),
p1.y(),
p1.z());
402 vertices->vertex.set1Value(1,
p2.x(),
p2.y(),
p2.z());
403 line->numVertices.set1Value(0,2);
406 SoPointSet *
points =
new SoPointSet;
407 SoVertexProperty * vertices2 =
new SoVertexProperty;
408 vertices2->vertex.set1Value(0,
p1.x(),
p1.y(),
p1.z());
410 line->vertexProperty = vertices;
411 points->vertexProperty = vertices2;
417 SoSeparator *
sep =
new SoSeparator;
421 shape_simple->addChild(
sep);
422 shape_detailed->addChild(
sep);
424 shape_simple->addChild(
line);
425 shape_simple->addChild(
points);
426 shape_detailed->addChild(
line);
427 shape_detailed->addChild(
points);
431 if ( showParsErrors ){
433 shape_detailed->addChild(theHitTransform);
435 if (trackParams->covariance())
442 if (per||atas||aap||aad){
443 const Amg::Vector2D& localPos = atas ? atas->localPosition() : (per ? per->localPosition() : (aap ? aap->localPosition() : aad->localPosition()));
445 addErrors(trackParams->
associatedSurface(), *trackParams->covariance(), localPos,
p1, showSurfaces, shape_simple, shape_detailed,
false,
false);
◆ addTransformToSurface()
void AscObj_TSOS::addTransformToSurface |
( |
SoSeparator *& |
shape_simple, |
|
|
SoSeparator *& |
shape_detailed |
|
) |
| |
|
private |
Definition at line 949 of file AscObj_TSOS.cxx.
953 if (!
surface()) {
VP1Msg::message(
"AscObj_TSOS::addTransformToSurface: WARNING: TSOS without Surface! Unable to get transform!");
return;}
965 SoTransform* theHitTransform=
nullptr;
989 VP1Msg::message(
"AscObj_TSOS::addTransformToSurface: WARNING: Unknown type of ROT.");
997 if (!theHitTransform) {
998 VP1Msg::message(
"AscObj_TSOS::addTransformToSurface: WARNING: Unable to build transform");
1001 shape_simple->addChild(theHitTransform);
1002 shape_detailed->addChild(theHitTransform);
◆ approxCenter()
Definition at line 173 of file AscObj_TSOS.cxx.
179 VP1Msg::message(
"AscObj_TSOS::approxCenter() WARNING: Failed to determine"
180 " position from either params or surface");
◆ browserTreeItem()
virtual QTreeWidgetItem* AscObj_TSOS::browserTreeItem |
( |
| ) |
const |
|
inlinevirtual |
◆ buildShapes()
void AscObj_TSOS::buildShapes |
( |
SoSeparator *& |
shape_simple, |
|
|
SoSeparator *& |
shape_detailed |
|
) |
| |
|
virtual |
bool showDeviationsFromMeasurements = false;//Fixme (and see below) if ( showDeviationsFromMeasurements && hasParameters() && rioOnTrack() && dynamic_cast<const Trk::TrackParameters *>(m_tsos->trackParameters()) ) addDeviationFromMeasurementInfoToShapes(shape_simple,shape_detailed);
Implements AssociatedObjectHandleBase.
Definition at line 1006 of file AscObj_TSOS.cxx.
1025 SoSeparator* param_simple=
new SoSeparator;
1026 SoSeparator* param_detailed=
new SoSeparator;
1027 if (showPars||showParsErrors)
1029 shape_simple->addChild(param_simple);
1030 shape_detailed->addChild(param_detailed);
1032 if (showMaterialEffects)
1044 SoSeparator* meas_simple=
new SoSeparator;
1045 SoSeparator* meas_detailed=
new SoSeparator;
1046 if (
rioOnTrack() && (showRioOnTrack||showMeasErrors))
1048 if (showCompetingRioOnTrack)
1050 shape_simple->addChild(meas_simple);
1051 shape_detailed->addChild(meas_detailed);
◆ clicked()
QStringList AscObj_TSOS::clicked |
( |
| ) |
|
|
virtual |
Implements AssociatedObjectHandleBase.
Definition at line 1067 of file AscObj_TSOS.cxx.
1071 l <<
"ERROR: This associated object handle has a NULL TSOS pointer!!";
1082 for (
int i = 0;
i < (
list.size()-1); ){
1092 bool showDeviationsFromMeasurements =
true;
1093 if ( showDeviationsFromMeasurements
1107 for (
int i = 0;
i < (
list.size()-1); ){
1118 for (
int i = 0;
i < (
list.size()-1); ){
1128 for (
int i = 0;
i < (
list.size()-1); ){
1135 l <<
" ===== TrackStateOnSurface =====";
1136 std::ostringstream
s2;
1138 l << QString(
s2.str().c_str()).split(
'\n');
1141 l <<
" ===== Surface =====";
1142 std::ostringstream
s;
1144 l << QString(
s.str().c_str()).split(
'\n');
1151 if (trkObjBrowseritem){
1156 QTreeWidget* trkObjBrowser = trkObjBrowseritem->treeWidget();
1157 trkObjBrowser->setCurrentItem(me);
1158 trkObjBrowser->scrollToItem(me);
◆ common()
◆ competingRIOsOnTrack()
◆ deviationFromMeasurement()
double AscObj_TSOS::deviationFromMeasurement |
( |
const bool & |
absolute = false | ) |
|
|
private |
Definition at line 264 of file AscObj_TSOS.cxx.
267 double paramValue = 0;
275 VP1Msg::message(
" No ROT or cROT in AscObj_TSOS::deviationFromMeasurement(const bool& absolute)!");
281 const bool isTRT = idhelper && idhelper->
is_indet(
id) && idhelper->
is_trt(
id);
282 const bool isMDT = idhelper && idhelper->
is_muon(
id) && idhelper->
is_mdt(
id);
283 if ( idhelper && ( isTRT||isMDT ) )
292 if (not atas)
return std::nan(
"");
294 paramValue = std::abs(localposMeas[
Trk::locR]);
303 return
absolute ? std::abs( rioValue - paramValue ) : std::abs( rioValue - paramValue )/
sigma;
◆ ensureInitSeps()
void AscObj_TSOS::ensureInitSeps |
( |
SoSeparator *& |
shape_simple, |
|
|
SoSeparator *& |
shape_detailed |
|
) |
| |
|
staticprivate |
Definition at line 915 of file AscObj_TSOS.cxx.
919 shape_simple =
new SoSeparator;
921 shape_detailed =
new SoSeparator;
◆ getAttachmentHandle()
◆ getZTranslationTube()
SoTranslation * AscObj_TSOS::getZTranslationTube |
( |
const Trk::Surface * |
theSurface, |
|
|
const double & |
maxTrans |
|
) |
| const |
|
private |
Definition at line 201 of file AscObj_TSOS.cxx.
213 for (
size_t i = 0;
i<
points->size();
i++)
232 if (imin+1 <
points->size() && imin >= 1)
236 smin = std::abs(tm - 0.5) < std::abs(
tp - 0.5) ? sm : sp;
237 }
else if (imin+1 >=
points->size() && imin >= 1 )
248 VP1Msg::message(
"AscObj_TSOS::getZTranslationTube: <2 points returned by trackHandle!");
252 if (std::abs(smin) > maxTrans)
254 double sign = smin > 0 ? 1.0 : -1.0;
255 smin =
sign*maxTrans;
258 SoTranslation * trans =
new SoTranslation;
259 trans->translation.setValue(0,0,smin);
◆ hasError()
bool AssociatedObjectHandleBase::hasError |
( |
| ) |
const |
|
inlineinherited |
◆ hasMaterialEffect()
bool AssociatedObjectHandleBase::hasMaterialEffect |
( |
| ) |
const |
|
inlineinherited |
◆ hasMeasurement()
bool AssociatedObjectHandleBase::hasMeasurement |
( |
| ) |
const |
|
inlineinherited |
◆ hasParameters()
bool AssociatedObjectHandleBase::hasParameters |
( |
| ) |
const |
|
inlineinherited |
◆ hasParError()
bool AssociatedObjectHandleBase::hasParError |
( |
| ) |
const |
|
inlineinherited |
◆ hasSurface()
bool AssociatedObjectHandleBase::hasSurface |
( |
| ) |
const |
|
inlineinherited |
◆ initiatesOwnZooms()
virtual bool AscObj_TSOS::initiatesOwnZooms |
( |
| ) |
const |
|
inlinevirtual |
◆ isShortMeasurement()
bool AscObj_TSOS::isShortMeasurement |
( |
| ) |
|
Return true if TRT/MDT & shortened mode is on, false otherwise
Definition at line 1194 of file AscObj_TSOS.cxx.
◆ lodCrossOverValue()
double AscObj_TSOS::lodCrossOverValue |
( |
| ) |
const |
|
inlineprotectedvirtual |
◆ measurement()
◆ nParts()
virtual unsigned AssociatedObjectHandleBase::nParts |
( |
| ) |
const |
|
inlinevirtualinherited |
◆ numberOfInstances()
int AssociatedObjectHandleBase::numberOfInstances |
( |
| ) |
|
|
staticinherited |
◆ parts()
virtual TrackCommonFlags::TSOSPartsFlags AscObj_TSOS::parts |
( |
| ) |
const |
|
inlinevirtual |
◆ pickStyle()
PICKSTYLE AssociatedObjectHandleBase::pickStyle |
( |
| ) |
const |
|
inlineinherited |
◆ regionIndex()
int AscObj_TSOS::regionIndex |
( |
| ) |
const |
|
protectedvirtual |
◆ registerShapes()
void AssociatedObjectHandleBase::registerShapes |
( |
SoSeparator * |
simple, |
|
|
SoSeparator * |
detailed |
|
) |
| |
|
privateinherited |
◆ rioOnTrack()
◆ setBrowserTreeItem()
virtual void AscObj_TSOS::setBrowserTreeItem |
( |
QTreeWidgetItem * |
obt | ) |
|
|
inlinevirtual |
◆ setDistToNextPar()
void AscObj_TSOS::setDistToNextPar |
( |
const double & |
d | ) |
|
◆ setPickable()
void AssociatedObjectHandleBase::setPickable |
( |
PICKSTYLE |
ps | ) |
|
|
inherited |
◆ setVisible()
void AscObj_TSOS::setVisible |
( |
bool |
vis | ) |
|
|
virtual |
Reimplemented from AssociatedObjectHandleBase.
Definition at line 1167 of file AscObj_TSOS.cxx.
1171 if (trkObjBrowseritem){
1176 QFont itemFont = me->font(1);
1180 me->setFlags(Qt::ItemFlags());
1181 itemFont.setStrikeOut(
true);
1185 me->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled);
1186 itemFont.setStrikeOut(
false);
◆ shapeDetailed()
SoSeparator * AssociatedObjectHandleBase::shapeDetailed |
( |
| ) |
const |
|
inherited |
◆ shapeSimple()
SoSeparator * AssociatedObjectHandleBase::shapeSimple |
( |
| ) |
const |
|
inherited |
◆ surface()
◆ toggleVisible()
void AssociatedObjectHandleBase::toggleVisible |
( |
| ) |
|
|
inlineinherited |
◆ trackHandle()
◆ trackStateOnSurface()
◆ unregisterShapes()
void AssociatedObjectHandleBase::unregisterShapes |
( |
SoSeparator * |
simple, |
|
|
SoSeparator * |
detailed |
|
) |
| |
|
privateinherited |
◆ update3DObjects()
void AssociatedObjectHandleBase::update3DObjects |
( |
| ) |
|
|
inherited |
◆ visible()
bool AssociatedObjectHandleBase::visible |
( |
| ) |
const |
|
inlineinherited |
◆ zoomView()
void AscObj_TSOS::zoomView |
( |
| ) |
|
Depending on the controller settings, will attempt to zoom the view to this TSOS, for example in click()
Definition at line 1220 of file AscObj_TSOS.cxx.
1223 if (
common()->controller()->orientAndZoomOnSingleSelection() )
1250 if ( plaSurf || perSurf )
1255 SbVec3f lookat0 = SbVec3f(-
u[0],-
u[1],-
u[2]);
1268 }
else if ( strSurf )
1270 SbVec3f lookat0 = SbVec3f(0,0,1);
1274 rot.multVec(lookat0,lookat0);
1279 SbRotation camrot = (*it)->orientation.getValue();
1280 SbVec3f cameraDir = SbVec3f(0,0,-1);
1281 camrot.multVec(cameraDir,cameraDir);
1283 lookat1 = cameraDir.dot(lookat0) > 0 ? lookat0 : -lookat0;
◆ m_d
Imp* AssociatedObjectHandleBase::m_d |
|
privateinherited |
◆ m_distToNextPar
double AscObj_TSOS::m_distToNextPar |
|
private |
◆ m_hitToSoNode
◆ m_indexOfPointOnTrack
unsigned AscObj_TSOS::m_indexOfPointOnTrack |
|
private |
◆ m_objBrowseTree
QTreeWidgetItem* AscObj_TSOS::m_objBrowseTree |
|
private |
◆ m_parts
TrackCommonFlags::TSOSPartsFlags AscObj_TSOS::m_parts |
|
private |
◆ m_pickStyle
PICKSTYLE AssociatedObjectHandleBase::m_pickStyle |
|
privateinherited |
◆ m_trackHandle
◆ m_tsos
◆ m_visible
bool AssociatedObjectHandleBase::m_visible |
|
privateinherited |
The documentation for this class was generated from the following files:
JetConstituentVector::iterator iterator
const Trk::Surface * surface() const
bool useShortTRTMeasurements() const
QTreeWidgetItem * browserTreeItem() const
const TrackParameters * trackParameters() const
return ptr to trackparameters const overload
void registerAscObj(SoSeparator *simple, SoSeparator *detailed, AssociatedObjectHandleBase *)
bool isShortMeasurement()
Return true if TRT/MDT & shortened mode is on, false otherwise
virtual TrackCommonFlags::TSOSPartsFlags parts() const
bool hasParameters() const
@ Perigee
This represents a perigee, and so will contain a Perigee object only.
virtual double lodCrossOverValue() const
@ NONE
it was not possible to determine the which side of the straw the track passed;
void attach(AssociatedObjectHandleBase *theclass)
TrackSystemController * controller() const
void buildTubeShapes(const Trk::RIO_OnTrack &rio, SoSeparator *&shape_simple, SoSeparator *&shape_detailed, bool blockGP, double length, bool doProjection)
virtual int regionIndex() const
const Trk::MeasurementBase * measurement() const
TrackHandleBase * m_trackHandle
double angle(const Amg::Vector3D &v1, const Amg::Vector3D &v2)
calculates the opening angle between two vectors
unsigned m_indexOfPointOnTrack
void addErrors(const Trk::Surface &theSurface, const AmgSymMatrix(5)&tmpCovMat, const Amg::Vector2D &localPos, const Amg::Vector3D &p1, bool showSurfaces, SoSeparator *shape_simple, SoSeparator *shape_detailed, bool force1D, bool applyLocalTrans)
const Trk::RIO_OnTrack * rioOnTrack() const
const Amg::Vector3D & position() const
Access method for the position.
Eigen::Matrix< double, 2, 1 > Vector2D
virtual const Surface & associatedSurface() const override=0
Access to the Surface associated to the Parameters.
Dummy class used to allow special convertors to be called for surfaces owned by a detector element.
Identifier associatedDetectorElementIdentifier() const
return Identifier of the associated Detector Element
virtual const Amg::Vector3D & globalPosition() const override=0
Interface method to get the global Position.
double nStdDevForParamErrors() const
TrackCollHandleBase * collHandle() const
bool contains(ParamDefs par) const
The simple check for the clients whether the parameter is contained.
static void errorAtPlaneSurface(SoSeparator *errSimple, SoSeparator *errDetailed, const AmgSymMatrix(5)&tmpCovMat, const Trk::Surface *theSurface, const Amg::Vector3D &p1, const double &nStdDev=3.0, int numNodes=12, const bool &moveToSurface=false, const bool &force1D=false, const bool &addTransform=true)
VP1TrackSystem * system() const
void addRIO_OnTrackInfoToShapes(SoSeparator *&shape_simple, SoSeparator *&shape_detailed, const Trk::RIO_OnTrack *rio, bool blockDrawingOfGP=false)
AscObjSelectionManager * ascObjSelectionManager() const
value_type get_compact() const
Get the compact id.
void addTrackParamInfoToShapes(SoSeparator *&shape_simple, SoSeparator *&shape_detailed, bool showPars, bool showParsErrors, bool showSurfaces)
const MeasurementBase * measurementOnTrack() const
returns MeasurementBase const overload
An RpcReadoutElement corresponds to a single RPC module; therefore typicaly a barrel muon station con...
@ TSOS_MaterialEffectsWithNoDeltaE
bit 12
@ loc2
generic first and second local coordinate
const Trk::CompetingRIOsOnTrack * competingRIOsOnTrack() const
@ TSOS_TrackParsErrorsPerigee
bit 2
static const AtlasDetectorID * atlasIDHelper()
bool parTubeErrorsDrawCylinders() const
bool is_trt(Identifier id) const
void zoomView()
Depending on the controller settings, will attempt to zoom the view to this TSOS, for example in clic...
base class to integrate material effects on Trk::Track in a flexible way.
const Amg::Vector3D & center() const
Returns the center position of the Surface.
TrackHandleBase * trackHandle() const
void addSurfaceToShapes(SoSeparator *&shape_simple, SoSeparator *&shape_detailed)
static QString str(const QString &s)
@ u
Enums for curvilinear frames.
#define AmgSymMatrix(dim)
const FitQualityOnSurface & fitQualityOnSurface() const
return FitQuality On Surface const overload
double deviationFromMeasurement(const bool &absolute=false)
SoSeparator * sep_detailed
@ Outlier
This TSoS contains an outlier, that is, it contains a MeasurementBase/RIO_OnTrack which was not used ...
std::vector< Amg::Vector3D > * hackGetPointsPropagated()
FIXME.
double get(ParamDefs par) const
Retrieve specified parameter (const version).
@ TSOS_AnyMeasCompetingRioOnTrack
static QStringList fullInfo(const Trk::MeasurementBase &tp)
Returns list of key, value, key, value etc.
represents the full description of deflection and e-loss of a track in material.
bool type(const TrackStateOnSurfaceType type) const
Use this method to find out if the TSoS is of a certain type: i.e.
virtual const RIO_OnTrack & rioOnTrack(unsigned int) const =0
returns the RIO_OnTrack (also known as ROT) objects depending on the integer.
bool printVerboseInfoOnSingleSelection() const
TrackSysCommonData * common() const
bool useShortMDTMeasurements() const
static bool environmentVariableIsOn(const QString &name)
virtual unsigned int numberOfContainedROTs() const =0
Number of RIO_OnTracks to be contained by this CompetingRIOsOnTrack.
@ Hole
A hole on the track - this is defined in the following way.
const MaterialEffectsBase * materialEffectsOnTrack() const
return material effects const overload
@ TSOS_MeasRioOnTrackOutlier
bit 6
SoMaterial * customMatSurfaces() const
TrackCommonFlags::TSOSPartsFlags m_parts
Amg::Vector3D transform(Amg::Vector3D &v, Amg::Transform3D &tr)
Transform a point from a Trasformation3D.
static QString name(const Trk::MeasurementBase &mb)
Base class for all CompetingRIOsOnTack implementations, extends the common MeasurementBase.
SoMaterial * customMatHoleParameters() const
double deltaE() const
returns the
A TgcReadoutElement corresponds to a single TGC chamber; therefore typically a TGC station contains s...
SoNode * translateSurface(const Trk::Surface &sf, const bool &simple=false) const
static void distLineLineParam(const Amg::Vector3D &point0, const Amg::Vector3D &point1, const Amg::Vector3D &point2, const Amg::Vector3D &point3, double &s, double &t)
static MeasurementType type(const Trk::PrepRawData *prd)
virtual const Amg::Vector3D & normal() const
Returns the normal vector of the Surface (i.e.
HitsSoNodeManager & nodeManager()
void buildStripShapes(const Trk::RIO_OnTrack &rio, SoSeparator *&shape_simple, SoSeparator *&shape_detailed, bool blockGP)
virtual void setVisible(bool)
SoMaterial * customMatParameters() const
const Amg::MatrixX & localCovariance() const
Interface method to get the localError.
@ TSOS_AnyMaterialEffects
@ TSOS_MaterialEffects
bit 13
TrackSysCommonData * common() const
SoMaterial * customMatMaterialEffects() const
SoMaterial * customMatMeasurementsOutliers() const
@ TSOS_MeasRioOnTrackNotOutlier
bit 4
static void distPointLineParam(const Amg::Vector3D &point, const Amg::Vector3D &point0, const Amg::Vector3D &point1, double &s)
virtual const Surface & associatedSurface() const =0
Interface method to get the associated Surface.
void ensureShapesBuild(AssociatedObjectHandleBase *theclass)
void unregisterAscObj(SoSeparator *simple, SoSeparator *detailed)
@ TSOS_SurfacesDetElem
bit 9
This class represents the corrected MDT measurements, where the corrections include the effects of wi...
bool is_indet(Identifier id) const
static void messageVerbose(const QString &)
double materialEffectsOnTrackScale() const
virtual const Amg::Vector3D & globalPosition() const =0
Interface method to get the global Position.
Eigen::Matrix< double, 3, 1 > Vector3D
@ TSOS_MeasCompetingRioOnTrackNotOutlier
bit 5
HitToSoNode m_hitToSoNode
SoMaterial * customMatParameterErrors() const
SoPointSet * singlePoint() const
const LocalParameters & localParameters() const
Interface method to get the LocalParameters.
SoTransform * createTGC_Transform(const Trk::RIO_OnTrack &rio, bool useSurfacePositionOnly) const
TGCs are rotated.
static double distPointLine2(const Amg::Vector3D &point, const Amg::Vector3D &point0, const Amg::Vector3D &point1, double &s)
int dimension() const
Dimension of this localParameters() vector.
const Amg::Vector3D & momentum() const
Access method for the momentum.
const EnergyLoss * energyLoss() const
returns the energy loss object.
static void messageDebug(const QString &)
bool is_muon(Identifier id) const
virtual bool globalToLocal(const Amg::Vector3D &glob, const Amg::Vector3D &mom, Amg::Vector2D &loc) const =0
Specified by each surface type: GlobalToLocal method without dynamic memory allocation - boolean chec...
class holding information about momentum reduction and an additional noise term due to significant en...
static void ensureInitSeps(SoSeparator *&shape_simple, SoSeparator *&shape_detailed)
static void message(const QString &, IVP1System *sys=0)
@ TSOS_MeasCompetingRioOnTrackOutlier
bit 7
SoTransform * createTransform(const Trk::RIO_OnTrack &rio, bool useSurfacePositionOnly) const
Identifier identify() const
return the identifier -extends MeasurementBase
@ TSOS_TrackParsErrorsNotPerigee
bit 1
void ensureShapesErased(AssociatedObjectHandleBase *theclass)
Amg::Vector3D approxCenter() const
SoNode * getShapeNode_Cross(double extent)
SoSeparator * shapeSimple() const
const Trk::TrackStateOnSurface * m_tsos
AssocObjAttachmentHandle * getAttachmentHandle(int regionIndex, const double &crossoverval)
@ LEFT
the drift radius is negative (see Trk::AtaStraightLine)
SoSeparator * shapeDetailed() const
virtual const Surface & associatedSurface() const override=0
returns the surface for the local to global transformation
void addMaterialEffectsToShapes(SoSeparator *&shape_simple, SoSeparator *&shape_detailed)
SoMaterial * customMatMeasurements() const
virtual const TrkDetElementBase * detectorElement() const =0
returns the detector element, assoicated with the PRD of this class
@ TSOS_SurfacesCustom
bit 10
TrackSysCommonData * common() const
unsigned int indexOfMaxAssignProb() const
Index of the ROT with the highest assignment probability.
static void errorAtStraightLineSurface(SoSeparator *errSimple, SoSeparator *errDetailed, const AmgSymMatrix(5)&tmpcovmat, const Amg::Vector2D &localPos, const Trk::Surface *theSurface, const double &nStdDev=3.0, const bool &drawZErrCircles=false, const bool &drawCylinder=false, int numNodes=12, const bool &force1D=false, const bool &addTransform=true)
static VP1CameraHelper * animatedZoomToSubTree(SoCamera *camera, SoGroup *sceneroot, SoNode *subtreeroot, double duration_in_secs=1.0, double clipVolPercent=100.0, double lastClipVolPercent=100.0, double slack=1.0, const SbVec3f &lookat=SbVec3f(999, 999, 999), const SbVec3f &upvec=SbVec3f(999, 999, 999), bool varySpeed=true, bool forceCircular=false)
const Amg::Transform3D & transform() const
Returns HepGeom::Transform3D by reference.
static SoTransform * toSoTransform(const HepGeom::Transform3D &, SoTransform *t=0)
QTreeWidgetItem * m_objBrowseTree
const Surface & associatedSurface() const
returns the surface to which these m.eff. are associated.
AssociatedObjectHandleBase(TrackHandleBase *)
int numberOfPointsOnCircles() const
This class provides an interface to generate or decode an identifier for the upper levels of the dete...
virtual void localToGlobal(const Amg::Vector2D &locp, const Amg::Vector3D &mom, Amg::Vector3D &glob) const =0
Specified by each surface type: LocalToGlobal method without dynamic memory allocation.
bool is_mdt(Identifier id) const
void addCompetingRIO_OnTrackInfoToShapes(SoSeparator *&shape_simple, SoSeparator *&shape_detailed)
void addTransformToSurface(SoSeparator *&shape_simple, SoSeparator *&shape_detailed)
SoTranslation * getZTranslationTube(const Trk::Surface *, const double &maxTrans) const