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

#include <VP1TruthVertexCollection.h>

Inheritance diagram for VP1TruthVertexCollection:
Collaboration diagram for VP1TruthVertexCollection:

Classes

class  Imp

Public Slots

void setVisible (bool)
void possibleChangeMatTranspOrBrightness ()

Signals

void tracksFromVertexChanged (QList< std::pair< const SoMaterial *, QList< const Trk::Track * > > > &)
void visibilityChanged (bool)

Public Member Functions

 VP1TruthVertexCollection (VertexSysController *, const QString &key)
virtual ~VP1TruthVertexCollection ()
QStringList infoOnClicked (SoPath *pickedPath)
virtual void init (VP1MaterialButtonBase *button=0)
bool visible () const
bool isLoaded () const
bool problemsLoading () const
QString text () const
SoSwitch * collSwitch () const
 Add this somewhere in your scenegraph (do not add any children here!)
SoSeparator * collSep () const
 All 3D objects from this coll.
SoMaterial * material () const
double collMaterialTransparency () const
double collMaterialBrightness () const
virtual void largeChangesBegin ()
virtual void largeChangesEnd ()
virtual QByteArray persistifiableState () const
 Provide default implementation based on widget list + version.
virtual void setState (const QByteArray &)
 Provide default implementation based on widget list + version.
qint32 collTypeID () const
QByteArray persistifiableID () const
QString section () const
QString sectionToolTip () const
virtual QList< QWidget * > widgetsForGuiRow () const
void setSystemBasePointer (IVP1System *sys)
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
IVP1SystemsystemBase () const
const QString & helperClassName () const

Static Public Member Functions

static QList< VP1StdCollection * > createCollections (VertexSysController *)
static VP1CollStates getStates (const QList< VP1Collection * > &)
static void applyStates (const QList< VP1Collection * > &, const VP1CollStates &)
static void updateStates (VP1CollStates &state, const VP1CollStates &newInfo)
template<class T>
static QList< VP1Collection * > toBaseCollList (const QList< T * > &)
static bool verbose ()
static void warnUndeletedInstances ()
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

qint32 provideCollTypeID () const
QString provideSection () const
QString provideSectionToolTip () const
QString provideText () const
void assignDefaultMaterial (SoMaterial *) const
bool load ()
QList< QWidget * > provideWidgetsForGuiRow () const
virtual QString checkBoxToolTip () const
virtual QString matButtonToolTip () const
virtual void collMaterialTransparencyAndBrightnessChanged ()
virtual QList< QWidget * > provideExtraWidgetsForGuiRow () const
virtual QByteArray extraWidgetsState () const
virtual void setExtraWidgetsState (const QByteArray &)
virtual QByteArray providePersistifiableID () const
void setHelperClassName (const QString &n)

Private Slots

void recheckAllCuts ()
void updateAllShapes ()

Private Attributes

Impm_d
QString m_helpername
IVP1Systemm_system

Static Private Attributes

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

Detailed Description

Definition at line 31 of file VP1TruthVertexCollection.h.

Constructor & Destructor Documentation

◆ VP1TruthVertexCollection()

VP1TruthVertexCollection::VP1TruthVertexCollection ( VertexSysController * controller,
const QString & key )

Definition at line 190 of file VP1TruthVertexCollection.cxx.

191 : VP1StdCollection(controller->systemBase(),"VP1TruthVertexCollection_"+key), m_d(new Imp)
192{
193 m_d->key = key;
194 m_d->theclass = this;
195 m_d->controller = controller;
196 connect(controller,SIGNAL(truthCutAllowedEtaChanged(const VP1Interval&)),this,SLOT(recheckAllCuts()));
197 connect(controller,SIGNAL(truthCutAllowedPhiChanged(const QList<VP1Interval>&)),this,SLOT(recheckAllCuts()));
198 connect(controller,SIGNAL(truthCutPrimaryVertexOnlyChanged(bool)),this,SLOT(recheckAllCuts()));
199 connect(controller,SIGNAL(truthCutQuantityChanged(const QPair<VertexCommonFlags::QUANTITY,VP1Interval>&)),this,SLOT(recheckAllCuts()));
200 connect(controller,SIGNAL(truthCrossLengthChanged(QPair<VertexCommonFlags::QUANTITY,double>)),this,SLOT(updateAllShapes()));
201}
IVP1System * systemBase() const
VP1StdCollection(IVP1System *, const QString &helperClassName)

◆ ~VP1TruthVertexCollection()

VP1TruthVertexCollection::~VP1TruthVertexCollection ( )
virtual

Definition at line 204 of file VP1TruthVertexCollection.cxx.

205{
206 for (Imp::VertexHandle*vh : m_d->vertices)
207 delete vh;
208 delete m_d;
209}

Member Function Documentation

◆ applyStates()

void VP1Collection::applyStates ( const QList< VP1Collection * > & cols,
const VP1CollStates & states )
staticinherited

Definition at line 108 of file VP1Collection.cxx.

