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

#include <VP1SimHitSystem.h>

Inheritance diagram for VP1SimHitSystem:
Collaboration diagram for VP1SimHitSystem:

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

 VP1SimHitSystem ()
 ~VP1SimHitSystem ()
QWidget * buildController ()
void systemcreate (StoreGateSvc *detstore)
void buildEventSceneGraph (StoreGateSvc *sg, SoSeparator *root)
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 Slots

void checkboxChanged ()

Protected Member Functions

void registerController (QWidget *)

Private Slots

void activateClickedOutside ()

Private Member Functions

void buildHitTree (const QString &detector)
void handleDetDescrElementHit (const CaloDetDescrElement *hitElement, SoVertexProperty *hitVtxProperty, unsigned int &hitCount)
void fillHitPositionsFromSiHitCollection (const std::string &collName, const StoreGateSvc *sg, SoVertexProperty *hitVtxProperty, unsigned int &hitCount)
 Helper function to get the global position of a SiHit item.
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

Clockworkm_clockwork
Impm_d

Static Private Attributes

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

Detailed Description

Definition at line 14 of file VP1SimHitSystem.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

◆ VP1SimHitSystem()

VP1SimHitSystem::VP1SimHitSystem ( )

Definition at line 92 of file VP1SimHitSystem.cxx.

93 :IVP13DSystemSimple("Sim Hits","Display simulation hits from trackers and calorimeters","Vakho Tsulaia <Vakhtang.Tsulaia@cern.ch>, Riccardo Maria Bianchi <Riccardo.Maria.Bianchi@cern.ch>"),
95{
96}
IVP13DSystemSimple(const QString &name, const QString &information, const QString &contact_info)
Clockwork * m_clockwork

◆ ~VP1SimHitSystem()

VP1SimHitSystem::~VP1SimHitSystem ( )

Definition at line 98 of file VP1SimHitSystem.cxx.

99{
100 delete m_clockwork;
101 m_clockwork = 0;
102}

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}

◆ allowUpdateGUI()

void IVP1System::allowUpdateGUI ( )
privateinherited

Definition at line 256 of file IVP1System.cxx.

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

◆ buildController()

QWidget * VP1SimHitSystem::buildController ( )
virtual

Reimplemented from IVP13DSystemSimple.

Definition at line 104 of file VP1SimHitSystem.cxx.

105{
106 QWidget* controller = new QWidget(0);
107 Ui::SimHitControllerForm ui;
108 ui.setupUi(controller);
109
110 // Show/Hide checkboxes
111 // based on geometry being used
112 ui.chbxITkPixelHits->setVisible(VP1JobConfigInfo::hasITkGeometry());
113 ui.chbxITkStripHits->setVisible(VP1JobConfigInfo::hasITkGeometry());
114 ui.chbxPixelHits->setVisible(VP1JobConfigInfo::hasPixelGeometry());
115 ui.chbxSCTHits->setVisible(VP1JobConfigInfo::hasSCTGeometry());
116 ui.chbxTRTHits->setVisible(VP1JobConfigInfo::hasTRTGeometry());
117 ui.chbxHGTDHits->setVisible(VP1JobConfigInfo::hasHGTDGeometry());
118
119 // Populate Check Box Names Map
121 m_clockwork->checkBoxNamesMap.insert(ui.chbxITkPixelHits,"ITkPixel");
122 m_clockwork->checkBoxNamesMap.insert(ui.chbxITkStripHits,"ITkStrip");
123 } else {
124 m_clockwork->checkBoxNamesMap.insert(ui.chbxPixelHits,"Pixel");
125 m_clockwork->checkBoxNamesMap.insert(ui.chbxSCTHits,"SCT");
126 m_clockwork->checkBoxNamesMap.insert(ui.chbxTRTHits,"TRT");
127 }
129 m_clockwork->checkBoxNamesMap.insert(ui.chbxHGTDHits,"HGTD");
130 }
131 m_clockwork->checkBoxNamesMap.insert(ui.chbxMDTHits,"MDT");
132 m_clockwork->checkBoxNamesMap.insert(ui.chbxRPCHits,"RPC");
133 m_clockwork->checkBoxNamesMap.insert(ui.chbxTGCHits,"TGC");
134 m_clockwork->checkBoxNamesMap.insert(ui.chbxCSCHits,"CSC");
135 m_clockwork->checkBoxNamesMap.insert(ui.chbxMMHits,"MM");
136 m_clockwork->checkBoxNamesMap.insert(ui.chbxsTGCHits,"sTGC");
137 m_clockwork->checkBoxNamesMap.insert(ui.chbxLArEMBHits,"LArEMB");
138 m_clockwork->checkBoxNamesMap.insert(ui.chbxLArEMECHits,"LArEMEC");
139 m_clockwork->checkBoxNamesMap.insert(ui.chbxLArFCALHits,"LArFCAL");
140 m_clockwork->checkBoxNamesMap.insert(ui.chbxLArHECHits,"LArHEC");
141 m_clockwork->checkBoxNamesMap.insert(ui.chbxTileHits,"Tile");
142 m_clockwork->checkBoxNamesMap.insert(ui.chbxGenericMuonHits,"Generic Muon");
143 m_clockwork->checkBoxNamesMap.insert(ui.chbxForwardRegionHits,"Forward Region");
144
145 // Populate Check Box Map and connect slots
146 for(QCheckBox* cb : m_clockwork->checkBoxNamesMap.keys())
147 {
148 connect(cb,SIGNAL(toggled(bool)),this,SLOT(checkboxChanged()));
149 m_clockwork->checkBoxMap.insert(m_clockwork->checkBoxNamesMap[cb],cb);
150 }
151
152 return controller;
153}
static bool hasTRTGeometry()
static bool hasPixelGeometry()
static bool hasSCTGeometry()
static bool hasHGTDGeometry()
static bool hasITkGeometry()

