47 #include <Inventor/C/errors/debugerror.h>
48 #include <Inventor/nodes/SoLineSet.h>
49 #include <Inventor/nodes/SoVertexProperty.h>
50 #include <Inventor/nodes/SoSeparator.h>
51 #include <Inventor/nodes/SoMaterial.h>
52 #include <Inventor/nodes/SoPickStyle.h>
53 #include <Inventor/nodes/SoCylinder.h>
54 #include <Inventor/nodes/SoMatrixTransform.h>
55 #include <Inventor/SbRotation.h>
56 #include <Inventor/SbMatrix.h>
57 #include <Inventor/nodes/SoTranslation.h>
58 #include <Inventor/nodes/SoText2.h>
79 static double dist(
const SbVec3f&
p1,
const SbVec3f&
p2);
147 int & iver,
int& numlines, SoLineSet *, SoVertexProperty * )
const;
149 int & iver,
int& numlines,SoLineSet *, SoVertexProperty * )
const;
269 if ((*it)->hasMeasurement())
270 (*it)->update3DObjects();
282 if ((*it)->hasError())
283 (*it)->update3DObjects();
295 if ((*it)->hasMaterialEffect())
296 (*it)->update3DObjects();
333 if (!((*it)->parts()&change)){
337 if (vis==(*it)->visible()) {
339 (*it)->update3DObjects();
345 (*it)->update3DObjects();
346 (*it)->setVisible(vis);
349 (*it)->setVisible(vis);
350 (*it)->update3DObjects();
367 TrackCommonFlags::TSOSPartsFlags changedShownParts(change &
m_d->
shownTSOSParts);
369 if (!changedShownParts)
374 if ((*it)->parts()&changedShownParts)
375 (*it)->update3DObjects();
382 std::cout<<
"TrackHandleBase::ensureInitTSOSs"<<std::endl;
386 tsos_ascobjs =
new std::vector<AssociatedObjectHandleBase*>;
394 unsigned parindex(0);
400 for (; tsos_iter != tsos_end; ++tsos_iter) {
401 trackParam = (*tsos_iter)->trackParameters();
411 if (ascObjNeedDistToNext&&trackParam) {
413 ascObjNeedDistToNext =
nullptr;
416 ascObjNeedDistToNext =
m_d->
addTSOS(*tsos_iter,parindex++);
436 std::cout<<
"TrackHandleBase::setVisible"<<std::endl;
437 QString
tmp = (vis)?
"True":
"False";
442 std::cout<<
"TrackHandleBase::setVisible 1"<<std::endl;
464 std::cout<<
"TrackHandleBase::setVisible 2"<<std::endl;
467 bool initTSOS(
false);
474 std::cout<<
"TrackHandleBase::setVisible 3"<<std::endl;
483 (*it)->toggleVisible();
487 if ((*it)->visible())
488 (*it)->setVisible(
false);
492 std::cout<<
"TrackHandleBase::setVisible 4"<<std::endl;
498 it->second->trackVisibilityChanged();
511 if ( invalidatePropagatedPoints) {
557 int & iver,
int& numlines,
558 SoLineSet *
line, SoVertexProperty * vertices )
const
563 theclass->collHandle()->systemBase()->message(
"TrackHandleBase::Imp::addPathToSoLineSetAndSoVertexProperty (1) ERROR: Unexpected null SoLineSet pointer!");
567 theclass->collHandle()->systemBase()->message(
"TrackHandleBase::Imp::addPathToSoLineSetAndSoVertexProperty (1) ERROR: Unexpected null SoVertexPropery pointer!");
570 std::vector<Amg::Vector3D >::const_iterator pointsIt, pointsItEnd(
points.end());
571 unsigned npointsused(0);
575 if (tempMaxPropRadius>0.0){
576 maxR2 = tempMaxPropRadius * tempMaxPropRadius;
577 theclass->collHandle()->systemBase()->messageVerbose(
"maxR2 is set to "+
VP1Msg::str(maxR2));
579 float vertexPlanePhi = (theclass->common()->controller()->vertexProjectionAngle())*
M_PI/180;
580 vertexPlanePhi-=
M_PI;
585 theclass->collHandle()->systemBase()->messageVerbose(
"Vertex projection is set to "+
VP1Msg::str(vertexPlanePhi));
592 double trkPhi = theclass->momentum().phi();
593 double newPhi= vertexPlanePhi+
M_PI;
594 if (
cos(vertexPlanePhi-trkPhi)>0) newPhi=vertexPlanePhi;
597 for (pointsIt =
points.begin();pointsIt!=pointsItEnd && pointsIt->mag2()<maxR2; ++pointsIt) {
599 if (!isSane(*pointsIt)) {
600 theclass->collHandle()->systemBase()->message(
"WARNING: Ignoring point on track:"+
VP1Msg::str( *pointsIt ) );
605 tempPoint = *pointsIt;
610 vertices->vertex.set1Value(iver++,tempPoint.x(),tempPoint.y(),tempPoint.z());
612 vertices->vertex.set1Value(iver++,pointsIt->x(),pointsIt->y(),pointsIt->z());
616 line->numVertices.set1Value(numlines++,npointsused);
621 int & iver,
int& numlines,
622 SoLineSet *
line, SoVertexProperty * vertices )
const
627 theclass->collHandle()->systemBase()->message(
"TrackHandleBase::Imp::addPathToSoLineSetAndSoVertexProperty (2) ERROR: Unexpected null SoLineSet pointer!");
631 theclass->collHandle()->systemBase()->message(
"TrackHandleBase::Imp::addPathToSoLineSetAndSoVertexProperty (2) ERROR: Unexpected null SoVertexPropery pointer!");
634 Amg::SetVectorVector3D::const_iterator itProjPart, itProjPartEnd(
paths->end());
635 for (itProjPart =
paths->begin();itProjPart!=itProjPartEnd;++itProjPart)
636 addPathToSoLineSetAndSoVertexProperty(*itProjPart,iver,numlines,
line,vertices);
661 if (theclass->m_visible)
665 if (theclass->common()->trackPropagationHelper()->showExtrapolationSurfaces())
666 theclass->common()->trackPropagationHelper()->getExtrapolationSurfaces().clear();
671 ensureInitPointsPropagated();
673 ensureInitPointsRaw();
677 ensureInitPointsProjections_InDet(!propagator);
681 ensureInitPointsProjections_Muon(!propagator);
683 std::vector<Amg::Vector3D > *
points;
686 points = points_propagated;
687 proj_id = points_propagated_id_projections;
688 proj_muon = points_propagated_muon_projections;
691 proj_id = points_raw_id_projections;
692 proj_muon = points_raw_muon_projections;
696 theclass->clearLine();
698 line =
new SoLineSet();
700 theclass->registerTrack();
702 SoVertexProperty * vertices =
new SoVertexProperty();
704 int iver(0), numlines(0);
708 addPathToSoLineSetAndSoVertexProperty(*
points,iver,numlines,
line,vertices);
710 addPathsToSoLineSetAndSoVertexProperty( proj_id, iver, numlines,
line, vertices );
712 addPathsToSoLineSetAndSoVertexProperty( proj_muon, iver, numlines,
line, vertices );
714 line->vertexProperty = vertices;
720 if (theclass->common()->trackPropagationHelper()->showExtrapolationSurfaces()){
721 std::vector<Trk::PlaneSurface>& surfaces = theclass->common()->trackPropagationHelper()->getExtrapolationSurfaces();
722 std::vector<Trk::PlaneSurface>::const_iterator surfIt=surfaces.begin(), surfEnd=surfaces.end();
724 extrapSurfaces_sep=
new SoSeparator;
725 for (;surfIt!=surfEnd;++surfIt){
728 SoNode * nodeToAdd = theSurfSep;
729 extrapSurfaces_sep->addChild(nodeToAdd);
735 if (!
points->empty() && theclass->common()->controller()->doTrackLabels() ){
739 label_sep =
new SoSeparator;
742 label_sep->removeAllChildren ();
744 SoText2 *labelText =
new SoText2;
747 TrackSystemController::TrackLabelModes
labels=theclass->common()->controller()->trackLabels();
757 int pdg = theclass->pdgCode();
780 if (
mom.mag2()==0.0) {
781 text <<
"Momentum : 0 (undefined)";
786 double pseudoRapidity =
mom.eta();
795 labelText->string.set1Value(
row++,
array.data());
799 float labelTrackOffset = theclass->common()->controller()->trackLabelTrkOffset();
800 unsigned int point=(
points->size()-1)*labelTrackOffset;
811 SoTranslation *labelTranslate =
new SoTranslation;
813 int xOffset = theclass->common()->controller()->labelXOffset() ;
814 int yOffset = theclass->common()->controller()->labelYOffset() ;
815 int zOffset = theclass->common()->controller()->labelZOffset() ;
816 labelTranslate->translation.setValue(labelPos.x()+(xOffset*offScale),labelPos.y()+(yOffset*offScale),labelPos.z()+(zOffset*offScale));
818 SoMaterial *sMat =
new SoMaterial();
820 sColor.setValue(SbColor(0, 0, 1));
821 sMat->diffuseColor = sColor;
823 label_sep->addChild(labelTranslate);
824 label_sep->addChild(labelText);
828 if (theclass->m_visible)
835 theclass->currentMaterialChanged();
837 for (
it = attachmentHandles.begin();
it!=
itE;++
it)
838 it->second->trackMaterialChanged();
854 SoVertexProperty *vertices =
static_cast<SoVertexProperty *
>(
line->vertexProperty.getValue());
859 lastTransf.makeIdentity();
861 for (
int iline=0;iline<
line->numVertices.getNum();++iline) {
862 int nvert=
line->numVertices[iline];
867 for (
int jvert= ivert; jvert<ivert+nvert-1;++jvert) {
868 SbVec3f
p1 = vertices->vertex[jvert].getValue();
869 SbVec3f
p2 = vertices->vertex[jvert+1].getValue();
870 SoCylinder * cyl =
new SoCylinder;
871 cyl->radius = cylradius;
872 const double l(dist(
p1,
p2));
876 m.setTranslate(SbVec3f(0,0.5*
l,0));
878 SbRotation rot(SbVec3f(0,1,0),
v);
879 SbMatrix
m2;
m2.setRotate(rot);
888 mat.multRight(lastTransf.inverse());
889 SoMatrixTransform * mt =
new SoMatrixTransform;
890 mt->matrix.setValue(
mat);
904 if (!theclass->m_currentmaterial) {
905 theclass->m_currentmaterial = determineMaterial();
906 theclass->m_currentmaterial->ref();
909 if (
line && theclass->m_collhandle->sephelper()) {
911 theclass->m_collhandle->sephelper()->addNodeUnderMaterial(
line,theclass->m_currentmaterial);
912 double tube_r(theclass->m_collhandle->trackTubeRadius());
914 if (extraRepresentation) {
915 extraRepresentation->removeAllChildren();
917 extraRepresentation =
new SoSeparator;
918 extraRepresentation->ref();
919 theclass->common()->registerTrack(extraRepresentation,theclass);
921 convertLineSetToCylinders(
line,extraRepresentation,tube_r);
922 if (!extraRepAttached) {
923 theclass->m_collhandle->sephelper()->addNodeUnderMaterial(extraRepresentation,theclass->m_currentmaterial);
924 extraRepAttached=
true;
928 if (label_sep && theclass->common()->textSep() && theclass->common()->controller()->doTrackLabels())
929 theclass->common()->textSep()->addChild(label_sep);
931 if (extrapSurfaces_sep) theclass->m_collhandle->sephelper()->addNodeUnderMaterial(extrapSurfaces_sep,theclass->m_currentmaterial);
937 if (!theclass->m_currentmaterial)
939 if (
line && theclass->m_collhandle->sephelper()) {
940 theclass->m_collhandle->sephelper()->removeNodeUnderMaterial(
line,theclass->m_currentmaterial);
941 if (extraRepresentation&&extraRepAttached) {
942 theclass->m_collhandle->sephelper()->removeNodeUnderMaterial(extraRepresentation,theclass->m_currentmaterial);
943 extraRepAttached=
false;
946 if (label_sep && theclass->common()->textSep())
947 theclass->common()->textSep()->removeChild(label_sep);
949 if (extrapSurfaces_sep)
950 theclass->m_collhandle->sephelper()->removeNodeUnderMaterial(extrapSurfaces_sep,theclass->m_currentmaterial);
991 points_raw =
new std::vector<Amg::Vector3D >;
997 ensureLoadPathInfo();
999 if (pathInfo_TrkTrack) {
1001 if (pathInfo_TrkTrack->trackParameters())
1002 points_raw->reserve(pathInfo_TrkTrack->trackParameters()->size());
1003 bool unsafeparts(
false);
1007 for (; tsos_iter != tsos_end; ++tsos_iter) {
1012 if (theclass->collHandle()->ignoreMEOTinProp() && (*tsos_iter)->materialEffectsOnTrack())
1014 trackParam = (*tsos_iter)->trackParameters();
1021 points_raw->push_back( trackParam->
position() );
1022 if (!firstmomentum) {
1028 theclass->collHandle()->systemBase()->message(
"WARNING: Ignored unsafe parts of track!");
1029 if (points_raw->size()==1) {
1030 if (!firstmomentum) {
1031 theclass->collHandle()->systemBase()->message(
" TrackHandleBase ERROR: Unexpected null firstmomentum!");
1034 if (firstmomentum->mag()==0.0) {
1035 theclass->collHandle()->systemBase()->message(
"TrackHandleBase ERROR: Only point on track had zero momentum. Can't add second point.");
1036 points_raw->clear();
1039 points_raw->push_back(points_raw->front()+(*firstmomentum)*(100.0/firstmomentum->mag()));
1041 }
else if (points_raw->empty()) {
1042 theclass->collHandle()->systemBase()->message(
"TrackHandleBase ERROR: No points on track.");
1045 delete firstmomentum;
1046 firstmomentum =
nullptr;
1049 if (pathInfo_Points)
1050 std::copy(pathInfo_Points->begin(), pathInfo_Points->end(), std::back_inserter(*points_raw));
1051 if (points_raw->size()<2) {
1052 theclass->collHandle()->systemBase()->message(
"TrackHandleBase ERROR: Less than two points on track provided.");
1053 points_raw->clear();
1057 +
" points for track.");
1064 if (points_propagated)
1067 ensureLoadPathInfo();
1069 if (pathInfo_TrkTrack) {
1070 points_propagated =
new std::vector<Amg::Vector3D >();
1072 if (theclass->hasCharge()&&theclass->charge()!=0.0)
1073 ok = theclass->common()->trackPropagationHelper()->makePointsCharged(*points_propagated,pathInfo_TrkTrack,
1074 theclass->collHandle()->propagator(),
1075 theclass->extrapolationParticleHypothesis(),
1076 !theclass->collHandle()->ignoreMEOTinProp(),
1077 theclass->collHandle()->extendTracks() ? theclass->common()->controller()->extrapolateToThisVolume() :
nullptr );
1079 ok = theclass->common()->trackPropagationHelper()->makePointsNeutral(*points_propagated,pathInfo_TrkTrack);
1082 delete points_propagated;
1083 ensureInitPointsRaw();
1084 points_propagated = points_raw;
1088 ensureInitPointsRaw();
1089 points_propagated = points_raw;
1096 if (raw?points_raw_id_projections:points_propagated_id_projections)
1099 raw ? ensureInitPointsRaw() : ensureInitPointsPropagated();
1102 if (points_propagated==points_raw) {
1104 if (points_propagated_id_projections) {
1105 points_raw_id_projections = points_propagated_id_projections;
1109 if (points_raw_id_projections) {
1110 points_propagated_id_projections = points_raw_id_projections;
1117 std::vector<Amg::Vector3D > *
points=
nullptr;
1122 projections = points_raw_id_projections;
1125 points = points_propagated;
1126 projections = points_propagated_id_projections;
1130 projections->clear();
1131 projections->insert(std::vector<Amg::Vector3D >());
1136 if (theclass->common()->indetProjHelper_Pixel()) {
1137 theclass->common()->indetProjHelper_Pixel()->projectPath(*
points,*projections);
1140 if (theclass->common()->indetProjHelper_SCT()) {
1141 theclass->common()->indetProjHelper_SCT()->projectPath(*
points,*projections);
1144 if (theclass->common()->indetProjHelper_TRT()) {
1145 theclass->common()->indetProjHelper_TRT()->projectPath(*
points,*projections);
1150 projections->clear();
1151 projections->insert(std::vector<Amg::Vector3D >());
1158 if (raw?points_raw_muon_projections:points_propagated_muon_projections)
1161 raw ? ensureInitPointsRaw() : ensureInitPointsPropagated() ;
1164 if (points_propagated==points_raw) {
1166 if (points_propagated_muon_projections) {
1167 points_raw_muon_projections = points_propagated_muon_projections;
1171 if (points_raw_muon_projections) {
1172 points_propagated_muon_projections = points_raw_muon_projections;
1179 std::vector<Amg::Vector3D > *
points;
1184 projections = points_raw_muon_projections;
1187 points = points_propagated;
1188 projections = points_propagated_muon_projections;
1193 projections->insert(std::vector<Amg::Vector3D >());
1200 bool outsidechamber;
1201 std::vector<Amg::Vector3D > proj1, proj2;
1214 std::vector<Amg::Vector3D >::const_iterator pointsIt=
points->begin(), pointsItEnd=
points->end()-1;
1215 for (;pointsIt!=pointsItEnd; ++pointsIt) {
1219 firstEndWall_pointA, firstEndWall_pointB,
1220 secondEndWall_pointA, secondEndWall_pointB,
1224 theclass->collHandle()->systemBase()->message(
"TrackHandleBase Error: "
1225 "Problems with projectAndConstrainLineSegmentToMDTChamberEndWalls(..)");
1231 if (!outsidechamber){
1232 if ( proj1.empty() ) {
1233 proj1.push_back(firstEndWall_pointA); proj1.push_back(firstEndWall_pointB);
1235 if ( proj1[proj1.size()-1] == firstEndWall_pointA ) {
1236 proj1.push_back(firstEndWall_pointB);
1239 projections->insert(proj1); proj1.clear();
1240 proj1.push_back(firstEndWall_pointA); proj1.push_back(firstEndWall_pointB);
1243 if ( proj2.empty() ) {
1244 proj2.push_back(secondEndWall_pointA); proj2.push_back(secondEndWall_pointB);
1248 if ( proj2[proj2.size()-1] == secondEndWall_pointA ) {
1249 proj2.push_back(secondEndWall_pointB);
1252 projections->insert(proj2); proj2.clear();
1253 proj2.push_back(secondEndWall_pointA); proj2.push_back(secondEndWall_pointB);
1259 if ( !proj1.empty() ) {
1260 projections->insert(proj1);
1262 if ( !proj2.empty() ) {
1263 projections->insert(proj2);
1292 switch(theclass->collHandle()->colourBy()) {
1295 pdgcode = theclass->pdgCode();
1296 return theclass->common()->controller()->getMaterialForPDGCode(pdgcode ==
SimBarCode::unknownPDG ? 0 : pdgcode);
1299 if (!randommaterial) {
1300 randommaterial =
new SoMaterial;
1301 randommaterial->ref();
1302 theclass->rerandomiseRandomMaterial();
1304 return randommaterial;
1307 return theclass->common()->controller()->getMaterialForCharge(theclass->hasCharge()?theclass->charge():0.0);
1309 return theclass->common()->controller()->getMaterialForMomentum(theclass->momentum().mag());
1325 if (handle==
nullptr) {
1333 float phiDistance = sqrt (
pow( selectedTrackMom.phi() - thisTrackMom.phi(),2) );
1334 float etaDistance = sqrt (
pow( selectedTrackMom.eta() - thisTrackMom.eta(),2) );
1338 float brightness=
std::max(0.2, 1.0-(etaDistance/5.0) );
1341 SoMaterial*
mat =
new SoMaterial;
1345 const SbColor&
col=theclass->collHandle()->material()->diffuseColor[0];
1350 if (colScale>0.01) {
1353 QColor tempCol = QColor::fromRgbF(
r,
g,
b );
1355 tempCol.getHsvF(&
h,&
s,&
v);
1360 tempCol.setHsvF(
h,
s,
v);
1362 tempCol.getRgbF(&r2,&
g2,&b2);
1365 r3 =
r+(r2-
r)*colScale;
1366 b3 =
b+(b2-
b)*colScale;
1367 g3 =
g+(
g2-
g)*colScale;
1375 theclass->collHandle()->collMaterialBrightness(),
1376 theclass->collHandle()->collMaterialTransparency());
1382 SoMaterial*
mat = theclass->common()->system()->materialFromVertex(theclass);
1386 return theclass->collHandle()->material();
1390 return theclass->collHandle()->material();
1400 double r2 = 0.3*0.3;
1405 r = (
rand() /
static_cast<double>(RAND_MAX));
1406 g = (
rand() /
static_cast<double>(RAND_MAX));
1407 b = (
rand() /
static_cast<double>(RAND_MAX));
1411 if ( (
r-1.0)*(
r-1.0)+
g*
g+
b*
b < r2*0.5 )
1413 else if (
r*
r/(
r*
r+
g*
g+
b*
b) > 0.8 )
1415 else if (
r*
r+
g*
g+
b*
b < r2*2.0 )
1425 " not be selected such as to satisfy all separation criterias");
1477 return attachHandle;
1556 if (
mom.mag2()==0.0) {
1557 l <<
"Momentum : 0 (undefined)";
1593 for (; tsos_iter != tsos_end; ++tsos_iter) {
1594 if (
common()->trackSanityHelper()->isSafe(*tsos_iter)) {
1596 if (
common()->trackSanityHelper()->isSafe(trackParam))
1613 for (; tsos_iter != tsos_end; ++tsos_iter) {
1614 if (
common()->trackSanityHelper()->isSafe(*tsos_iter)) {
1616 if (
common()->trackSanityHelper()->isSafe(trackParam))
1629 if (!
start)
return false;
1630 return start->perp()<1100 &&fabs(
start->z())<3500;
1652 septrack_simple(nullptr),
1653 septrack_detailed(nullptr),
1654 pickStyleChildIdx(-1),
1670 if (!septrack_detailed)
1672 lodHandle->
addNodes(septrack_simple,septrack_detailed);
1679 if (!septrack_detailed)
1681 lodHandle->
removeNodes(septrack_simple,septrack_detailed);
1691 bool b =
m_d->trackhandle->visible();
1692 if (
b&&!
m_d->trackhandle->currentMaterial())
1693 VP1Msg::message(
"ERROR: track is visible but has not current material!!");
1695 m_d->ensureAttached();
1697 m_d->ensureDetached();
1705 VP1Msg::message(
"AssocObjAttachmentHandle ERROR: constructed with null LOD handle!");
1718 VP1Msg::message(
"ERROR: AssocObjAttachmentHandle::setPickableStateOfNodes detected wrong pickStyleChildIdx");
1748 VP1Msg::message(
"ERROR: track is visible but has no current material!!");
1774 pickStyle->style=SoPickStyle::UNPICKABLE;
1803 VP1Msg::message(
"ERROR: AssocObjAttachmentHandle::attachNodes detected wrong pickStyleChildIdx");
1807 VP1Msg::message(
"ERROR: AssocObjAttachmentHandle::attachNodes Already attached!");
1841 +QString(unpickable?
"true":
"false"));
1842 if (!simple||!detailed) {
1843 VP1Msg::messageVerbose(
"AssocObjAttachmentHandle::setPickableStateOfNodes ERROR: Called with null pointers!");
1851 VP1Msg::message(
"ERROR: AssocObjAttachmentHandle::setPickableStateOfNodes septrack_simple->getNumChildren()"
1852 "!=m_d->septrack_detailed->getNumChildren().");
1856 if (idetailed!=isimple) {
1857 VP1Msg::message(
"ERROR: AssocObjAttachmentHandle::setPickableStateOfNodes"
1858 " called with simple and detailed nodes that are not at same child idx!");
1863 VP1Msg::message(
"ERROR: AssocObjAttachmentHandle::setPickableStateOfNodes detected wrong pickStyleChildIdx");
1869 " called with nodes that are not currently children. Calling attachNodes(..)." );
1875 " already in correct state.");
1895 VP1Msg::message(
"ERROR: AssocObjAttachmentHandle::setPickableStateOfNodes Inconsistent logic");
1926 if (!simple||!detailed) {
1931 VP1Msg::message(
"ERROR: AssocObjAttachmentHandle::detachNodes septrack_simple->getNumChildren()"
1932 "!=m_d->septrack_detailed->getNumChildren().");
1937 VP1Msg::message(
"ERROR: AssocObjAttachmentHandle::detachNodes detected wrong pickStyleChildIdx");
1941 VP1Msg::message(
"ERROR: AssocObjAttachmentHandle::detachNodes Not previously attached!");
1945 VP1Msg::message(
"ERROR: AssocObjAttachmentHandle::setPickableStateOfNodes"
1946 " called with simple and detailed nodes that are not at same child idx!");
1988 VP1Msg::message(
"TrackHandleBase::getReadoutElement:: Unable to find matching readoutElement");
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());
2004 if ((*it)->hasMeasurement()&&(*it)->visible())
2012 assert(
m_d->m_objBrowseTree==0);
2013 m_d->m_objBrowseTree =
new QTreeWidgetItem();
2016 QString
l = direction + shortInfo();
2018 m_d->m_objBrowseTree->setText(1,
l );
2021 m_d->m_objBrowseTree->setFlags(Qt::ItemFlags());
2023 listOfItems << browserTreeItem();
2031 if ( !browserTreeItem()) {
2037 browserTreeItem()->setFlags(Qt::ItemFlags());
2039 browserTreeItem()->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled);
2041 QFont itemFont = browserTreeItem()->font(0);
2042 itemFont.setStrikeOut(!visible());
2043 browserTreeItem()->setFont(0, itemFont);
2044 browserTreeItem()->setFont(1, itemFont);