109{
110 VP1Msg::messageDebug("VP1Collection::applyStates() - start...");
111 for (VP1Collection* col : cols)
112 if (states.contains(col->persistifiableID()))
113 col->setState(states.value(col->persistifiableID()));
114 VP1Msg::messageDebug("VP1Collection::applyStates() - end.");
115}
VP1Collection(IVP1System *sys=0, const QString &helperClassName="VP1Collection")
static void messageDebug(const QString &)
Definition VP1Msg.cxx:39

◆ assignDefaultMaterial()

void VP1TruthVertexCollection::assignDefaultMaterial ( SoMaterial * m) const
protectedvirtual

Implements VP1StdCollection.

Definition at line 218 of file VP1TruthVertexCollection.cxx.

219{
220 VP1MaterialButton::setMaterialParameters( m, 0.66667/*red*/, 0.66667/*green*/, 1.0/*blue*/, 0.15 /*brightness*/ );
221}
static void setMaterialParameters(SoMaterial *m, const QColor &, const double &brightness=0.0, const double &transp=0.0)

◆ checkBoxToolTip()

virtual QString VP1StdCollection::checkBoxToolTip ( ) const
inlineprotectedvirtualinherited

Reimplemented in VP1MissingEtCaloHandle, VP1MissingEtHandle, and VP1MissingEtTruthHandle.

Definition at line 76 of file VP1StdCollection.h.

76{ return "Collection "+text(); }
QString text() const

◆ collMaterialBrightness()

double VP1StdCollection::collMaterialBrightness ( ) const
inherited

Definition at line 342 of file VP1StdCollection.cxx.

343{
344 return m_d->lastMatBrightness;
345}

◆ collMaterialTransparency()

double VP1StdCollection::collMaterialTransparency ( ) const
inherited

Definition at line 336 of file VP1StdCollection.cxx.

337{
338 return m_d->lastMatTransparency;
339}

◆ collMaterialTransparencyAndBrightnessChanged()

virtual void VP1StdCollection::collMaterialTransparencyAndBrightnessChanged ( )
inlineprotectedvirtualinherited

Reimplemented in TrackCollHandleBase.

Definition at line 79 of file VP1StdCollection.h.

79{}

◆ collSep()

SoSeparator * VP1StdCollection::collSep ( ) const
inherited

All 3D objects from this coll.

belongs under here.

Definition at line 212 of file VP1StdCollection.cxx.

213{
214 if (!m_d->collsep)
215 message("ERROR: collSep() called before init()");
216 return m_d->collsep;
217}
void message(const QString &) const

◆ collSwitch()

SoSwitch * VP1StdCollection::collSwitch ( ) const
inherited

Add this somewhere in your scenegraph (do not add any children here!)

Definition at line 204 of file VP1StdCollection.cxx.

205{
206 if (!m_d->theswitch)
207 message("ERROR: collSwitch() called before init()");
208 return m_d->theswitch;
209}

◆ collTypeID()

qint32 VP1StdCollection::collTypeID ( ) const
inherited

Definition at line 315 of file VP1StdCollection.cxx.

316{
317 if (!m_d->idProvided) {
318 m_d->idProvided = true;
319 m_d->id = provideCollTypeID();
320 }
321 return m_d->id;
322}
virtual qint32 provideCollTypeID() const

◆ createCollections()

QList< VP1StdCollection * > VP1TruthVertexCollection::createCollections ( VertexSysController * controller)
static

Definition at line 43 of file VP1TruthVertexCollection.cxx.

44{
45 QList<VP1StdCollection*> l;
46 for (const QString& key : VP1SGContentsHelper(controller->systemBase()).getKeys<McEventCollection>()) {
47 VP1TruthVertexCollection * col = new VP1TruthVertexCollection(controller,key);
48 col->init();
49 l << col;
50 }
51 return l;
52}
virtual void init(VP1MaterialButtonBase *button=0)
VP1TruthVertexCollection(VertexSysController *, const QString &key)
l
Printing final latex table to .tex output file.

◆ extraWidgetsState()

virtual QByteArray VP1StdCollection::extraWidgetsState ( ) const
inlineprotectedvirtualinherited

Reimplemented in AODCollHandleBase, PRDCollHandleBase, and TrackCollHandleBase.

Definition at line 89 of file VP1StdCollection.h.

89{ return QByteArray(); }

◆ getStates()

VP1CollStates VP1Collection::getStates ( const QList< VP1Collection * > & cols)
staticinherited

Definition at line 92 of file VP1Collection.cxx.

93{
94 VP1Msg::messageDebug("VP1Collection::getStates() - start...");
95
97 for (VP1Collection* col : cols) {
98 VP1Msg::messageDebug("inserting collection: " + col->section() );
99 states.insert(col->persistifiableID(),col->persistifiableState());
100 }
101
102 VP1Msg::messageDebug("VP1Collection::getStates() - end.");
103
104 return states;
105}
QMap< QByteArray, QByteArray > VP1CollStates

◆ helperClassName()

const QString & VP1HelperClassBase::helperClassName ( ) const
inlineinherited

Definition at line 51 of file VP1HelperClassBase.h.

51{ return m_helpername; }

◆ infoOnClicked()

