ATLAS Offline Software
VP1CaloClusterCollection.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 VP1CaloClusterCollection //
9 // //
10 // Author: Thomas H. Kittelmann (Thomas.Kittelmann@cern.ch) //
11 // Initial version: June 2007 //
12 // //
14 
18 #include "VP1Base/IVP1System.h"
24 
25 #include <Inventor/SoPath.h>
26 #include <Inventor/nodes/SoSeparator.h>
28 
29 #include "CLHEP/Units/SystemOfUnits.h"
30 #include "CaloEvent/CaloCluster.h"
31 #include "CaloEvent/CaloClusterContainer.h"
32 
33 //_____________________________________________________________________________________
35 {
36  QList<VP1CaloClusterCollection*> cols;
37  for (const QString& key : VP1SGContentsHelper(sys).getKeys<CaloClusterContainer>()) {
39  col->init();
40  cols << col;
41  }
42  return cols;
43 }
44 
45 //____________________________________________________________________
47 public:
51  QString key;
52 
54  QPair<bool,double> scale;
55  bool showOutlines = false;
58  QList<VP1Interval> allowedPhi;
59  double last_highestEnergy = 0.0;
61 
62  double energyToLength(const double&energy) {
63  return std::max(1*CLHEP::mm, scale.second*(scale.first?log(1+fabs(energy)):energy));
64  }
65 
66  static const double calo_start_r;
67  static const double calo_start_z;
68  static const double calo_crack_eta;
69 
70  class ClusterHandle {
71  public:
73  {
74  m_transverseEnergy = sin(2*atan(exp(-fabs(eta()))))*energy();
75  }
78  if (!m_genericBox) {
79  m_genericBox = new SoGenericBox();
80  m_genericBox->drawEdgeLines = d->showOutlines;
82  m_genericBox->ref();
83  }
84  m_attached = true;
86  d->sephelper->addNode(m_genericBox);
87  }
89  if (m_genericBox) {
90  sh->removeNode(m_genericBox);
91  }
92  m_attached = false;
93  }
95  if (!m_attached)
96  return;
97  const double dEta = 0.05;//FIXME
98  const double dPhi = 0.05;//FIXME
99  const double theEta = eta();
100  const double thePhi = phi();
101  const double cellDepth = d->energyToLength(energyForLengthAndCuts(d));
103  m_genericBox->setParametersForBarrelEtaPhiCell( theEta-0.5*dEta, theEta+0.5*dEta,thePhi-0.5*dPhi, thePhi+0.5*dPhi,
105  } else {
106  m_genericBox->setParametersForEndCapEtaPhiCell( theEta-0.5*dEta, theEta+0.5*dEta,thePhi-0.5*dPhi, thePhi+0.5*dPhi,
108  }
109  }
110 
112  double phi() const { return m_cluster->phi(); }
113  double eta() const { return m_cluster->eta(); }
114  double transverseEnergy() const { return m_transverseEnergy; }
115  double energy() const { return m_cluster->e(); }
116  double energyForLengthAndCuts(const VP1CaloClusterCollection::Imp * d) { return d->considerTransverseEnergies ? transverseEnergy() : energy(); }
117  const CaloCluster* cluster() const { return m_cluster; }
118  bool attached() const { return m_attached; }
119  private:
124  };
125  bool cut(ClusterHandle* c) {
126  if (!allowedEnergies.contains(c->energyForLengthAndCuts(this)))
127  return false;
128  if (!allowedEta.contains(c->eta()))
129  return false;
130  double phi(c->phi());
131  for (const VP1Interval& i : allowedPhi) {
132  if (i.contains(phi)||i.contains(phi+2*M_PI)||i.contains(phi-2*M_PI))
133  return true;
134  }
135  return false;
136  }
137 
139  const bool cutval = cut(c);
140  if (cutval!=c->attached()) {
141  if (cutval)
142  c->attach(this);
143  else
144  c->detach(sephelper);
145  }
146  }
147 
148  QList<ClusterHandle*> clusters;
149 
150 };
151 
152 //Fixme: Just some approximate values for now:
155 const double VP1CaloClusterCollection::Imp::calo_crack_eta = fabs(log(tan(0.5*atan(calo_start_r/calo_start_z))));
156 
157 //____________________________________________________________________
159 {
161 }
162 
163 //____________________________________________________________________
165  : VP1StdCollection(sys,"VP1CaloClusterCollection_"+key), m_d(new Imp)
166 {
168 
169  m_d->theclass = this;
170  m_d->controller = controller;
171  m_d->key = key;
172  m_d->sephelper = 0;
173  //We start out with no clusters visible:
174  m_d->last_highestEnergy = 0;
175  m_d->showOutlines = false;
177 
178  connect(this,SIGNAL(highestVisibleClusterEnergyChanged()),controller,SLOT(possibleChange_scale()));
179  connect(this,SIGNAL(visibilityChanged(bool)),this,SLOT(recheckHighestVisibleClusterEnergy()));
180 
181  connect(controller,SIGNAL(useTransverseEnergiesChanged(bool)),this,SLOT(setConsiderTransverseEnergies(bool)));
183  connect(controller,SIGNAL(scaleChanged(const QPair<bool,double>&)),this,SLOT(setScale(const QPair<bool,double>&)));
184  setScale(controller->scale());
185  connect(controller,SIGNAL(showVolumeOutLinesChanged(bool)),this,SLOT(setShowVolumeOutLines(bool)));
187  connect(controller,SIGNAL(cutAllowedEnergiesChanged(const VP1Interval&)),this,SLOT(setAllowedEnergies(const VP1Interval&)));
188  setAllowedEnergies(controller->cutAllowedEnergies());
189  connect(controller,SIGNAL(cutAllowedEtaChanged(const VP1Interval&)),this,SLOT(setAllowedEta(const VP1Interval&)));
190  setAllowedEta(controller->cutAllowedEta());
191  connect(controller,SIGNAL(cutAllowedPhiChanged(const QList<VP1Interval>&)),this,SLOT(setAllowedPhi(const QList<VP1Interval>&)));
192  setAllowedPhi(controller->cutAllowedPhi());
193 
194 
195 }
196 
197 //____________________________________________________________________
199 {
200  if (m_d->sephelper) {
201  SoSeparator * sep = m_d->sephelper->topSeparator();
202  delete m_d->sephelper;
203  sep->unref();
204  }
205  for (Imp::ClusterHandle*cluster : m_d->clusters)
206  delete cluster;
207  delete m_d;
208 }
209 
210 //____________________________________________________________________
212 {
213  return "";
214 }
215 
216 //____________________________________________________________________
218 {
219  return m_d->key;
220 }
221 
222 //____________________________________________________________________
224 {
225  VP1MaterialButton::setMaterialParameters( m, 1.0, 0.9, 0.0, 0.15/*brightness*/, 0.5/*transp*/ );
226 }
227 
228 
229 //____________________________________________________________________
231 {
232  double e = 0;
233  if (theclass->visible()) {
234  for (Imp::ClusterHandle*cluster : clusters) {
235  if (cluster->attached()&&e<cluster->energyForLengthAndCuts(this))
236  e=cluster->energyForLengthAndCuts(this);
237  }
238  }
239  return e;
240 }
241 
242 //____________________________________________________________________
244 {
245  //When visibility or cut changes:
246  double newhighest = m_d->calculateHighestVisibleClusterEnergy();
247  if (m_d->last_highestEnergy == newhighest)
248  return;
249  m_d->last_highestEnergy = newhighest;
251 }
252 
253 //____________________________________________________________________
255 {
256  return m_d->last_highestEnergy;
257 }
258 
259 //____________________________________________________________________
261 {
262  //Get collection:
263  const CaloClusterContainer *theClusterCollection(0);
264  if (!VP1SGAccessHelper(systemBase()).retrieve(theClusterCollection,m_d->key))
265  return false;
266 
267  SoSeparator * sep = new SoSeparator;
268  sep->setName("ClusterSepHelperTopSep");
269  sep->ref();
272  int i(0);
273  CaloClusterContainer::const_iterator it(theClusterCollection->begin()),itE(theClusterCollection->end());
274  for ( ; it != itE; ++it) {
275  if (i++%40==0)
276  systemBase()->updateGUI();
277  Imp::ClusterHandle * clusterHandle = new Imp::ClusterHandle(*it);
278  m_d->clusters << clusterHandle;
279  m_d->recheckCut(clusterHandle);
280  }
281  largeChangesEnd();
282  collSep()->addChild(sep);
283 
284  return true;
285 }
286 
287 //____________________________________________________________________
288 QStringList VP1CaloClusterCollection::infoOnClicked(SoPath* pickedPath)
289 {
290  SoNode * pickedNode = pickedPath->getNodeFromTail(0);
291  const CaloCluster*cluster(0);
292  Imp::ClusterHandle*clusterHandle(0);
293  if (pickedNode->getTypeId()==SoGenericBox::getClassTypeId()) {
294  for (Imp::ClusterHandle*c : m_d->clusters) {
295  if (c->genericBox()==pickedNode) {
296  cluster = c->cluster();
297  clusterHandle = c;
298  break;
299  }
300  }
301  }
302 
303  if (!cluster||!clusterHandle)
304  return QStringList() << "Error: Collection "+m_d->key+" does not have cluster information for picked node";
305 
306  QStringList l;
307  if (m_d->controller->printInfoOnClick()) {
308  l << " Eta: "+str(cluster->eta());
309  l << " Phi: "+str(cluster->phi());
310  l << " Energy [GeV]: "+str(clusterHandle->energy()/CLHEP::GeV);
311  l << " Transverse Energy [GeV]: "+str(clusterHandle->transverseEnergy()/CLHEP::GeV);
313  l << "(no verbose information available)";
314  // l << " Lambda_center [CLHEP::cm]: "+str(cluster->getMoment(CaloClusterMoment::CENTER_LAMBDA).getValue()/CLHEP::cm);
315  }
316  }
317  if (m_d->controller->zoomOnClick()) {
318  std::set<SoCamera*> cameras = static_cast<IVP13DSystem*>(systemBase())->getCameraList();
319  std::set<SoCamera*>::iterator it,itE = cameras.end();
320  for (it=cameras.begin();it!=itE;++it)
321  VP1CameraHelper::animatedZoomToPath(*it,collSep(),pickedPath,2.0,1.0);
322  }
323 
324  return l;
325 }
326 //____________________________________________________________________
328 {
331 }
332 //____________________________________________________________________
334 {
337 }
338 
339 //____________________________________________________________________
341 {
342  if (m_d->allowedEnergies==i)
343  return;
345  if (!isLoaded())
346  return;
347  static_cast<IVP13DSystemSimple *>(systemBase())->deselectAll();
349  for (Imp::ClusterHandle*cluster : m_d->clusters)
350  m_d->recheckCut(cluster);
351  largeChangesEnd();
352  //Fixme relaxed/tightened stuff
353 
355 }
356 
357 //____________________________________________________________________
359 {
360  if (m_d->allowedEta==i)
361  return;
362  m_d->allowedEta=i;
363  if (!isLoaded())
364  return;
365  static_cast<IVP13DSystemSimple *>(systemBase())->deselectAll();
367  for (Imp::ClusterHandle*cluster : m_d->clusters)
368  m_d->recheckCut(cluster);
369  largeChangesEnd();
370  //Fixme relaxed/tightened stuff
371 
373 }
374 
375 //____________________________________________________________________
376 void VP1CaloClusterCollection::setAllowedPhi(const QList<VP1Interval>& i)
377 {
378  if (m_d->allowedPhi==i)
379  return;
380  m_d->allowedPhi=i;
381  if (!isLoaded())
382  return;
383  static_cast<IVP13DSystemSimple *>(systemBase())->deselectAll();
385  for (Imp::ClusterHandle*cluster : m_d->clusters)
386  m_d->recheckCut(cluster);
387  largeChangesEnd();
388  //Fixme relaxed/tightened stuff
389 
391 }
392 
393 #include <Inventor/nodes/SoMaterial.h>//Fixme: just for hack below
394 //____________________________________________________________________
395 void VP1CaloClusterCollection::setScale(const QPair<bool,double>& s)
396 {
397  if (m_d->scale==s)
398  return;
399  m_d->scale=s;
400  if (!isLoaded())
401  return;
403  for (Imp::ClusterHandle*cluster : m_d->clusters)
404  if (cluster->attached())
405  cluster->updateShapePars(m_d);
406  largeChangesEnd();
407 
408  // if (verbose())
409  // static_cast<IVP13DSystemSimple *>(systemBase())->warnOnDisabledNotifications();
410 
411  material()->touch();//FIXME: This is needed (and nothing else seems to matter). BUT WHY?????? Where is the bug?!?!?
412 }
413 
414 //____________________________________________________________________
416 {
417  if (m_d->showOutlines==b)
418  return;
419  m_d->showOutlines=b;
420  if (!isLoaded())
421  return;
423  for (Imp::ClusterHandle*cluster : m_d->clusters)
424  if (cluster->genericBox())
425  cluster->genericBox()->drawEdgeLines = b;
426  largeChangesEnd();
427 }
428 
429 //____________________________________________________________________
431 {
433  return;
435  if (!isLoaded())
436  return;
438  for (Imp::ClusterHandle*cluster : m_d->clusters) {
439  bool attachPrev(cluster->attached());
440  m_d->recheckCut(cluster);
441  if (attachPrev&&cluster->attached())
442  cluster->updateShapePars(m_d);
443  }
444  largeChangesEnd();
446 }
python.PyKernel.retrieve
def retrieve(aClass, aKey=None)
Definition: PyKernel.py:110
xAOD::iterator
JetConstituentVector::iterator iterator
Definition: JetConstituentVector.cxx:68
VP1CaloClusterCollection::assignDefaultMaterial
void assignDefaultMaterial(SoMaterial *) const
Definition: VP1CaloClusterCollection.cxx:223
AllowedVariables::e
e
Definition: AsgElectronSelectorTool.cxx:37
CaloClusterSysController::useTransverseEnergies
bool useTransverseEnergies() const
Definition: CaloClusterSysController.cxx:282
VP1CaloClusterCollection::Imp::considerTransverseEnergies
bool considerTransverseEnergies
Definition: VP1CaloClusterCollection.cxx:53
VP1CaloClusterCollection::largeChangesBegin
void largeChangesBegin()
Definition: VP1CaloClusterCollection.cxx:327
VP1CaloClusterCollection::Imp::ClusterHandle::updateShapePars
void updateShapePars(VP1CaloClusterCollection::Imp *d)
Definition: VP1CaloClusterCollection.cxx:94
GeV
#define GeV
Definition: PhysicsAnalysis/TauID/TauAnalysisTools/Root/HelperFunctions.cxx:17
DataModel_detail::const_iterator
Const iterator class for DataVector/DataList.
Definition: DVLIterator.h:82
python.SystemOfUnits.s
int s
Definition: SystemOfUnits.py:131
VP1CaloClusterCollection::provideText
QString provideText() const
Definition: VP1CaloClusterCollection.cxx:217
VP1CaloClusterCollection::Imp
Definition: VP1CaloClusterCollection.cxx:46
IVP13DSystemSimple
Definition: IVP13DSystemSimple.h:24
python.SystemOfUnits.m
int m
Definition: SystemOfUnits.py:91
VP1CaloClusterCollection::setScale
void setScale(const QPair< bool, double > &)
Definition: VP1CaloClusterCollection.cxx:395
phi
Scalar phi() const
phi method
Definition: AmgMatrixBasePlugin.h:67
VP1CaloClusterCollection::Imp::ClusterHandle::transverseEnergy
double transverseEnergy() const
Definition: VP1CaloClusterCollection.cxx:114
VP1StdCollection::material
SoMaterial * material() const
Definition: VP1StdCollection.cxx:220
VP1MaterialButton.h
VP1ExtraSepLayerHelper.h
hist_file_dump.d
d
Definition: hist_file_dump.py:137
max
constexpr double max()
Definition: ap_fixedTest.cxx:33
VP1CameraHelper.h
CaloClusterContainer
Storable container for CaloCluster.
Definition: Calorimeter/CaloEvent/CaloEvent/CaloClusterContainer.h:37
SoGenericBox::setParametersForEndCapEtaPhiCell
void setParametersForEndCapEtaPhiCell(double etaMin, double etaMax, double phiMin, double phiMax, double cellDepth, double cellDistance, double etasqueezefact=1.0, double phisqueezefact=1.0)
Definition: SoGenericBox.cxx:266
fillPileUpNoiseLumi.connect
string connect
Definition: fillPileUpNoiseLumi.py:70
CSV_InDetExporter.new
new
Definition: CSV_InDetExporter.py:145
SoGenericBox::setParametersForBarrelEtaPhiCell
void setParametersForBarrelEtaPhiCell(double etaMin, double etaMax, double phiMin, double phiMax, double cellDepth, double cellDistance, double etasqueezefact=1.0, double phisqueezefact=1.0)
Definition: SoGenericBox.cxx:256
skel.it
it
Definition: skel.GENtoEVGEN.py:396
VP1CaloClusterCollection::setShowVolumeOutLines
void setShowVolumeOutLines(bool)
Definition: VP1CaloClusterCollection.cxx:415
VP1CaloClusterCollection::Imp::ClusterHandle::phi
double phi() const
Definition: VP1CaloClusterCollection.cxx:112
M_PI
#define M_PI
Definition: ActiveFraction.h:11
CaloClusterSysController::cutAllowedEta
VP1Interval cutAllowedEta() const
Definition: CaloClusterSysController.cxx:265
VP1CaloClusterCollection::Imp::ClusterHandle::energyForLengthAndCuts
double energyForLengthAndCuts(const VP1CaloClusterCollection::Imp *d)
Definition: VP1CaloClusterCollection.cxx:116
VP1CaloClusterCollection::Imp::last_highestEnergy
double last_highestEnergy
Definition: VP1CaloClusterCollection.cxx:59
UploadAMITag.l
list l
Definition: UploadAMITag.larcaf.py:158
VP1StdCollection::largeChangesBegin
virtual void largeChangesBegin()
Definition: VP1StdCollection.cxx:228
VP1CaloClusterCollection::infoOnClicked
QStringList infoOnClicked(SoPath *pickedPath)
Definition: VP1CaloClusterCollection.cxx:288
VP1CameraHelper::animatedZoomToPath
static VP1CameraHelper * animatedZoomToPath(SoCamera *camera, SoGroup *sceneroot, SoPath *path, double duration_in_secs=1.0, double clipVolPercent=100.0, double slack=1.0, const SbVec3f &lookat=SbVec3f(999, 999, 999), const SbVec3f &upvec=SbVec3f(999, 999, 999), bool varySpeed=true, bool forceCircular=false)
Definition: VP1CameraHelper.cxx:371
VP1CaloClusterCollection::largeChangesEnd
void largeChangesEnd()
Definition: VP1CaloClusterCollection.cxx:333
CaloClusterSysController::scale
QPair< bool, double > scale() const
Definition: CaloClusterSysController.cxx:221
IVP13DSystemSimple.h
VP1CaloClusterCollection::m_d
Imp * m_d
Definition: VP1CaloClusterCollection.h:63
drawFromPickle.exp
exp
Definition: drawFromPickle.py:36
VP1CaloClusterCollection::Imp::ClusterHandle::cluster
const CaloCluster * cluster() const
Definition: VP1CaloClusterCollection.cxx:117
VP1CaloClusterCollection::~VP1CaloClusterCollection
~VP1CaloClusterCollection()
Definition: VP1CaloClusterCollection.cxx:198
VP1String::str
static QString str(const QString &s)
Definition: VP1String.h:49
VP1CaloClusterCollection::setConsiderTransverseEnergies
void setConsiderTransverseEnergies(bool)
Definition: VP1CaloClusterCollection.cxx:430
VP1CaloClusterCollection::Imp::calculateHighestVisibleClusterEnergy
double calculateHighestVisibleClusterEnergy() const
Definition: VP1CaloClusterCollection.cxx:230
mapkey::sys
@ sys
Definition: TElectronEfficiencyCorrectionTool.cxx:42
TruthTest.itE
itE
Definition: TruthTest.py:25
drawFromPickle.atan
atan
Definition: drawFromPickle.py:36
VP1CaloClusterCollection::Imp::calo_start_r
static const double calo_start_r
Definition: VP1CaloClusterCollection.cxx:66
VP1CaloClusterCollection::Imp::ClusterHandle::m_genericBox
SoGenericBox * m_genericBox
Definition: VP1CaloClusterCollection.cxx:123
VP1CaloClusterCollection::Imp::recheckCut
void recheckCut(ClusterHandle *c)
Definition: VP1CaloClusterCollection.cxx:138
CaloClusterSysController::printInfoOnClick
bool printInfoOnClick() const
Definition: CaloClusterSysController.cxx:216
CaloClusterSysController
Definition: CaloClusterSysController.h:23
SoGenericBox::initClass
static void initClass()
Definition: SoGenericBox.cxx:62
beamspotnt.cols
list cols
Definition: bin/beamspotnt.py:1114
VP1CaloClusterCollection::Imp::ClusterHandle::m_cluster
const CaloCluster * m_cluster
Definition: VP1CaloClusterCollection.cxx:122
VP1CaloClusterCollection::setAllowedEnergies
void setAllowedEnergies(const VP1Interval &)
Definition: VP1CaloClusterCollection.cxx:340
IVP1System
Definition: IVP1System.h:36
VP1CaloClusterCollection.h
VP1CaloClusterCollection::Imp::allowedEnergies
VP1Interval allowedEnergies
Definition: VP1CaloClusterCollection.cxx:56
VP1ExtraSepLayerHelper
Definition: VP1ExtraSepLayerHelper.h:22
ParticleGun_FastCalo_ChargeFlip_Config.energy
energy
Definition: ParticleGun_FastCalo_ChargeFlip_Config.py:78
VP1CaloClusterCollection::Imp::showOutlines
bool showOutlines
Definition: VP1CaloClusterCollection.cxx:55
VP1CaloClusterCollection::Imp::ClusterHandle::m_transverseEnergy
double m_transverseEnergy
Definition: VP1CaloClusterCollection.cxx:121
lumiFormat.i
int i
Definition: lumiFormat.py:85
VP1CaloClusterCollection::Imp::controller
CaloClusterSysController * controller
Definition: VP1CaloClusterCollection.cxx:49
VP1MaterialButton::setMaterialParameters
static void setMaterialParameters(SoMaterial *m, const QColor &, const double &brightness=0.0, const double &transp=0.0)
Definition: VP1MaterialButton.cxx:802
RCU::Shell
Definition: ShellExec.cxx:28
VP1CaloClusterCollection
Definition: VP1CaloClusterCollection.h:28
VP1CaloClusterCollection::Imp::cut
bool cut(ClusterHandle *c)
Definition: VP1CaloClusterCollection.cxx:125
TauGNNUtils::Variables::Track::dPhi
bool dPhi(const xAOD::TauJet &tau, const xAOD::TauTrack &track, double &out)
Definition: TauGNNUtils.cxx:538
VP1CaloClusterCollection::Imp::ClusterHandle::genericBox
SoGenericBox * genericBox()
Definition: VP1CaloClusterCollection.cxx:111
VP1ExtraSepLayerHelper::largeChangesEnd
void largeChangesEnd()
Definition: VP1ExtraSepLayerHelper.cxx:156
VP1StdCollection::visibilityChanged
void visibilityChanged(bool)
CaloClusterSysController::cutAllowedPhi
QList< VP1Interval > cutAllowedPhi() const
Definition: CaloClusterSysController.cxx:271
VP1ExtraSepLayerHelper::largeChangesBegin
void largeChangesBegin()
Definition: VP1ExtraSepLayerHelper.cxx:135
VP1CaloClusterCollection::Imp::scale
QPair< bool, double > scale
Definition: VP1CaloClusterCollection.cxx:54
CaloCluster
Principal data class for CaloCell clusters.
Definition: Calorimeter/CaloEvent/CaloEvent/CaloCluster.h:79
VP1CaloClusterCollection::Imp::ClusterHandle::ClusterHandle
ClusterHandle(const CaloCluster *c)
Definition: VP1CaloClusterCollection.cxx:72
VP1CaloClusterCollection::createCollections
static QList< VP1CaloClusterCollection * > createCollections(IVP1System *, CaloClusterSysController *)
Definition: VP1CaloClusterCollection.cxx:34
VP1CaloClusterCollection::highestVisibleClusterEnergy
double highestVisibleClusterEnergy() const
Definition: VP1CaloClusterCollection.cxx:254
drawFromPickle.tan
tan
Definition: drawFromPickle.py:36
VP1CaloClusterCollection::Imp::ClusterHandle::attach
void attach(VP1CaloClusterCollection::Imp *d)
Definition: VP1CaloClusterCollection.cxx:77
VP1CaloClusterCollection::Imp::ClusterHandle::attached
bool attached() const
Definition: VP1CaloClusterCollection.cxx:118
VP1CaloClusterCollection::Imp::key
QString key
Definition: VP1CaloClusterCollection.cxx:51
VP1CaloClusterCollection::Imp::ClusterHandle::~ClusterHandle
~ClusterHandle()
Definition: VP1CaloClusterCollection.cxx:76
grepfile.sep
sep
Definition: grepfile.py:38
VP1CaloClusterCollection::Imp::ClusterHandle::energy
double energy() const
Definition: VP1CaloClusterCollection.cxx:115
VP1CaloClusterCollection::highestVisibleClusterEnergyChanged
void highestVisibleClusterEnergyChanged()
VP1CaloClusterCollection::Imp::calo_start_z
static const double calo_start_z
Definition: VP1CaloClusterCollection.cxx:67
VP1HelperClassBase::systemBase
IVP1System * systemBase() const
Definition: VP1HelperClassBase.h:50
plotBeamSpotMon.b
b
Definition: plotBeamSpotMon.py:77
VP1Interval::contains
bool contains(const double &x) const
CaloClusterSysController.h
VP1StdCollection::isLoaded
bool isLoaded() const
Definition: VP1StdCollection.cxx:148
VP1CaloClusterCollection::Imp::theclass
VP1CaloClusterCollection * theclass
Definition: VP1CaloClusterCollection.cxx:48
VP1CaloClusterCollection::crackEta
static double crackEta()
Definition: VP1CaloClusterCollection.cxx:158
VP1SGContentsHelper
Definition: VP1SGContentsHelper.h:26
VP1CaloClusterCollection::recheckHighestVisibleClusterEnergy
void recheckHighestVisibleClusterEnergy()
Definition: VP1CaloClusterCollection.cxx:243
query_example.col
col
Definition: query_example.py:7
VP1StdCollection::largeChangesEnd
virtual void largeChangesEnd()
Definition: VP1StdCollection.cxx:239
SoGenericBox::drawEdgeLines
SoSFBool drawEdgeLines
Definition: SoGenericBox.h:33
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
VP1CaloClusterCollection::load
bool load()
Definition: VP1CaloClusterCollection.cxx:260
VP1Interval
Definition: VP1Interval.h:23
CaloClusterSysController::printVerboseInfoOnClick
bool printVerboseInfoOnClick() const
Definition: CaloClusterSysController.cxx:217
IVP1System::updateGUI
void updateGUI()
Definition: IVP1System.cxx:262
CaloCluster::eta
virtual double eta() const
Retrieve eta independent of signal state.
Definition: Calorimeter/CaloEvent/CaloEvent/CaloCluster.h:755
VP1CaloClusterCollection::Imp::ClusterHandle::detach
void detach(VP1ExtraSepLayerHelper *sh)
Definition: VP1CaloClusterCollection.cxx:88
SoGenericBox::forceEdgeLinesInBaseColour
SoSFBool forceEdgeLinesInBaseColour
Definition: SoGenericBox.h:34
IVP13DSystem
Definition: IVP13DSystem.h:31
CaloClusterSysController::cutAllowedEnergies
VP1Interval cutAllowedEnergies() const
Definition: CaloClusterSysController.cxx:255
SoGenericBox
Definition: SoGenericBox.h:26
VP1ExtraSepLayerHelper::topSeparator
SoSeparator * topSeparator() const
Definition: VP1ExtraSepLayerHelper.cxx:178
VP1StdCollection::collSep
SoSeparator * collSep() const
All 3D objects from this coll.
Definition: VP1StdCollection.cxx:212
VP1StdCollection::visible
bool visible() const
Definition: VP1StdCollection.cxx:142
python.CaloCondTools.log
log
Definition: CaloCondTools.py:20
CaloCluster::e
virtual double e() const
Retrieve energy independent of signal state.
Definition: Calorimeter/CaloEvent/CaloEvent/CaloCluster.h:753
VP1CaloClusterCollection::provideSection
QString provideSection() const
Definition: VP1CaloClusterCollection.cxx:211
VP1CaloClusterCollection::Imp::ClusterHandle::eta
double eta() const
Definition: VP1CaloClusterCollection.cxx:113
CaloClusterSysController::zoomOnClick
bool zoomOnClick() const
Definition: CaloClusterSysController.cxx:218
VP1CaloClusterCollection::Imp::allowedEta
VP1Interval allowedEta
Definition: VP1CaloClusterCollection.cxx:57
VP1CaloClusterCollection::Imp::energyToLength
double energyToLength(const double &energy)
Definition: VP1CaloClusterCollection.cxx:62
VP1CaloClusterCollection::Imp::ClusterHandle
Definition: VP1CaloClusterCollection.cxx:70
VP1StdCollection
Definition: VP1StdCollection.h:31
VP1SGAccessHelper
Definition: VP1SGAccessHelper.h:25
VP1CaloClusterCollection::setAllowedEta
void setAllowedEta(const VP1Interval &)
Definition: VP1CaloClusterCollection.cxx:358
drawFromPickle.sin
sin
Definition: drawFromPickle.py:36
CaloClusterSysController::showVolumeOutLines
bool showVolumeOutLines() const
Definition: CaloClusterSysController.cxx:277
VP1CaloClusterCollection::Imp::clusters
QList< ClusterHandle * > clusters
Definition: VP1CaloClusterCollection.cxx:148
TauGNNUtils::Variables::Track::dEta
bool dEta(const xAOD::TauJet &tau, const xAOD::TauTrack &track, double &out)
Definition: TauGNNUtils.cxx:527
VP1CaloClusterCollection::Imp::sephelper
VP1ExtraSepLayerHelper * sephelper
Definition: VP1CaloClusterCollection.cxx:50
python.compressB64.c
def c
Definition: compressB64.py:93
VP1SGAccessHelper.h
VP1CaloClusterCollection::Imp::ClusterHandle::m_attached
bool m_attached
Definition: VP1CaloClusterCollection.cxx:120
IVP1System.h
SoGenericBox.h
VP1CaloClusterCollection::VP1CaloClusterCollection
VP1CaloClusterCollection(const QString &key, IVP1System *sys, CaloClusterSysController *)
Definition: VP1CaloClusterCollection.cxx:164
DataVector::begin
const_iterator begin() const noexcept
Return a const_iterator pointing at the beginning of the collection.
VP1CaloClusterCollection::Imp::calo_crack_eta
static const double calo_crack_eta
Definition: VP1CaloClusterCollection.cxx:68
VP1SGContentsHelper.h
VP1CaloClusterCollection::Imp::allowedPhi
QList< VP1Interval > allowedPhi
Definition: VP1CaloClusterCollection.cxx:58
mapkey::key
key
Definition: TElectronEfficiencyCorrectionTool.cxx:37
VP1CaloClusterCollection::setAllowedPhi
void setAllowedPhi(const QList< VP1Interval > &)
Definition: VP1CaloClusterCollection.cxx:376
CaloCluster::phi
virtual double phi() const
Retrieve phi independent of signal state.
Definition: Calorimeter/CaloEvent/CaloEvent/CaloCluster.h:759