◆ buildEventSceneGraph()

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

Implements IVP13DSystemSimple.

Definition at line 206 of file VP1SimHitSystem.cxx.

207{
208 // --- Draw style: POINTS
209 SoDrawStyle* ds = new SoDrawStyle();
210 ds->style.setValue(SoDrawStyle::POINTS);
211 ds->pointSize=4;
212 root->addChild(ds);
213
214 // Keep SG pointer
215 m_clockwork->sg = sg;
216
217 // clean up
218 m_clockwork->switchMap.clear();
219 m_clockwork->hitsThisEvent.clear();
220
221 if(!sg)
222 {
223 message("0 pointer to the Store Gate!");
224 return;
225 }
226
227 for(const QString& detector : m_clockwork->checkBoxMap.keys())
228 {
229 // Add switch, off by default
230 SoSwitch* sw = new SoSwitch();
231 sw->whichChild = SO_SWITCH_NONE;
232 root->addChild(sw);
233 m_clockwork->switchMap.insert(detector,sw);
234
235 // Build subtree if the check box is ON
236 if(m_clockwork->checkBoxMap.contains(detector) &&
237 m_clockwork->checkBoxMap[detector]->isChecked())
238 {
239 buildHitTree(detector);
240 sw->whichChild = SO_SWITCH_ALL;
241 }
242 updateGUI();
243 }
244}
void message(const QString &) const
void buildHitTree(const QString &detector)

◆ buildExtraDisplayWidget()

virtual QWidget * IVP13DSystem::buildExtraDisplayWidget ( )
inlinevirtualinherited

Definition at line 106 of file IVP13DSystem.h.

106{ return 0; }

◆ buildHitTree()

void VP1SimHitSystem::buildHitTree ( const QString & detector)
private

Definition at line 292 of file VP1SimHitSystem.cxx.