QStringList VP1TruthVertexCollection::infoOnClicked ( SoPath * pickedPath)

Definition at line 277 of file VP1TruthVertexCollection.cxx.

278{
279 //Get HepMC::GenVertex pointer associated with the clicked node:
280 SoNode * pickedNode = (pickedPath ? (pickedPath->getLength()>0?pickedPath->getNodeFromTail(0):0): 0);
281
282 Imp::VertexHandle* vertexHandle(0);
283 for (Imp::VertexHandle* vh : m_d->vertices) {
284 if (vh->line()==pickedNode) {
285 vertexHandle = vh;
286 break;
287 }
288 }
289 if (!vertexHandle)
290 return QStringList() << "ERROR: Could not get truth vertex information for picked Node";
291 HepMC::ConstGenVertexPtr vtx = vertexHandle->vertex();
292
293 QStringList l;
294 if (m_d->controller->printInfoOnClick()) {
295
296 //Make output:
297 l <<"Truth vertex from collection "+text()+":" ;
298#ifdef HEPMC3
299 for (const auto& PartIn: vtx->particles_in()) {
300#else
301 HepMC::GenVertex::particles_in_const_iterator itPartIn,itPartInE(vtx->particles_in_const_end());
302 for ( itPartIn = vtx->particles_in_const_begin();itPartIn!=itPartInE;++itPartIn) {
303 auto PartIn=*itPartIn;
304#endif
305 const int pdg = PartIn->pdg_id();
306 bool ok;
307 QString name = VP1ParticleData::particleName(pdg,ok);
308 if (!ok)
309 name = "<unknown>";
310 l << "--> In: "+name+" ("+str(pdg)+") [ P = "+str(m_d->mag(PartIn->momentum())/Gaudi::Units::GeV)+" GeV ]";
311 }
312#ifdef HEPMC3
313 for (const auto& PartOut: vtx->particles_out()) {
314#else
315 HepMC::GenVertex::particles_out_const_iterator itPartOut,itPartOutE(vtx->particles_out_const_end());
316 for ( itPartOut = vtx->particles_out_const_begin();itPartOut!=itPartOutE;++itPartOut) {
317 auto PartOut=*itPartOut;
318#endif
319 const int pdg = PartOut->pdg_id();
320 bool ok;
321 QString name = VP1ParticleData::particleName(pdg,ok);
322 if (!ok)
323 name = "<unknown>";
324 l << "--> Out: "+name+" ("+str(pdg)+") [ P = "+str(m_d->mag(PartOut->momentum())/Gaudi::Units::GeV)+" GeV ]";
325 }
326
327 if (m_d->controller->printVerboseInfoOnClick()) {
328 l <<"======== Dump ========";
329 std::ostringstream s;
330 HepMC::Print::line(s,vtx);
331 l << QString(s.str().c_str()).split('\n');
332 l <<"======================";
333 }
334
335 }
336 if (m_d->controller->zoomOnClick()) {
337 std::set<SoCamera*> cameras = static_cast<IVP13DSystem*>(systemBase())->getCameraList();
338 std::set<SoCamera*>::iterator it,itE = cameras.end();
339 for (it=cameras.begin();it!=itE;++it)
340 VP1CameraHelper::animatedZoomToPath(*it,collSep(),pickedPath,2.0,1.0);
341 }
342
343 return l;
344}
static VP1CameraHelper * animatedZoomToPath(SoCamera *camera, SoGroup *sceneroot, SoPath *path, double duration_in_secs=1.0, double clipVolPercent=100.0, double slack=1.0, const SbVec3f &lookat=SbVec3f(999, 999, 999), const SbVec3f &upvec=SbVec3f(999, 999, 999), bool varySpeed=true, bool forceCircular=false)
static QString particleName(const int &pdgcode, bool &ok)
SoSeparator * collSep() const
All 3D objects from this coll.
static QString str(const QString &s)
Definition VP1String.h:49
void line(std::ostream &os, const GenEvent &e)
Definition GenEvent.h:677
const HepMC::GenVertex * ConstGenVertexPtr
Definition GenVertex.h:60

◆ init()

void VP1StdCollection::init ( VP1MaterialButtonBase * button = 0)
virtualinherited

Reimplemented in AODCollHandleBase, IParticleCollHandle_CaloCluster, IParticleCollHandle_Electron, IParticleCollHandle_Jet, IParticleCollHandle_Muon, IParticleCollHandle_TrackParticle, MissingEtCollHandle, PRDCollHandleBase, TrackCollHandleBase, VertexCollHandle, VP1RawDataCollBase, and VP1VertexCollection.

Definition at line 73 of file VP1StdCollection.cxx.

74{
75 //The object names should not contain all sorts of funky chars (mat button style sheets wont work for instance):
76 QString safetext(text());
77 safetext.replace(' ','_');
78 safetext.replace('[','_');
79 safetext.replace(']','_');
80 safetext.replace('/','_');
81 safetext.replace('.','_');
82 safetext.replace(',','_');
83 safetext.replace('<','_');
84 safetext.replace('>','_');
85 safetext.replace('&','_');
86
87 m_d->theswitch = new SoSwitch;
88 m_d->theswitch->ref();
89 m_d->theswitch->setName(("StdCollSwitch"+safetext).toStdString().c_str());
90
91 // get a default material for the collection
92 m_d->material = new SoMaterial;
93 m_d->material->setName(("StdCollMat"+safetext).toStdString().c_str());
94 m_d->material->ref();
95 assignDefaultMaterial(m_d->material);
96
97 // the material button hosting the default material
98 button==0?m_d->matButton = new VP1MaterialButton:m_d->matButton=button; // Use button if something has been passed in...
99 m_d->matButton->setObjectName("matButtonColl_"+safetext);
100 m_d->matButton->setToolTip(matButtonToolTip());
101 m_d->matButton->setMaterial(m_d->material);
102 connect(m_d->matButton,SIGNAL(lastAppliedChanged()),this,SLOT(possibleChangeMatTranspOrBrightness()));
103
104 // the collection checkbox
105 m_d->checkBox = new QCheckBox();
106 m_d->checkBox->setText(m_d->checkBox->fontMetrics().elidedText(text(), Qt::ElideRight, 140 ));
107 m_d->checkBox->setObjectName("checkBoxColl_"+safetext);
108 m_d->checkBox->setToolTip(checkBoxToolTip());
109 connect(m_d->checkBox,SIGNAL(toggled(bool)),this,SLOT(setVisible(bool)));
110
111 m_d->collsep = new SoSeparator;
112 m_d->collsep->ref();
113 m_d->collsep->setName(("StdCollSep"+safetext).toStdString().c_str());
114
116}
virtual QString matButtonToolTip() const
virtual void assignDefaultMaterial(SoMaterial *) const =0
virtual QString checkBoxToolTip() const
void possibleChangeMatTranspOrBrightness()

◆ isLoaded()

bool VP1StdCollection::isLoaded ( ) const
inherited

Definition at line 148 of file VP1StdCollection.cxx.

149{
150 return m_d->loaded;
151}

◆ largeChangesBegin()

void VP1StdCollection::largeChangesBegin ( )
virtualinherited

Reimplemented in VP1CaloClusterCollection.

Definition at line 228 of file VP1StdCollection.cxx.

229{
230 if (!m_d->collsep)
231 message("ERROR: largeChangesBegin() called before init()");
232 m_d->collsep->enableNotify(false);
233 ++(m_d->largechangescount_sep);
234 m_d->theswitch->enableNotify(false);
235 ++(m_d->largechangescount_switch);
236}

◆ largeChangesEnd()

void VP1StdCollection::largeChangesEnd ( )
virtualinherited

Reimplemented in VP1CaloClusterCollection.

Definition at line 239 of file VP1StdCollection.cxx.

240{
241 if (!m_d->collsep)
242 message("ERROR: largeChangesEnd() called before init()");
243 if (m_d->largechangescount_sep>0) {
244 if (--(m_d->largechangescount_sep)==0) {
245 m_d->collsep->enableNotify(true);
246 m_d->collsep->touch();
247 }
248 }
249 if (m_d->largechangescount_switch>0) {
250 if (--(m_d->largechangescount_switch)==0) {
251 m_d->theswitch->enableNotify(true);
252 m_d->theswitch->touch();
253 }
254 }
255}

◆ load()

bool VP1TruthVertexCollection::load ( )
protectedvirtual

Implements VP1StdCollection.

Definition at line 242 of file VP1TruthVertexCollection.cxx.

243{
244 const McEventCollection* mcEventColl;
245 if (!VP1SGAccessHelper(systemBase()).retrieve(mcEventColl, m_d->key))
246 return false;
247
248 //Fixme: Here we take the first event in the event collection. Instead we should loop!
249 if (mcEventColl->size()<1)//Fixme
250 return false;
251
252 McEventCollection::const_iterator itEvent, itEventEnd(mcEventColl->end());
253 for (itEvent = mcEventColl->begin(); itEvent != itEventEnd; ++itEvent) {
254 const HepMC::GenEvent* genEvent(*itEvent);
255 if (!genEvent)
256 continue;
257
258#ifdef HEPMC3
259 for (const auto& vtx: genEvent->vertices()) {
260#else
261 HepMC::GenEvent::vertex_const_iterator itVertex, itVertexEnd(genEvent->vertices_end());
262 for (itVertex = genEvent->vertices_begin(); itVertex != itVertexEnd; ++itVertex ) {
263 auto vtx=*itVertex;
264#endif
265 if (!vtx)
266 continue;
267 m_d->vertices << new Imp::VertexHandle(vtx,m_d);
268 }
269 }
270
272
273 return true;
274}
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.
size_type size() const noexcept
Returns the number of elements in the collection.
retrieve(aClass, aKey=None)
Definition PyKernel.py:110

◆ matButtonToolTip()

virtual QString VP1StdCollection::matButtonToolTip ( ) const
inlineprotectedvirtualinherited

Reimplemented in AODCollHandleBase.

Definition at line 77 of file VP1StdCollection.h.

77{ return "Edit the material of "+text(); }

◆ material()

SoMaterial * VP1StdCollection::material ( ) const
inherited

Definition at line 220 of file VP1StdCollection.cxx.

221{
222 if (!m_d->material)
223 message("ERROR: material() called before init()");
224 return m_d->material;
225}

◆ message() [1/3]

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

Definition at line 49 of file VP1HelperClassBase.cxx.

50{
51 if (m_helpername.isEmpty()) {
52 if (m_system)
53 m_system->message(str);
54 else
55 std::cout<<VP1Msg::prefix_msg()<<" [nameless helper class]: "<<str.toStdString()<<std::endl;
56 } else {
57 if (m_system)
58 m_system->message("["+m_helpername+"] " + str);
59 else
60 std::cout<<VP1Msg::prefix_msg()<<" ["<<m_helpername.toStdString()<<"]: "<<str.toStdString()<<std::endl;
61 }
62}
static const char * prefix_msg()
Definition VP1Msg.h:56

◆ message() [2/3]

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

Definition at line 131 of file VP1HelperClassBase.cxx.

132{
133 if (addtostart.isEmpty()) {
134 message(l,addtoend);
135 return;
136 }
137 if (addtoend.isEmpty()) {
138 for (const QString& s : l)
139 message(addtostart+s);
140 } else {
141 for (const QString& s : l)
142 message(addtostart+s+addtoend);
143 }
144}

◆ message() [3/3]

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

Definition at line 91 of file VP1HelperClassBase.cxx.

92{
93 if (addtoend.isEmpty()) {
94 for (const QString& s : l)
95 message(s);
96 } else {
97 for (const QString& s : l)
98 message(s+addtoend);
99 }
100}

◆ messageDebug() [1/3]

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

Definition at line 65 of file VP1HelperClassBase.cxx.

66{
67 if (!VP1Msg::debug())
68 return;
69 std::string sysstring(m_system ? " in "+m_system->name().toStdString() : std::string(""));
70 if (m_helpername.isEmpty()) {
71 std::cout<<VP1Msg::prefix_debug()<<" [helper"<<sysstring<<"]: "<<str.toStdString()<<std::endl;
72 } else {
73 std::cout<<VP1Msg::prefix_debug()<<" ["<<m_helpername.toStdString()<<sysstring<<"]: "<<str.toStdString()<<std::endl;
74 }
75}
static bool debug()
Definition VP1Msg.h:32
static const char * prefix_debug()
Definition VP1Msg.h:57

◆ messageDebug() [2/3]

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

Definition at line 147 of file VP1HelperClassBase.cxx.

148{
149 if (!VP1Msg::debug())
150 return;
151 if (addtostart.isEmpty()) {
152 messageDebug(l,addtoend);
153 return;
154 }
155 if (addtoend.isEmpty()) {
156 for (const QString& s : l)
157 messageDebug(addtostart+s);
158 } else {
159 for (const QString& s : l)
160 messageDebug(addtostart+s+addtoend);
161 }
162}
void messageDebug(const QString &) const

◆ messageDebug() [3/3]

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

Definition at line 103 of file VP1HelperClassBase.cxx.

104{
105 if (!VP1Msg::debug())
106 return;
107 if (addtoend.isEmpty()) {
108 for (const QString& s : l)
109 messageDebug(s);
110 } else {
111 for (const QString& s : l)
112 messageDebug(s+addtoend);
113 }
114}

◆ messageVerbose() [1/3]

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

Definition at line 78 of file VP1HelperClassBase.cxx.

79{
80 if (!VP1Msg::verbose())
81 return;
82 std::string sysstring(m_system ? " in "+m_system->name().toStdString() : std::string(""));
83 if (m_helpername.isEmpty()) {
84 std::cout<<VP1Msg::prefix_verbose()<<" [helper"<<sysstring<<"]: "<<str.toStdString()<<std::endl;
85 } else {
86 std::cout<<VP1Msg::prefix_verbose()<<" ["<<m_helpername.toStdString()<<sysstring<<"]: "<<str.toStdString()<<std::endl;
87 }
88}
static bool verbose()
Definition VP1Msg.h:31
static const char * prefix_verbose()
Definition VP1Msg.h:59

◆ messageVerbose() [2/3]

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

Definition at line 165 of file VP1HelperClassBase.cxx.

166{
167 if (!VP1Msg::verbose())
168 return;
169 if (addtostart.isEmpty()) {
170 messageVerbose(l,addtoend);
171 return;
172 }
173 if (addtoend.isEmpty()) {
174 for (const QString& s : l)
175 messageVerbose(addtostart+s);
176 } else {
177 for (const QString& s : l)
178 messageVerbose(addtostart+s+addtoend);
179 }
180}
void messageVerbose(const QString &) const

◆ messageVerbose() [3/3]

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

Definition at line 117 of file VP1HelperClassBase.cxx.

118{
119 if (!VP1Msg::verbose())
120 return;
121 if (addtoend.isEmpty()) {
122 for (const QString& s : l)
124 } else {
125 for (const QString& s : l)
126 messageVerbose(s+addtoend);
127 }
128}

◆ persistifiableID()

QByteArray VP1Collection::persistifiableID ( ) const
inherited

Definition at line 49 of file VP1Collection.cxx.

50{
51 VP1Msg::messageDebug("VP1Collection::persistifiableID()");
52
53 if (!m_d->persistIDProvided) {
54 m_d->persistIDProvided = true;
55 m_d->persistID = providePersistifiableID().toHex();//toHex() necessary for some unknown reason!
56 //Without it keys in maps are apparently considered similar! (Qt bug??)
57 }
58 return m_d->persistID;
59}
virtual QByteArray providePersistifiableID() const =0

◆ persistifiableState()

QByteArray VP1StdCollection::persistifiableState ( ) const
virtualinherited

Provide default implementation based on widget list + version.

Implements VP1Collection.

Reimplemented in AODCollHandleBase, IParticleCollHandle_CaloCluster, IParticleCollHandle_Jet, IParticleCollHandleBase, MissingEtCollHandle, TrackCollHandleBase, and VertexCollHandle.

Definition at line 270 of file VP1StdCollection.cxx.

271{
272 messageDebug("VP1StdCollection::persistifiableState()");
273
274 if (!m_d->material) {
275 message("ERROR: persistifiableState() called before init()");
276 return QByteArray();
277 }
278 VP1Serialise serialise(1/*version*/);
279 serialise.disableUnsavedChecks();
280 serialise.save(m_d->visible);
281 Q_ASSERT(m_d->material&&"Did you forget to call init() on this VP1StdCollection?");
282 serialise.save(m_d->material);
283 serialise.save(extraWidgetsState());//version 1+
284 return serialise.result();
285}
virtual QByteArray extraWidgetsState() const
void serialise(const std::vector< const IRoiDescriptor * > &rois, roiserial_type &s)
serialise an entire vector of IRoiDescriptors

◆ possibleChangeMatTranspOrBrightness

void VP1StdCollection::possibleChangeMatTranspOrBrightness ( )
slotinherited

Definition at line 348 of file VP1StdCollection.cxx.

349{
350 double t = m_d->matButton->lastAppliedTransparency();
351 double b = m_d->matButton->lastAppliedBrightness();
352 if ( m_d->lastMatTransparency == t && m_d->lastMatBrightness == b )
353 return;
354 m_d->lastMatTransparency = t;
355 m_d->lastMatBrightness = b;
357}
virtual void collMaterialTransparencyAndBrightnessChanged()

◆ problemsLoading()

bool VP1StdCollection::problemsLoading ( ) const
inherited

Definition at line 154 of file VP1StdCollection.cxx.

155{
156 return m_d->problemsloading;
157}

◆ provideCollTypeID()

qint32 VP1TruthVertexCollection::provideCollTypeID ( ) const
inlineprotectedvirtual

Reimplemented from VP1StdCollection.

Definition at line 45 of file VP1TruthVertexCollection.h.

45{ return 1; }//Vertex col. type: 0 for reconstructed vertices, 1 for truth vertices.

◆ provideExtraWidgetsForGuiRow()

virtual QList< QWidget * > VP1StdCollection::provideExtraWidgetsForGuiRow ( ) const
inlineprotectedvirtualinherited

Reimplemented in AODCollHandleBase, PRDCollHandleBase, TrackCollHandleBase, and VP1VertexCollection.

Definition at line 88 of file VP1StdCollection.h.

88{ return QList<QWidget*>(); }

◆ providePersistifiableID()

QByteArray VP1StdCollection::providePersistifiableID ( ) const
protectedvirtualinherited

Implements VP1Collection.

Reimplemented in VP1MissingEtHandle.

Definition at line 325 of file VP1StdCollection.cxx.

326{
327 VP1Serialise serialise(-10/*version*/);//we use negative versions here (0 and -10 already used),
328 //to allow derived classes to use positive numbers.
329 serialise.disableUnsavedChecks();
330 serialise.save(collTypeID());
331 serialise.save(text());
332 return serialise.result();
333}
qint32 collTypeID() const

◆ provideSection()

QString VP1TruthVertexCollection::provideSection ( ) const
inlineprotectedvirtual

Implements VP1Collection.

Definition at line 46 of file VP1TruthVertexCollection.h.

46{ return "Truth Vertices"; };

◆ provideSectionToolTip()

QString VP1TruthVertexCollection::provideSectionToolTip ( ) const
inlineprotectedvirtual

Reimplemented from VP1Collection.

Definition at line 47 of file VP1TruthVertexCollection.h.

47{ return "Collections of truth vertices"; }

◆ provideText()

QString VP1TruthVertexCollection::provideText ( ) const
protectedvirtual

Implements VP1StdCollection.

Definition at line 212 of file VP1TruthVertexCollection.cxx.

213{
214 return m_d->key;
215}

◆ provideWidgetsForGuiRow()

QList< QWidget * > VP1StdCollection::provideWidgetsForGuiRow ( ) const
protectedvirtualinherited

Implements VP1Collection.

Definition at line 258 of file VP1StdCollection.cxx.

259{
260 m_d->extraWidgets = provideExtraWidgetsForGuiRow();
261
262 QList<QWidget*> l;
263 l << m_d->checkBox;
264 l << m_d->matButton;
265 l << m_d->extraWidgets;
266 return l;
267}
virtual QList< QWidget * > provideExtraWidgetsForGuiRow() const

◆ recheckAllCuts

void VP1TruthVertexCollection::recheckAllCuts ( )
privateslot

Definition at line 347 of file VP1TruthVertexCollection.cxx.

348{
349 static_cast<IVP13DSystem*>(systemBase())->deselectAll();
351 for (Imp::VertexHandle* vh : m_d->vertices)
352 vh->recheckCutStatus();
354}
virtual void largeChangesEnd()
virtual void largeChangesBegin()

◆ section()

QString VP1Collection::section ( ) const
inherited

Definition at line 72 of file VP1Collection.cxx.

73{
74 if (!m_d->sectionProvided) {
75 m_d->sectionProvided = true;
76 m_d->section = provideSection();
77 }
78 return m_d->section;
79}
virtual QString provideSection() const =0

◆ sectionToolTip()

QString VP1Collection::sectionToolTip ( ) const
inherited

Definition at line 82 of file VP1Collection.cxx.

83{
84 if (!m_d->sectionToolTipProvided) {
85 m_d->sectionToolTipProvided = true;
86 m_d->sectionToolTip = provideSectionToolTip();
87 }
88 return m_d->sectionToolTip;
89}
virtual QString provideSectionToolTip() const

◆ setExtraWidgetsState()

virtual void VP1StdCollection::setExtraWidgetsState ( const QByteArray & )
inlineprotectedvirtualinherited

Reimplemented in AODCollHandleBase, PRDCollHandleBase, and TrackCollHandleBase.

Definition at line 90 of file VP1StdCollection.h.

90{}

◆ setHelperClassName()

void VP1HelperClassBase::setHelperClassName ( const QString & n)
inlineprotectedinherited

Definition at line 59 of file VP1HelperClassBase.h.

◆ setState()

void VP1StdCollection::setState ( const QByteArray & state)
virtualinherited

Provide default implementation based on widget list + version.

Implements VP1Collection.

Reimplemented in AODCollHandleBase, IParticleCollHandle_CaloCluster, IParticleCollHandle_Jet, IParticleCollHandleBase, MissingEtCollHandle, TrackCollHandleBase, and VertexCollHandle.

Definition at line 288 of file VP1StdCollection.cxx.

289{
290 if (!m_d->material) {
291 message("ERROR: setState(..) called before init()");
292 return;
293 }
294 VP1Deserialise des(state);
295 des.disableUnrestoredChecks();
296 if (des.version()!=0&&des.version()!=1) {
297 messageDebug("Warning: Ignoring state with wrong version");
298 return;
299 }
300 bool vis = des.restoreBool();
301
302 QByteArray matState = des.restoreByteArray();
303 QByteArray extraWidgetState = des.version()>=1 ? des.restoreByteArray() : QByteArray();
304
306 m_d->matButton->copyValuesFromMaterial(m_d->material);
307 // m_d->material->restoreFromState(matState);
308 setVisible(vis);
309
310 if (extraWidgetState!=QByteArray())
311 setExtraWidgetsState(extraWidgetState);
312}
static bool deserialiseSoMaterial(QByteArray &, SoMaterial *&)
virtual void setExtraWidgetsState(const QByteArray &)

◆ setSystemBasePointer()

void VP1HelperClassBase::setSystemBasePointer ( IVP1System * sys)
inherited

Definition at line 197 of file VP1HelperClassBase.cxx.

198{
199 m_system = sys;
200 if (VP1Msg::verbose()){
201 vp1helperclassbase_instanceMap[this] = (m_system?m_system->name():QString(""));
202 }
203}

◆ setVisible

void VP1StdCollection::setVisible ( bool b)
slotinherited

Definition at line 160 of file VP1StdCollection.cxx.

161{
162 if (m_d->visible==b||problemsLoading())
163 return;
164 m_d->visible=b;
165 messageVerbose("Visible state ("+text()+") => "+str(m_d->visible));
166
167 //Possibly load:
168 if (m_d->visible&&!m_d->loaded) {
169 m_d->loaded = true;
170 m_d->theswitch->whichChild = SO_SWITCH_NONE;
171 bool ok = load();
172 if (!ok) {
173 m_d->problemsloading = true;
174 m_d->visible = false;
175 m_d->checkBox->blockSignals(true);
176 m_d->checkBox->setChecked(false);
177 m_d->checkBox->setToolTip("Problems encountered during attempt to load this collection");
178 for (QWidget*w : widgetsForGuiRow())
179 w->setEnabled(false);
180 message("Problems loading "+text());
181 return;
182 }
183 m_d->theswitch->addChild(m_d->material);
184 m_d->theswitch->addChild(m_d->collsep);
185 }
186
187 Q_ASSERT(!problemsLoading());
188
189 //Update checkbox and switch:
190 if (m_d->checkBox->isChecked()!=m_d->visible) {
191 bool save = m_d->checkBox->blockSignals(true);
192 m_d->checkBox->setChecked(m_d->visible);
193 if (!save)
194 m_d->checkBox->blockSignals(false);
195 }
196 if ((m_d->theswitch->whichChild.getValue()==SO_SWITCH_ALL) != m_d->visible)
197 m_d->theswitch->whichChild = ( m_d->visible ? SO_SWITCH_ALL : SO_SWITCH_NONE );
198
199 visibilityChanged(m_d->visible);
200}
virtual QList< QWidget * > widgetsForGuiRow() const
virtual bool load()=0
bool problemsLoading() const
void visibilityChanged(bool)

◆ 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)+")"; }
#define y
#define x

◆ 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)+")"; }
#define 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); }

◆ systemBase()

IVP1System * VP1HelperClassBase::systemBase ( ) const
inlineinherited

Definition at line 50 of file VP1HelperClassBase.h.

50{ return m_system; }

◆ text()

QString VP1StdCollection::text ( ) const
inherited

Definition at line 132 of file VP1StdCollection.cxx.

133{
134 if (!m_d->textProvided) {
135 m_d->textProvided = true;
136 m_d->text = provideText();
137 }
138 return m_d->text;
139}
virtual QString provideText() const =0

◆ toBaseCollList()

template<class T>
QList< VP1Collection * > VP1Collection::toBaseCollList ( const QList< T * > & in)
staticinherited

Definition at line 80 of file VP1Collection.h.

81{
82 QList<VP1Collection*> l;
83 for (T * t : in)
84 l << static_cast<T*>(t);
85 return l;
86}

◆ tracksFromVertexChanged

void VP1TruthVertexCollection::tracksFromVertexChanged ( QList< std::pair< const SoMaterial *, QList< const Trk::Track * > > > & )
signal

◆ updateAllShapes

void VP1TruthVertexCollection::updateAllShapes ( )
privateslot

Definition at line 357 of file VP1TruthVertexCollection.cxx.

358{
360 for (Imp::VertexHandle* vh : m_d->vertices)
361 vh->updateShape();
363}

◆ updateStates()

void VP1Collection::updateStates ( VP1CollStates & state,
const VP1CollStates & newInfo )
staticinherited

Definition at line 118 of file VP1Collection.cxx.

119{
120 VP1Msg::messageDebug("VP1Collection::updateStates() - start...");
121 QMapIterator<QByteArray,QByteArray> it(newInfo);
122 while (it.hasNext()) {
123 it.next();
124 state.insert(it.key(),it.value());
125 }
126 VP1Msg::messageDebug("VP1Collection::updateStates() - end.");
127}

◆ verbose()

bool VP1HelperClassBase::verbose ( )
inlinestaticinherited

Definition at line 32 of file VP1HelperClassBase.h.

32{ return s_vp1verbose; } // Returns true if env var VP1_VERBOSE_OUTPUT=1
static const bool s_vp1verbose

◆ visibilityChanged

void VP1StdCollection::visibilityChanged ( bool )
signalinherited

◆ visible()

bool VP1StdCollection::visible ( ) const
inherited

Definition at line 142 of file VP1StdCollection.cxx.

143{
144 return m_d->visible;
145}

◆ warnUndeletedInstances()

void VP1HelperClassBase::warnUndeletedInstances ( )
staticinherited

Definition at line 183 of file VP1HelperClassBase.cxx.

184{
185 if (vp1helperclassbase_instanceMap.empty())
186 return;
187 std::cout << "WARNING: Detected "<<vp1helperclassbase_instanceMap.size()<<" undeleted helper class instances:"<<std::endl;
188
189 std::map<VP1HelperClassBase*,QString>::iterator it,itE(vp1helperclassbase_instanceMap.end());
190 for (it = vp1helperclassbase_instanceMap.begin();it!=itE;++it) {
191 std::cout << " ==> "<<it->first<<": "<<it->first->m_helpername.toStdString()
192 << (it->second.isEmpty()?QString(""):" (in system "+it->second+")").toStdString()<<std::endl;
193 }
194}

◆ widgetsForGuiRow()

QList< QWidget * > VP1Collection::widgetsForGuiRow ( ) const
virtualinherited

Definition at line 62 of file VP1Collection.cxx.

63{
64 if (!m_d->widgetsForGuiRowProvided) {
65 m_d->widgetsForGuiRowProvided = true;
66 m_d->widgetsForGuiRow = provideWidgetsForGuiRow();
67 }
68 return m_d->widgetsForGuiRow;
69}
virtual QList< QWidget * > provideWidgetsForGuiRow() const =0

Member Data Documentation

◆ m_d

Imp* VP1TruthVertexCollection::m_d
private

Definition at line 67 of file VP1TruthVertexCollection.h.

◆ m_helpername

QString VP1HelperClassBase::m_helpername
privateinherited

Definition at line 67 of file VP1HelperClassBase.h.

◆ m_system

IVP1System* VP1HelperClassBase::m_system
privateinherited

Definition at line 68 of file VP1HelperClassBase.h.

◆ s_vp1verbose

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

Definition at line 69 of file VP1HelperClassBase.h.


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