ATLAS Offline Software
Loading...
Searching...
No Matches
VP1BPhysSystem Class Reference

#include <VP1BPhysSystem.h>

Inheritance diagram for VP1BPhysSystem:
Collaboration diagram for VP1BPhysSystem:

Classes

class  Clockwork

Public Types

typedef std::set< SoCamera * > CamList
typedef CamList::iterator CamListItr
enum  State { CONSTRUCTED =0 , REFRESHED , ERASED , UNCREATED }
enum  ActiveState { ON =0 , OFF }

Signals

void itemFromSystemSelected ()
void sysmessage (QString) const
void inactiveSystemTurnedActive ()
void needErase ()

Public Member Functions

 VP1BPhysSystem ()
virtual ~VP1BPhysSystem ()
void buildEventSceneGraph (StoreGateSvc *sg, SoSeparator *root)
QWidget * buildController ()
virtual void systemcreate (StoreGateSvc *detstore)
void ensureBuildController ()
virtual void buildPermanentSceneGraph (StoreGateSvc *detstore, SoSeparator *root)
void updateGUI ()
virtual void userPickedNode (SoNode *pickedNode, SoPath *pickedPath)
virtual void systemerase ()
virtual void systemuncreate ()
void warnOnDisabledNotifications () const
void registerCamera (SoCamera *camera)
void registerViewer (SoQtViewer *viewer)
void registerSelectionNode (SoCooperativeSelection *)
void unregisterSelectionNode (SoCooperativeSelection *)
void setUserSelectionNotificationsEnabled (SoCooperativeSelection *sel, bool enabled)
virtual void userSelectedSingleNode (SoCooperativeSelection *, SoNode *, SoPath *)
virtual void userDeselectedSingleNode (SoCooperativeSelection *, SoNode *, SoPath *)
virtual void userChangedSelection (SoCooperativeSelection *, const QSet< SoNode * > &, QSet< SoPath * >)
virtual void userClickedOnBgd ()
virtual void deselectAll (SoCooperativeSelection *exception_sel=0)
CamList getCameraList ()
virtual QWidget * buildExtraDisplayWidget ()
const QString & name () const
const QString & information () const
const QString & contact_info () const
QWidget * controllerWidget ()
virtual QByteArray saveState ()
virtual void restoreFromState (QByteArray)
void message (const QString &) const
void message (const QStringList &, const QString &addtoend="") const
void message (const QString &addtostart, const QStringList &, const QString &addtoend="") const
void messageDebug (const QString &) const
void messageDebug (const QStringList &, const QString &addtoend="") const
void messageDebug (const QString &addtostart, const QStringList &, const QString &addtoend="") const
void messageVerbose (const QString &) const
void messageVerbose (const QStringList &, const QString &addtoend="") const
void messageVerbose (const QString &addtostart, const QStringList &, const QString &addtoend="") const
StoreGateSvcstoreGate () const
StoreGateSvceventStore () const
StoreGateSvcdetectorStore () const
ISvcLocator * serviceLocator () const
IToolSvc * toolSvc () const
State state () const
ActiveState activeState () const

Static Public Member Functions

static bool verbose ()
static QString str (const QString &s)
static QString str (const char *c)
static QString str (const bool b)
static QString str (const QColor &)
static QString str (const SbColor &)
static QString str (const VP1Interval &)
static QString str (const SbVec2d &)
static QString str (const SbVec2f &)
static QString str (const SbVec2s &)
static QString str (const SbVec3d &)
static QString str (const SbVec3f &)
static QString str (const SbVec3s &)
static QString str (const SbVec4d &)
static QString str (const SbVec4f &)
static QString str (short int n)
static QString str (unsigned short int n)
static QString str (long n)
static QString str (ulong n)
static QString str (int n)
static QString str (uint n)
static QString str (qlonglong n)
static QString str (qulonglong n)
static QString str (const double &d)
static QString str (const float &f)
static QString str (const void *)
template<class T>
static QString str (const T *t)
template<class T>
static QString str (const QFlags< T > &f)
template<class T>
static QString str (const HepGeom::BasicVector3D< T > &t)
static QString str (const Amg::Vector3D &t)
template<class T>
static QString str (const QList< T > &t)

Protected Member Functions

void registerController (QWidget *)

Private Slots

void loadFile ()
 slots *****************************************************************************
void displayVerticesChanged (int state)
void sphereToggled (bool checked)
void crossToggled (bool checked)
void ellipsoidToggled (bool checked)
void displayAllTracksChanged (int state)
void displayOrigSignalChanged (int state)
void displayRefTracksChanged (int state)
void displayNeutralChanged (int state)
void activateClickedOutside ()

Private Member Functions

void actualBuild ()
void filterTrack (SoSeparator *root, const Rec::TrackParticleContainer *partCont, double pt, double eta, double phi, double d0, double z0, double x, double y, double z, unsigned long color, std::vector< const Rec::TrackParticle * > *selectedParticles)
 drawing methods *******************************************************************
void drawAllTrackParticles (StoreGateSvc *sg, SoSeparator *root, std::vector< const Rec::TrackParticle * > *selectedParticles)
void drawTrackParticle (SoSwitch *trackSwitch, const Rec::TrackParticle *part, unsigned long color)
void drawCutoffTrackParticle (SoSeparator *root, const Rec::TrackParticle *part, double x, double y, double z, unsigned long color)
void drawNeutralTrack (SoSeparator *root, double x, double y, double z, double px, double py, double pz, double length, unsigned long color)
void drawRefittedTrack (SoSeparator *root, double x, double y, double z, double px, double py, double pz, double charge, unsigned long color)
void drawVertex (SoSeparator *root, double x, double y, double z, double radius, double xx, double xy, double xz, double yy, double yz, double zz, unsigned long color, std::vector< SoSwitch * > &vertexSwitches)
void drawPoints (SoSwitch *trackSwitch, std::vector< Amg::Vector3D > *points, unsigned long color, double width, bool isNeutral)
std::vector< Amg::Vector3D > * getPoints (const Trk::Track *track)
std::vector< Amg::Vector3D > * getPoints (const Rec::TrackParticle *part)
std::vector< Amg::Vector3D > * findClosestApproach (std::vector< Amg::Vector3D > *points, double x, double y, double z)
const Trk::TrackgetTrack (const Rec::TrackParticle *trackparticle)
 utils *****************************************************************************
const Trk::TrackgetRefittedTrack (const Amg::Vector3D &pos, const Amg::Vector3D &mom, double charge)
void getColor (unsigned long icolor, double &r, double &g, double &b)
SoLineSet * createCross (double extent)
SoSeparator * getSceneGraph () const
void create (StoreGateSvc *detstore)
void refresh (StoreGateSvc *storegate)
void erase ()
void uncreate ()
void disallowUpdateGUI ()
void allowUpdateGUI ()
void setChannel (IVP1ChannelWidget *)
IVP1ChannelWidgetchannel () const
void deleteController ()
void setState (const State &)
void setActiveState (const ActiveState &, const bool &donttriggererase=true)
bool isRefreshing ()
void setRefreshing (const bool &)
void setCanRegisterController (const bool &)

Private Attributes

TFile * m_rootFile
TTree * m_tree
QString m_fileName
StoreGateSvcm_sg
SoSeparator * m_root
int m_vertexStyle
bool m_showVertices
std::vector< SoSwitch * > m_vertexSwitches
bool m_showAll
bool m_showSignal
bool m_showNeutral
bool m_showRefitted
std::vector< SoSwitch * > m_trackSwitches
std::vector< SoSwitch * > m_overlapSwitches
std::vector< SoSwitch * > m_signalSwitches
std::vector< SoSwitch * > m_neutralSwitches
std::vector< SoSwitch * > m_refittedSwitches
Brm_br
Clockworkm_c
Impm_d

Static Private Attributes

static const bool s_vp1verbose = VP1QtUtils::environmentVariableIsOn("VP1_VERBOSE_OUTPUT")

Detailed Description

Definition at line 95 of file VP1BPhysSystem.h.

Member Typedef Documentation

◆ CamList

typedef std::set<SoCamera*> IVP13DSystem::CamList
inherited

Definition at line 90 of file IVP13DSystem.h.

◆ CamListItr

typedef CamList::iterator IVP13DSystem::CamListItr
inherited

Definition at line 91 of file IVP13DSystem.h.

Member Enumeration Documentation

◆ ActiveState

enum IVP1System::ActiveState
inherited
Enumerator
ON 
OFF 

Definition at line 144 of file IVP1System.h.

144{ ON=0, OFF };//Whether it is part of the erase/refresh cycle.

◆ State

enum IVP1System::State
inherited
Enumerator
CONSTRUCTED 
REFRESHED 
ERASED 
UNCREATED 

Definition at line 143 of file IVP1System.h.

Constructor & Destructor Documentation

◆ VP1BPhysSystem()

VP1BPhysSystem::VP1BPhysSystem ( )

Definition at line 115 of file VP1BPhysSystem.cxx.

116 : IVP13DSystemSimple("BPhys",
117 "VP1BPhysSystem",
118 "daniel.scheirich@cern.ch") ,
122
123 m_showAll{},
124 m_showSignal{},
127
133 m_br{},
134 m_c(new Clockwork)
135{
136 messageDebug("in BPhysSystem");
137
138 m_rootFile = nullptr;
139 m_tree = nullptr;
140 m_sg = nullptr;
141 m_root = nullptr;
142
143
144// messageDebug("Creating propagationHelper...");
145// propagationHelper = new TrackPropagationHelper(this);
146// messageDebug("...done");
147
148 messageDebug("leaving VP1BPhysSystem");
149}
IVP13DSystemSimple(const QString &name, const QString &information, const QString &contact_info)
void messageDebug(const QString &) const
SoSeparator * m_root
std::vector< SoSwitch * > m_refittedSwitches
std::vector< SoSwitch * > m_overlapSwitches
StoreGateSvc * m_sg
std::vector< SoSwitch * > m_neutralSwitches
Clockwork * m_c
std::vector< SoSwitch * > m_signalSwitches
std::vector< SoSwitch * > m_trackSwitches
std::vector< SoSwitch * > m_vertexSwitches

◆ ~VP1BPhysSystem()

virtual VP1BPhysSystem::~VP1BPhysSystem ( )
inlinevirtual

Definition at line 101 of file VP1BPhysSystem.h.

101{};

Member Function Documentation

◆ activateClickedOutside

void IVP13DSystem::activateClickedOutside ( )
privateslotinherited

Definition at line 85 of file IVP13DSystem.cxx.

86{
87 if (!m_d->clickedoutsideScheduled)
88 return;
89 m_d->clickedoutsideScheduled = false;
91}
virtual void userClickedOnBgd()

◆ activeState()

IVP1System::ActiveState IVP1System::activeState ( ) const
inherited

Definition at line 135 of file IVP1System.cxx.

136{
137 return m_d->activeState;
138}

◆ actualBuild()

void VP1BPhysSystem::actualBuild ( )
private


Definition at line 190 of file VP1BPhysSystem.cxx.