293{
294 messageVerbose("buildHitTree for "+detector);
295 if(m_clockwork->hitsThisEvent.contains(detector)) {
296 messageVerbose(" in hitsThisEvent"); return;
297 }
298 if(!m_clockwork->colorMap.contains(detector)) {
299 messageVerbose("not in colorMap"); return;
300 }
301 if(!m_clockwork->switchMap.contains(detector)) {
302 messageVerbose("not in switchMap"); return;
303 }
304
305 // -- Initializations
306 StoreGateSvc* sg = m_clockwork->sg;
307 SoSwitch* sw = m_clockwork->switchMap[detector];
308 unsigned int hitCount = 0;
309
310 SoVertexProperty* hitVtxProperty = new SoVertexProperty();
311 SoPointSet* hitPointSet = new SoPointSet();
312
313 hitVtxProperty->enableNotify(FALSE);
314 hitPointSet->enableNotify(FALSE);
315
316 // -- COLOR
317 SoMaterial* material = new SoMaterial();
318 material->diffuseColor.setValue(m_clockwork->colorMap[detector]);
319
320 sw->addChild(material);
321
322 // Take hits from SG
323 if(detector=="ITkPixel")
324 {
325 fillHitPositionsFromSiHitCollection( "ITkPixelHits", sg, hitVtxProperty, hitCount);
326 }
327 else if(detector=="ITkStrip")
328 {
329 fillHitPositionsFromSiHitCollection("ITkStripHits", sg, hitVtxProperty, hitCount);
330 }
331 else if(detector=="Pixel")
332 {
333 fillHitPositionsFromSiHitCollection("PixelHits", sg, hitVtxProperty, hitCount);
334 }
335 else if(detector=="SCT")
336 {
337 fillHitPositionsFromSiHitCollection("SCT_Hits", sg, hitVtxProperty, hitCount);
338 }
339 else if(detector=="TRT")
340 {
341 //
342 // TRT:
343 //
344 const TRTUncompressedHitCollection* t_collection = nullptr;
345 if(sg->retrieve(t_collection,"TRTUncompressedHits")==StatusCode::SUCCESS)
346 {
347 for (const TRTUncompressedHit& hit : *t_collection)
348 {
349 GeoTRTUncompressedHit ghit(hit);
350 if(!ghit) continue;
351 Amg::Vector3D u = Amg::Hep3VectorToEigen(ghit.getGlobalPosition(m_clockwork->trt_dd_man));
352 hitVtxProperty->vertex.set1Value(hitCount++,u.x(),u.y(),u.z());
353 }
354 }
355 else
356 message("Unable to retrieve TRT Hits");
357 }
358 else if(detector=="HGTD")
359 {
360 //
361 // HGTD:
362 //
363 const SiHitCollection* p_collection = nullptr;
364 if(sg->retrieve(p_collection,"HGTD_Hits")==StatusCode::SUCCESS)
365 {
366 for (const SiHit& hit : *p_collection)
367 {
368 GeoSiHit ghit(hit);
369 if(!ghit) continue;
370 HepGeom::Point3D<double> u = ghit.getGlobalPosition();
371 hitVtxProperty->vertex.set1Value(hitCount++,u.x(),u.y(),u.z());
372 }
373 }
374 else
375 message("Unable to retrieve HGTD Hits");
376 }
377 else if(detector=="LArEMB" || detector=="LArEMEC" || detector=="LArFCAL" || detector=="LArHEC" )
378 {
379 //
380 // LAr:
381 //
382 // NOTE: to access additional LAr simHit data, see:
383 // Simulation/Tools/HitAnalysis/src/CaloHitAnalysis.cxx
384 //
385 const LArHitContainer* lar_collection;
386
387 std::string collName{"LArHit"};
388 std::string suff{""};
389
390 if (detector=="LArEMB")
391 suff = "EMB";
392 else if (detector=="LArEMEC")
393 suff = "EMEC";
394 else if (detector=="LArFCAL")
395 suff = "FCAL";
396 else if (detector=="LArHEC")
397 suff = "HEC";
398 collName += suff; // e.g., we get 'LArHitEMB'
399
400 if(sg->retrieve(lar_collection, collName)==StatusCode::SUCCESS)
401 {
402 for (auto hi : *lar_collection ) {
403
404 const LArHit* larHit = hi;
405 const CaloDetDescrElement* ddElement = m_clockwork->lar_dd_man->get_element(larHit->cellID());
406 if (ddElement)
407 handleDetDescrElementHit(ddElement, hitVtxProperty, hitCount);
408 else
409 message("Unable to retrieve the CaloDetDescrElement!");
410 }
411 }
412 else
413 message("Unable to retrieve " + QString::fromStdString(collName) );
414 }
415 else if(detector=="Tile")
416 {
417 //
418 // Tile:
419 //
420 // For more Tile simHits data, see:
421 // Simulation/Tools/HitAnalysis/src/CaloHitAnalysis.cxx
422 //
423 const TileHitVector* t_collection = nullptr;
424
425 if(sg->retrieve(t_collection,"TileHitVec")==StatusCode::SUCCESS)
426 {
427 for (const TileHit& hit : *t_collection) {
428 Identifier pmt_id = hit.identify();
429 Identifier cell_id = m_clockwork->tile_id->cell_id(pmt_id);
430 const CaloDetDescrElement* ddElement = (m_clockwork->tile_id->is_tile_aux(cell_id)) ? 0 : m_clockwork->tile_dd_man->get_cell_element(cell_id);
431 if (ddElement)
432 handleDetDescrElementHit(ddElement, hitVtxProperty, hitCount);
433 else
434 message("Unable to retrieve the CaloDetDescrElement!");
435 }
436 }
437 else
438 message("Unable to retrieve Tile Hits");
439 }
440 else if(detector=="MDT")
441 {
442 //
443 // MDT:
444 //
445 const MDTSimHitCollection* mdt_collection = nullptr;
446 if(sg->retrieve(mdt_collection)==StatusCode::SUCCESS)
447 {
448 for (const MDTSimHit& hit : *mdt_collection)
449 {
450 GeoMDTHit ghit(hit);
451 if(!ghit) continue;
452 Amg::Vector3D u = ghit.getGlobalPosition();
453 hitVtxProperty->vertex.set1Value(hitCount++,u.x(),u.y(),u.z());
454 }
455 }
456 else
457 message("Unable to retrieve MDT Hits");
458 }
459 else if(detector=="RPC")
460 {
461 //
462 // RPC:
463 //
464 const RPCSimHitCollection* rpc_collection = nullptr;
465 if(sg->retrieve(rpc_collection)==StatusCode::SUCCESS) {
466 for (const RPCSimHit& hit : *rpc_collection)
467 {
468 GeoRPCHit ghit(hit);
469 if(!ghit) continue;
470 Amg::Vector3D u = ghit.getGlobalPosition();
471 hitVtxProperty->vertex.set1Value(hitCount++,u.x(),u.y(),u.z());
472 }
473 }
474 else
475 message("Unable to retrieve RPC Hits");
476 }
477 else if(detector=="TGC")
478 {
479 //
480 // TGC:
481 //
482 const TGCSimHitCollection* tgc_collection = nullptr;
483 if (sg->retrieve(tgc_collection)==StatusCode::SUCCESS)
484 {
485 for (const TGCSimHit& hit : *tgc_collection)
486 {
487 GeoTGCHit ghit(hit);
488 if(!ghit) continue;
489 Amg::Vector3D u = ghit.getGlobalPosition();
490 hitVtxProperty->vertex.set1Value(hitCount++,u.x(),u.y(),u.z());
491 }
492 }
493 else
494 message("Unable to retrieve TGC Hits");
495 }
496 else if(detector=="CSC")
497 {
498 //
499 // CSC:
500 //
501 const CSCSimHitCollection* csc_collection = nullptr;
502 if(sg->retrieve(csc_collection)==StatusCode::SUCCESS)
503 {
504 for (const CSCSimHit& hit : *csc_collection)
505 {
506 GeoCSCHit ghit(hit);
507 if (!ghit) continue;
508 Amg::Vector3D u = ghit.getGlobalPosition();
509 hitVtxProperty->vertex.set1Value(hitCount++,u.x(),u.y(),u.z());
510 }
511 }
512 else
513 message("Unable to retrieve CSC Hits");
514 }
515 else if(detector=="MM")
516 {
517 //
518 // NSW / MM:
519 //
520 const MMSimHitCollection* mm_collection;
521 if(sg->retrieve(mm_collection)==StatusCode::SUCCESS)
522 {
523 for( const MMSimHit& hit : *mm_collection )
524 {
525 GeoMMHit ghit(hit);
526 if(!ghit) continue;
527 Amg::Vector3D u = ghit.getGlobalPosition();
528 hitVtxProperty->vertex.set1Value(hitCount++,u.x(),u.y(),u.z());
529 }
530 }
531 else
532 message("Unable to retrieve MM Hits");
533 }
534 else if(detector=="sTGC")
535 {
536 //
537 // NSW / sTGC:
538 //
539 const sTGCSimHitCollection* stgc_collection;
540 if(sg->retrieve(stgc_collection)==StatusCode::SUCCESS)
541 {
542 for( const sTGCSimHit& hit : *stgc_collection )
543 {
544 GeosTGCHit ghit(hit);
545 if(!ghit) continue;
546 Amg::Vector3D u = ghit.getGlobalPosition();
547 hitVtxProperty->vertex.set1Value(hitCount++,u.x(),u.y(),u.z());
548 }
549 }
550 else
551 message("Unable to retrieve sTGC Hits");
552 }
553 else if(detector=="Generic Muon")
554 {
555 //
556 // Generic:
557 //
558 message("Trying for Generic Muon (as many collections as can be found)");
559 for(const QString& key : VP1SGContentsHelper(this).getKeys<GenericMuonSimHitCollection>()) {
560 const GenericMuonSimHitCollection* generic_collection = nullptr;
561 if(sg->retrieve( generic_collection,key.toStdString().c_str() )==StatusCode::SUCCESS)
562 {
563 messageVerbose("Retrieved"+key+"with size: "+str(generic_collection->size()));
564 std::cout<<"Got collection with size: "<<generic_collection->size()<<std::endl;
565
566 //unsigned int i=0; // for DEBUG only
567 for (const GenericMuonSimHit& hit : *generic_collection)
568 {
569 // std::cout << "Got hit number: " << i++ << std::endl; // for DEBUG only
570 const GenericMuonSimHit ghit(hit);
571 const Amg::Vector3D& u = ghit.globalPosition();
572 hitVtxProperty->vertex.set1Value(hitCount++,u.x(),u.y(),u.z());
573 }
574 }
575 else
576 message("Unable to retrieve Generic Muon Hits from "+key);
577 }
578 } else if(detector=="Forward Region")
579 {
580 //
581 // Generic:
582 //
583 message("Trying for ForwardRegion (as many collections as can be found)");
584 for(const QString& key : VP1SGContentsHelper(this).getKeys<SimulationHitCollection>()) {
585 const SimulationHitCollection* generic_collection = nullptr;
586 if(sg->retrieve( generic_collection,key.toStdString().c_str() )==StatusCode::SUCCESS)
587 {
588 messageVerbose("Retrieved"+key+"with size: "+str(generic_collection->size()));
589 std::cout<<"Got collection with size: "<<generic_collection->size()<<std::endl;
590
591 //unsigned int i=0; // for DEBUG only
592 for (const SimulationHit& hit : *generic_collection)
593 {
594 // std::cout << "Got hit number: " << i++ << std::endl; // for DEBUG only
595 const SimulationHit ghit(hit);
596 const Amg::Vector3D& u = Amg::Hep3VectorToEigen(ghit.pre().position);
597 hitVtxProperty->vertex.set1Value(hitCount++,u.x(),u.y(),u.z());
598 }
599 }
600 else
601 message("Unable to retrieve Simulation Hits from "+key);
602 }
603 } else {
604 VP1Msg::messageWarningRed("WARNING! Retrieval of Sim Hits not defined for the detector: " + detector, this);
605 }
606
607 // Add to the switch
608 hitPointSet->numPoints=hitCount;
609 hitPointSet->vertexProperty.setValue(hitVtxProperty);
610 sw->addChild(hitPointSet);
611 hitPointSet->enableNotify(TRUE);
612 hitVtxProperty->enableNotify(TRUE);
613}
AtlasHitsVector< CSCSimHit > CSCSimHitCollection
AtlasHitsVector< GenericMuonSimHit > GenericMuonSimHitCollection
LArHitContainer
AtlasHitsVector< MDTSimHit > MDTSimHitCollection
AtlasHitsVector< MMSimHit > MMSimHitCollection
AtlasHitsVector< RPCSimHit > RPCSimHitCollection
AtlasHitsVector< SiHit > SiHitCollection
AtlasHitsVector< SimulationHit > SimulationHitCollection
AtlasHitsVector< TGCSimHit > TGCSimHitCollection
AtlasHitsVector< TRTUncompressedHit > TRTUncompressedHitCollection
AtlasHitsVector< TileHit > TileHitVector
size_type size() const
void messageVerbose(const QString &) const
Identifier cellID() const
Definition LArHit.h:108
StatusCode retrieve(const T *&ptr) const
Retrieve the default object into a const T*.
static void messageWarningRed(const QString &str, IVP1System *sys=0)
Definition VP1Msg.cxx:57
void handleDetDescrElementHit(const CaloDetDescrElement *hitElement, SoVertexProperty *hitVtxProperty, unsigned int &hitCount)
void fillHitPositionsFromSiHitCollection(const std::string &collName, const StoreGateSvc *sg, SoVertexProperty *hitVtxProperty, unsigned int &hitCount)
Helper function to get the global position of a SiHit item.
static QString str(const QString &s)
Definition VP1String.h:49
Amg::Vector3D Hep3VectorToEigen(const CLHEP::Hep3Vector &CLHEPvector)
Converts a CLHEP-based CLHEP::Hep3Vector into an Eigen-based Amg::Vector3D.
Eigen::Matrix< double, 3, 1 > Vector3D
@ u
Enums for curvilinear frames.
Definition ParamDefs.h:77
AtlasHitsVector< sTGCSimHit > sTGCSimHitCollection

