ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
graphics
VP1
VP1Systems
VP1AODSystems
src
AODSysCommonData.cxx
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
7
// //
8
// Implementation of class AODSysCommonData //
9
// //
10
// Author: Thomas H. Kittelmann (Thomas.Kittelmann@cern.ch) //
11
// Initial version: April 2008 //
12
// //
14
15
#include "
AODSysCommonData.h
"
16
#include "
VP1AODSystems/VP1AODSystem.h
"
17
#include "
VP1AODSystems/AODSystemController.h
"
18
#include "
AODHandleBase.h
"
19
20
#include <Inventor/C/errors/debugerror.h>
21
#include <Inventor/nodes/SoVertexProperty.h>
22
#include <Inventor/nodes/SoPointSet.h>
23
#include <Inventor/nodes/SoSeparator.h>
24
25
#include <QTreeWidgetItem>
26
27
#include<map>
28
#include "
xAODBase/IParticle.h
"
29
#include <Inventor/SoPath.h>
30
31
//____________________________________________________________________
32
class
AODSysCommonData::Imp
{
33
public
:
34
std::map<SoNode*,AODHandleBase*>
nodeToHandle
;
35
AODHandleBase
*
last_selectedHandle
=
nullptr
;
36
};
37
38
//____________________________________________________________________
39
AODSysCommonData::AODSysCommonData
(
VP1AODSystem
* sys,
AODSystemController
*
controller
)
40
:
VP1HelperClassBase
(sys,
"AODSysCommonData"
),
m_d
(new
Imp
),
m_3dsystem
(sys),
41
m_controller
(
controller
),
m_extrapolator
(0)
42
{
43
m_singlePoint
=
new
SoPointSet;
44
m_singlePoint
->ref();
45
SoVertexProperty * vertices =
new
SoVertexProperty;
46
vertices->vertex.set1Value(0,0.0f,0.0f,0.0f);
47
m_singlePoint
->numPoints=1;
48
m_singlePoint
->vertexProperty.setValue(vertices);
49
50
m_d
->last_selectedHandle=0;
51
}
52
53
//____________________________________________________________________
54
AODSysCommonData::~AODSysCommonData
()
55
{
56
m_singlePoint
->unref();
57
delete
m_d
;
58
}
59
60
void
AODSysCommonData::registerHandle
(
AODHandleBase
*
h
){
61
// if (m_d->nodeToHandle.find(node)!=m_d->nodeToHandle.end()){
62
// messageVerbose("AODSysCommonData::registerHandle - handle already registered.");
63
// }
64
m_d
->nodeToHandle[
h
->nodes()]=
h
;
65
}
66
67
void
AODSysCommonData::deregisterHandle
(
AODHandleBase
*
h
){
68
// if (m_d->nodeToTrackHandle.find(node)==m_d->nodeToHandle.end()){
69
// message("AODSysCommonData::deregisterHandle - handle not registered!");
70
// }
71
72
for
(
auto
it :
m_d
->nodeToHandle) {
73
if
(it.second ==
h
) {
74
m_d
->nodeToHandle.erase(it.first);
75
break
;
76
}
77
}
78
}
79
AODHandleBase
*
AODSysCommonData::getHandleFromNode
( SoNode*
node
) {
80
auto
it =
m_d
->nodeToHandle.find(
node
);
81
if
(it==
m_d
->nodeToHandle.end()){
82
message
(
"AODSysCommonData::getHandleFromNode - handle not registered!"
);
83
message
(
"AODSysCommonData::getHandleFromNode - have this many handles:"
+
str
(
m_d
->nodeToHandle.size()));
84
85
return
0;
86
}
87
return
it->second;
88
}
89
90
//____________________________________________________________________
91
AODHandleBase
*
AODSysCommonData::getHandleFromNode
(
const
SoPath*path) {
92
const
int
n(path?path->getLength():0);
93
AODHandleBase
* handle(0);
94
for
(
int
i = 0; i < n; ++i) {
95
if
(path->getNodeFromTail(i)->getTypeId()==SoSeparator::getClassTypeId()) {
96
handle =
getHandleFromNode
(
static_cast<
SoSeparator*
>
(path->getNodeFromTail(i)));
97
if
(handle)
98
return
handle;
99
}
100
}
101
return
0;
102
}
103
104
SoNode*
AODSysCommonData::getNodeFromBrowser
( QTreeWidgetItem* item ){
105
message
(
"AODSysCommonData::getNodeFromBrowser - about to loop over this many handles:"
+
str
(
m_d
->nodeToHandle.size()));
106
if
(!item)
107
return
0;
108
std::map<SoNode*,AODHandleBase*>::iterator it =
m_d
->nodeToHandle.begin(), itEnd=
m_d
->nodeToHandle.end();
109
for
(; it!=itEnd;++it)
110
if
(it->second->browserTreeItem()==item)
return
it->first;
111
return
0;
112
}
113
114
115
116
void
AODSysCommonData::setLastSelectedHandle
(
AODHandleBase
*
h
) {
117
m_d
->last_selectedHandle=
h
;
118
}
AODHandleBase.h
AODSysCommonData.h
AODSystemController.h
IParticle.h
VP1AODSystem.h
AODHandleBase
Definition
AODHandleBase.h:43
AODSysCommonData::Imp
Definition
AODSysCommonData.cxx:32
AODSysCommonData::Imp::nodeToHandle
std::map< SoNode *, AODHandleBase * > nodeToHandle
Definition
AODSysCommonData.cxx:34
AODSysCommonData::Imp::last_selectedHandle
AODHandleBase * last_selectedHandle
Definition
AODSysCommonData.cxx:35
AODSysCommonData::m_singlePoint
SoPointSet * m_singlePoint
Definition
AODSysCommonData.h:77
AODSysCommonData::controller
const AODSystemController * controller() const
Definition
AODSysCommonData.h:50
AODSysCommonData::registerHandle
void registerHandle(AODHandleBase *h)
Definition
AODSysCommonData.cxx:60
AODSysCommonData::m_3dsystem
VP1AODSystem * m_3dsystem
Definition
AODSysCommonData.h:75
AODSysCommonData::getHandleFromNode
AODHandleBase * getHandleFromNode(SoNode *node)
Definition
AODSysCommonData.cxx:79
AODSysCommonData::m_d
Imp * m_d
Definition
AODSysCommonData.h:73
AODSysCommonData::deregisterHandle
void deregisterHandle(AODHandleBase *h)
Definition
AODSysCommonData.cxx:67
AODSysCommonData::getNodeFromBrowser
SoNode * getNodeFromBrowser(QTreeWidgetItem *item)
Definition
AODSysCommonData.cxx:104
AODSysCommonData::m_extrapolator
Trk::IExtrapolationEngine * m_extrapolator
Definition
AODSysCommonData.h:78
AODSysCommonData::setLastSelectedHandle
void setLastSelectedHandle(AODHandleBase *h)
Definition
AODSysCommonData.cxx:116
AODSysCommonData::m_controller
AODSystemController * m_controller
Definition
AODSysCommonData.h:76
AODSysCommonData::~AODSysCommonData
virtual ~AODSysCommonData()
Definition
AODSysCommonData.cxx:54
AODSysCommonData::AODSysCommonData
AODSysCommonData(VP1AODSystem *sys, AODSystemController *)
Definition
AODSysCommonData.cxx:39
AODSystemController
Definition
AODSystemController.h:43
h
Header file for AthHistogramAlgorithm.
VP1AODSystem
Definition
VP1AODSystem.h:34
VP1HelperClassBase::VP1HelperClassBase
VP1HelperClassBase(IVP1System *sys=0, QString helpername="")
Definition
VP1HelperClassBase.cxx:28
VP1HelperClassBase::message
void message(const QString &) const
Definition
VP1HelperClassBase.cxx:49
node
Definition
node.h:24
str
Definition
BTagTrackIpAccessor.cxx:11
Generated on
for ATLAS Offline Software by
1.17.0