190 {
191
192 //delete all objects from the scene
193 m_root->removeAllChildren();
194
195 //Sanity check:
196 if (!m_sg) {
197 message("Error: Got null storegate pointer");
198 return;
199 }
200
201 //check that file was open
202 if(m_tree==nullptr) return;
203
204 //retrieving event info
205 const EventContext& ctx = Gaudi::Hive::currentContext();
206 int evtNum = ctx.eventID().event_number();
207 int runNum = ctx.eventID().run_number();
208
209 //retrieve TrackParticle candidates
210 const Rec::TrackParticleContainer* partCont;
211 StatusCode status = m_sg->retrieve(partCont, "TrackParticleCandidate");
212 if (status != StatusCode::SUCCESS || !partCont) {
213 message("Error: Could not retrieve track particle container (used key=TrackParticleCandidate)");
214 return;
215 }
216
218 //cleanup
219 m_vertexSwitches.clear();
220 m_trackSwitches.clear();
221 m_overlapSwitches.clear();
222 m_signalSwitches.clear();
223 m_neutralSwitches.clear();
224 m_refittedSwitches.clear();
225
227
228 std::vector<const Rec::TrackParticle*>* selectedParticles = new std::vector<const Rec::TrackParticle*>();
229
230
231 //find event
232 //int e = m_tree->GetEntryNumberWithIndex(runNum, evtNum); //for some reason this doesn't work 100% reliable
233
234 int e=-1;
235 for(int i=0; i<m_tree->GetEntries(); ++i) {
236 m_br->GetEntry(i);
237 if(m_br->runNum == runNum && m_br->evtNum == evtNum) {
238 e=i;
239 break;
240 }
241 }
242
243 if(e==-1) {
244 m_c->ui.lStatus->setText("No event to display");
245 message("Event is not in the VP1BPhys Display File. Skipping.");
246 }else{
247 m_c->ui.lStatus->setText("");
248
249 m_br->GetEntry(e);
250 for(; m_br->runNum == runNum && m_br->evtNum == evtNum && e<m_tree->GetEntries(); m_br->GetEntry(++e)) {
251
252
253 //filter tracks
254 //sanity check
255 if(m_br->track_pt->size() != m_br->track_eta->size() ||
256 m_br->track_pt->size() != m_br->track_eta->size() ||
257 m_br->track_pt->size() != m_br->track_phi->size() ||
258 m_br->track_pt->size() != m_br->track_d0->size() ||
259 m_br->track_pt->size() != m_br->track_z0->size() ||
260 m_br->track_pt->size() != m_br->track_charge->size() ||
261 m_br->track_pt->size() != m_br->track_color->size() ||
262 m_br->track_pt->size() != m_br->track_refitted_px->size() ||
263 m_br->track_pt->size() != m_br->track_refitted_py->size() ||
264 m_br->track_pt->size() != m_br->track_refitted_pz->size() ||
265 m_br->track_pt->size() != m_br->track_refitted_color->size() ||
266 m_br->neutral_refitted_px->size() != m_br->neutral_refitted_py->size() ||
267 m_br->neutral_refitted_px->size() != m_br->neutral_refitted_py->size() ||
268 m_br->neutral_refitted_px->size() != m_br->neutral_refitted_pz->size() ||
269 m_br->neutral_refitted_px->size() != m_br->neutral_length->size() ||
270 m_br->neutral_refitted_px->size() != m_br->neutral_color->size())
271 {
272 message("Different lengths of some filter track collections");
273 continue;
274 }
275
276 //draw selected particles
277 for(uint i=0; i<m_br->track_pt->size(); ++i) {
278 //TrackParticles
279 filterTrack(m_root, partCont,
280 m_br->track_pt->at(i),
281 m_br->track_eta->at(i),
282 m_br->track_phi->at(i),
283 m_br->track_d0->at(i),
284 m_br->track_z0->at(i),
285 m_br->vtx_x, m_br->vtx_y, m_br->vtx_z,
286 m_br->track_color->at(i),
287 selectedParticles);
288
289 //refitted tracks
291 m_br->vtx_x, m_br->vtx_y, m_br->vtx_z,
292 m_br->track_refitted_px->at(i),
293 m_br->track_refitted_py->at(i),
294 m_br->track_refitted_pz->at(i),
295 m_br->track_charge->at(i),
296 m_br->track_refitted_color->at(i));
297
298 }
299
300
301 //draw neutral tracks
302 std::vector<double>::iterator neutralPxItr = m_br->neutral_refitted_px->begin();
303 std::vector<double>::iterator neutralPyItr = m_br->neutral_refitted_py->begin();
304 std::vector<double>::iterator neutralPzItr = m_br->neutral_refitted_pz->begin();
305 std::vector<double>::iterator neutralLengthItr = m_br->neutral_length->begin();
306 std::vector<unsigned long>::iterator neutralColorItr = m_br->neutral_color->begin();
307
308 for(; neutralPxItr!=m_br->neutral_refitted_px->end(); ++neutralPxItr, ++neutralPyItr, ++neutralPzItr, ++neutralLengthItr, ++neutralColorItr) {
309 drawNeutralTrack(m_root, m_br->vtx_x, m_br->vtx_y, m_br->vtx_z,
310 *neutralPxItr, *neutralPyItr, *neutralPzItr, *neutralLengthItr, *neutralColorItr);
311 }
312
313 //draw vertices
314 drawVertex(m_root, m_br->vtx_x, m_br->vtx_y, m_br->vtx_z, 3/*sigma*/,
315 m_br->vtx_xx,
316 m_br->vtx_xy,
317 m_br->vtx_xz,
318 m_br->vtx_yy,
319 m_br->vtx_yz,
320 m_br->vtx_zz,
321 m_br->vtx_color,
323
324 }
325 }
326
327 //draw all remaining tracks
328 drawAllTrackParticles(m_sg,m_root,selectedParticles);
329
330 //cleaning up
331 delete selectedParticles;
332
333
334}
unsigned int uint
void message(const QString &) const
void drawAllTrackParticles(StoreGateSvc *sg, SoSeparator *root, std::vector< const Rec::TrackParticle * > *selectedParticles)
void drawVertex(SoSeparator *root, double x, double y, double z, double radius, double xx, double xy, double xz, double yy, double yz, double zz, unsigned long color, std::vector< SoSwitch * > &vertexSwitches)
void drawRefittedTrack(SoSeparator *root, double x, double y, double z, double px, double py, double pz, double charge, unsigned long color)
void drawNeutralTrack(SoSeparator *root, double x, double y, double z, double px, double py, double pz, double length, unsigned long color)
void filterTrack(SoSeparator *root, const Rec::TrackParticleContainer *partCont, double pt, double eta, double phi, double d0, double z0, double x, double y, double z, unsigned long color, std::vector< const Rec::TrackParticle * > *selectedParticles)
drawing methods *******************************************************************
::StatusCode StatusCode
StatusCode definition for legacy code.
status
Definition merge.py:16

◆ allowUpdateGUI()

void IVP1System::allowUpdateGUI ( )
privateinherited

Definition at line 256 of file IVP1System.cxx.

257{
258 m_d->allowupdategui=true;
259}

◆ buildController()

QWidget * VP1BPhysSystem::buildController ( )
virtual

Reimplemented from IVP13DSystemSimple.

Definition at line 152 of file VP1BPhysSystem.cxx.

153{
154 messageDebug("in buildController");
155
156 QWidget * controller = new QWidget(nullptr);
157 m_c->ui.setupUi(controller);
158
159 //connect slots
160 connect(m_c->ui.bLoad,SIGNAL(released()),this,SLOT(loadFile()));
161
162 connect(m_c->ui.chDisplayVertices,SIGNAL(stateChanged(int)),this,SLOT(displayVerticesChanged(int)));
163 connect(m_c->ui.rbSphere,SIGNAL(toggled(bool)),this,SLOT(sphereToggled(bool)));
164 connect(m_c->ui.rbCross,SIGNAL(toggled(bool)),this,SLOT(crossToggled(bool)));
165 connect(m_c->ui.rbEllipsoid,SIGNAL(toggled(bool)),this,SLOT(ellipsoidToggled(bool)));
166
167 connect(m_c->ui.chDisplayAllTracks ,SIGNAL(stateChanged(int)),this,SLOT(displayAllTracksChanged(int)));
168 connect(m_c->ui.chDisplayOrigSignal,SIGNAL(stateChanged(int)),this,SLOT(displayOrigSignalChanged(int)));
169 connect(m_c->ui.chDisplayRefTracks ,SIGNAL(stateChanged(int)),this,SLOT(displayRefTracksChanged(int)));
170 connect(m_c->ui.chDisplayNeutral ,SIGNAL(stateChanged(int)),this,SLOT(displayNeutralChanged(int)));
171
172 if(m_c->ui.rbSphere->isChecked()) m_vertexStyle = 0;
173 if(m_c->ui.rbCross->isChecked()) m_vertexStyle = 1;
174 if(m_c->ui.rbEllipsoid->isChecked()) m_vertexStyle = 2;
175 m_showVertices = m_c->ui.chDisplayVertices->isChecked();
176
177 m_showAll = m_c->ui.chDisplayAllTracks->isChecked();
178 m_showSignal = m_c->ui.chDisplayOrigSignal->isChecked();
179 m_showRefitted = m_c->ui.chDisplayRefTracks->isChecked();
180 m_showNeutral = m_c->ui.chDisplayNeutral->isChecked();
181
182
183 messageDebug("leaving buildController");
184
185 return controller;
186}
void displayNeutralChanged(int state)
void ellipsoidToggled(bool checked)
void displayOrigSignalChanged(int state)
void displayVerticesChanged(int state)
void crossToggled(bool checked)
void loadFile()
slots *****************************************************************************
void sphereToggled(bool checked)
void displayRefTracksChanged(int state)
void displayAllTracksChanged(int state)

◆ buildEventSceneGraph()

void VP1BPhysSystem::buildEventSceneGraph ( StoreGateSvc * sg,
SoSeparator * root )
virtual

Implements IVP13DSystemSimple.

Definition at line 336 of file VP1BPhysSystem.cxx.

337{
338 messageDebug("in buildEventSceneGraph");
339
340 m_sg = sg;
341 m_root = root;
342
343 actualBuild();
344
345 messageDebug("Leaving buildEventSceneGraph");
346
347}

◆ buildExtraDisplayWidget()

virtual QWidget * IVP13DSystem::buildExtraDisplayWidget ( )
inlinevirtualinherited

Definition at line 106 of file IVP13DSystem.h.

106{ return 0; }

◆ buildPermanentSceneGraph()

void IVP13DSystemSimple::buildPermanentSceneGraph ( StoreGateSvc * detstore,
SoSeparator * root )
virtualinherited

◆ channel()

IVP1ChannelWidget * IVP1System::channel ( ) const
privateinherited

Definition at line 275 of file IVP1System.cxx.

276{
277 if (VP1Msg::verbose()&&!m_d->channel){
278 messageVerbose("WARNING channel() returning NULL");
279 }
280 assert(m_d->channel);
281 return m_d->channel;
282}
void messageVerbose(const QString &) const
static bool verbose()
Definition VP1Msg.h:31

◆ contact_info()

const QString & IVP1System::contact_info ( ) const
inherited

Definition at line 62 of file IVP1System.cxx.

63{
64 return m_d->contact_info;
65}

◆ controllerWidget()

QWidget * IVP1System::controllerWidget ( )
inherited

Definition at line 202 of file IVP1System.cxx.

202 {
203 if (VP1Msg::verbose()) {
204 messageVerbose("controllerWidget()");
205 messageVerbose("registerController m_d->state==ERASED = "+QString(m_d->state==ERASED?"true":"false"));
206 messageVerbose("registerController m_d->state==REFRESHED = "+QString(m_d->state==REFRESHED?"true":"false"));
207 }
208 assert(m_d->state==REFRESHED||m_d->state==ERASED);
209 return m_d->controller;
210 }

◆ create()

void IVP13DSystemSimple::create ( StoreGateSvc * detstore)
privatevirtualinherited

Implements IVP1System.

Definition at line 133 of file IVP13DSystemSimple.cxx.