◆ 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}
static bool verbose()
Definition VP1Msg.h:31

◆ checkboxChanged

void VP1SimHitSystem::checkboxChanged ( )
protectedslot

Definition at line 246 of file VP1SimHitSystem.cxx.

247{
248 // Get ChB pointer
249 QCheckBox* cb = dynamic_cast<QCheckBox*>(sender());
250 if(cb && m_clockwork->checkBoxNamesMap.contains(cb))
251 {
252 // Get detector name
253 QString detector = m_clockwork->checkBoxNamesMap[cb];
254 if(m_clockwork->switchMap.contains(detector))
255 {
256 // Get swtich
257 SoSwitch* sw = m_clockwork->switchMap[detector];
258 if(cb->isChecked()){
259 // Build subtree if necessary
260 if(!m_clockwork->hitsThisEvent.contains(detector))
261 buildHitTree(detector);
262 sw->whichChild = SO_SWITCH_ALL;
263 }
264 else
265 sw->whichChild = SO_SWITCH_NONE;
266 } else {
267 message("WARNING: Unknown detector:"+detector);
268 }
269 }
270}

◆ 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}

◆ 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:132
path
python interpreter configuration --------------------------------------—
Definition athena.py:130

◆ 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}

◆ 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 *)

◆ 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()

◆ fillHitPositionsFromSiHitCollection()

