ATLAS Offline Software
Classes | Public Slots | Signals | Public Member Functions | Static Public Member Functions | Protected Member Functions | Private Member Functions | Private Attributes | Static Private Attributes | List of all members
VP1StdCollection Class Referenceabstract

#include <VP1StdCollection.h>

Inherits QObject, and VP1Collection.

Inherited by AODCollHandleBase, PRDCollHandleBase, TrackCollHandleBase, VP1CaloClusterCollection, VP1MissingEtHandle, VP1RawDataCollBase, VP1TruthVertexCollection, and VP1VertexCollection.

Collaboration diagram for VP1StdCollection:

Classes

class  Imp
 

Public Slots

void setVisible (bool)
 
void possibleChangeMatTranspOrBrightness ()
 

Signals

void visibilityChanged (bool)
 

Public Member Functions

 VP1StdCollection (IVP1System *, const QString &helperClassName)
 
virtual void init (VP1MaterialButtonBase *button=0)
 
virtual ~VP1StdCollection ()
 
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!) More...
 
SoSeparator * collSep () const
 All 3D objects from this coll. More...
 
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. More...
 
virtual void setState (const QByteArray &)
 Provide default implementation based on widget list + version. More...
 
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
 
QString helperClassName () const
 

Static Public Member Functions

static VP1CollStates getStates (QList< VP1Collection * >)
 
static void applyStates (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

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

Private Member Functions

 VP1StdCollection (const VP1StdCollection &)
 
VP1StdCollectionoperator= (const VP1StdCollection &)
 

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 VP1StdCollection.h.

Constructor & Destructor Documentation

◆ VP1StdCollection() [1/2]

VP1StdCollection::VP1StdCollection ( IVP1System sys,
const QString &  helperClassName 
)

Definition at line 67 of file VP1StdCollection.cxx.

69 {
70 }

◆ ~VP1StdCollection()

VP1StdCollection::~VP1StdCollection ( )
virtual

Definition at line 119 of file VP1StdCollection.cxx.

120 {
121  delete m_d->checkBox;
122  delete m_d->matButton;
123  for (QWidget*w : m_d->extraWidgets)
124  delete w;
125  m_d->material->unref();
126  m_d->collsep->unref();
127  m_d->theswitch->unref();
128  delete m_d;
129 }

◆ VP1StdCollection() [2/2]

VP1StdCollection::VP1StdCollection ( const VP1StdCollection )
private

Member Function Documentation

◆ applyStates()

void VP1Collection::applyStates ( 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 }

◆ assignDefaultMaterial()

virtual void VP1StdCollection::assignDefaultMaterial ( SoMaterial *  ) const
protectedpure virtual

◆ checkBoxToolTip()

virtual QString VP1StdCollection::checkBoxToolTip ( ) const
inlineprotectedvirtual

Reimplemented in VP1MissingEtHandle, VP1MissingEtCaloHandle, and VP1MissingEtTruthHandle.

Definition at line 76 of file VP1StdCollection.h.

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

◆ collMaterialBrightness()

double VP1StdCollection::collMaterialBrightness ( ) const

Definition at line 342 of file VP1StdCollection.cxx.

343 {
344  return m_d->lastMatBrightness;
345 }

◆ collMaterialTransparency()

double VP1StdCollection::collMaterialTransparency ( ) const

Definition at line 336 of file VP1StdCollection.cxx.

337 {
338  return m_d->lastMatTransparency;
339 }

◆ collMaterialTransparencyAndBrightnessChanged()

virtual void VP1StdCollection::collMaterialTransparencyAndBrightnessChanged ( )
inlineprotectedvirtual

Reimplemented in TrackCollHandleBase.

Definition at line 79 of file VP1StdCollection.h.

79 {}

◆ collSep()

SoSeparator * VP1StdCollection::collSep ( ) const

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 }

◆ collSwitch()

SoSwitch * VP1StdCollection::collSwitch ( ) const

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

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 }

◆ extraWidgetsState()

virtual QByteArray VP1StdCollection::extraWidgetsState ( ) const
inlineprotectedvirtual

Reimplemented in TrackCollHandleBase, AODCollHandleBase, and PRDCollHandleBase.

Definition at line 89 of file VP1StdCollection.h.

89 { return QByteArray(); }

◆ getStates()

VP1CollStates VP1Collection::getStates ( 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 }