134{
135 if(VP1Msg::verbose()){
136 messageVerbose("IVP13DSystemSimple create");
137 }
138 assert(!m_d->wasrefreshed);
139 assert(!m_d->wascreated);
140 ensureBuildController();//TODO: Move to refresh.
141 m_d->wascreated=true;
142 m_d->wasrefreshed=false;
143}

◆ createCross()

SoLineSet * VP1BPhysSystem::createCross ( double extent)
private

Definition at line 1078 of file VP1BPhysSystem.cxx.

1078 {
1079 messageDebug("in createCross");
1080
1081 SoVertexProperty *vertices = new SoVertexProperty();
1082 vertices->vertex.set1Value ( 0,-extent, 0 , 0 );
1083 vertices->vertex.set1Value ( 1, extent, 0 , 0 );
1084 vertices->vertex.set1Value ( 2, 0 ,-extent , 0 );
1085 vertices->vertex.set1Value ( 3, 0 , extent , 0 );
1086 vertices->vertex.set1Value ( 4, 0 , 0 ,-extent );
1087 vertices->vertex.set1Value ( 5, 0 , 0 , extent );
1088 SoLineSet * line = new SoLineSet();
1089 line->numVertices.set1Value(0,2);
1090 line->numVertices.set1Value(1,2);
1091 line->numVertices.set1Value(2,2);
1092 line->vertexProperty = vertices;
1093
1094 messageDebug("leving createCross");
1095 return line;
1096}

◆ crossToggled

void VP1BPhysSystem::crossToggled ( bool checked)
privateslot

Definition at line 856 of file VP1BPhysSystem.cxx.

856 {
857 if(checked) {
858 messageDebug("show vertices as crosses");
860 }
861
862 //apply
863 if(m_showVertices) {
864 std::vector<SoSwitch*>::iterator it=m_vertexSwitches.begin();
865 for(; it!=m_vertexSwitches.end(); ++it) {
866 (*it)->whichChild = m_vertexStyle;
867 }
868 }
869
870}

◆ deleteController()

void IVP1System::deleteController ( )
privateinherited

Definition at line 213 of file IVP1System.cxx.

214{
215 if (VP1Msg::verbose()){
216 messageVerbose("deleteController()");
217 }
218 if (m_d->controller)
219 m_d->controller->deleteLater();
220 m_d->controller = 0;
221}

◆ deselectAll()

void IVP13DSystem::deselectAll ( SoCooperativeSelection * exception_sel = 0)
virtualinherited

Reimplemented in VP1PrepRawDataSystem.

Definition at line 331 of file IVP13DSystem.cxx.

