ATLAS Offline Software
IParticleCollHandle_CaloCluster.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 
7 // //
8 // Implementation of class IParticleCollHandle_CaloCluster //
9 // //
10 // Author: Riccardo-Maria BIANCHI (rbianchi@cern.ch) //
11 // Initial version: May 2014 //
12 // //
14 
15 //Local
19 #include "AODSysCommonData.h"
20 
21 //VP1
22 #include "VP1Base/IVP1System.h"
23 #include "VP1Base/VP1Msg.h"
24 #include "VP1Base/VP1Serialise.h"
25 #include "VP1Base/VP1Deserialise.h"
26 #ifndef BUILDVP1LIGHT
29 #endif
30 
31 //Qt
32 #include <QStringList>
33 
34 //xAOD
36 
37 // Coin3D
38 #include <Inventor/nodes/SoSeparator.h>
39 #include <Inventor/nodes/SoSwitch.h>
40 #include <Inventor/nodes/SoMaterial.h>
41 #include <Inventor/nodes/SoTexture2.h>
42 
43 // Athena
45 
46 #ifdef BUILDVP1LIGHT
47  #include <QSettings>
48  #include "xAODRootAccess/Init.h"
49  #include "xAODRootAccess/TEvent.h"
50  #include "GeoModelKernel/Units.h"
51  #define SYSTEM_OF_UNITS GeoModelKernelUnits // so we will get, e.g., 'GeoModelKernelUnits::cm'
52 #else
53  #include "GaudiKernel/SystemOfUnits.h"
54  #define SYSTEM_OF_UNITS Gaudi::Units // so we will get, e.g., 'Gaudi::Units::cm'
55 #endif // BUILDVP1LIGHT
56 
57 
58 //____________________________________________________________________
59 #if defined BUILDVP1LIGHT
61  {
62  return sys->getObjectList(xAOD::Type::CaloCluster);
63  }
64 #else
66  {
68 
69  }
70 #endif // BUILDVP1LIGHT
71 
72 //____________________________________________________________________
74 
75 public:
76 
77  Imp () : theclass(nullptr), updateGUICounter(0), collSettingsButton(nullptr), sephelper(nullptr),
79 
83 
85 
86  // settings
88  QPair<bool,double> scale;
92  QList<VP1Interval> allowedPhi;
94 // double calculateHighestVisibleClusterEnergy() const;
95 
96  #ifdef BUILDVP1LIGHT
97  QStringList caloClusterList;
98  #endif // BUILDVP1LIGHT
99 
103 
104  void possiblyUpdateGUI() {//Fixme: to IParticleCollHandleBase
105  if (!((updateGUICounter++)%50)) {
107  }
108  }
109 };
110 
111 /*
112  * DEFINITIONS
113  */
114 //Fixme: Just some approximate values for now:
117 const double IParticleCollHandle_CaloCluster::calo_crack_eta = fabs(log(tan(0.5*atan(calo_start_r/calo_start_z))));
118 
119 
120 
121 //____________________________________________________________________
123 const QString& name, xAOD::Type::ObjectType type)
125 {
126  m_d->theclass = this;
127  m_d->updateGUICounter = 0;
129 
130 
131 // m_d->controller = controller;
132 // m_d->key = key;
133  m_d->sephelper = 0;
134  //We start out with no clusters visible:
135  m_d->last_highestEnergy = 0;
136  m_d->showOutlines = false;
138 
139 // //==========
140 // // b-tagging
141 // m_d->bTaggingSwitch=new SoSwitch;
142 // m_d->bTaggingSwitch->whichChild=SO_SWITCH_ALL;
143 // // new b-tagged jets and material
144 // m_d->bTaggingTexture = new SoTexture2;
145 // m_d->bTaggingMaterial = new SoMaterial;
146 
147 
148  //The object names should not contain all sorts of funky chars (mat button style sheets wont work for instance):
149  QString safetext(text());
150  safetext.replace(' ','_');
151  safetext.replace('[','_');
152  safetext.replace(']','_');
153  safetext.replace('/','_');
154  safetext.replace('.','_');
155  safetext.replace(',','_');
156  safetext.replace('<','_');
157  safetext.replace('>','_');
158  safetext.replace('&','_');
159 
160  // m_d->defaultParametersMaterial = new SoMaterial;
161  // m_d->defaultParametersMaterial->setName(("IParticleCollHandle_CaloCluster"+safetext).toStdString().c_str());
162  // m_d->defaultParametersMaterial->ref();
163  // m_d->matButton->setDefaultParameterMaterial(m_d->defaultParametersMaterial); FIXME
164 }
165 
166 //____________________________________________________________________
168 {
169  // m_d->defaultParametersMaterial->unref();
170 
171 // if (m_d->bTaggingSwitch) m_d->bTaggingSwitch->unref();
172 
173  delete m_d;
174 }
175 
176 //____________________________________________________________________
178 {
179  // std::cout<<"IParticleCollHandle_CaloCluster::init 1"<<std::endl;
180 
181 
182  // m_d->matButton = new CaloClusterCollectionSettingsButton;
183  // m_d->matButton->setMaterialText(name());
184 
185  // INIT THE COLLECTION 'MATERIAL' BUTTON
188 
189  // pass a collection pointer to the button
191 
192  // std::cout<<"Calling VP1StdCollection::init with m_d->matButton (CaloClusterCollectionSettingsButton)="<<m_d->matButton<<std::endl;
193  VP1StdCollection::init(m_d->collSettingsButton);//this call is required. Passing in m_d->collSettingsButton means we have the more complex button.
194  setupSettingsFromController(common()->controller());
195  connect(this,SIGNAL(visibilityChanged(bool)),this,SLOT(collVisibilityChanged(bool)));
196 
197 
198  // std::cout<<"IParticleCollHandle_CaloCluster::init 2"<<std::endl;
199  // std::cout<<"swi: "<<collSwitch()<<std::endl;
200  // std::cout<<"sep: "<<collSep()<<std::endl;
201  // std::cout<<"mat: "<<material()<<std::endl;
202 
203  // collSwitch()->addChild(m_d->collSettingsButton->trackLightModel()); // TODO: update for jets
204  // collSwitch()->addChild(m_d->collSettingsButton->trackDrawStyle()); // TODO: update for jets
205 
206 // //==========
207 // // b-tagging
208 // if(m_d->collSettingsButton->is_bTaggingSkinEnabled()) {
209 // std::cout << "switch texture" << std::endl;
210 // setBTaggingSkin(m_d->collSettingsButton->bTaggingSkin());
211 // // m_d->bTaggingSwitch->addChild(m_d->bTaggingTexture);
212 // }
213 // else if (m_d->collSettingsButton->is_bTaggingMaterialEnabled()) {
214 // std::cout << "switch material" << std::endl;
215 // setBTaggingMaterial();
216 // // m_d->bTaggingMaterial = controller->bTaggingMaterial();
217 // // m_d->bTaggingSwitch->addChild(m_d->bTaggingMaterial);
218 // }
219 // else {
220 // messageVerbose("Info - No b-tag rendering selected.");
221 // }
222 //
223 // // we want these nodes to stay around even when removed from nodes, thus we increment the ref count by one
224 // m_d->bTaggingSwitch->ref();
225 // // m_d->bTaggingTexture->ref();
226 // // m_d->bTaggingMaterial->ref();
227 // //==========
228 
229 
230 }
231 
232 
233 
234 //____________________________________________________________________
236 {
237  VP1Msg::messageDebug("IParticleCollHandle_CaloCluster::energyToLength()");
238 
239  return std::max(1*SYSTEM_OF_UNITS::mm, m_d->scale.second*(m_d->scale.first?log(1+fabs(energy)):energy));
240 }
241 
242 //____________________________________________________________________
244 {
245  VP1Msg::messageDebug("IParticleCollHandle_CaloCluster::showOutlines()");
246 
247  return m_d->showOutlines;
248 }
249 
250 //____________________________________________________________________
252 {
253  this->setScale( collSettingsButton().scale() );
254 }
255 
256 #include <Inventor/nodes/SoMaterial.h>//Fixme: just for hack below
257 //____________________________________________________________________
258 void IParticleCollHandle_CaloCluster::setScale(const QPair<bool,double>& s)
259 {
260 // std::cout << "s: " << s.first << std::endl;
261 
262  VP1Msg::messageDebug("IParticleCollHandle_CaloCluster::setScale()");
263 
264 
265  if (m_d->scale==s) {
266  VP1Msg::messageDebug("Scale is the same. Returning...");
267  return;
268  }
269 
270  VP1Msg::messageDebug("setting scale: (" + QString::number(s.first) + ", " + QString::number(s.second) + " )");
271  m_d->scale=s;
272 
273  if (!isLoaded()) {
274  VP1Msg::messageDebug("Collection not loaded/shown. Returning...");
275  return;
276  }
277 // largeChangesBegin();
278 // for(Imp::ClusterHandle*cluster : m_d->clusters)
279 // if (cluster->attached())
280 // cluster->updateShapePars(m_d);
281 // largeChangesEnd();
282 
285  AODHandleBase* handle=0;
286  while ((handle=getNextHandle()))
287  {
288  IParticleHandle_CaloCluster* cluster = dynamic_cast<IParticleHandle_CaloCluster*>(handle);
289  if (cluster && cluster->has3DObjects()) {
290 // cluster->setScale(m_d->scale);
291  cluster->updateShape(this);
292 // calo->updateHeight();
293  } else {
294  message("ERROR Handle of wrong type!");
295  }
296  }
297  largeChangesEnd();
298 
299 
300 
301  // if (verbose())
302  // static_cast<IVP13DSystemSimple *>(systemBase())->warnOnDisabledNotifications();
303 
304  material()->touch();//FIXME: This is needed (and nothing else seems to matter). BUT WHY?????? Where is the bug?!?!?
305 }
306 
307 
308 //____________________________________________________________________
309 QPair<bool,double> IParticleCollHandle_CaloCluster::scale() const
310 {
311  VP1Msg::messageDebug("IParticleCollHandle_CaloCluster::scale()");
312  return m_d->scale;
313 }
314 
315 
316 //____________________________________________________________________
318 
319  VP1Msg::messageDebug("IParticleCollHandle_CaloCluster::setupSettingsFromControllerSpecific()");
320 
322 
323  // *** common cuts ***
324  connect(controller,SIGNAL(cutAllowedPtChanged(const VP1Interval&)),this,SLOT(setCutAllowedPt(const VP1Interval&)));
325  setCutAllowedPt(controller->cutAllowedPt());
326 
327  connect(controller,SIGNAL(energyTypeChanged()),this,SLOT(rebuildAllObjects()));
328 
329  connect(controller,SIGNAL(cutAllowedEtaChanged(const VP1Interval&)),this,SLOT(setCutAllowedEta(const VP1Interval&)));
330  setCutAllowedEta(controller->cutAllowedEta());
331 
332  connect(controller,SIGNAL(cutAllowedPhiChanged(const QList<VP1Interval>&)),this,SLOT(setCutAllowedPhi(const QList<VP1Interval>&)));
333  setCutAllowedPhi(controller->cutAllowedPhi());
334 
335  // *** specific cuts and settings ***
336 
337  // scale
338  connect(controller,SIGNAL(scaleChanged(const QPair<bool,double>&)),this,SLOT(setScale(const QPair<bool,double>&)));
339  setScale( controller->scale() ); // FIXME:
340 
341  // after completed 'recheckHighestVisibleClusterEnergy()', we call 'scale()' in the controller
342  connect(this,SIGNAL(highestVisibleClusterEnergyChanged()),controller,SLOT(possibleChange_scale()));
343 
344 
345 // // random jet colors
346 // connect(controller,SIGNAL(rerandomise()),this,SLOT(rerandomise()));
347 // connect(controller,SIGNAL(randomJetColoursChanged(const bool&)),this,SLOT(setRandomJetColours(const bool&)));
348 // setRandomJetColours(controller->randomJetColours());
349 
350  // maxR
351 // connect(controller, SIGNAL(maxRChanged(const double&)), this, SLOT(setMaxR(const double&)));
352 // connect(controller, SIGNAL(signalMaxR(bool)), this, SLOT(setIsMaxR(bool)));
353 
354 }
355 
357 {
358  // kinetic cuts
362  // other settings
363  setScale( m_d->collSettingsButton->scale() ); // FIXME:
364 
365 }
366 
367 //____________________________________________________________________
368 //SoMaterial* IParticleCollHandle_CaloCluster::defaultParameterMaterial() const {
369 // return m_d->defaultParametersMaterial;
370 //}
371 
372 
373 //____________________________________________________________________
375  if (!m_d->collSettingsButton){
376  messageVerbose("CaloCluster - No collSettingsButton set! Can't call init(), so crash is imminent...");
377  }
378  return *m_d->collSettingsButton;
379 }
380 
381 
382 
383 //____________________________________________________________________
385 {
386  VP1Msg::messageVerbose("IParticleCollHandle_CaloCluster::rebuildAllObjects()");
387 
389  recheckCutStatusOfAllNotVisibleHandles(); // Redundant, but needed! TODO: remove this when new 'contains' is ready
390 }
391 
392 
393 //____________________________________________________________________
395 {
396  VP1Msg::messageVerbose("IParticleCollHandle_CaloCluster::isConsiderTransverseEnergy()");
398 }
399 
400 //____________________________________________________________________
402 {
403  VP1Msg::messageDebug("IParticleCollHandle_CaloCluster::setShowVolumeOutLines()");
404 
405  if (m_d->showOutlines==b) return;
406 
407  m_d->showOutlines=b;
408 
409  if (!isLoaded()) return
412  AODHandleBase* handle=0;
413  while ((handle=getNextHandle()))
414  {
415  IParticleHandle_CaloCluster* cluster = dynamic_cast<IParticleHandle_CaloCluster*>(handle);
416  if (cluster && cluster->has3DObjects()) {
417  if (cluster->genericBox())
418  cluster->genericBox()->drawEdgeLines = b;
419  } else {
420  message("ERROR Handle of wrong type!");
421  }
422  }
423  largeChangesEnd();
424 
425 
426 }
427 
428 
429 //____________________________________________________________________
431 {
432  messageVerbose("loading CaloCluster collection");
433 
434  //Get collection:
435  const xAOD::CaloClusterContainer * coll(nullptr);
436 
437  #if defined BUILDVP1LIGHT
438  // // Get the name of the application:
439  // const char* appName = "VP1Light";
440 
441  // // Initialize the environment:
442  // if( !xAOD::Init( appName ).isSuccess() ) {
443  // message("Failed to execute xAOD::Init");
444  // return false;
445  // }
446 
447  // Retrieve objects from the event
448  if( !(systemBase()->getEvent())->retrieve( coll, name().toStdString()).isSuccess() ) {
449  QString errMsg = "Failed to retrieve " + name();
450  message("Error: Could not retrieve collection with key="+name());
451  return false;
452  }
453  #else
454  if (!VP1SGAccessHelper(systemBase()).retrieve(coll, name())) {
455  message("Error: Could not retrieve collection with key="+name());
456  return false;
457  }
458  #endif // BUILDVP1LIGHT
459 
460  // // Retrieve the xAOD particles:
461  // const xAOD::JetContainer* xaod = evtStore()->retrieve<const xAOD::JetContainer>( m_JetCollection );
462 
463  // Check that the auxiliary store association was made successfully:
464  if( ! coll->hasStore() ) {
465  message("No auxiliary store got associated to the CaloCluster container with key: " +name());
466  }
467 
468  // This is needed for now, until the issues around the DV code are
469  // sorted out...
470  const_cast< xAOD::CaloClusterContainer* >( coll )->setStore(
471  ( SG::IAuxStore* ) coll->getConstStore() );
472 
473 
475  for ( it = coll->begin() ; it != itEnd; ++it) {
477  if (!*it) {
478  messageDebug("WARNING: Ignoring null CaloCluster pointer.");
479  continue;
480  }
481 
483  }
484 
485  // get handles list and update locally
486  // m_d->jets = this->getHandlesList();
487 
488  return true;
489 }
490 
491 //Cuts:
492 //____________________________________________________________________
494  messageVerbose("IParticleCollHandle_CaloCluster::cut()");
495 
496  if (IParticleHandle_CaloCluster* handle = dynamic_cast<IParticleHandle_CaloCluster*>(c))
497  {
498 
499  message("CaloCluster::cut() --- to be implemented......");
500 
501 
502  //------ ENERGY CUTS
503  double jEnergy = handle->energyForCuts();
504  double jEnergySqr = jEnergy * jEnergy; // in IParticleCollHandleBase the allowedPt is stored as squared, to avoid square-root operations
505  messageVerbose("object's energy, object's energy^2, allowedPt^2, isPtAll: " + QString::number(jEnergy) + " - " + QString::number(jEnergySqr) + " - " + getCutAllowedPt().toString() + " - " + QString::number(int(getPtAllowall())) );
506  if (!getPtAllowall() && !getCutAllowedPt().contains(jEnergySqr) ) {
507  messageVerbose("Energy cut not passed");
508  return false;
509  }
510 
511  //------ ETA CUTS
512  messageVerbose("object's eta, etaCut, EtaAll: " + QString::number(handle->eta()) + " - " + getCutAllowedEta().toString() + " - " + QString::number(int(getEtaAllowall())) );
513  if (!getEtaAllowall() && !getCutAllowedEta().contains(handle->eta())) {
514  messageVerbose("Eta cut not passed");
515  return false;
516  }
517 
518  //------ PHI CUTS
519  if (!getPhiAllowall() ) {
520  double phi = handle->phi();
521  bool ok(false);
522  for (const VP1Interval& phirange : getCutAllowedPhi() ) {
523  messageVerbose("object's phi, phiCut, PhiAll: " + QString::number(phi) + " - " + phirange.toString() + " - " + QString::number(int(getPhiAllowall())) );
524  if (phirange.contains(phi)||phirange.contains(phi+2*M_PI)||phirange.contains(phi-2*M_PI)) {
525  ok = true;
526  break;
527  }
528  }
529  if (!ok) {
530  messageVerbose("Phi cut not passed");
531  return false;
532  }
533  }
534 //
535 // //------ OTHER CUTS
536 // messageVerbose("Other cuts??? Calling base method...");
537 // if (!IParticleCollHandleBase::cut(handle))
538 // return false;
539 
540  } // if(dynamic_cast)
541  else{
542  messageVerbose("Not a IParticleCollHandle_CaloCluster. Calling base method...");
543  if (!IParticleCollHandleBase::cut(handle))
544  return false;
545  }
546 
547  return true; //default
548 
549 }
550 
551 
552 
553 //____________________________________________________________________
555  messageDebug("IParticleCollHandle_CaloCluster::showParametersChanged to "+str(val));
557 }
558 
559 
560 //____________________________________________________________________
562 {
563  messageDebug("IParticleCollHandle_CaloCluster::highestVisibleClusterEnergy()");
564  return m_d->last_highestEnergy;
565 }
566 
567 
568 //____________________________________________________________________
570 {
571  messageDebug("IParticleCollHandle_CaloCluster::Imp::calculateHighestVisibleClusterEnergy()");
572  if (!isLoaded()){
573  messageDebug("Not loaded. Returning...");
574  return 0;
575  }
576  double e = 0;
577 
579  AODHandleBase* handle=0;
580  while ((handle=getNextHandle()))
581  {
582  IParticleHandle_CaloCluster* cluster = dynamic_cast<IParticleHandle_CaloCluster*>(handle);
583  if (cluster && cluster->has3DObjects()) {
584 // if ( e < cluster->energyForLengthAndCuts(this) )
585 // e = cluster->energyForLengthAndCuts(this);
586  if ( e < cluster->energyForCuts() )
587  e = cluster->energyForCuts();
588  } else {
589  message("ERROR Handle of wrong type!");
590  }
591  }
592 
593  return e;
594 }
595 
596 //____________________________________________________________________
598 {
599  //When visibility or cut changes:
600 // double newhighest = m_d->calculateHighestVisibleClusterEnergy();
601  double newhighest = calculateHighestVisibleClusterEnergy();
602  if (m_d->last_highestEnergy == newhighest)
603  return;
604  m_d->last_highestEnergy = newhighest;
606 }
607 
608 
609 
610 //____________________________________________________________________
612 {
613  messageDebug("IParticleCollHandle_CaloCluster::persistifiableState() - start...");
614 
615  // if (!m_d->matButton) {
616  // message("ERROR: persistifiableState() called before init()");
617  // return QByteArray();
618  // }
619 
620 
621  VP1Serialise serialise(1/*version*/);
622 
623  // settings
624  serialise.disableUnsavedChecks();
625 
626  // SAVE THE CHECKED/UNCHECKED STATUS OF THE COLLECTION
627  serialise.save(visible());
628 
629  // SAVE THE MATERIAL BUTTON
630  //Q_ASSERT(m_d->matButton&&"Did you forget to call init() on this VP1StdCollection?");
631  //serialise.save(m_d->matButton->saveState());
632 
633  // SAVE THE EXTRA-STATES
634  serialise.save(extraWidgetsState());//version 1+
635 
636  // SAVE MATERIAL SETTINGS / CUTS
638 
639  messageDebug("IParticleCollHandle_CaloCluster::persistifiableState() - end.");
640  return serialise.result();
641 }
642 
643 //____________________________________________________________________
644 void IParticleCollHandle_CaloCluster::setState(const QByteArray&state)
645 {
646  VP1Deserialise des(state);
647  des.disableUnrestoredChecks();
648  if (des.version()!=0&&des.version()!=1) {
649  messageDebug("Warning: Ignoring state with wrong version");
650  return;
651  }
652 
653  // save state
654 
655  bool vis = des.restoreBool();
656 
657  // QByteArray matState = des.restoreByteArray();
658  // m_d->matButton->restoreFromState(matState);
659  QByteArray extraWidgetState = des.version()>=1 ? des.restoreByteArray() : QByteArray();
660  setVisible(vis);
661 
662  if (extraWidgetState!=QByteArray())
663  setExtraWidgetsState(extraWidgetState);
664 
665  // MATERIAL SETTINGS / CUTS
666  messageDebug("restoring material collection button...");
667  des.restore(m_d->collSettingsButton);
668 
669  messageDebug("reset all caches storing values for cuts...");
671 
672  messageDebug("recheck all handles...");
674 }
675 
677  str << "\""<<name().toLatin1().data()<<"\":{";
678 
679  unsigned int num=0;
680  for (auto handle : getHandlesList() ) {
681  if (handle->visible()) {
682  if (num) str <<",\n";
683  str << "\"Clus "<<num++<< "\":{";
684  handle->dumpToJSON(str);
685  str << "}";
686  }
687  }
688 
689  str << "}";
690 }
691 
python.PyKernel.retrieve
def retrieve(aClass, aKey=None)
Definition: PyKernel.py:110
VP1Serialise.h
AODCollHandleBase::setExtraWidgetsState
void setExtraWidgetsState(const QByteArray &)
Definition: AODCollHandleBase.cxx:519
IParticleCollHandle_CaloCluster::calo_start_r
static const double calo_start_r
Definition: IParticleCollHandle_CaloCluster.h:78
CaloClusterCollectionSettingsButton::saveState
QByteArray saveState() const
fill out with the state of the object (used for drag and drop etc)
Definition: CaloClusterCollectionSettingsButton.cxx:450
DataModel_detail::const_iterator
Const iterator class for DataVector/DataList.
Definition: DVLIterator.h:82
python.SystemOfUnits.s
int s
Definition: SystemOfUnits.py:131
VP1Deserialise.h
VP1Serialise
Definition: VP1Serialise.h:45
python.SystemOfUnits.m
int m
Definition: SystemOfUnits.py:91
max
#define max(a, b)
Definition: cfImp.cxx:41
GlobalVariables.phirange
phirange
Definition: GlobalVariables.py:64
phi
Scalar phi() const
phi method
Definition: AmgMatrixBasePlugin.h:64
AODHandleBase
Definition: AODHandleBase.h:43
VP1StdCollection::material
SoMaterial * material() const
Definition: VP1StdCollection.cxx:220
RoiUtil::serialise
void serialise(const std::vector< const IRoiDescriptor * > &rois, roiserial_type &s)
serialise an entire vector of IRoiDescriptors
Definition: RoiSerialise.cxx:45
IParticleCollHandle_CaloCluster::energyToLength
double energyToLength(const double &energy) const
Definition: IParticleCollHandle_CaloCluster.cxx:235
IParticleCollHandle_CaloCluster::Imp::calo_start_r
double calo_start_r
Definition: IParticleCollHandle_CaloCluster.cxx:100
ObjectType
ObjectType
Definition: BaseObject.h:11
IParticleCollHandle_CaloCluster::init
virtual void init(VP1MaterialButtonBase *matBut=0)
Definition: IParticleCollHandle_CaloCluster.cxx:177
AODSysCommonData
Definition: AODSysCommonData.h:42
VP1Msg.h
VP1HelperClassBase::messageVerbose
void messageVerbose(const QString &) const
Definition: VP1HelperClassBase.cxx:78
IParticleCollHandle_CaloCluster::Imp::Imp
Imp()
Definition: IParticleCollHandle_CaloCluster.cxx:77
IParticleCollHandle_CaloCluster::setState
void setState(const QByteArray &)
Provide specific implementation.
Definition: IParticleCollHandle_CaloCluster.cxx:644
IParticleCollHandleBase::getPtAllowall
bool getPtAllowall()
Definition: IParticleCollHandleBase.h:114
fillPileUpNoiseLumi.connect
string connect
Definition: fillPileUpNoiseLumi.py:70
CSV_InDetExporter.new
new
Definition: CSV_InDetExporter.py:145
skel.it
it
Definition: skel.GENtoEVGEN.py:423
CaloClusterCollectionSettingsButton::cutAllowedPt
VP1Interval cutAllowedPt() const
Definition: CaloClusterCollectionSettingsButton.cxx:589
IParticleCollHandle_CaloCluster::IParticleCollHandle_CaloCluster
IParticleCollHandle_CaloCluster(AODSysCommonData *, const QString &name, xAOD::Type::ObjectType type)
Definition: IParticleCollHandle_CaloCluster.cxx:122
M_PI
#define M_PI
Definition: ActiveFraction.h:11
IParticleHandle_CaloCluster::genericBox
SoGenericBox * genericBox()
Definition: IParticleHandle_CaloCluster.cxx:110
VP1StdCollection::init
virtual void init(VP1MaterialButtonBase *button=0)
Definition: VP1StdCollection.cxx:73
IParticleCollHandle_CaloCluster::Imp::last_highestEnergy
double last_highestEnergy
Definition: IParticleCollHandle_CaloCluster.cxx:93
VP1StdCollection::largeChangesBegin
virtual void largeChangesBegin()
Definition: VP1StdCollection.cxx:228
IParticleCollHandle_CaloCluster::~IParticleCollHandle_CaloCluster
virtual ~IParticleCollHandle_CaloCluster()
Definition: IParticleCollHandle_CaloCluster.cxx:167
CaloClusterCollectionSettingsButton::setMaterialText
void setMaterialText(const QString &)
Definition: CaloClusterCollectionSettingsButton.cxx:187
IParticleHandle_CaloCluster::updateShape
void updateShape(IParticleCollHandle_CaloCluster *coll)
Definition: IParticleHandle_CaloCluster.cxx:205
VP1String::str
static QString str(const QString &s)
Definition: VP1String.h:49
IParticleCollHandle_CaloCluster::dumpToJSON
virtual void dumpToJSON(std::ofstream &) const
Definition: IParticleCollHandle_CaloCluster.cxx:676
IParticleCollHandle_CaloCluster::Imp
Definition: IParticleCollHandle_CaloCluster.cxx:73
CaloClusterCollectionSettingsButton
Definition: CaloClusterCollectionSettingsButton.h:16
IParticleCollHandle_CaloCluster::Imp::collSettingsButton
CaloClusterCollectionSettingsButton * collSettingsButton
Definition: IParticleCollHandle_CaloCluster.cxx:82
IParticleCollHandle_CaloCluster::recheckHighestVisibleClusterEnergy
void recheckHighestVisibleClusterEnergy()
Definition: IParticleCollHandle_CaloCluster.cxx:597
VP1HelperClassBase::messageDebug
void messageDebug(const QString &) const
Definition: VP1HelperClassBase.cxx:65
IParticleCollHandleBase::setCutAllowedPt
void setCutAllowedPt(const VP1Interval &)
Definition: IParticleCollHandleBase.cxx:218
mapkey::sys
@ sys
Definition: TElectronEfficiencyCorrectionTool.cxx:42
IParticleCollHandleBase::setCutAllowedPhi
void setCutAllowedPhi(const QList< VP1Interval > &)
Definition: IParticleCollHandleBase.cxx:284
IParticleCollHandleBase::getCutAllowedEta
const VP1Interval & getCutAllowedEta()
Definition: IParticleCollHandleBase.h:112
xAOD::CaloCluster
CaloCluster_v1 CaloCluster
Define the latest version of the calorimeter cluster class.
Definition: Event/xAOD/xAODCaloEvent/xAODCaloEvent/CaloCluster.h:19
drawFromPickle.atan
atan
Definition: drawFromPickle.py:36
IParticleCollHandle_CaloCluster::highestVisibleClusterEnergy
double highestVisibleClusterEnergy() const
Definition: IParticleCollHandle_CaloCluster.cxx:561
AODCollHandleBase::common
const AODSysCommonData * common() const
Definition: AODCollHandleBase.h:88
VP1SGContentsHelper::getKeys
QStringList getKeys() const
Definition: VP1SGContentsHelper.h:55
IParticleCollHandle_CaloCluster::Imp::considerTransverseEnergies
bool considerTransverseEnergies
Definition: IParticleCollHandle_CaloCluster.cxx:87
IParticleCollHandleBase::getHandlesList
QList< AODHandleBase * > getHandlesList() const
Definition: IParticleCollHandleBase.cxx:139
IVP1System
Definition: IVP1System.h:36
Amg::toString
std::string toString(const Translation3D &translation, int precision=4)
GeoPrimitvesToStringConverter.
Definition: GeoPrimitivesToStringConverter.h:40
VP1ExtraSepLayerHelper
Definition: VP1ExtraSepLayerHelper.h:22
ParticleGun_FastCalo_ChargeFlip_Config.energy
energy
Definition: ParticleGun_FastCalo_ChargeFlip_Config.py:78
VP1StdCollection::setVisible
void setVisible(bool)
Definition: VP1StdCollection.cxx:160
IParticleCollHandle_CaloCluster
Definition: IParticleCollHandle_CaloCluster.h:35
CaloClusterCollectionSettingsButton::cutAllowedPhi
QList< VP1Interval > cutAllowedPhi() const
Definition: CaloClusterCollectionSettingsButton.cxx:643
IParticleCollHandle_CaloCluster::highestVisibleClusterEnergyChanged
void highestVisibleClusterEnergyChanged()
AODSystemController
Definition: AODSystemController.h:43
IParticleCollHandle_CaloCluster::Imp::allowedPhi
QList< VP1Interval > allowedPhi
Definition: IParticleCollHandle_CaloCluster.cxx:92
IParticleCollHandle_CaloCluster::Imp::calo_crack_eta
double calo_crack_eta
Definition: IParticleCollHandle_CaloCluster.cxx:102
IParticleCollHandleBase::getPhiAllowall
bool getPhiAllowall()
Definition: IParticleCollHandleBase.h:116
VP1StdCollection::visibilityChanged
void visibilityChanged(bool)
IParticleCollHandle_CaloCluster::resetCachedValuesCuts
void resetCachedValuesCuts()
Definition: IParticleCollHandle_CaloCluster.cxx:356
contains
bool contains(const std::string &s, const std::string &regx)
does a string contain the substring
Definition: hcg.cxx:111
TEvent.h
AODCollHandleBase::recheckCutStatusOfAllNotVisibleHandles
void recheckCutStatusOfAllNotVisibleHandles()
Definition: AODCollHandleBase.cxx:177
CaloClusterCollectionSettingsButton::setCollHandle
void setCollHandle(IParticleCollHandle_CaloCluster *coll)
Definition: CaloClusterCollectionSettingsButton.cxx:701
AODCollHandleBase::extraWidgetsState
QByteArray extraWidgetsState() const
Definition: AODCollHandleBase.cxx:510
AODCollHandleBase::recheckCutStatusOfAllHandles
void recheckCutStatusOfAllHandles()
Definition: AODCollHandleBase.cxx:203
Init.h
IParticleHandle_CaloCluster.h
VP1StdCollection::text
QString text() const
Definition: VP1StdCollection.cxx:132
IParticleCollHandle_CaloCluster::cut
virtual bool cut(AODHandleBase *)
Definition: IParticleCollHandle_CaloCluster.cxx:493
IParticleCollHandleBase::cut
virtual bool cut(AODHandleBase *)
Definition: IParticleCollHandleBase.cxx:146
IParticleCollHandleBase::getEtaAllowall
bool getEtaAllowall()
Definition: IParticleCollHandleBase.h:115
drawFromPickle.tan
tan
Definition: drawFromPickle.py:36
IParticleCollHandleBase::setCutAllowedEta
void setCutAllowedEta(const VP1Interval &)
Definition: IParticleCollHandleBase.cxx:259
VP1Deserialise
Definition: VP1Deserialise.h:44
CaloClusterCollectionSettingsButton.h
DataVector
Derived DataVector<T>.
Definition: DataVector.h:581
AODSysCommonData.h
IParticleCollHandle_CaloCluster::Imp::allowedEnergies
VP1Interval allowedEnergies
Definition: IParticleCollHandle_CaloCluster.cxx:90
IParticleCollHandle_CaloCluster::availableCollections
static QStringList availableCollections(IVP1System *)
Definition: IParticleCollHandle_CaloCluster.cxx:65
trigbs_pickEvents.num
num
Definition: trigbs_pickEvents.py:76
IParticleCollHandle_CaloCluster::Imp::theclass
IParticleCollHandle_CaloCluster * theclass
Definition: IParticleCollHandle_CaloCluster.cxx:80
IParticleCollHandle_CaloCluster::Imp::showOutlines
bool showOutlines
Definition: IParticleCollHandle_CaloCluster.cxx:89
AODCollHandleBase::setupSettingsFromController
void setupSettingsFromController(const AODSystemController *)
Definition: AODCollHandleBase.cxx:112
PathResolver.h
VP1HelperClassBase::systemBase
IVP1System * systemBase() const
Definition: VP1HelperClassBase.h:50
python.selection.number
number
Definition: selection.py:20
IParticleHandle_CaloCluster::has3DObjects
virtual bool has3DObjects()
Returns true if the 3D objects have been created.
Definition: IParticleHandle_CaloCluster.cxx:138
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
plotBeamSpotMon.b
b
Definition: plotBeamSpotMon.py:77
IParticleCollHandle_CaloCluster::showParametersChanged
void showParametersChanged(bool)
Definition: IParticleCollHandle_CaloCluster.cxx:554
IParticleHandle_CaloCluster::energyForCuts
double energyForCuts() const
Definition: IParticleHandle_CaloCluster.cxx:546
VP1StdCollection::isLoaded
bool isLoaded() const
Definition: VP1StdCollection.cxx:148
VP1Msg::messageVerbose
static void messageVerbose(const QString &)
Definition: VP1Msg.cxx:84
IParticleCollHandle_CaloCluster::showOutlines
bool showOutlines() const
Definition: IParticleCollHandle_CaloCluster.cxx:243
VP1SGContentsHelper
Definition: VP1SGContentsHelper.h:26
CaloClusterCollectionSettingsButton::isTransverseEnergy
bool isTransverseEnergy() const
Definition: CaloClusterCollectionSettingsButton.cxx:566
VP1MaterialButtonBase
Definition: VP1MaterialButton.h:25
CaloClusterCollectionSettingsButton::scale
QPair< bool, double > scale() const
Definition: CaloClusterCollectionSettingsButton.cxx:725
VP1StdCollection::largeChangesEnd
virtual void largeChangesEnd()
Definition: VP1StdCollection.cxx:239
SoGenericBox::drawEdgeLines
SoSFBool drawEdgeLines
Definition: SoGenericBox.h:33
SG::IAuxStore
Interface for non-const operations on an auxiliary store.
Definition: IAuxStore.h:48
IParticleCollHandleBase::handleIterationBegin
virtual void handleIterationBegin()
Definition: IParticleCollHandleBase.cxx:123
DataVector::end
const_iterator end() const noexcept
Return a const_iterator pointing past the end of the collection.
python.SystemOfUnits.mm
int mm
Definition: SystemOfUnits.py:83
IParticleCollHandle_CaloCluster::isConsiderTransverseEnergy
bool isConsiderTransverseEnergy() const
Definition: IParticleCollHandle_CaloCluster.cxx:394
IParticleCollHandle_CaloCluster.h
IParticleCollHandle_CaloCluster::persistifiableState
QByteArray persistifiableState() const
Provide specific implementation.
Definition: IParticleCollHandle_CaloCluster.cxx:611
AODCollHandleBase::collVisibilityChanged
void collVisibilityChanged(bool)
Definition: AODCollHandleBase.cxx:393
VP1Interval
Definition: VP1Interval.h:23
IParticleCollHandle_CaloCluster::setScale
void setScale()
Definition: IParticleCollHandle_CaloCluster.cxx:251
DiTauMassTools::MaxHistStrategyV2::e
e
Definition: PhysicsAnalysis/TauID/DiTauMassTools/DiTauMassTools/HelperFunctions.h:26
VP1Msg::messageDebug
static void messageDebug(const QString &)
Definition: VP1Msg.cxx:39
IVP1System::updateGUI
void updateGUI()
Definition: IVP1System.cxx:262
IParticleHandle_CaloCluster
Definition: IParticleHandle_CaloCluster.h:42
IParticleCollHandle_CaloCluster::setupSettingsFromControllerSpecific
virtual void setupSettingsFromControllerSpecific(const AODSystemController *)
For extensions specific to this collection.
Definition: IParticleCollHandle_CaloCluster.cxx:317
Pythia8_RapidityOrderMPI.val
val
Definition: Pythia8_RapidityOrderMPI.py:14
IParticleCollHandleBase::getCutAllowedPt
const VP1Interval & getCutAllowedPt()
Definition: IParticleCollHandleBase.h:111
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
IParticleCollHandleBase::getNextHandle
virtual AODHandleBase * getNextHandle()
Definition: IParticleCollHandleBase.cxx:130
IParticleCollHandle_CaloCluster::Imp::possiblyUpdateGUI
void possiblyUpdateGUI()
Definition: IParticleCollHandle_CaloCluster.cxx:104
IParticleCollHandle_CaloCluster::m_d
Imp * m_d
Definition: IParticleCollHandle_CaloCluster.h:113
VP1StdCollection::visible
bool visible() const
Definition: VP1StdCollection.cxx:142
python.CaloCondTools.log
log
Definition: CaloCondTools.py:20
IParticleCollHandleBase::addHandle
void addHandle(AODHandleBase *)
Definition: IParticleCollHandleBase.cxx:111
CaloClusterContainer.h
IParticleCollHandle_CaloCluster::rebuildAllObjects
void rebuildAllObjects()
Definition: IParticleCollHandle_CaloCluster.cxx:384
calibdata.cd
cd
Definition: calibdata.py:51
VP1HelperClassBase::message
void message(const QString &) const
Definition: VP1HelperClassBase.cxx:49
IParticleCollHandle_CaloCluster::calculateHighestVisibleClusterEnergy
double calculateHighestVisibleClusterEnergy()
Definition: IParticleCollHandle_CaloCluster.cxx:569
IParticleCollHandleBase::getCutAllowedPhi
QList< VP1Interval > getCutAllowedPhi()
Definition: IParticleCollHandleBase.h:113
IParticleCollHandle_CaloCluster::Imp::allowedEta
VP1Interval allowedEta
Definition: IParticleCollHandle_CaloCluster.cxx:91
AODCollHandleBase::update3DObjectsOfAllHandles
void update3DObjectsOfAllHandles()
Definition: AODCollHandleBase.cxx:223
IParticleCollHandle_CaloCluster::load
virtual bool load()
Definition: IParticleCollHandle_CaloCluster.cxx:430
str
Definition: BTagTrackIpAccessor.cxx:11
IParticleCollHandle_CaloCluster::Imp::updateGUICounter
int updateGUICounter
Definition: IParticleCollHandle_CaloCluster.cxx:81
IParticleCollHandle_CaloCluster::calo_crack_eta
static const double calo_crack_eta
Definition: IParticleCollHandle_CaloCluster.h:80
VP1SGAccessHelper
Definition: VP1SGAccessHelper.h:25
IParticleCollHandle_CaloCluster::Imp::sephelper
VP1ExtraSepLayerHelper * sephelper
Definition: IParticleCollHandle_CaloCluster.cxx:84
IParticleCollHandleBase
Base class for collections holding AOD objects of iParticle type Handles pt etc cuts Local data:
Definition: IParticleCollHandleBase.h:50
AODCollHandleBase::recheckCutStatusOfAllVisibleHandles
void recheckCutStatusOfAllVisibleHandles()
Definition: AODCollHandleBase.cxx:144
IParticleCollHandle_CaloCluster::Imp::scale
QPair< bool, double > scale
Definition: IParticleCollHandle_CaloCluster.cxx:88
python.compressB64.c
def c
Definition: compressB64.py:93
VP1SGAccessHelper.h
IParticleCollHandle_CaloCluster::scale
QPair< bool, double > scale() const
Definition: IParticleCollHandle_CaloCluster.cxx:309
IParticleCollHandle_CaloCluster::setShowVolumeOutLines
void setShowVolumeOutLines(bool)
Definition: IParticleCollHandle_CaloCluster.cxx:401
IParticleCollHandle_CaloCluster::Imp::calo_start_z
double calo_start_z
Definition: IParticleCollHandle_CaloCluster.cxx:101
IVP1System.h
query_example.des
des
Definition: query_example.py:9
AODCollHandleBase::name
QString name() const
Definition: AODCollHandleBase.cxx:130
DataVector::begin
const_iterator begin() const noexcept
Return a const_iterator pointing at the beginning of the collection.
VP1SGContentsHelper.h
IParticleCollHandle_CaloCluster::collSettingsButton
const CaloClusterCollectionSettingsButton & collSettingsButton() const
Definition: IParticleCollHandle_CaloCluster.cxx:374
IParticleCollHandle_CaloCluster::calo_start_z
static const double calo_start_z
Definition: IParticleCollHandle_CaloCluster.h:79
CaloClusterCollectionSettingsButton::cutAllowedEta
VP1Interval cutAllowedEta() const
Definition: CaloClusterCollectionSettingsButton.cxx:635