◆ helperClassName()

QString VP1HelperClassBase::helperClassName ( ) const
inlineinherited

Definition at line 51 of file VP1HelperClassBase.h.

51 { return m_helpername; }

◆ init()

void VP1StdCollection::init ( VP1MaterialButtonBase button = 0)
virtual

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

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();
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());
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 }

◆ isLoaded()

bool VP1StdCollection::isLoaded ( ) const

Definition at line 148 of file VP1StdCollection.cxx.

149 {
150  return m_d->loaded;
151 }

◆ largeChangesBegin()

void VP1StdCollection::largeChangesBegin ( )
virtual

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);
234  m_d->theswitch->enableNotify(false);
236 }

◆ largeChangesEnd()

void VP1StdCollection::largeChangesEnd ( )
virtual

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

virtual bool VP1StdCollection::load ( )
protectedpure virtual

◆ matButtonToolTip()

virtual QString VP1StdCollection::matButtonToolTip ( ) const
inlineprotectedvirtual

Reimplemented in AODCollHandleBase.

Definition at line 77 of file VP1StdCollection.h.

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

◆ material()

SoMaterial * VP1StdCollection::material ( ) const

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

◆ 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 (QString s : l)
139  message(addtostart+s);
140  } else {
141  for (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 (QString s : l)
95  message(s);
96  } else {
97  for (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 }

◆ 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 (QString s : l)
157  messageDebug(addtostart+s);
158  } else {
159  for (QString s : l)
160  messageDebug(addtostart+s+addtoend);
161  }
162 }

◆ 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 (QString s : l)
109  messageDebug(s);
110  } else {
111  for (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 }

◆ 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 (QString s : l)
175  messageVerbose(addtostart+s);
176  } else {
177  for (QString s : l)
178  messageVerbose(addtostart+s+addtoend);
179  }
180 }

◆ 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 (QString s : l)
123  messageVerbose(s);
124  } else {
125  for (QString s : l)
126  messageVerbose(s+addtoend);
127  }
128 }

◆ operator=()

VP1StdCollection& VP1StdCollection::operator= ( const VP1StdCollection )
private

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

◆ persistifiableState()

QByteArray VP1StdCollection::persistifiableState ( ) const
virtual

Provide default implementation based on widget list + version.

Implements VP1Collection.

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

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 }

◆ possibleChangeMatTranspOrBrightness

void VP1StdCollection::possibleChangeMatTranspOrBrightness ( )
slot

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;
357 }

◆ problemsLoading()

bool VP1StdCollection::problemsLoading ( ) const

Definition at line 154 of file VP1StdCollection.cxx.

155 {
156  return m_d->problemsloading;
157 }

◆ provideCollTypeID()

virtual qint32 VP1StdCollection::provideCollTypeID ( ) const
inlineprotectedvirtual

◆ provideExtraWidgetsForGuiRow()

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

Reimplemented in TrackCollHandleBase, AODCollHandleBase, PRDCollHandleBase, and VP1VertexCollection.

Definition at line 88 of file VP1StdCollection.h.

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

◆ providePersistifiableID()

QByteArray VP1StdCollection::providePersistifiableID ( ) const
protectedvirtual

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 }

◆ provideSection()

virtual QString VP1Collection::provideSection ( ) const
protectedpure virtualinherited

◆ provideSectionToolTip()

virtual QString VP1Collection::provideSectionToolTip ( ) const
inlineprotectedvirtualinherited

◆ provideText()

virtual QString VP1StdCollection::provideText ( ) const
protectedpure virtual

◆ provideWidgetsForGuiRow()

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

Implements VP1Collection.

Definition at line 258 of file VP1StdCollection.cxx.

259 {
261 
262  QList<QWidget*> l;
263  l << m_d->checkBox;
264  l << m_d->matButton;
265  l << m_d->extraWidgets;
266  return l;
267 }

◆ 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;
77  }
78  return m_d->section;
79 }

◆ sectionToolTip()

QString VP1Collection::sectionToolTip ( ) const
inherited

Definition at line 82 of file VP1Collection.cxx.

83 {
87  }
88  return m_d->sectionToolTip;
89 }

◆ setExtraWidgetsState()

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

Reimplemented in TrackCollHandleBase, AODCollHandleBase, and PRDCollHandleBase.

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.

59 { m_helpername = n; }

◆ setState()

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

Provide default implementation based on widget list + version.

Implements VP1Collection.

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

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 
307  // m_d->material->restoreFromState(matState);
308  setVisible(vis);
309 
310  if (extraWidgetState!=QByteArray())
311  setExtraWidgetsState(extraWidgetState);
312 }

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

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

◆ str() [1/30]

static 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]

static QString VP1String::str ( const bool  b)
inlinestaticinherited

Definition at line 53 of file VP1String.h.

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

◆ str() [3/30]

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

Definition at line 50 of file VP1String.h.

50 { return c; }

◆ str() [4/30]

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

Definition at line 81 of file VP1String.h.

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

◆ str() [5/30]

static 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 >
static 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 >
static 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 >
static 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]

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

◆ 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 >
static 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]

static QString VP1String::str ( int  n)
inlinestaticinherited

Definition at line 77 of file VP1String.h.

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

◆ str() [24/30]

static QString VP1String::str ( long  n)
inlinestaticinherited

Definition at line 75 of file VP1String.h.

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

◆ str() [25/30]

static QString VP1String::str ( qlonglong  n)
inlinestaticinherited

Definition at line 79 of file VP1String.h.

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

◆ str() [26/30]

static QString VP1String::str ( qulonglong  n)
inlinestaticinherited

Definition at line 80 of file VP1String.h.

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

◆ str() [27/30]

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

Definition at line 73 of file VP1String.h.

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

◆ str() [28/30]

static QString VP1String::str ( uint  n)
inlinestaticinherited

Definition at line 78 of file VP1String.h.

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

◆ str() [29/30]

static QString VP1String::str ( ulong  n)
inlinestaticinherited

Definition at line 76 of file VP1String.h.

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

◆ str() [30/30]

static 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

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 }

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

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

static 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

◆ visibilityChanged

void VP1StdCollection::visibilityChanged ( bool  )
signal

◆ visible()

bool VP1StdCollection::visible ( ) const

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 {
67  }
68  return m_d->widgetsForGuiRow;
69 }

Member Data Documentation

◆ m_d

Imp* VP1StdCollection::m_d
private

Definition at line 103 of file VP1StdCollection.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:
xAOD::iterator
JetConstituentVector::iterator iterator
Definition: JetConstituentVector.cxx:68
VP1CollStates
QMap< QByteArray, QByteArray > VP1CollStates
Definition: VP1Collection.h:27
python.SystemOfUnits.second
int second
Definition: SystemOfUnits.py:120
python.CaloRecoConfig.f
f
Definition: CaloRecoConfig.py:127
python.SystemOfUnits.s
int s
Definition: SystemOfUnits.py:131
VP1Serialise
Definition: VP1Serialise.h:45
python.PerfMonSerializer.p
def p
Definition: PerfMonSerializer.py:743
VP1StdCollection::checkBoxToolTip
virtual QString checkBoxToolTip() const
Definition: VP1StdCollection.h:76
VP1StdCollection::Imp::theswitch
SoSwitch * theswitch
Definition: VP1StdCollection.cxx:47
VP1Collection::Imp::widgetsForGuiRow
QList< QWidget * > widgetsForGuiRow
Definition: VP1Collection.cxx:31
RoiUtil::serialise
void serialise(const std::vector< const IRoiDescriptor * > &rois, roiserial_type &s)
serialise an entire vector of IRoiDescriptors
Definition: RoiSerialise.cxx:45
VP1StdCollection::Imp::loaded
bool loaded
Definition: VP1StdCollection.cxx:55
VP1Collection::provideWidgetsForGuiRow
virtual QList< QWidget * > provideWidgetsForGuiRow() const =0
VP1StdCollection::collTypeID
qint32 collTypeID() const
Definition: VP1StdCollection.cxx:315
hist_file_dump.d
d
Definition: hist_file_dump.py:137
VP1StdCollection::possibleChangeMatTranspOrBrightness
void possibleChangeMatTranspOrBrightness()
Definition: VP1StdCollection.cxx:348
VP1HelperClassBase::m_helpername
QString m_helpername
Definition: VP1HelperClassBase.h:67
VP1MaterialButton
Definition: VP1MaterialButton.h:46
VP1Collection::Imp::sectionToolTip
QString sectionToolTip
Definition: VP1Collection.cxx:28
VP1HelperClassBase::messageVerbose
void messageVerbose(const QString &) const
Definition: VP1HelperClassBase.cxx:78
VP1Collection::Imp::persistID
QByteArray persistID
Definition: VP1Collection.cxx:25
VP1HelperClassBase::s_vp1verbose
static const bool s_vp1verbose
Definition: VP1HelperClassBase.h:69
fillPileUpNoiseLumi.connect
string connect
Definition: fillPileUpNoiseLumi.py:70
skel.it
it
Definition: skel.GENtoEVGEN.py:423
VP1MaterialButtonBase::lastAppliedBrightness
virtual double lastAppliedBrightness() const =0
VP1StdCollection::Imp::collsep
SoSeparator * collsep
Definition: VP1StdCollection.cxx:48
VP1Msg::debug
static bool debug()
Definition: VP1Msg.h:32
UploadAMITag.l
list l
Definition: UploadAMITag.larcaf.py:158
VP1HelperClassBase::m_system
IVP1System * m_system
Definition: VP1HelperClassBase.h:68
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
VP1Collection::Imp::section
QString section
Definition: VP1Collection.cxx:27
VP1StdCollection::extraWidgetsState
virtual QByteArray extraWidgetsState() const
Definition: VP1StdCollection.h:89
x
#define x
VP1String::str
static QString str(const QString &s)
Definition: VP1String.h:49
VP1HelperClassBase::messageDebug
void messageDebug(const QString &) const
Definition: VP1HelperClassBase.cxx:65
mapkey::sys
@ sys
Definition: TElectronEfficiencyCorrectionTool.cxx:42
VP1QtInventorUtils::deserialiseSoMaterial
static bool deserialiseSoMaterial(QByteArray &, SoMaterial *&)
Definition: VP1QtInventorUtils.cxx:1186
VP1Collection::Imp::sectionProvided
bool sectionProvided
Definition: VP1Collection.cxx:29
TruthTest.itE
itE
Definition: TruthTest.py:25
VP1StdCollection::Imp::id
qint32 id
Definition: VP1StdCollection.cxx:58
beamspotnt.cols
list cols
Definition: bin/beamspotnt.py:1114
VP1StdCollection::Imp::material
SoMaterial * material
Definition: VP1StdCollection.cxx:50
checkTP.save
def save(self, fileName="./columbo.out")
Definition: checkTP.py:178
VP1StdCollection::Imp::visible
bool visible
Definition: VP1StdCollection.cxx:54
VP1Msg::prefix_msg
static const char * prefix_msg()
Definition: VP1Msg.h:56
VP1StdCollection::setVisible
void setVisible(bool)
Definition: VP1StdCollection.cxx:160
lumiFormat.i
int i
Definition: lumiFormat.py:92
z
#define z
VP1StdCollection::load
virtual bool load()=0
beamspotman.n
n
Definition: beamspotman.py:731
urldecode::states
states
Definition: urldecode.h:39
VP1StdCollection::Imp::matButton
VP1MaterialButtonBase * matButton
Definition: VP1StdCollection.cxx:53
VP1StdCollection::visibilityChanged
void visibilityChanged(bool)
IVP1System::name
const QString & name() const
Definition: IVP1System.cxx:50
VP1StdCollection::provideExtraWidgetsForGuiRow
virtual QList< QWidget * > provideExtraWidgetsForGuiRow() const
Definition: VP1StdCollection.h:88
VP1StdCollection::Imp::extraWidgets
QList< QWidget * > extraWidgets
Definition: VP1StdCollection.cxx:61
VP1Collection::m_d
Imp * m_d
Definition: VP1Collection.h:59
VP1StdCollection::text
QString text() const
Definition: VP1StdCollection.cxx:132
VP1Collection::VP1Collection
VP1Collection(IVP1System *sys=0, const QString &helperClassName="VP1Collection")
Definition: VP1Collection.cxx:37
VP1Deserialise
Definition: VP1Deserialise.h:44
VP1MaterialButtonBase::copyValuesFromMaterial
virtual void copyValuesFromMaterial(SoMaterial *)=0
VP1StdCollection::Imp::idProvided
bool idProvided
Definition: VP1StdCollection.cxx:59
VP1Collection
Definition: VP1Collection.h:31
VP1StdCollection::problemsLoading
bool problemsLoading() const
Definition: VP1StdCollection.cxx:154
VP1StdCollection::collMaterialTransparencyAndBrightnessChanged
virtual void collMaterialTransparencyAndBrightnessChanged()
Definition: VP1StdCollection.h:79
VP1StdCollection::Imp::lastMatBrightness
double lastMatBrightness
Definition: VP1StdCollection.cxx:63
VP1StdCollection::Imp::lastMatTransparency
double lastMatTransparency
Definition: VP1StdCollection.cxx:62
VP1QtInventorUtils::sbcol2qcol
static QColor sbcol2qcol(const SbColor &)
Definition: VP1QtInventorUtils.cxx:1140
VP1StdCollection::Imp::problemsloading
bool problemsloading
Definition: VP1StdCollection.cxx:56
VP1Collection::providePersistifiableID
virtual QByteArray providePersistifiableID() const =0
python.selection.number
number
Definition: selection.py:20
plotBeamSpotMon.b
b
Definition: plotBeamSpotMon.py:77
VP1Collection::widgetsForGuiRow
virtual QList< QWidget * > widgetsForGuiRow() const
Definition: VP1Collection.cxx:62
VP1MaterialButtonBase::setMaterial
virtual bool setMaterial(SoMaterial *)=0
VP1Msg::prefix_debug
static const char * prefix_debug()
Definition: VP1Msg.h:57
query_example.col
col
Definition: query_example.py:7
VP1Collection::Imp::widgetsForGuiRowProvided
bool widgetsForGuiRowProvided
Definition: VP1Collection.cxx:32
VP1Collection::provideSection
virtual QString provideSection() const =0
python.PyAthena.v
v
Definition: PyAthena.py:157
VP1StdCollection::assignDefaultMaterial
virtual void assignDefaultMaterial(SoMaterial *) const =0
VP1Collection::Imp::sectionToolTipProvided
bool sectionToolTipProvided
Definition: VP1Collection.cxx:30
VP1Msg::prefix_verbose
static const char * prefix_verbose()
Definition: VP1Msg.h:59
VP1Collection::Imp::persistIDProvided
bool persistIDProvided
Definition: VP1Collection.cxx:26
VP1StdCollection::Imp::largechangescount_sep
int largechangescount_sep
Definition: VP1StdCollection.cxx:51
VP1Msg::messageDebug
static void messageDebug(const QString &)
Definition: VP1Msg.cxx:39
y
#define y
VP1Collection::provideSectionToolTip
virtual QString provideSectionToolTip() const
Definition: VP1Collection.h:53
VP1StdCollection::Imp::largechangescount_switch
int largechangescount_switch
Definition: VP1StdCollection.cxx:52
VP1StdCollection::matButtonToolTip
virtual QString matButtonToolTip() const
Definition: VP1StdCollection.h:77
VP1HelperClassBase::message
void message(const QString &) const
Definition: VP1HelperClassBase.cxx:49
str
Definition: BTagTrackIpAccessor.cxx:11
VP1Msg::verbose
static bool verbose()
Definition: VP1Msg.h:31
VP1StdCollection::Imp::text
QString text
Definition: VP1StdCollection.cxx:60
VP1StdCollection::Imp::checkBox
QCheckBox * checkBox
Definition: VP1StdCollection.cxx:49
python.IoTestsLib.w
def w
Definition: IoTestsLib.py:200
VP1HelperClassBase::helperClassName
QString helperClassName() const
Definition: VP1HelperClassBase.h:51
VP1StdCollection::m_d
Imp * m_d
Definition: VP1StdCollection.h:102
python.compressB64.c
def c
Definition: compressB64.py:93
VP1StdCollection::provideText
virtual QString provideText() const =0
VP1StdCollection::Imp::textProvided
bool textProvided
Definition: VP1StdCollection.cxx:57
IVP1System::message
void message(const QString &) const
Definition: IVP1System.cxx:336
VP1StdCollection::provideCollTypeID
virtual qint32 provideCollTypeID() const
Definition: VP1StdCollection.h:92
VP1StdCollection::setExtraWidgetsState
virtual void setExtraWidgetsState(const QByteArray &)
Definition: VP1StdCollection.h:90
TSU::T
unsigned long long T
Definition: L1TopoDataTypes.h:35
query_example.des
des
Definition: query_example.py:9
VP1MaterialButtonBase::lastAppliedTransparency
virtual double lastAppliedTransparency() const =0