332{
333 static std::map<SoCooperativeSelection*,IVP13DSystem*>::iterator it, itE = Imp::selection2system.end();
334 for (it = Imp::selection2system.begin(); it!=itE;++it) {
335 if (it->second!=this)
336 continue;
337 if (it->first!=exception_sel) {
338 if (it->first->policy.getValue()!=SoCooperativeSelection::SINGLE) {
339 Imp::start_changeselection(this, it->first);
340 it->first->deselectAll();
341 Imp::finished_changeselection(this, it->first);
342 } else {
343 if (it->first->getList()->getLength()==1) {
344 Imp::start_changeselection(this, it->first);
345 SoPath * path = static_cast<SoPath*>(it->first->getList()->get(0));
346 Imp::made_deselection(it->first,path);
347 it->first->deselectAll();
348 Imp::finished_changeselection(this, it->first);
349 }
350 }
351 }
352 }
353}
static void start_changeselection(void *userdata, SoSelection *sel)
static void finished_changeselection(void *userdata, SoSelection *sel)
static std::map< SoCooperativeSelection *, IVP13DSystem * > selection2system
static void made_deselection(void *userdata, SoPath *path)
T * get(TKey *tobj)
get a TObject* from a TKey* (why can't a TObject be a TKey?)
Definition hcg.cxx:130
path
python interpreter configuration --------------------------------------—
Definition athena.py:128

◆ detectorStore()

StoreGateSvc * IVP1System::detectorStore ( ) const
inherited

Definition at line 318 of file IVP1System.cxx.

319{
321}
static StoreGateSvc * detectorStore()

◆ disallowUpdateGUI()

void IVP1System::disallowUpdateGUI ( )
privateinherited

Definition at line 250 of file IVP1System.cxx.

251{
252 m_d->allowupdategui=false;
253}

◆ displayAllTracksChanged

void VP1BPhysSystem::displayAllTracksChanged ( int state)
privateslot

Definition at line 888 of file VP1BPhysSystem.cxx.

888 {
889 if(state==Qt::Unchecked)
890 m_showAll = false;
891 else
892 m_showAll = true;
893
894 //loop over all tracks
895 std::vector<SoSwitch*>::iterator it=m_trackSwitches.begin();
896 for(; it!=m_trackSwitches.end(); ++it) {
897 (*it)->whichChild = m_showAll ? SO_SWITCH_ALL : SO_SWITCH_NONE;
898 }
899
900 //loop over overlap
901 it=m_overlapSwitches.begin();
902 for(; it!=m_overlapSwitches.end(); ++it) {
903 (*it)->whichChild = m_showAll && !m_showSignal && !m_showRefitted ? SO_SWITCH_ALL : SO_SWITCH_NONE;
904 }
905}
State state() const

◆ displayNeutralChanged

void VP1BPhysSystem::displayNeutralChanged ( int state)
privateslot

Definition at line 945 of file VP1BPhysSystem.cxx.

945 {
946 if(state==Qt::Unchecked)
947 m_showNeutral = false;
948 else
949 m_showNeutral = true;
950
951 //loop over neutral tracks
952 std::vector<SoSwitch*>::iterator it=m_neutralSwitches.begin();
953 for(; it!=m_neutralSwitches.end(); ++it) {
954 (*it)->whichChild = m_showNeutral ? SO_SWITCH_ALL : SO_SWITCH_NONE;
955 }
956}

◆ displayOrigSignalChanged

void VP1BPhysSystem::displayOrigSignalChanged ( int state)
privateslot

Definition at line 907 of file VP1BPhysSystem.cxx.

907 {
908 if(state==Qt::Unchecked)
909 m_showSignal = false;
910 else
911 m_showSignal = true;
912
913 //loop over original signal tracks
914 std::vector<SoSwitch*>::iterator it=m_signalSwitches.begin();
915 for(; it!=m_signalSwitches.end(); ++it) {
916 (*it)->whichChild = m_showSignal ? SO_SWITCH_ALL : SO_SWITCH_NONE;
917 }
918
919 //loop over overlap
920 it=m_overlapSwitches.begin();
921 for(; it!=m_overlapSwitches.end(); ++it) {
922 (*it)->whichChild = m_showAll && !m_showSignal && !m_showRefitted ? SO_SWITCH_ALL : SO_SWITCH_NONE;
923 }
924}

◆ displayRefTracksChanged

void VP1BPhysSystem::displayRefTracksChanged ( int state)
privateslot

Definition at line 926 of file VP1BPhysSystem.cxx.

926 {
927 if(state==Qt::Unchecked)
928 m_showRefitted = false;
929 else
930 m_showRefitted = true;
931
932 //loop over refitted signal tracks
933 std::vector<SoSwitch*>::iterator it=m_refittedSwitches.begin();
934 for(; it!=m_refittedSwitches.end(); ++it) {
935 (*it)->whichChild = m_showRefitted ? SO_SWITCH_ALL : SO_SWITCH_NONE;
936 }
937 //loop over overlap
938 it=m_overlapSwitches.begin();
939 for(; it!=m_overlapSwitches.end(); ++it) {
940 (*it)->whichChild = m_showAll && !m_showSignal && !m_showRefitted ? SO_SWITCH_ALL : SO_SWITCH_NONE;
941 }
942
943}

◆ displayVerticesChanged

void VP1BPhysSystem::displayVerticesChanged ( int state)
privateslot

Definition at line 819 of file VP1BPhysSystem.cxx.

819 {
820
821 SoSFInt32 which;
822
823 if(state==Qt::Unchecked) {
824 m_showVertices = false;
825 which = SO_SWITCH_NONE;
826 }else{
827 m_showVertices = true;
829 }
830
831 //apply
832 std::vector<SoSwitch*>::iterator it=m_vertexSwitches.begin();
833 for(; it!=m_vertexSwitches.end(); ++it) {
834 (*it)->whichChild = which;
835 }
836
837}
which(filename, env=os.environ)
UNIX-style which ---------------------------------------------------------—.
Definition unixtools.py:39

◆ drawAllTrackParticles()

void VP1BPhysSystem::drawAllTrackParticles ( StoreGateSvc * sg,
SoSeparator * root,
std::vector< const Rec::TrackParticle * > * selectedParticles )
private

Definition at line 378 of file VP1BPhysSystem.cxx.

378 {
379 messageDebug("in drawAllTrackParticles");
380
381 //retrieve TrackParticle candidates
382 const Rec::TrackParticleContainer* partCont;
383 StatusCode status = sg->retrieve(partCont, "TrackParticleCandidate");
384 if (status != StatusCode::SUCCESS || !partCont) {
385 message("Error: Could not retrieve track particle container (used key=TrackParticleCandidate)");
386 return;
387 }
388
389 Rec::TrackParticleContainer::const_iterator partItr, partItrEnd = partCont->end();
390 for ( partItr = partCont->begin() ; partItr != partItrEnd; ++partItr) {
391 bool found = false;
392 if(selectedParticles!=nullptr) {
393 std::vector<const Rec::TrackParticle*>::const_iterator selItr = selectedParticles->begin();
394 for(; selItr!=selectedParticles->end(); ++selItr) {
395 if(*partItr == *selItr) {
396 found = true;
397 break;
398 }
399 }
400 }
401 if(!found) {
402 SoSwitch* trackSwitch = new SoSwitch();
403 root->addChild(trackSwitch);
404 trackSwitch->whichChild = m_showAll ? SO_SWITCH_ALL : SO_SWITCH_NONE;
405 drawTrackParticle(trackSwitch, *partItr, darkGray);
406 m_trackSwitches.push_back(trackSwitch);
407 }else{
408 SoSwitch* trackSwitch = new SoSwitch();
409 root->addChild(trackSwitch);
410 trackSwitch->whichChild = m_showAll && !m_showSignal && !m_showRefitted ? SO_SWITCH_ALL : SO_SWITCH_NONE;
411 drawTrackParticle(trackSwitch, *partItr, darkGray);
412 m_overlapSwitches.push_back(trackSwitch);
413 }
414 }
415 messageDebug("leaving drawAllTrackParticles");
416
417}
const unsigned long darkGray
DataModel_detail::const_iterator< DataVector > const_iterator
Definition DataVector.h:838
const_iterator end() const noexcept
Return a const_iterator pointing past the end of the collection.
const_iterator begin() const noexcept
Return a const_iterator pointing at the beginning of the collection.
StatusCode retrieve(const T *&ptr) const
Retrieve the default object into a const T*.
void drawTrackParticle(SoSwitch *trackSwitch, const Rec::TrackParticle *part, unsigned long color)

◆ drawCutoffTrackParticle()

void VP1BPhysSystem::drawCutoffTrackParticle ( SoSeparator * root,
const Rec::TrackParticle * part,
double x,
double y,
double z,
unsigned long color )
private

Definition at line 436 of file VP1BPhysSystem.cxx.

436 {
437 messageDebug("in drawCutoffTrackParticle");
438
439 //getting track space-points
440 std::vector<Amg::Vector3D >* points = getPoints(part);
441
442 //getting cut-off point collection
443 std::vector<Amg::Vector3D >* cutoffPoints = findClosestApproach(points, x, y, z);
444
445 //drawing
446 SoSwitch* trackSwitch = new SoSwitch();
447 root->addChild(trackSwitch);
448 trackSwitch->whichChild = m_showSignal ? SO_SWITCH_ALL : SO_SWITCH_NONE;
449 drawPoints(trackSwitch,cutoffPoints,color,2,false);
450 m_signalSwitches.push_back(trackSwitch);
451
452 //cleaning up
453 delete points;
454 delete cutoffPoints;
455
456 messageDebug("leaving drawCutoffTrackParticle");
457
458}
#define y
#define x
#define z
std::vector< Amg::Vector3D > * findClosestApproach(std::vector< Amg::Vector3D > *points, double x, double y, double z)
std::vector< Amg::Vector3D > * getPoints(const Trk::Track *track)
void drawPoints(SoSwitch *trackSwitch, std::vector< Amg::Vector3D > *points, unsigned long color, double width, bool isNeutral)

◆ drawNeutralTrack()

void VP1BPhysSystem::drawNeutralTrack ( SoSeparator * root,
double x,
double y,
double z,
double px,
double py,
double pz,
double length,
unsigned long color )
private

Definition at line 460 of file VP1BPhysSystem.cxx.

460 {
461 messageDebug("in drawNeutralTrack");
462
463 std::vector<Amg::Vector3D >* points = new std::vector<Amg::Vector3D >();
464
465 //create neutral track vector
466 CLHEP::Hep3Vector p(px,py,pz);
467 CLHEP::Hep3Vector track = p.unit();
468 track *= length;
469
470 //create points
471 points->push_back(Amg::Vector3D(x-track.x(), y-track.y(), z-track.z()));
472 points->push_back(Amg::Vector3D(x,y,z));
473
474 SoSwitch* trackSwitch = new SoSwitch();
475 root->addChild(trackSwitch);
476 trackSwitch->whichChild = m_showNeutral ? SO_SWITCH_ALL : SO_SWITCH_NONE;
477 drawPoints(trackSwitch, points, color, 2, true);
478 m_neutralSwitches.push_back(trackSwitch);
479
480 //cleaning up
481 messageDebug("leaving drawNeutralTrack");
482 delete points;
483
484}
double length(const pvec &v)
Eigen::Matrix< double, 3, 1 > Vector3D

◆ drawPoints()

void VP1BPhysSystem::drawPoints ( SoSwitch * trackSwitch,
std::vector< Amg::Vector3D > * points,
unsigned long color,
double width,
bool isNeutral )
private

Definition at line 515 of file VP1BPhysSystem.cxx.

517{
518 messageDebug("in drawPoints");
519 if(points == nullptr) return;
520
521 SoSeparator* sep = new SoSeparator();
522
523 //setting up draw style
524 SoDrawStyle* drawStyle = new SoDrawStyle();
525 drawStyle->lineWidth = width;
526 if(isNeutral) {
527 drawStyle->linePattern = 0x00ff;
528 }
529 sep->addChild(drawStyle);
530
531 //setting up color
532 SoBaseColor* baseColor = new SoBaseColor();
533 double r,g,b;
534 getColor(color,r,g,b);
535 baseColor->rgb.setValue(r,g,b);
536 sep->addChild(baseColor);
537
538 int iver(0);
539 SoVertexProperty *vertices = new SoVertexProperty();
540
541 std::vector<Amg::Vector3D >::iterator it, itE = points->end();
542 for(it = points->begin(); it != itE; ++it) {
543 vertices->vertex.set1Value(iver++,(*it).x(),(*it).y(),(*it).z());
544 }
545
546 //Create a set of lines from these vertices:
547 SoLineSet * line = new SoLineSet();
548 line->numVertices = iver;
549 line->vertexProperty = vertices;
550
551 //Add to the tree:
552 sep->addChild(line);
553
554 //add to the root
555 trackSwitch->addChild(sep);
556
557 //To avoid GUI freeze-ups:
558 updateGUI();
559
560 messageDebug("leaving drawPoints");
561
562}
bool isNeutral(const T &p)
Definition AtlasPID.h:1085
const double width
void getColor(unsigned long icolor, double &r, double &g, double &b)
int r
Definition globals.cxx:22

◆ drawRefittedTrack()

void VP1BPhysSystem::drawRefittedTrack ( SoSeparator * root,
double x,
double y,
double z,
double px,
double py,
double pz,
double charge,
unsigned long color )
private

Definition at line 487 of file VP1BPhysSystem.cxx.

489{
490 messageDebug("in drawRefittedTrack");
491
492 Amg::Vector3D mom(px,py,pz);
494
495 const Trk::Track* track = getRefittedTrack(pos,mom,charge);
496
497 //getting track space-points
498 std::vector<Amg::Vector3D >* points = getPoints(track);
499
500 //drawing
501 SoSwitch* trackSwitch = new SoSwitch();
502 root->addChild(trackSwitch);
503 trackSwitch->whichChild = m_showRefitted ? SO_SWITCH_ALL : SO_SWITCH_NONE;
504 drawPoints(trackSwitch,points,color,2,false);
505 m_refittedSwitches.push_back(trackSwitch);
506
507 //cleaning up
508 delete points;
509 delete track;
510
511 messageDebug("leaving drawCutoffTrackParticle");
512
513}
double charge(const T &p)
Definition AtlasPID.h:997
const Trk::Track * getRefittedTrack(const Amg::Vector3D &pos, const Amg::Vector3D &mom, double charge)

◆ drawTrackParticle()

void VP1BPhysSystem::drawTrackParticle ( SoSwitch * trackSwitch,
const Rec::TrackParticle * part,
unsigned long color )
private

Definition at line 419 of file VP1BPhysSystem.cxx.

419 {
420
421 messageDebug("in drawTrackParticle");
422
423 //getting track space-points
424 std::vector<Amg::Vector3D >* points = getPoints(part);
425
426 //drawing line
427 drawPoints(trackSwitch,points,color, 0.0f, false);
428
429 //cleaning up
430 delete points;
431
432 messageDebug("leaving drawTrackParticle");
433
434}

◆ drawVertex()

void VP1BPhysSystem::drawVertex ( SoSeparator * root,
double x,
double y,
double z,
double radius,
double xx,
double xy,
double xz,
double yy,
double yz,
double zz,
unsigned long color,
std::vector< SoSwitch * > & vertexSwitches )
private

sphere

cross

ellipsoid

Definition at line 679 of file VP1BPhysSystem.cxx.

682{
683 messageDebug("in drawVertex");
684
685 SoSeparator* sep = new SoSeparator();
686
687 //move sphere to position
688 SoTranslation * translation = new SoTranslation;
689 translation->translation.setValue ( x, y, z );
690 sep->addChild ( translation );
691
692 //color
693 SoBaseColor* baseColor = new SoBaseColor();
694 double rr,gg,bb;
695 getColor(color,rr,gg,bb);
696 baseColor->rgb.setValue(rr,gg,bb);
697 sep->addChild(baseColor);
698
699 //switch
700 SoSwitch* vtxSwitch = new SoSwitch();
701 if(!m_showVertices)
702 vtxSwitch->whichChild = SO_SWITCH_NONE;
703 else
704 vtxSwitch->whichChild = m_vertexStyle;
705
706 sep->addChild(vtxSwitch);
707
709 SoSphere * sphere = new SoSphere;
710 sphere->radius = 2*CLHEP::mm;
711 vtxSwitch->addChild ( sphere );
712
714 SoLineSet* cross = createCross(3*CLHEP::mm);
715 vtxSwitch->addChild ( cross );
716
718 SoSeparator* sepEllipsoid = new SoSeparator();
719 vtxSwitch->addChild ( sepEllipsoid );
720
721 //transorm sphere to elipsoid
722 double a=xx*CLHEP::mm;
723 double b=xy*CLHEP::mm;
724 double c=xz*CLHEP::mm;
725 double d=yy*CLHEP::mm;
726 double e=yz*CLHEP::mm;
727 double f=zz*CLHEP::mm;
728
729 double det = a*(d*f-e*e) + 2*b*c*e - d*c*c-f*b*b;
730 if (det>0) {
731 double sixthrootofdet = exp(log(det)/6.0);
732 double invdet = 1.0/sixthrootofdet;
733 a *= invdet;
734 b *= invdet;
735 c *= invdet;
736 d *= invdet;
737 e *= invdet;
738 f *= invdet;
739 SbMatrix sbMat(a,b,c,0,
740 b,d,e,0,
741 c,e,f,0,
742 0,0,0,1);
743 SoMatrixTransform * matTrans = new SoMatrixTransform();
744 matTrans->matrix.setValue(sbMat);
745 sepEllipsoid->addChild (matTrans);
746 } else {
747 //FIXME: warn
748 }
749 SoSphere * ellipsoid = new SoSphere;
750 ellipsoid->radius = 3;
751 sepEllipsoid->addChild ( sphere );
752
753
754
755 //vertexSwitches
756 vertexSwitches.push_back(vtxSwitch);
757
758 //add to root
759 root->addChild(sep);
760
761 //To avoid GUI freeze-ups:
762 updateGUI();
763
764 messageDebug("leaving drawVertex");
765
766}
const boost::regex rr(r_r)
static Double_t a
SoLineSet * createCross(double extent)

◆ ellipsoidToggled

void VP1BPhysSystem::ellipsoidToggled ( bool checked)
privateslot

Definition at line 872 of file VP1BPhysSystem.cxx.

872 {
873 if(checked) {
874 messageDebug("show vertices as error ellipsoids");
876 }
877
878 //apply
879 if(m_showVertices) {
880 std::vector<SoSwitch*>::iterator it=m_vertexSwitches.begin();
881 for(; it!=m_vertexSwitches.end(); ++it) {
882 (*it)->whichChild = m_vertexStyle;
883 }
884 }
885
886}

◆ ensureBuildController()

void IVP13DSystemSimple::ensureBuildController ( )
inherited

Definition at line 90 of file IVP13DSystemSimple.cxx.

91{
92 if (m_d->controllerBuilt)
93 return;
94 m_d->controllerBuilt=true;
95 if(VP1Msg::verbose()){
96 messageVerbose("IVP13DSystemSimple build controller");
97 }
98 QWidget * controller = buildController();
99 if (controller)
100 registerController(controller);
101 if(VP1Msg::verbose()){
102 messageVerbose("IVP13DSystemSimple controller was = "+str(controller));
103 }
104}
virtual QWidget * buildController()
void registerController(QWidget *)
static QString str(const QString &s)
Definition VP1String.h:49

◆ erase()

void IVP13DSystemSimple::erase ( )
privatevirtualinherited

Implements IVP1System.

Definition at line 173 of file IVP13DSystemSimple.cxx.

174{
175 if(VP1Msg::verbose()){
176 messageVerbose("IVP13DSystemSimple::erase() start");
177 }
178 assert(m_d->wascreated);
179 assert(m_d->wasrefreshed);
180
181 bool saveE = m_d->rootE->enableNotify(false);
182
183 systemerase();
184 if(VP1Msg::verbose()){
185 messageVerbose("IVP13DSystemSimple::erase() Removing all event objects from scene");
187 }
188 m_d->rootE->removeAllChildren();
189
190 if (saveE) {
191 m_d->rootE->enableNotify(true);
192 m_d->rootE->touch();
193 }
194
195 m_d->wasrefreshed=false;
196 if(VP1Msg::verbose()){
197 messageVerbose("IVP13DSystemSimple::erase() end");
198 }
199}
void warnOnDisabledNotifications() const

◆ eventStore()

StoreGateSvc * IVP1System::eventStore ( ) const
inherited

Definition at line 312 of file IVP1System.cxx.

313{
315}
static StoreGateSvc * eventStore()

◆ filterTrack()

void VP1BPhysSystem::filterTrack ( SoSeparator * root,
const Rec::TrackParticleContainer * partCont,
double pt,
double eta,
double phi,
double d0,
double z0,
double x,
double y,
double z,
unsigned long color,
std::vector< const Rec::TrackParticle * > * selectedParticles )
private

drawing methods *******************************************************************

Definition at line 349 of file VP1BPhysSystem.cxx.

353{
354 messageDebug("in filterTrack");
355 //loop over TrackParticles
356 Rec::TrackParticleContainer::const_iterator partItr, partItrEnd = partCont->end();
357 for ( partItr = partCont->begin() ; partItr != partItrEnd; ++partItr) {
358
359 double trk_qOverP = (*partItr)->measuredPerigee()->parameters()[Trk::qOverP];
360 double trk_theta = (*partItr)->measuredPerigee()->parameters()[Trk::theta];
361// double trk_phi = (*partItr)->measuredPerigee()->parameters()[Trk::phi];
362
363 double trk_pt = fabs(1./trk_qOverP)*sin(trk_theta);
364 double trk_eta = -log(tan(trk_theta/2));
365
366 //identify selected track
367 if(fabs(trk_pt - pt)<0.1 && fabs(trk_eta - eta)<0.01) {
368 drawCutoffTrackParticle(root, *partItr, x, y, z, color);
369 if(selectedParticles!=nullptr) {
370 selectedParticles->push_back(*partItr);
371 }
372 }
373 }
374 messageDebug("leaving filterTrack");
375
376}
Scalar eta() const
pseudorapidity method
void drawCutoffTrackParticle(SoSeparator *root, const Rec::TrackParticle *part, double x, double y, double z, unsigned long color)
@ theta
Definition ParamDefs.h:66
@ qOverP
perigee
Definition ParamDefs.h:67

◆ findClosestApproach()

std::vector< Amg::Vector3D > * VP1BPhysSystem::findClosestApproach ( std::vector< Amg::Vector3D > * points,
double x,
double y,
double z )
private

Definition at line 632 of file VP1BPhysSystem.cxx.

632 {
633 messageDebug("in findClosestApproach");
634
635 std::vector<Amg::Vector3D >* pointsOut = new std::vector<Amg::Vector3D >();
636
637 //check # of points
638 if(points->size()<2) return pointsOut;
639
640 double lastDist = 1e10;
641 Amg::Vector3D point = points->at(0);
642 std::vector<Amg::Vector3D >::iterator startFrom = (points->begin())+1;
643
644 //find the closest approach
645 std::vector<Amg::Vector3D >::iterator it, itE = points->end();
646 for(it = points->begin(); (it+1) != itE; ++it) {
647 CLHEP::Hep3Vector p = CLHEP::Hep3Vector((*(it+1)).x()-(*it).x(), (*(it+1)).y()-(*it).y(), (*(it+1)).z()-(*it).z());
648 CLHEP::Hep3Vector v = CLHEP::Hep3Vector(x - (*it).x(), y - (*it).y(), z - (*it).z());
649
650 //projection of v into the direction of p
651 double proj = v.dot(p.unit());
652 CLHEP::Hep3Vector vect = p.unit();
653 vect *= proj;
654
655 //check that projection lies inside the track segment
656 if(proj<0 || proj > p.mag()) continue;
657
658 //check distance to the segment (Pythagorean theroem)
659 double dist = sqrt(p.mag2() - proj*proj);
660 if(dist<lastDist) {
661 lastDist = dist;
662 point = Amg::Vector3D((*it).x() + vect.x(), (*it).y() + vect.y(), (*it).z() + vect.z());
663 startFrom = it+1;
664 }
665 }
666
667 //create new cut-off track
668 pointsOut->push_back(point);
669 for(it = startFrom; it!=itE; ++it) {
670 pointsOut->push_back(*it);
671 }
672
673 messageDebug("leaving findClosestApproach");
674 return pointsOut;
675
676}

◆ getCameraList()

std::set< SoCamera * > IVP13DSystem::getCameraList ( )
inherited

Definition at line 395 of file IVP13DSystem.cxx.

396{
397 std::set<SoCamera*> cameralist = m_d->staticcameras;
398 std::set<SoQtViewer*>::const_iterator it, itE=m_d->viewers.end();
399 for (it=m_d->viewers.begin();it!=itE;++it) {
400 SoCamera*cam = (*it)->getCamera();
401 if (cam)
402 cameralist.insert(cam);
403 }
404
405 //m_d->camerasfromviewer
406 return cameralist;
407}

◆ getColor()

void VP1BPhysSystem::getColor ( unsigned long icolor,
double & r,
double & g,
double & b )
private

Definition at line 1059 of file VP1BPhysSystem.cxx.

1059 {
1060 messageDebug("in getColor");
1061
1062 unsigned long red = icolor/65536;
1063 icolor -= red*65536;
1064
1065 unsigned long green = icolor/256;
1066 icolor -= green*256;
1067
1068 unsigned long blue = icolor;
1069
1070 r=red/255.;
1071 g=green/255.;
1072 b=blue/255.;
1073
1074 messageDebug("leaving getColor");
1075
1076}

◆ getPoints() [1/2]

std::vector< Amg::Vector3D > * VP1BPhysSystem::getPoints ( const Rec::TrackParticle * part)
private

Definition at line 616 of file VP1BPhysSystem.cxx.

616 {
617 messageDebug("in getPoints(Rec::TrackParticle)");
618
619 //creating Trk::Track from TrackParticle
620 const Trk::Track *track = getTrack(part);
621
622 std::vector<Amg::Vector3D >* points = getPoints(track);
623
624 //cleaning up
625 delete track;
626
627 //return
628 messageDebug("leaving getPoints(Rec::TrackParticle)");
629 return points;
630}
const Trk::Track * getTrack(const Rec::TrackParticle *trackparticle)
utils *****************************************************************************

◆ getPoints() [2/2]

std::vector< Amg::Vector3D > * VP1BPhysSystem::getPoints ( const Trk::Track * track)
private

Definition at line 565 of file VP1BPhysSystem.cxx.

565 {
566
567 messageDebug("in getPoints(Trk::Track)");
568
569 //retrieve/create VP1Extrapolator
570
571 messageDebug("Retrieving propagator...");
572 Trk::IExtrapolator* propagator = nullptr;
573 VP1ToolAccessHelper toolaccess(this);
574 propagator = toolaccess.getToolPointer<Trk::IExtrapolator>("Trk::Extrapolator/VP1Extrapolator",false/*silent*/,true/*create if not exists*/);
575 if(propagator == nullptr) {
576 message("Error: propagator Trk::Extrapolator/VP1Extrapolator couldn't be created");
577 }
578 messageDebug("...done");
579
580 messageDebug("Creating propagationHelper...");
581 TrackPropagationHelper* propagationHelper = new TrackPropagationHelper(this);
582 messageDebug("...done");
583
584 std::vector< Amg::Vector3D >* points = new std::vector<Amg::Vector3D >();
585
586// propagator = NULL;
587 //propagate track in magnetic field
588 if(propagator!=nullptr && propagationHelper!=nullptr) {
589 messageDebug("Starting propagator...");
590 propagationHelper->makePointsCharged(*points,track,propagator);
591 messageDebug("..done");
592 } else {
593 //if no propagator is initialized we use straight segments instead
594
595 const DataVector<const Trk::TrackParameters> *params = track->trackParameters();
596 //Just a sanity check:
597 if ( !params ) {
598 message("Error: no track parameters");
599 }else{
601 for (it = params->begin();it!=itE;++it) {
602 points->push_back(Amg::Vector3D((*it)->position().x(),(*it)->position().y(),(*it)->position().z()));
603 }
604 }
605 }
606
607 //cleaning up
608 delete propagationHelper;
609
610 //return
611 messageDebug("leaving getPoints(Trk::Track)");
612 return points;
613
614}
bool makePointsCharged(std::vector< Amg::Vector3D > &points, const Trk::Track *, Trk::IExtrapolator *extrapolator, Trk::ParticleHypothesis hypo=Trk::nonInteracting, bool useMEOT=false, const Trk::Volume *volume=0)

◆ getRefittedTrack()

const Trk::Track * VP1BPhysSystem::getRefittedTrack ( const Amg::Vector3D & pos,
const Amg::Vector3D & mom,
double charge )
private

Definition at line 1021 of file VP1BPhysSystem.cxx.

1021 {
1022
1023
1024 const Amg::Vector3D& pos(std::move(position));
1025 const Amg::Vector3D& mom(std::move(momentum));
1026
1027 // init the error matrix
1028 AmgSymMatrix(5) covMtxP;
1029 covMtxP.setIdentity();
1030
1031 AmgSymMatrix(5) errMatr = covMtxP;
1032 Trk::Perigee * measuredPerigee = new Trk::Perigee( pos, mom, charge, pos, std::move(errMatr) );
1033
1034 //creates parameter base for the new track
1035 const Trk::TrackParameters* p = dynamic_cast<const Trk::TrackParameters* >(measuredPerigee);
1036
1037 //TODO: check parameters safety
1038
1039 //creates a vector of TracksStates on surface
1040 auto trackStateOnSurfaces = std::make_unique<Trk::TrackStates>();
1041 trackStateOnSurfaces->push_back(new Trk::TrackStateOnSurface(nullptr,p->uniqueClone(),nullptr));
1042
1043 //create track
1044#ifdef TRKTRACK_TRACKINFO_H
1045 Trk::TrackInfo ti(Trk::TrackInfo::Unknown,Trk::pion);
1046 const Trk::Track * trk = new Trk::Track(ti,std::move(trackStateOnSurfaces)/*track assumes ownership*/,nullptr/*fitquality*/);
1047#else
1048 const Trk::Track * trk = new Trk::Track(Trk::Track::unknown, std::move(trackStateOnSurfaces)/*track assumes ownership*/,
1049 0/*fitquality*/,Trk::pion);
1050#endif
1051
1052 return trk;
1053
1054
1055}
#define AmgSymMatrix(dim)

◆ getSceneGraph()

SoSeparator * IVP13DSystemSimple::getSceneGraph ( ) const
privatevirtualinherited

Implements IVP13DSystem.

Definition at line 127 of file IVP13DSystemSimple.cxx.

128{
129 return static_cast<SoSeparator*>(m_d->root);
130}

◆ getTrack()

const Trk::Track * VP1BPhysSystem::getTrack ( const Rec::TrackParticle * trackparticle)
private

utils *****************************************************************************

Definition at line 960 of file VP1BPhysSystem.cxx.

960 {
961 messageDebug("in getTrack");
962
963 messageDebug("Retrieving track parameters...");
964
966 std::vector< const Trk::TrackParameters* > trackpars;
967 trackpars = trackparticle->trackParameters();
968
969 auto trackStateOnSurfaces = std::make_unique<Trk::TrackStates>();
970 messageDebug("...done");
971
972 if (!trackpars.empty()) {
973 bool needresorting = trackpars.at(0)!=trackparticle->perigee();//Needed since TrackParticles are (at the moment)
974 //created with the first parameter put last
975 messageDebug("resorting...");
976 if (needresorting) {
977 messageDebug("dynamic cast");
978
979 //const Trk::ParametersT<Trk::Charged>* p = dynamic_cast<const Trk::ParametersT<Trk::Charged>* >(trackpars.at(trackpars.size()-1));
980 const Trk::TrackParameters* p = dynamic_cast<const Trk::TrackParameters* >(trackpars.at(trackpars.size()-1));
981
982 messageDebug("new TrackStateOnSurface");
983
984 if (p) trackStateOnSurfaces->push_back(new Trk::TrackStateOnSurface(nullptr,p->uniqueClone(),nullptr));
985 }
986 unsigned limit(needresorting?trackpars.size()-1:trackpars.size());
987 messageDebug("...done");
988
989 //NB: We only ever created this handle if charge()!=0.0:
990 messageDebug("Filling the vector...");
991 for (unsigned i = 0; i < limit; ++i) {
992// const Trk::ParametersT<Trk::Charged>* p = dynamic_cast<const Trk::ParametersT<Trk::Charged>* >(trackpars.at(i));
993 const Trk::TrackParameters* p = dynamic_cast<const Trk::TrackParameters* >(trackpars.at(i));
994 if (!p)
995 continue;
996/* if (!common()->trackSanityHelper()->isSafe(p))
997 continue;*/
998 trackStateOnSurfaces->push_back(new Trk::TrackStateOnSurface(nullptr,p->uniqueClone(),nullptr));
999 }
1000 messageDebug("...done");
1001
1002 }
1003
1004 messageDebug("Creating the track...");
1005
1006#ifdef TRKTRACK_TRACKINFO_H
1007 Trk::TrackInfo ti(Trk::TrackInfo::Unknown,Trk::pion);
1008 const Trk::Track * trk = new Trk::Track(ti,std::move(trackStateOnSurfaces)/*track assumes ownership*/,nullptr/*fitquality*/);
1009#else
1010 const Trk::Track * trk = new Trk::Track(Trk::Track::unknown, std::move(trackStateOnSurfaces)/*track assumes ownership*/,
1011 0/*fitquality*/,Trk::pion);
1012#endif
1013
1014 messageDebug("...done");
1015
1016 messageDebug("leaving getTrack");
1017 return trk;
1018
1019}
const Perigee * perigee() const
Attempts to cast the definingParameters() to Perigee.
const std::vector< const TrackParameters * > & trackParameters() const
Returns the track parameters.
ParametersBase< TrackParametersDim, Charged > TrackParameters

◆ inactiveSystemTurnedActive

void IVP1System::inactiveSystemTurnedActive ( )
signalinherited

◆ information()

const QString & IVP1System::information ( ) const
inherited

Definition at line 56 of file IVP1System.cxx.

57{
58 return m_d->information;
59}

◆ isRefreshing()

bool IVP1System::isRefreshing ( )
privateinherited

Definition at line 108 of file IVP1System.cxx.

109{
110 return m_d->refreshing;
111}

◆ itemFromSystemSelected

void IVP13DSystem::itemFromSystemSelected ( )
signalinherited

◆ loadFile

void VP1BPhysSystem::loadFile ( )
privateslot

slots *****************************************************************************

Definition at line 770 of file VP1BPhysSystem.cxx.

770 {
771
772 messageDebug("in loadFile");
773
774 QString fileName = QFileDialog::getOpenFileName(nullptr, tr("Open File"),tr("."),tr("ROOT files (*.root)"));
775 if(fileName.isEmpty()) return;
776
777 m_c->ui.leFileName->setText(fileName);
779
780
781 //close previous file
782 if(m_rootFile!=nullptr) {
783 m_rootFile->Close();
784
785 if(m_br!=nullptr) {
786 delete m_br;
787 m_br = nullptr;
788 }
789
790 m_rootFile = nullptr;
791 m_tree = nullptr;
792 }
793
794 //try to open a new file
795 m_rootFile = TFile::Open(m_fileName.toStdString().c_str());
796 if(m_rootFile!=nullptr && !m_rootFile->IsZombie()) {
797 m_tree = (TTree*)m_rootFile->Get("vp1bphys");
798 if(m_tree!=nullptr) {
799 m_tree->BuildIndex("runNum","evtNum");
800 m_br = new Br();
801 m_br->init(m_tree);
802 m_c->ui.lStatus->setText("");
803 }else{
804 m_c->ui.lStatus->setText("File doesn't contain vp1bphys tree");
805 message("File doesn't contain vp1bphys tree");
806 }
807 }else{
808 m_c->ui.lStatus->setText("File doesn't exist");
809 message("File doesn't exist");
810 m_tree = nullptr;
811 }
812
813 if(m_sg!=nullptr && m_root!=nullptr) actualBuild();
814 updateGUI();
815
816 messageDebug("leaving loadFile");
817}

◆ message() [1/3]

void IVP1System::message ( const QString & str) const
inherited

Definition at line 336 of file IVP1System.cxx.

337{
338 if (receivers(SIGNAL(sysmessage(QString))) > 0){
340 }
341 else{
342 std::cout<<VP1Msg::prefix_msg()<<" ["<<m_d->name.toStdString()<<"]: "<<str.toStdString()<<std::endl;
343 }
344}
void sysmessage(QString) const
static const char * prefix_msg()
Definition VP1Msg.h:56

◆ message() [2/3]

void IVP1System::message ( const QString & addtostart,
const QStringList & l,
const QString & addtoend = "" ) const
inherited

Definition at line 400 of file IVP1System.cxx.

401{
402 if (addtostart.isEmpty()) {
403 message(l,addtoend);
404 return;
405 }
406 if (addtoend.isEmpty()) {
407 for (const QString& s : l)
408 message(addtostart+s);
409 } else {
410 for (const QString& s : l)
411 message(addtostart+s+addtoend);
412 }
413}

◆ message() [3/3]

void IVP1System::message ( const QStringList & l,
const QString & addtoend = "" ) const
inherited

Definition at line 362 of file IVP1System.cxx.

363{
364 if (addtoend.isEmpty()) {
365 for (const QString& s : l)
366 message(s);
367 } else {
368 for (const QString& s : l)
369 message(s+addtoend);
370 }
371}

◆ messageDebug() [1/3]

void IVP1System::messageDebug ( const QString & str) const
inherited

Definition at line 347 of file IVP1System.cxx.

348{
349 if (VP1Msg::debug())
350 std::cout<<VP1Msg::prefix_debug()<<" ["<<m_d->name.toStdString()<<"]: "<<str.toStdString()<<std::endl;
351}
static bool debug()
Definition VP1Msg.h:32
static const char * prefix_debug()
Definition VP1Msg.h:57

◆ messageDebug() [2/3]

void IVP1System::messageDebug ( const QString & addtostart,
const QStringList & l,
const QString & addtoend = "" ) const
inherited

Definition at line 416 of file IVP1System.cxx.

417{
418 if (addtostart.isEmpty()) {
419 messageDebug(l,addtoend);
420 return;
421 }
422 if (addtoend.isEmpty()) {
423 for (const QString& s : l)
424 messageDebug(addtostart+s);
425 } else {
426 for (const QString& s : l)
427 messageDebug(addtostart+s+addtoend);
428 }
429}

◆ messageDebug() [3/3]

void IVP1System::messageDebug ( const QStringList & l,
const QString & addtoend = "" ) const
inherited

Definition at line 374 of file IVP1System.cxx.

375{
376 if (addtoend.isEmpty()) {
377 for (const QString& s : l)
378 messageDebug(s);
379 } else {
380 for (const QString& s : l)
381 messageDebug(s+addtoend);
382 }
383}

◆ messageVerbose() [1/3]

void IVP1System::messageVerbose ( const QString & str) const
inherited

Definition at line 354 of file IVP1System.cxx.

355{
356 if (VP1Msg::verbose())
357 std::cout<<VP1Msg::prefix_verbose()<<" ["<<m_d->name.toStdString()<<"]: "<<str.toStdString()<<std::endl;
358}
static const char * prefix_verbose()
Definition VP1Msg.h:59

◆ messageVerbose() [2/3]

void IVP1System::messageVerbose ( const QString & addtostart,
const QStringList & l,
const QString & addtoend = "" ) const
inherited

Definition at line 432 of file IVP1System.cxx.

433{
434 if (!VP1Msg::verbose())
435 return;
436 if (addtostart.isEmpty()) {
437 messageVerbose(l,addtoend);
438 return;
439 }
440 if (addtoend.isEmpty()) {
441 for (const QString& s : l)
442 messageVerbose(addtostart+s);
443 } else {
444 for (const QString& s : l)
445 messageVerbose(addtostart+s+addtoend);
446 }
447}

◆ messageVerbose() [3/3]

void IVP1System::messageVerbose ( const QStringList & l,
const QString & addtoend = "" ) const
inherited

Definition at line 386 of file IVP1System.cxx.

387{
388 if (!VP1Msg::verbose())
389 return;
390 if (addtoend.isEmpty()) {
391 for (const QString& s : l)
393 } else {
394 for (const QString& s : l)
395 messageVerbose(s+addtoend);
396 }
397}

◆ name()

const QString & IVP1System::name ( ) const
inherited

Definition at line 50 of file IVP1System.cxx.

51{
52 return m_d->name;
53}

◆ needErase

void IVP1System::needErase ( )
signalinherited

◆ refresh()

void IVP13DSystemSimple::refresh ( StoreGateSvc * storegate)
privatevirtualinherited

Implements IVP1System.

Definition at line 146 of file IVP13DSystemSimple.cxx.

147{
148 assert(m_d->wascreated);
149 assert(!m_d->wasrefreshed);
150
151 if (m_d->first) {
152 if(VP1Msg::verbose()){
153 messageVerbose("IVP13DSystemSimple first refresh - so calling create methods (i.e. delayed create).");
154 }
156 m_d->first = false;
157 m_d->root->removeChild(m_d->rootR);
159 m_d->root->addChild(m_d->rootR);
160 }
161
162 m_d->root->removeChild(m_d->rootE);
163 updateGUI();
164 buildEventSceneGraph(sg, m_d->rootE);
165 updateGUI();
166 m_d->root->addChild(m_d->rootE);
167
168 m_d->wasrefreshed=true;
169
170}
virtual void systemcreate(StoreGateSvc *detstore)
virtual void buildPermanentSceneGraph(StoreGateSvc *detstore, SoSeparator *root)
virtual void buildEventSceneGraph(StoreGateSvc *sg, SoSeparator *root)=0
StoreGateSvc * detectorStore() const

◆ registerCamera()

void IVP13DSystem::registerCamera ( SoCamera * camera)
inherited

Definition at line 410 of file IVP13DSystem.cxx.

410 {
411 if (!cam)
412 return;
413 m_d->staticcameras.insert(cam);
414 cam->ref();
415}

◆ registerController()

void IVP1System::registerController ( QWidget * w)
protectedinherited

Definition at line 224 of file IVP1System.cxx.

225{
226 if (VP1Msg::verbose()) {
227 messageVerbose("registerController ");
228 messageVerbose("registerController m_d->canregistercontroller = "+QString(m_d->canregistercontroller?"true":"false"));
229 messageVerbose("registerController m_d->state==CONSTRUCTED = "+QString(m_d->state==CONSTRUCTED?"true":"false"));
230 messageVerbose("registerController m_d->controller==0 = "+QString(m_d->controller==0?"true":"false"));
231 messageVerbose("registerController w!=0 = "+QString(w!=0?"true":"false"));
232 }
233 if (!m_d->canregistercontroller)
234 message("ERROR: Please don't register controllers after create().");
235 if (m_d->state!=CONSTRUCTED)
236 message("ERROR: Please only register controllers in CONSTRUCTED state.");
237 if (!w) {
238 message("ERROR: Attempt to register null controller.");
239 return;
240 }
241 if (m_d->controller) {
242 message("ERROR: Attempt to register controller twice.");
243 return;
244 }
245 m_d->controller = w;
246 w->setParent(0);
247}

◆ registerSelectionNode()

void IVP13DSystem::registerSelectionNode ( SoCooperativeSelection * selection)
inherited

Definition at line 257 of file IVP13DSystem.cxx.

258{
259 if (!selection) {
260 message("registerSelectionNode Error: NULL selection pointer!");
261 return;
262 }
264 message("registerSelectionNode Error: Trying to register selection node more than once!");
265 return;
266 }
267
268 selection->addSelectionCallback( Imp::made_selection, selection );
269 selection->addDeselectionCallback( Imp::made_deselection, selection );
270 selection->addStartCallback( Imp::start_changeselection, this );
271 selection->addFinishCallback( Imp::finished_changeselection, this );
272 selection->addClickOutsideCallback( Imp::clickedoutside, this );
273
275 selection->ref();
276
277 messageVerbose("selection node registered");
278}
static void clickedoutside(void *userdata, SoCooperativeSelection *sel)
static void made_selection(void *userdata, SoPath *path)
const std::string selection
std::string find(const std::string &s)
return a remapped string
Definition hcg.cxx:138