void VP1SimHitSystem::fillHitPositionsFromSiHitCollection ( const std::string & collName,
const StoreGateSvc * sg,
SoVertexProperty * hitVtxProperty,
unsigned int & hitCount )
private

Helper function to get the global position of a SiHit item.

Parameters
[in]collNameThe name of the specific SiHit collection
[in]sgA pointer to the StoreGate
[in,out]hitVtxPropertyTo store the hit's positions in X,Y,Z
[in,out]hitCountA counter, which gets incremented according to the number of hits stored in the SiHit collection

Definition at line 272 of file VP1SimHitSystem.cxx.

273{
274 const char* collNameChar = collName.c_str();
275 const SiHitCollection *p_collection = nullptr;
276 if (sg->retrieve(p_collection, collName) == StatusCode::SUCCESS)
277 {
278 for (const SiHit &hit : *p_collection)
279 {
280 GeoSiHit ghit(hit);
281 if (!ghit)
282 continue;
283 HepGeom::Point3D<double> u = ghit.getGlobalPosition();
284 hitVtxProperty->vertex.set1Value(hitCount++, u.x(), u.y(), u.z());
285 }
286 message("Event contains " + str(p_collection->size()) + " entries in " + str(collNameChar) );
287 }
288 else
289 message("Unable to retrieve '" + str(collNameChar) + "' Hits");
290}

◆ 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}

◆ 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}

◆ handleDetDescrElementHit()

void VP1SimHitSystem::handleDetDescrElementHit ( const CaloDetDescrElement * hitElement,
SoVertexProperty * hitVtxProperty,
unsigned int & hitCount )
private

Definition at line 616 of file VP1SimHitSystem.cxx.

617{
618 float x = hitElement->x();
619 float y = hitElement->y();
620 double z = hitElement->z();
621 hitVtxProperty->vertex.set1Value(hitCount++,x,y,z);
622}
#define y
#define x
#define z

◆ 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

◆ 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}
void messageDebug(const QString &) const

◆ 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:140

◆ 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}

◆ 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 VP1SimHitSystem::systemcreate ( StoreGateSvc * detstore)
virtual

Reimplemented from IVP13DSystemSimple.

Definition at line 155 of file VP1SimHitSystem.cxx.

156{
157 // Populate Color Map
159 m_clockwork->colorMap.insert("ITkPixel",SbColor(1,1,1)); // white
160 m_clockwork->colorMap.insert("ITkStrip",SbColor(VP1ColorUtils::getSbColorFromRGB(28, 162, 230))); // Carolina Blue
161 } else {
162 m_clockwork->colorMap.insert("Pixel",SbColor(0,0,1));
163 m_clockwork->colorMap.insert("SCT",SbColor(1,1,1)); // white
164 m_clockwork->colorMap.insert("TRT",SbColor(1,0,0)); // red
165 }
167 m_clockwork->colorMap.insert("HGTD",SbColor(VP1ColorUtils::getSbColorFromRGB(255, 170, 0))); // amber
168 }
169 m_clockwork->colorMap.insert("MDT",SbColor(.98,.8,.21));
170 m_clockwork->colorMap.insert("RPC",SbColor(0,.44,.28));
171 m_clockwork->colorMap.insert("TGC",SbColor(0,.631244,.748016));
172 m_clockwork->colorMap.insert("CSC",SbColor(.21,.64,1.));
173 m_clockwork->colorMap.insert("MM",SbColor(VP1ColorUtils::getSbColorFromRGB(28, 162, 230))); // Carolina Blue
174 m_clockwork->colorMap.insert("sTGC",SbColor(VP1ColorUtils::getSbColorFromRGB(255, 255, 255))); // White
175 m_clockwork->colorMap.insert("LArEMB",SbColor(VP1ColorUtils::getSbColorFromRGB(247, 187, 109))); // Mellow Apricot
176 m_clockwork->colorMap.insert("LArEMEC",SbColor(VP1ColorUtils::getSbColorFromRGB(230, 151, 48))); // Carrot Orange
177 m_clockwork->colorMap.insert("LArFCAL",SbColor(VP1ColorUtils::getSbColorFromRGB(212, 134, 32))); // Fulvous
178 m_clockwork->colorMap.insert("LArHEC",SbColor(VP1ColorUtils::getSbColorFromRGB(184, 114, 24))); // Copper
179 //m_clockwork->colorMap.insert("Tile",SbColor(VP1ColorUtils::getSbColorFromRGB(28, 162, 230))); // Carolina Blue --> Note: this is nice, but it disappears when superimposed to the azure Tile geometry default material
180 m_clockwork->colorMap.insert("Tile",SbColor(VP1ColorUtils::getSbColorFromRGB(164, 78, 207))); // Purple Plum
181 m_clockwork->colorMap.insert("Generic Muon",SbColor(.21,.64,1.));
182 m_clockwork->colorMap.insert("Forward Region",SbColor(.21,.64,1.));
183
184
185 // ------------- DD Managers and ID Helpers -------------
186 StatusCode status = detstore->retrieve(m_clockwork->tile_dd_man);
187 if(status.isFailure() || m_clockwork->tile_dd_man==nullptr) {
188 //m_clockwork->noCalo = true;
189 messageDebug("Unable to retrieve Tile DD Manager");
190 return;
191 }
192 m_clockwork->tile_id = m_clockwork->tile_dd_man->get_id();
193 if(m_clockwork->tile_id==nullptr) {
194 //m_clockwork->noCalo = true;
195 messageDebug("0 pointer to Tile ID Helper");
196 return;
197 }
198 status = detstore->retrieve(m_clockwork->trt_dd_man,"TRT");
199 if(status.isFailure() || m_clockwork->trt_dd_man==nullptr) {
200 messageDebug("Unable to retrieve TRT DD Manager");
201 return;
202 }
204}
std::unique_ptr< CaloDetDescrManager > buildCaloDetDescrNoAlign(ISvcLocator *svcLocator, IMessageSvc *msgSvc)
ISvcLocator * serviceLocator() const
static SbColor getSbColorFromRGB(const unsigned int r, const unsigned int g, const unsigned int b)
IMessageSvc * getMessageSvc(bool quiet=false)
::StatusCode StatusCode
StatusCode definition for legacy code.
status
Definition merge.py:16

◆ 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_clockwork

Clockwork* VP1SimHitSystem::m_clockwork
private

Definition at line 32 of file VP1SimHitSystem.h.

◆ m_d

Imp* IVP13DSystemSimple::m_d
privateinherited

Definition at line 80 of file IVP13DSystemSimple.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: