Loading [MathJax]/extensions/tex2jax.js
ATLAS Offline Software
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
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  throw std::runtime_error("CaloCluster - No collSettingsButton set!");
378  }
379  return *m_d->collSettingsButton;
380 }
381 
382 
383 
384 //____________________________________________________________________
386 {
387  VP1Msg::messageVerbose("IParticleCollHandle_CaloCluster::rebuildAllObjects()");
388 
390  recheckCutStatusOfAllNotVisibleHandles(); // Redundant, but needed! TODO: remove this when new 'contains' is ready
391 }
392 
393 
394 //____________________________________________________________________
396 {
397  VP1Msg::messageVerbose("IParticleCollHandle_CaloCluster::isConsiderTransverseEnergy()");
399 }
400 
401 //____________________________________________________________________
403 {
404  VP1Msg::messageDebug("IParticleCollHandle_CaloCluster::setShowVolumeOutLines()");
405 
406  if (m_d->showOutlines==b) return;
407 
408  m_d->showOutlines=b;
409 
410  if (!isLoaded()) return
413  AODHandleBase* handle=0;
414  while ((handle=getNextHandle()))
415  {
416  IParticleHandle_CaloCluster* cluster = dynamic_cast<IParticleHandle_CaloCluster*>(handle);
417  if (cluster && cluster->has3DObjects()) {
418  if (cluster->genericBox())
419  cluster->genericBox()->drawEdgeLines = b;
420  } else {
421  message("ERROR Handle of wrong type!");
422  }
423  }
424  largeChangesEnd();
425 
426 
427 }
428 
429 
430 //____________________________________________________________________
432 {
433  messageVerbose("loading CaloCluster collection");
434 
435  //Get collection:
436  const xAOD::CaloClusterContainer * coll(nullptr);
437 
438  #if defined BUILDVP1LIGHT
439  // // Get the name of the application:
440  // const char* appName = "VP1Light";
441 
442  // // Initialize the environment:
443  // if( !xAOD::Init( appName ).isSuccess() ) {
444  // message("Failed to execute xAOD::Init");
445  // return false;
446  // }
447 
448  // Retrieve objects from the event
449  if( !(systemBase()->getEvent())->retrieve( coll, name().toStdString()).isSuccess() ) {
450  QString errMsg = "Failed to retrieve " + name();
451  message("Error: Could not retrieve collection with key="+name());
452  return false;
453  }
454  #else
455  if (!VP1SGAccessHelper(systemBase()).retrieve(coll, name())) {
456  message("Error: Could not retrieve collection with key="+name());
457  return false;
458  }
459  #endif // BUILDVP1LIGHT
460 
461  // // Retrieve the xAOD particles:
462  // const xAOD::JetContainer* xaod = evtStore()->retrieve<const xAOD::JetContainer>( m_JetCollection );
463 
464  // Check that the auxiliary store association was made successfully:
465  if( ! coll->hasStore() ) {
466  message("No auxiliary store got associated to the CaloCluster container with key: " +name());
467  }
468 
469  // This is needed for now, until the issues around the DV code are
470  // sorted out...
471  const_cast< xAOD::CaloClusterContainer* >( coll )->setStore(
472  ( SG::IAuxStore* ) coll->getConstStore() );
473 
474 
476  for ( it = coll->begin() ; it != itEnd; ++it) {
478  if (!*it) {
479  messageDebug("WARNING: Ignoring null CaloCluster pointer.");
480  continue;
481  }
482 
484  }
485 
486  // get handles list and update locally
487  // m_d->jets = this->getHandlesList();
488 
489  return true;
490 }
491 
492 //Cuts:
493 //____________________________________________________________________
495  messageVerbose("IParticleCollHandle_CaloCluster::cut()");
496 
497  if (IParticleHandle_CaloCluster* handle = dynamic_cast<IParticleHandle_CaloCluster*>(c))
498  {
499 
500  message("CaloCluster::cut() --- to be implemented......");
501 
502 
503  //------ ENERGY CUTS
504  double jEnergy = handle->energyForCuts();
505  double jEnergySqr = jEnergy * jEnergy; // in IParticleCollHandleBase the allowedPt is stored as squared, to avoid square-root operations
506  messageVerbose("object's energy, object's energy^2, allowedPt^2, isPtAll: " + QString::number(jEnergy) + " - " + QString::number(jEnergySqr) + " - " + getCutAllowedPt().toString() + " - " + QString::number(int(getPtAllowall())) );
507  if (!getPtAllowall() && !getCutAllowedPt().contains(jEnergySqr) ) {
508  messageVerbose("Energy cut not passed");
509  return false;
510  }
511 
512  //------ ETA CUTS
513  messageVerbose("object's eta, etaCut, EtaAll: " + QString::number(handle->eta()) + " - " + getCutAllowedEta().toString() + " - " + QString::number(int(getEtaAllowall())) );
514  if (!getEtaAllowall() && !getCutAllowedEta().contains(handle->eta())) {
515  messageVerbose("Eta cut not passed");
516  return false;
517  }
518 
519  //------ PHI CUTS
520  if (!getPhiAllowall() ) {
521  double phi = handle->phi();
522  bool ok(false);
523  for (const VP1Interval& phirange : getCutAllowedPhi() ) {
524  messageVerbose("object's phi, phiCut, PhiAll: " + QString::number(phi) + " - " + phirange.toString() + " - " + QString::number(int(getPhiAllowall())) );
525  if (phirange.contains(phi)||phirange.contains(phi+2*M_PI)||phirange.contains(phi-2*M_PI)) {
526  ok = true;
527  break;
528  }
529  }
530  if (!ok) {
531  messageVerbose("Phi cut not passed");
532  return false;
533  }
534  }
535 //
536 // //------ OTHER CUTS
537 // messageVerbose("Other cuts??? Calling base method...");
538 // if (!IParticleCollHandleBase::cut(handle))
539 // return false;
540 
541  } // if(dynamic_cast)
542  else{
543  messageVerbose("Not a IParticleCollHandle_CaloCluster. Calling base method...");
544  if (!IParticleCollHandleBase::cut(handle))
545  return false;
546  }
547 
548  return true; //default
549 
550 }
551 
552 
553 
554 //____________________________________________________________________
556  messageDebug("IParticleCollHandle_CaloCluster::showParametersChanged to "+str(val));
558 }
559 
560 
561 //____________________________________________________________________
563 {
564  messageDebug("IParticleCollHandle_CaloCluster::highestVisibleClusterEnergy()");
565  return m_d->last_highestEnergy;
566 }
567 
568 
569 //____________________________________________________________________
571 {
572  messageDebug("IParticleCollHandle_CaloCluster::Imp::calculateHighestVisibleClusterEnergy()");
573  if (!isLoaded()){
574  messageDebug("Not loaded. Returning...");
575  return 0;
576  }
577  double e = 0;
578 
580  AODHandleBase* handle=0;
581  while ((handle=getNextHandle()))
582  {
583  IParticleHandle_CaloCluster* cluster = dynamic_cast<IParticleHandle_CaloCluster*>(handle);
584  if (cluster && cluster->has3DObjects()) {
585 // if ( e < cluster->energyForLengthAndCuts(this) )
586 // e = cluster->energyForLengthAndCuts(this);
587  if ( e < cluster->energyForCuts() )
588  e = cluster->energyForCuts();
589  } else {
590  message("ERROR Handle of wrong type!");
591  }
592  }
593 
594  return e;
595 }
596 
597 //____________________________________________________________________
599 {
600  //When visibility or cut changes:
601 // double newhighest = m_d->calculateHighestVisibleClusterEnergy();
602  double newhighest = calculateHighestVisibleClusterEnergy();
603  if (m_d->last_highestEnergy == newhighest)
604  return;
605  m_d->last_highestEnergy = newhighest;
607 }
608 
609 
610 
611 //____________________________________________________________________
613 {
614  messageDebug("IParticleCollHandle_CaloCluster::persistifiableState() - start...");
615 
616  // if (!m_d->matButton) {
617  // message("ERROR: persistifiableState() called before init()");
618  // return QByteArray();
619  // }
620 
621 
622  VP1Serialise serialise(1/*version*/);
623 
624  // settings
625  serialise.disableUnsavedChecks();
626 
627  // SAVE THE CHECKED/UNCHECKED STATUS OF THE COLLECTION
628  serialise.save(visible());
629 
630  // SAVE THE MATERIAL BUTTON
631  //Q_ASSERT(m_d->matButton&&"Did you forget to call init() on this VP1StdCollection?");
632  //serialise.save(m_d->matButton->saveState());
633 
634  // SAVE THE EXTRA-STATES
635  serialise.save(extraWidgetsState());//version 1+
636 
637  // SAVE MATERIAL SETTINGS / CUTS
639 
640  messageDebug("IParticleCollHandle_CaloCluster::persistifiableState() - end.");
641  return serialise.result();
642 }
643 
644 //____________________________________________________________________
645 void IParticleCollHandle_CaloCluster::setState(const QByteArray&state)
646 {
647  VP1Deserialise des(state);
648  des.disableUnrestoredChecks();
649  if (des.version()!=0&&des.version()!=1) {
650  messageDebug("Warning: Ignoring state with wrong version");
651  return;
652  }
653 
654  // save state
655 
656  bool vis = des.restoreBool();
657 
658  // QByteArray matState = des.restoreByteArray();
659  // m_d->matButton->restoreFromState(matState);
660  QByteArray extraWidgetState = des.version()>=1 ? des.restoreByteArray() : QByteArray();
661  setVisible(vis);
662 
663  if (extraWidgetState!=QByteArray())
664  setExtraWidgetsState(extraWidgetState);
665 
666  // MATERIAL SETTINGS / CUTS
667  messageDebug("restoring material collection button...");
668  des.restore(m_d->collSettingsButton);
669 
670  messageDebug("reset all caches storing values for cuts...");
672 
673  messageDebug("recheck all handles...");
675 }
676 
678  str << "\""<<name().toLatin1().data()<<"\":{";
679 
680  unsigned int num=0;
681  for (auto handle : getHandlesList() ) {
682  if (handle->visible()) {
683  if (num) str <<",\n";
684  str << "\"Clus "<<num++<< "\":{";
685  handle->dumpToJSON(str);
686  str << "}";
687  }
688  }
689 
690  str << "}";
691 }
692 
python.PyKernel.retrieve
def retrieve(aClass, aKey=None)
Definition: PyKernel.py:110
VP1Serialise.h
AODCollHandleBase::setExtraWidgetsState
void setExtraWidgetsState(const QByteArray &)
Definition: AODCollHandleBase.cxx:519
AllowedVariables::e
e
Definition: AsgElectronSelectorTool.cxx:37
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
GlobalVariables.phirange
phirange
Definition: GlobalVariables.py:64
phi
Scalar phi() const
phi method
Definition: AmgMatrixBasePlugin.h:67
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
max
constexpr double max()
Definition: ap_fixedTest.cxx:33
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:645
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:407
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
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
IParticleCollHandleBase::getCutAllowedPhi
const QList< VP1Interval > & getCutAllowedPhi()
Definition: IParticleCollHandleBase.h:113
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:677
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:598
VP1HelperClassBase::messageDebug
void messageDebug(const QString &) const
Definition: VP1HelperClassBase.cxx:65
IParticleCollHandleBase::setCutAllowedPt
void setCutAllowedPt(const VP1Interval &)
Definition: IParticleCollHandleBase.cxx:218
python.CaloAddPedShiftConfig.type
type
Definition: CaloAddPedShiftConfig.py:42
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:562
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
AODCollHandleBase::name
const QString & name() const
Definition: AODCollHandleBase.cxx:130
IParticleHandle_CaloCluster.h
VP1StdCollection::text
QString text() const
Definition: VP1StdCollection.cxx:132
IParticleCollHandle_CaloCluster::cut
virtual bool cut(AODHandleBase *)
Definition: IParticleCollHandle_CaloCluster.cxx:494
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:794
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
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:240
plotBeamSpotMon.b
b
Definition: plotBeamSpotMon.py:77
IParticleCollHandle_CaloCluster::showParametersChanged
void showParametersChanged(bool)
Definition: IParticleCollHandle_CaloCluster.cxx:555
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
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:395
IParticleCollHandle_CaloCluster.h
IParticleCollHandle_CaloCluster::persistifiableState
QByteArray persistifiableState() const
Provide specific implementation.
Definition: IParticleCollHandle_CaloCluster.cxx:612
AODCollHandleBase::collVisibilityChanged
void collVisibilityChanged(bool)
Definition: AODCollHandleBase.cxx:393
VP1Interval
Definition: VP1Interval.h:23
IParticleCollHandle_CaloCluster::setScale
void setScale()
Definition: IParticleCollHandle_CaloCluster.cxx:251
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
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:385
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:570
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:431
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:402
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
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