◆ registerViewer()

void IVP13DSystem::registerViewer ( SoQtViewer * viewer)
inherited

Definition at line 418 of file IVP13DSystem.cxx.

419{
420 if (!viewer)
421 return;
422 m_d->viewers.insert(viewer);
423}

◆ restoreFromState()

void IVP1System::restoreFromState ( QByteArray ba)
virtualinherited

Reimplemented in VP1AODSystem, VP1BanksSystem, VP1CaloCellSystem, VP1CaloClusterSystem, VP1CaloHitLegoSystem, VP1CaloLegoSystem, VP1CaloReadoutSystem, VP1ExtraInputSystem, VP1GeometrySystem, VP1GuideLineSystem, VP1HVLegoSystem, VP1MCSystem, VP1MissingEtSystem, VP1PartSpectSystem, VP1PrepRawDataSystem, VP1RawDataSystem, VP1TrackingGeometrySystem, VP1TrackSystem, and VP1VertexSystem.

Definition at line 302 of file IVP1System.cxx.

303{
304 if (VP1Msg::verbose()){
305 messageVerbose("base restoreFromState called");
306 }
307 if (!ba.isEmpty())
308 message("Error in IVP1System::restoreFromState: Received non-empty saved state.");
309}

◆ saveState()

◆ serviceLocator()

ISvcLocator * IVP1System::serviceLocator ( ) const
inherited

Definition at line 324 of file IVP1System.cxx.

325{
327}
static ISvcLocator * serviceLocator()

◆ setActiveState()

void IVP1System::setActiveState ( const ActiveState & s,
const bool & donttriggererase = true )
privateinherited

Definition at line 162 of file IVP1System.cxx.

163{
164 //First handle case where we dont actually change state. Only
165 //special consideration is OFF->OFF where we have to do something if
166 //we need to erase:
167 if (m_d->activeState==OFF&&s==OFF&&(m_d->state==REFRESHED||m_d->refreshing)&&!donttriggererase) {
168 needErase();
169 m_d->channel->emitRefreshInfoChanged();
170 return;
171 } else if (m_d->activeState==s) {
172 m_d->channel->emitRefreshInfoChanged();
173 return;
174 }
175
176 //Ok, we know that we are either ON->OFF or OFF->ON.
177 m_d->activeState = s;
178
179 if (s==ON) {
180 //OFF->ON: We might need a refresh, so send out a signal for the scheduler:
182 } else {
183 //ON->OFF: We might need an erase signal:
184 if ((m_d->state==REFRESHED||m_d->refreshing)&&!donttriggererase) {
185 needErase();
186 }
187 }
188 m_d->channel->emitRefreshInfoChanged();
189}
void inactiveSystemTurnedActive()
void needErase()

◆ setCanRegisterController()

void IVP1System::setCanRegisterController ( const bool & c)
privateinherited

Definition at line 285 of file IVP1System.cxx.

286{
287 if (VP1Msg::verbose()){
288 messageVerbose("setCanRegisterController called with"+QString(c?"true":"false"));
289 }
290 m_d->canregistercontroller=c;
291}

◆ setChannel()

void IVP1System::setChannel ( IVP1ChannelWidget * cw)
privateinherited

Definition at line 94 of file IVP1System.cxx.

95{
96 if (VP1Msg::verbose()) {
97 messageVerbose("setChannel ");
98 messageVerbose("setChannel m_d->state==CONSTRUCTED = "+QString(m_d->state==CONSTRUCTED?"true":"false"));
99 messageVerbose("setChannel cw!=0 = "+QString(cw!=0?"true":"false"));
100 }
101 assert(!m_d->channel);
102 assert(cw);
103 assert(m_d->state==CONSTRUCTED);
104 m_d->channel = cw;
105}

◆ setRefreshing()

void IVP1System::setRefreshing ( const bool & b)
privateinherited

Definition at line 114 of file IVP1System.cxx.

115{
116 if (VP1Msg::verbose()){
117 messageVerbose("setRefreshing() called with b="+QString(b?"true":"false"));
118 }
119 if (b) {
120 assert(m_d->state==ERASED);
121 } else {
122 assert(m_d->state==REFRESHED);
123 }
124 m_d->refreshing = b;
125}

◆ setState()

void IVP1System::setState ( const State & s)
privateinherited

Definition at line 141 of file IVP1System.cxx.

142{
143#ifndef NDEBUG
144 assert (m_d->state != s);
145 assert(s!=CONSTRUCTED);
146 if (s==REFRESHED) {
147 assert(m_d->state==ERASED);
148 }
149 if (s==ERASED) {
150 assert(m_d->state==REFRESHED||m_d->state==CONSTRUCTED);
151 }
152 if (s==UNCREATED) {
153 assert(m_d->state==ERASED);
154 }
155#endif
156 m_d->state = s;
157 if (s==REFRESHED||s==ERASED)
158 m_d->channel->emitRefreshInfoChanged();
159}

◆ setUserSelectionNotificationsEnabled()

void IVP13DSystem::setUserSelectionNotificationsEnabled ( SoCooperativeSelection * sel,
bool enabled )
inherited

Definition at line 310 of file IVP13DSystem.cxx.

311{
312 if (!selection) {
313 message("setUserSelectionNotificationsEnabled Error: NULL selection pointer!");
314 return;
315 }
317 message("setUserSelectionNotificationsEnabled Error: Called for selection which was never registered!");
318 return;
319 }
320 if (enabled != m_d->selectionsWithDisabledNotifications.contains(selection))
321 return;
322
323 if (enabled)
324 m_d->selectionsWithDisabledNotifications.remove(selection);
325 else
326 m_d->selectionsWithDisabledNotifications << selection;
327
328}

◆ sphereToggled

void VP1BPhysSystem::sphereToggled ( bool checked)
privateslot

Definition at line 839 of file VP1BPhysSystem.cxx.

839 {
840
841
842 if(checked) {
843 messageDebug("show vertices as spheres");
845 }
846
847 //apply
848 if(m_showVertices) {
849 std::vector<SoSwitch*>::iterator it=m_vertexSwitches.begin();
850 for(; it!=m_vertexSwitches.end(); ++it) {
851 (*it)->whichChild = m_vertexStyle;
852 }
853 }
854}

◆ state()

IVP1System::State IVP1System::state ( ) const
inherited

Definition at line 129 of file IVP1System.cxx.

130{
131 return m_d->state;
132}

◆ storeGate()

StoreGateSvc * IVP1System::storeGate ( ) const
inlineinherited

Definition at line 119 of file IVP1System.h.

119{ return eventStore(); }//OBSOLETE NAME. Use eventStore() instead.
StoreGateSvc * eventStore() const

◆ str() [1/30]

QString VP1String::str ( const Amg::Vector3D & t)
inlinestaticinherited

Definition at line 98 of file VP1String.h.

98{ return "("+str(t.x())+", "+str(t.y())+", "+str(t.z())+")"; }

◆ str() [2/30]

QString VP1String::str ( const bool b)
inlinestaticinherited

Definition at line 53 of file VP1String.h.

53{ return b?"True":"False"; }

◆ str() [3/30]

QString VP1String::str ( const char * c)
inlinestaticinherited

Definition at line 50 of file VP1String.h.

50{ return c; }

◆ str() [4/30]

QString VP1String::str ( const double & d)
inlinestaticinherited

Definition at line 81 of file VP1String.h.

81{ return QString::number(d); }

◆ str() [5/30]

QString VP1String::str ( const float & f)
inlinestaticinherited

Definition at line 82 of file VP1String.h.

82{ return QString::number(f); }

◆ str() [6/30]

template<class T>
QString VP1String::str ( const HepGeom::BasicVector3D< T > & t)
inlinestaticinherited

Definition at line 95 of file VP1String.h.

95{ return "("+str(t.x())+", "+str(t.y())+", "+str(t.z())+")"; }

◆ str() [7/30]

QString VP1String::str ( const QColor & c)
staticinherited

Definition at line 30 of file VP1String.cxx.

31{
32 return c.isValid() ? c.name() : "Invalid";
33}

◆ str() [8/30]

template<class T>
QString VP1String::str ( const QFlags< T > & f)
inlinestaticinherited

Definition at line 91 of file VP1String.h.

91{ return "0x"+QString::number(f, 16).toUpper().rightJustified(8,'0'); }

◆ str() [9/30]

template<class T>
QString VP1String::str ( const QList< T > & t)
inlinestaticinherited

Definition at line 102 of file VP1String.h.

102{ return "QList of size"+QString::number(t.size()); }

◆ str() [10/30]

QString VP1String::str ( const QString & s)
inlinestaticinherited

Definition at line 49 of file VP1String.h.

49{ return s; }

◆ str() [11/30]

QString VP1String::str ( const SbColor & c)
staticinherited

Definition at line 36 of file VP1String.cxx.

37{
39}
static QColor sbcol2qcol(const SbColor &)

◆ str() [12/30]

QString VP1String::str ( const SbVec2d & v)
staticinherited

Definition at line 61 of file VP1String.cxx.

61{ double x,y; v.getValue(x,y); return "("+str(x)+", "+str(y)+")"; }

◆ str() [13/30]

QString VP1String::str ( const SbVec2f & v)
staticinherited

Definition at line 62 of file VP1String.cxx.

62{ float x,y; v.getValue(x,y); return "("+str(x)+", "+str(y)+")"; }

◆ str() [14/30]

QString VP1String::str ( const SbVec2s & v)
staticinherited

Definition at line 63 of file VP1String.cxx.

63{ short x,y; v.getValue(x,y); return "("+str(x)+", "+str(y)+")"; }

◆ str() [15/30]

QString VP1String::str ( const SbVec3d & v)
staticinherited

Definition at line 64 of file VP1String.cxx.

64{ double x,y,z; v.getValue(x,y,z); return "("+str(x)+", "+str(y)+", "+str(z)+")"; }

◆ str() [16/30]

QString VP1String::str ( const SbVec3f & v)
staticinherited

Definition at line 65 of file VP1String.cxx.

65{ float x,y,z; v.getValue(x,y,z); return "("+str(x)+", "+str(y)+", "+str(z)+")"; }

◆ str() [17/30]

QString VP1String::str ( const SbVec3s & v)
staticinherited

Definition at line 66 of file VP1String.cxx.

66{ short x,y,z; v.getValue(x,y,z); return "("+str(x)+", "+str(y)+", "+str(z)+")"; }

◆ str() [18/30]

QString VP1String::str ( const SbVec4d & v)
staticinherited

Definition at line 67 of file VP1String.cxx.

67{ double x,y,z,t; v.getValue(x,y,z,t); return "("+str(x)+", "+str(y)+", "+str(z)+", "+str(t)+")"; }

◆ str() [19/30]

QString VP1String::str ( const SbVec4f & v)
staticinherited

Definition at line 68 of file VP1String.cxx.

68{ float x,y,z,t; v.getValue(x,y,z,t); return "("+str(x)+", "+str(y)+", "+str(z)+", "+str(t)+")"; }

◆ str() [20/30]

template<class T>
QString VP1String::str ( const T * t)
inlinestaticinherited

Definition at line 87 of file VP1String.h.

87{ return str(static_cast<const void* >(t)); }

◆ str() [21/30]

QString VP1String::str ( const void * p)
staticinherited

Definition at line 48 of file VP1String.cxx.

49{
50 if (p) {
51 std::ostringstream s;
52 s << p;
53 // Explicitly naming QString here avoids a cppcheck warning.
54 return QString (s.str().c_str());
55 } else {
56 return "NULL";
57 }
58}

◆ str() [22/30]

QString VP1String::str ( const VP1Interval & i)
staticinherited

Definition at line 42 of file VP1String.cxx.

43{
44 return i.toString();
45}

◆ str() [23/30]

QString VP1String::str ( int n)
inlinestaticinherited

Definition at line 77 of file VP1String.h.

77{ return QString::number(n); }

◆ str() [24/30]

QString VP1String::str ( long n)
inlinestaticinherited

Definition at line 75 of file VP1String.h.

75{ return QString::number(n); }

◆ str() [25/30]

QString VP1String::str ( qlonglong n)
inlinestaticinherited

Definition at line 79 of file VP1String.h.

79{ return QString::number(n); }

◆ str() [26/30]

QString VP1String::str ( qulonglong n)
inlinestaticinherited

Definition at line 80 of file VP1String.h.

80{ return QString::number(n); }

◆ str() [27/30]

QString VP1String::str ( short int n)
inlinestaticinherited

Definition at line 73 of file VP1String.h.

73{ return QString::number(n); }

◆ str() [28/30]

QString VP1String::str ( uint n)
inlinestaticinherited

Definition at line 78 of file VP1String.h.

78{ return QString::number(n); }

◆ str() [29/30]

QString VP1String::str ( ulong n)
inlinestaticinherited

Definition at line 76 of file VP1String.h.

76{ return QString::number(n); }

◆ str() [30/30]

QString VP1String::str ( unsigned short int n)
inlinestaticinherited

Definition at line 74 of file VP1String.h.

74{ return QString::number(n); }

◆ sysmessage

void IVP1System::sysmessage ( QString ) const
signalinherited

◆ systemcreate()

void IVP13DSystemSimple::systemcreate ( StoreGateSvc * detstore)
virtualinherited

◆ systemerase()

void IVP13DSystemSimple::systemerase ( )
virtualinherited

Reimplemented in VP1AODSystem, VP1CaloCellSystem, VP1CaloClusterSystem, VP1CaloHitLegoSystem, VP1CaloLegoSystem, VP1MissingEtSystem, VP1PrepRawDataSystem, VP1RawDataSystem, VP1TrackSystem, and VP1VertexSystem.

Definition at line 28 of file IVP13DSystemSimple.cxx.

29{
30 // messageVerbose("WARNING: Did not reimplement systemerase!");
31}

◆ systemuncreate()

void IVP13DSystemSimple::systemuncreate ( )
virtualinherited

◆ toolSvc()

IToolSvc * IVP1System::toolSvc ( ) const
inherited

Definition at line 330 of file IVP1System.cxx.

331{
332 return VP1AthenaPtrs::toolSvc();
333}
static IToolSvc * toolSvc()

◆ uncreate()

void IVP13DSystemSimple::uncreate ( )
privatevirtualinherited

Reimplemented from IVP1System.

Definition at line 202 of file IVP13DSystemSimple.cxx.

203{
204
205 if(VP1Msg::verbose()){
206 messageDebug("uncreate()...");
207 }
208
209 assert(m_d->wascreated);
210 assert(!m_d->wasrefreshed);
211 m_d->rootE->enableNotify(false);
212 m_d->rootR->enableNotify(false);
214 m_d->root->removeAllChildren();
215 m_d->rootE->removeAllChildren();
216 m_d->rootR->removeAllChildren();
217 m_d->wascreated=false;
218}
virtual void systemuncreate()

◆ unregisterSelectionNode()

void IVP13DSystem::unregisterSelectionNode ( SoCooperativeSelection * selection)
inherited

Definition at line 281 of file IVP13DSystem.cxx.

282{
283 if (!selection) {
284 message("unregisterSelectionNode Error: NULL selection pointer!");
285 return;
286 }
288 message("registerSelectionNode Error: Trying to unregister unknown selection node!");
289 return;
290 }
291
292 selection->removeSelectionCallback( Imp::made_selection, selection );
293 selection->removeDeselectionCallback( Imp::made_deselection, selection );
294 selection->removeStartCallback( Imp::start_changeselection, this );
295 selection->removeFinishCallback( Imp::finished_changeselection, this );
296 selection->removeClickOutsideCallback( Imp::clickedoutside, this );
297
299 if (m_d->selectionsWithDisabledNotifications.contains(selection))
300 m_d->selectionsWithDisabledNotifications.remove(selection);
301 selection->unref();
302
303 messageVerbose("selection node unregistered");
304
305}

◆ updateGUI()

void IVP13DSystemSimple::updateGUI ( )
inlineinherited

Definition at line 89 of file IVP13DSystemSimple.h.

◆ userChangedSelection()

void IVP13DSystem::userChangedSelection ( SoCooperativeSelection * ,
const QSet< SoNode * > & ,
QSet< SoPath * >  )
virtualinherited

◆ userClickedOnBgd()

void IVP13DSystem::userClickedOnBgd ( )
virtualinherited

Reimplemented in VP1AODSystem, VP1CaloReadoutSystem, VP1PrepRawDataSystem, and VP1TrackSystem.

Definition at line 62 of file IVP13DSystem.cxx.

62{}

◆ userDeselectedSingleNode()

void IVP13DSystem::userDeselectedSingleNode ( SoCooperativeSelection * ,
SoNode * ,
SoPath *  )
virtualinherited

Reimplemented in VP1AODSystem, VP1PrepRawDataSystem, and VP1TrackSystem.

Definition at line 60 of file IVP13DSystem.cxx.

60{}

◆ userPickedNode()

◆ userSelectedSingleNode()

void IVP13DSystem::userSelectedSingleNode ( SoCooperativeSelection * ,
SoNode * ,
SoPath *  )
virtualinherited

Reimplemented in VP1AODSystem, VP1PrepRawDataSystem, and VP1TrackSystem.

Definition at line 59 of file IVP13DSystem.cxx.

59{}

◆ verbose()

bool IVP1System::verbose ( )
inlinestaticinherited

Definition at line 86 of file IVP1System.h.

86{ return s_vp1verbose; }// Returns true if env var VP1_VERBOSE_OUTPUT=1
static const bool s_vp1verbose
Definition IVP1System.h:158

◆ warnOnDisabledNotifications()

void IVP13DSystemSimple::warnOnDisabledNotifications ( ) const
inherited

Definition at line 221 of file IVP13DSystemSimple.cxx.

222{
223 QList<SoNode*> nodesR;
224 QList<SoNode*> nodesE;
225 m_d->getNodesWithDisabledNotifications(m_d->rootR, nodesR);
226 m_d->getNodesWithDisabledNotifications(m_d->rootE, nodesE);
227 if (!nodesR.isEmpty()) {
228 message("WARNING: Found "+str(nodesR.count())+" node"+QString(nodesR.count()>1?"s":0)+" with disabled notifications in permanent scenegraph:");
229 for (SoNode * node : nodesR)
230 message(" => Node ("+str(node)+") of type "+QString(node->getTypeId().getName().getString())+", named "+QString(node->getName().getString()));
231 }
232 if (!nodesE.isEmpty()) {
233 message("WARNING: Found "+str(nodesE.count())+" node"+QString(nodesE.count()>1?"s":0)+" with disabled notifications in event scenegraph:");
234 for (SoNode * node : nodesE)
235 message(" => Node ("+str(node)+") of type "+QString(node->getTypeId().getName().getString())+", named "+QString(node->getName().getString()));
236 }
237}

Member Data Documentation

◆ m_br

Br* VP1BPhysSystem::m_br
private

Definition at line 167 of file VP1BPhysSystem.h.

◆ m_c

Clockwork* VP1BPhysSystem::m_c
private

Definition at line 170 of file VP1BPhysSystem.h.

◆ m_d

Imp* IVP13DSystemSimple::m_d
privateinherited

Definition at line 80 of file IVP13DSystemSimple.h.

◆ m_fileName

QString VP1BPhysSystem::m_fileName
private

Definition at line 147 of file VP1BPhysSystem.h.

◆ m_neutralSwitches

std::vector<SoSwitch*> VP1BPhysSystem::m_neutralSwitches
private

Definition at line 164 of file VP1BPhysSystem.h.

◆ m_overlapSwitches

std::vector<SoSwitch*> VP1BPhysSystem::m_overlapSwitches
private

Definition at line 162 of file VP1BPhysSystem.h.

◆ m_refittedSwitches

std::vector<SoSwitch*> VP1BPhysSystem::m_refittedSwitches
private

Definition at line 165 of file VP1BPhysSystem.h.

◆ m_root

SoSeparator* VP1BPhysSystem::m_root
private

Definition at line 150 of file VP1BPhysSystem.h.

◆ m_rootFile

TFile* VP1BPhysSystem::m_rootFile
private

Definition at line 145 of file VP1BPhysSystem.h.

◆ m_sg

StoreGateSvc* VP1BPhysSystem::m_sg
private

Definition at line 149 of file VP1BPhysSystem.h.

◆ m_showAll

bool VP1BPhysSystem::m_showAll
private

Definition at line 156 of file VP1BPhysSystem.h.

◆ m_showNeutral

bool VP1BPhysSystem::m_showNeutral
private

Definition at line 158 of file VP1BPhysSystem.h.

◆ m_showRefitted

bool VP1BPhysSystem::m_showRefitted
private

Definition at line 159 of file VP1BPhysSystem.h.

◆ m_showSignal

bool VP1BPhysSystem::m_showSignal
private

Definition at line 157 of file VP1BPhysSystem.h.

◆ m_showVertices

bool VP1BPhysSystem::m_showVertices
private

Definition at line 153 of file VP1BPhysSystem.h.

◆ m_signalSwitches

std::vector<SoSwitch*> VP1BPhysSystem::m_signalSwitches
private

Definition at line 163 of file VP1BPhysSystem.h.

◆ m_trackSwitches

std::vector<SoSwitch*> VP1BPhysSystem::m_trackSwitches
private

Definition at line 161 of file VP1BPhysSystem.h.

◆ m_tree

TTree* VP1BPhysSystem::m_tree
private

Definition at line 146 of file VP1BPhysSystem.h.

◆ m_vertexStyle

int VP1BPhysSystem::m_vertexStyle
private

Definition at line 152 of file VP1BPhysSystem.h.

◆ m_vertexSwitches

std::vector<SoSwitch*> VP1BPhysSystem::m_vertexSwitches
private

Definition at line 154 of file VP1BPhysSystem.h.

◆ s_vp1verbose

const bool IVP1System::s_vp1verbose = VP1QtUtils::environmentVariableIsOn("VP1_VERBOSE_OUTPUT")
staticprivateinherited

Definition at line 158 of file IVP1System.h.


The documentation for this class was generated from the following files: