ATLAS Offline Software
Public Member Functions | Private Member Functions | Static Private Member Functions | Private Attributes | List of all members
eflowCellSubtractionFacilitator Class Reference

This class deals with the removal of calorimeter cells from calorimeter clusters. More...

#include <eflowCellSubtractionFacilitator.h>

Inheritance diagram for eflowCellSubtractionFacilitator:
Collaboration diagram for eflowCellSubtractionFacilitator:

Public Member Functions

 eflowCellSubtractionFacilitator ()
 
double subtractCells (eflowRingSubtractionManager &ringSubtractionManager, eflowRecTrack &theTrack, xAOD::CaloCluster *tracksClus, eflowCellList &orderedCells, bool &annFlag, const bool &addCPData) const
 
double subtractCells (eflowRingSubtractionManager &ringSubtractionManager, eflowRecTrack &theTrack, std::vector< std::pair< xAOD::CaloCluster *, bool >> &tracksClus, eflowCellList &orderedCells, bool &annFlag, const bool &addCPData) const
 
void setLevel (MSG::Level lvl)
 Change the current logging level. More...
 

Private Member Functions

void subtractPartialRings (std::vector< std::pair< xAOD::CaloCluster *, bool >> &tracksClusters, CellIt beginRing, CellIt endRing, double targetRingEnergy, double eRing, eflowRecTrack &theTrack, const bool &addCPData) const
 
void subtractFullRings (std::vector< std::pair< xAOD::CaloCluster *, bool >> &tracksClusters, CellIt beginRing, CellIt endRing, eflowRecTrack &theTrack, const bool &addCPData) const
 
bool subtractRings (eflowRingSubtractionManager &ringSubtractionManager, const std::pair< eflowCaloENUM, short > &ring, double &eSubtracted, const double eExpect, eflowCellList &orderedCells, std::vector< std::pair< xAOD::CaloCluster *, bool >> &tracksClusters, bool &annFlag, eflowRecTrack &theTrack, const bool &addCPData) const
 
void initMessaging () const
 Initialize our message level and MessageSvc. More...
 

Static Private Member Functions

static CaloClusterCellLink::iterator getCellIterator (xAOD::CaloCluster *thisCluster, const CaloCell *thisCell)
 
static void updateClusterKinematics (std::vector< std::pair< xAOD::CaloCluster *, bool >> &tracksClusters)
 
static void updateClusterKinematics (xAOD::CaloCluster *)
 
static double getTotalEnergy (const std::vector< std::pair< xAOD::CaloCluster *, bool >> &tracksClusters)
 
static double getRingsEnergy (std::vector< std::pair< xAOD::CaloCluster *, bool >> &tracksClusters, CellIt beginRing, CellIt endRing)
 
static bool subtractCaloCell (double &eSubtracted, const double eExpect, xAOD::CaloCluster *cluster, const CaloCell *cell, eflowRecTrack &theTrack, const bool &addCPData)
 
static void annihilateClusters (std::vector< std::pair< xAOD::CaloCluster *, bool >> &tracksClusters, bool &annFlag, eflowRecTrack &theTrack, const bool &addCPData)
 
static bool subtractReorderedCells (std::vector< std::pair< xAOD::CaloCluster *, bool >> &tracksClusters, double eSubtracted, const double eExpect, eflowCellList &orderedCells, eflowRecTrack &theTrack, const bool &addCPData)
 

Private Attributes

std::string m_nm
 Message source name. More...
 
boost::thread_specific_ptr< MsgStream > m_msg_tls
 MsgStream instance (a std::cout like with print-out levels) More...
 
std::atomic< IMessageSvc * > m_imsg { nullptr }
 MessageSvc pointer. More...
 
std::atomic< MSG::Level > m_lvl { MSG::NIL }
 Current logging level. More...
 
std::atomic_flag m_initialized ATLAS_THREAD_SAFE = ATOMIC_FLAG_INIT
 Messaging initialized (initMessaging) More...
 

Detailed Description

This class deals with the removal of calorimeter cells from calorimeter clusters.

The main entry points are the subtractCells methods which find out how much energy they should subtract from the eflowRingSubtractionManager. The eflowRingSubtractionManager also contains a list of calorimeter cell rings (a ring is a list of calorimeter cells, in a given calorimeter layer, between two radii r1 and r2). The cell information is stored in the eflowCellList. Rings are removed one by one in the order they are stored until the summed cell ring energy is >= to the expected energy deposit from the track in the calorimeter.

Definition at line 36 of file eflowCellSubtractionFacilitator.h.

Constructor & Destructor Documentation

◆ eflowCellSubtractionFacilitator()

eflowCellSubtractionFacilitator::eflowCellSubtractionFacilitator ( )

Definition at line 19 of file eflowCellSubtractionFacilitator.cxx.

20  : AsgMessaging("eflowCellSubtractionFacilitator")
21 {}

Member Function Documentation

◆ annihilateClusters()

void eflowCellSubtractionFacilitator::annihilateClusters ( std::vector< std::pair< xAOD::CaloCluster *, bool >> &  tracksClusters,
bool &  annFlag,
eflowRecTrack theTrack,
const bool &  addCPData 
)
staticprivate

Definition at line 96 of file eflowCellSubtractionFacilitator.cxx.

99 {
100  for (auto& thisPair : tracksClusters) {
101  xAOD::CaloCluster* thisCluster = thisPair.first;
102  CaloClusterCellLink* theCellLink = thisCluster->getOwnCellLinks();
103  CaloClusterCellLink::iterator theFirstCell = theCellLink->begin();
104  CaloClusterCellLink::iterator theLastCell = theCellLink->end();
105  for (; theFirstCell != theLastCell; ++theFirstCell){
106  if (addCPData) theTrack.addSubtractedCaloCell(ElementLink<CaloCellContainer>("AllCalo",theFirstCell.index()),theFirstCell.weight());
107  thisCluster->removeCell(*theFirstCell);
108  }
109  thisCluster->setCalE(0.0);
110  thisCluster->setRawE(0.0);
111  // set the subtracted status to true
112  thisPair.second = true;
113  }
114  annFlag = true;
115 }

◆ getCellIterator()

CaloClusterCellLink::iterator eflowCellSubtractionFacilitator::getCellIterator ( xAOD::CaloCluster thisCluster,
const CaloCell thisCell 
)
staticprivate

Definition at line 394 of file eflowCellSubtractionFacilitator.cxx.

397 {
398 
399  // SLOW! Can we move to directly work with iterators in future?
400 
401  // We have to use non-const iterators so that we are allowed to modify the
402  // cell weights
403  CaloClusterCellLink* theCells = thisCluster->getOwnCellLinks();
404 
405  CaloClusterCellLink::iterator itCell = theCells->begin();
406  CaloClusterCellLink::iterator endCell = theCells->end();
407  for (; itCell != endCell; ++itCell) {
408  const CaloCell* pCell = (*itCell);
409  if (pCell == thisCell) { // Pointer comparison!
410  return itCell;
411  }
412  }
413 
414  // if no match is found then return end of container
415  return endCell;
416 }

◆ getRingsEnergy()

double eflowCellSubtractionFacilitator::getRingsEnergy ( std::vector< std::pair< xAOD::CaloCluster *, bool >> &  tracksClusters,
CellIt  beginRing,
CellIt  endRing 
)
staticprivate

Definition at line 71 of file eflowCellSubtractionFacilitator.cxx.

75 {
76  /* Get total energy of ringes from beginRing to endRing */
77 
78  double eRing(0.0);
79  for (CellIt it = beginRing; it != endRing; ++it) {
80  /* Loop over Rings */
81  for (auto thisCell : it->second) {
82  /* Loop over Cells */
83  std::pair<const CaloCell*, int> thisPair = thisCell;
84  xAOD::CaloCluster* clus = tracksClusters[thisPair.second].first;
85  CaloClusterCellLink::iterator theIterator =
87  double cellWeight = theIterator.weight();
88  eRing += thisPair.first->energy() * cellWeight;
89  }
90  }
91 
92  return eRing;
93 }

◆ getTotalEnergy()

double eflowCellSubtractionFacilitator::getTotalEnergy ( const std::vector< std::pair< xAOD::CaloCluster *, bool >> &  tracksClusters)
staticprivate

Definition at line 60 of file eflowCellSubtractionFacilitator.cxx.

62 {
63  double eClustersOld = 0;
64  /* Summed energy of all clusters before subtraction */
65  for (auto thisPair : tracksClusters)
66  eClustersOld += (thisPair.first)->e();
67  return eClustersOld;
68 }

◆ initMessaging()

void AthMessaging::initMessaging ( ) const
privateinherited

Initialize our message level and MessageSvc.

This method should only be called once.

Definition at line 39 of file AthMessaging.cxx.

40 {
42  m_lvl = m_imsg ?
43  static_cast<MSG::Level>( m_imsg.load()->outputLevel(m_nm) ) :
44  MSG::INFO;
45 }

◆ msg() [1/2]

MsgStream & asg::AsgMessaging::msg ( ) const
inherited

The standard message stream.

Returns
A reference to the default message stream of this object.

Definition at line 49 of file AsgMessaging.cxx.

49  {
50 #ifndef XAOD_STANDALONE
52 #else // not XAOD_STANDALONE
53  return m_msg;
54 #endif // not XAOD_STANDALONE
55  }

◆ msg() [2/2]

MsgStream & asg::AsgMessaging::msg ( const MSG::Level  lvl) const
inherited

The standard message stream.

Parameters
lvlThe message level to set the stream to
Returns
A reference to the default message stream, set to level "lvl"

Definition at line 57 of file AsgMessaging.cxx.

57  {
58 #ifndef XAOD_STANDALONE
60 #else // not XAOD_STANDALONE
61  m_msg << lvl;
62  return m_msg;
63 #endif // not XAOD_STANDALONE
64  }

◆ msgLvl()

bool asg::AsgMessaging::msgLvl ( const MSG::Level  lvl) const
inherited

Test the output level of the object.

Parameters
lvlThe message level to test against
Returns
boolean Indicting if messages at given level will be printed
true If messages at level "lvl" will be printed

Definition at line 41 of file AsgMessaging.cxx.

41  {
42 #ifndef XAOD_STANDALONE
43  return ::AthMessaging::msgLvl( lvl );
44 #else // not XAOD_STANDALONE
45  return m_msg.msgLevel( lvl );
46 #endif // not XAOD_STANDALONE
47  }

◆ setLevel()

void AthMessaging::setLevel ( MSG::Level  lvl)
inherited

Change the current logging level.

Use this rather than msg().setLevel() for proper operation with MT.

Definition at line 28 of file AthMessaging.cxx.

29 {
30  m_lvl = lvl;
31 }

◆ subtractCaloCell()

bool eflowCellSubtractionFacilitator::subtractCaloCell ( double &  eSubtracted,
const double  eExpect,
xAOD::CaloCluster cluster,
const CaloCell cell,
eflowRecTrack theTrack,
const bool &  addCPData 
)
staticprivate

Definition at line 251 of file eflowCellSubtractionFacilitator.cxx.

257 {
258 
259  CaloClusterCellLink::iterator theIterator =
261  double oldCellWeight = theIterator.weight();
262  double oldCellEnergy = cell->energy() * oldCellWeight;
263 
264  if (oldCellEnergy != 0. && eSubtracted + oldCellEnergy > eExpect) {
265  /* Target cell energy is cell energy minus the energy that still needs to be
266  * subtracted */
267  double targetCellEnergy = oldCellEnergy - (eExpect - eSubtracted);
268 
269  double energyWeight = targetCellEnergy / oldCellEnergy;
270  double newCellWeight = oldCellWeight * energyWeight;
271  theIterator.reweight(newCellWeight);
272  if (addCPData) theTrack.addSubtractedCaloCell(ElementLink<CaloCellContainer>("AllCalo",theIterator.index()), energyWeight*theIterator.weight());
273 
274  eSubtracted = eExpect;
275 
276  /* Update the cluster four-momenta having done the subtraction */
277  updateClusterKinematics(cluster);
278 
279  return true;
280 
281  } else {
282  if (addCPData) theTrack.addSubtractedCaloCell(ElementLink<CaloCellContainer>("AllCalo",theIterator.index()),theIterator.weight());
283  cluster->removeCell(cell);
284  eSubtracted += oldCellEnergy;
285 
286  /* Update the clusters having done the subtraction */
287  updateClusterKinematics(cluster);
288  return false;
289  }
290 }

◆ subtractCells() [1/2]

double eflowCellSubtractionFacilitator::subtractCells ( eflowRingSubtractionManager ringSubtractionManager,
eflowRecTrack theTrack,
std::vector< std::pair< xAOD::CaloCluster *, bool >> &  tracksClus,
eflowCellList orderedCells,
bool &  annFlag,
const bool &  addCPData 
) const

Definition at line 328 of file eflowCellSubtractionFacilitator.cxx.

334 {
335 
336  const double trackEnergy = theTrack.getTrack()->e();
337  const double eExpect = cellSubtractionManager.fudgeMean() * trackEnergy;
338  const double sigmaEExpect =
339  cellSubtractionManager.fudgeStdDev() * trackEnergy;
340  ATH_MSG_DEBUG("eflowCellSubtractionFacilitator: For track with trackEnergy "
341  << trackEnergy << " expect to subtract " << eExpect
342  << " with width of " << sigmaEExpect);
343 
344  double eSubtracted = 0.0;
345 
346  /*
347  * Ring subtraction
348  */
349  std::map<double, RingId>::const_iterator ringIt =
350  cellSubtractionManager.rankBegin();
351  std::map<double, RingId>::const_iterator ringEnd =
352  cellSubtractionManager.rankEnd();
353  for (; ringIt != ringEnd; ++ringIt) {
354  bool isFinished = subtractRings(cellSubtractionManager,
355  ringIt->second,
356  eSubtracted,
357  eExpect,
358  orderedCells,
359  tracksClusters,
360  annFlag,
361  theTrack,
362  addCPData);
363  if (isFinished) {
364  return sigmaEExpect;
365  }
366  }
367 
368  /* Update the cluster four-momenta */
369  updateClusterKinematics(tracksClusters);
370 
371  if (orderedCells.mapSize() <= 0 || eSubtracted >= eExpect) {
372  return sigmaEExpect;
373  }
374 
375  /*
376  * Cell subtraction
377  */
378  /* Increasing dR (not by layer) for cell subtraction */
379  orderedCells.reorderWithoutLayers();
380 
381  bool isFinished =
382  subtractReorderedCells(tracksClusters, eSubtracted, eExpect, orderedCells, theTrack, addCPData);
383  if (isFinished) {
384  return sigmaEExpect;
385  }
386 
387  /* Update the cluster four-momenta */
388  updateClusterKinematics(tracksClusters);
389 
390  return sigmaEExpect;
391 }

◆ subtractCells() [2/2]

double eflowCellSubtractionFacilitator::subtractCells ( eflowRingSubtractionManager ringSubtractionManager,
eflowRecTrack theTrack,
xAOD::CaloCluster tracksClus,
eflowCellList orderedCells,
bool &  annFlag,
const bool &  addCPData 
) const

Definition at line 24 of file eflowCellSubtractionFacilitator.cxx.

30 {
31  std::vector<std::pair<xAOD::CaloCluster*, bool>> localClusterBoolPairVec(
32  1, std::pair(tracksCluster, false));
33  return subtractCells(
34  cellSubtractionManager, theTrack, localClusterBoolPairVec, orderedCells, annFlag, addCPData);
35 }

◆ subtractFullRings()

void eflowCellSubtractionFacilitator::subtractFullRings ( std::vector< std::pair< xAOD::CaloCluster *, bool >> &  tracksClusters,
CellIt  beginRing,
CellIt  endRing,
eflowRecTrack theTrack,
const bool &  addCPData 
) const
private

Definition at line 151 of file eflowCellSubtractionFacilitator.cxx.

156 {
157  /* Subtract full ring */
158 
159  for (CellIt itRing = beginRing; itRing != endRing; ++itRing) {
160  /* Loop over Rings */
161  for (auto thisCell : itRing->second) {
162  /* Loop over Cells */
163  std::pair<const CaloCell*, int> thisPair = thisCell;
164  xAOD::CaloCluster* cluster = tracksClusters[thisPair.second].first;
165  // flag this cluster as having had subtraction applied to it
166  tracksClusters[thisPair.second].second = true;
167  ATH_MSG_DEBUG("eflowCellSubtractionFacilitator: Cluster with e "
168  << cluster->e() << " is removing cell with e "
169  << thisPair.first->e());
170  CaloClusterCellLink::iterator theIterator = this->getCellIterator(cluster, thisPair.first);
171  if (addCPData) theTrack.addSubtractedCaloCell(ElementLink<CaloCellContainer>("AllCalo",theIterator.index()),theIterator.weight());
172  cluster->removeCell(thisPair.first);
173  }
174  }
175 }

◆ subtractPartialRings()

void eflowCellSubtractionFacilitator::subtractPartialRings ( std::vector< std::pair< xAOD::CaloCluster *, bool >> &  tracksClusters,
CellIt  beginRing,
CellIt  endRing,
double  targetRingEnergy,
double  eRing,
eflowRecTrack theTrack,
const bool &  addCPData 
) const
private

Definition at line 118 of file eflowCellSubtractionFacilitator.cxx.

125 {
126  for (CellIt itRing = beginRing; itRing != endRing; ++itRing) {
127  /* Loop over Rings */
128  for (auto thisCell : itRing->second) {
129  /* Loop over Cells */
130  std::pair<const CaloCell*, int> thisPair = thisCell;
131  xAOD::CaloCluster* cluster = tracksClusters[thisPair.second].first;
132  // flag this cluster as having had subtraction applied to it
133  tracksClusters[thisPair.second].second = true;
134  const CaloCell* cell = thisPair.first;
135  CaloClusterCellLink::iterator theIterator =
137  double oldCellWeight = theIterator.weight();
138  double ringWeight = targetRingEnergy / eRings;
139  const double newCellWeight = oldCellWeight * ringWeight;
140  ATH_MSG_DEBUG("eflowCellSubtractionFacilitator: Cluster with e "
141  << cluster->e()
142  << " is changing weight of cell with energy " << cell->e()
143  << " from " << oldCellWeight << " to " << newCellWeight);
144  theIterator.reweight(newCellWeight);
145  if (addCPData) theTrack.addSubtractedCaloCell(ElementLink<CaloCellContainer>("AllCalo",theIterator.index()),newCellWeight);
146  }
147  }
148 }

◆ subtractReorderedCells()

bool eflowCellSubtractionFacilitator::subtractReorderedCells ( std::vector< std::pair< xAOD::CaloCluster *, bool >> &  tracksClusters,
double  eSubtracted,
const double  eExpect,
eflowCellList orderedCells,
eflowRecTrack theTrack,
const bool &  addCPData 
)
staticprivate

Definition at line 293 of file eflowCellSubtractionFacilitator.cxx.

300 {
301  CellIt itCellPosition = reorderedCells.begin();
302  CellIt endCellPosition = reorderedCells.end();
303  while (itCellPosition != endCellPosition) {
304  /* Loop cells */
305  std::vector<std::pair<const CaloCell*, int>>::iterator itEntry =
306  itCellPosition->second.begin();
307  std::vector<std::pair<const CaloCell*, int>>::iterator endEntry =
308  itCellPosition->second.end();
309  for (; itEntry != endEntry; ++itEntry) {
310  const std::pair<const CaloCell*, int> thisPair = *itEntry;
311  xAOD::CaloCluster* cluster = tracksClusters[thisPair.second].first;
312  // flag this cluster as having had subtraction applied to it
313  tracksClusters[thisPair.second].second = true;
314  const CaloCell* cell = thisPair.first;
315  bool isFinished = subtractCaloCell(eSubtracted, eExpect, cluster, cell, theTrack, addCPData);
316  if (isFinished)
317  return true;
318  }
319  /* Erase the CellPosition from the cell list */
320  CellIt tmp = itCellPosition;
321  ++itCellPosition;
322  reorderedCells.deleteFromList(tmp);
323  }
324  return false;
325 }

◆ subtractRings()

bool eflowCellSubtractionFacilitator::subtractRings ( eflowRingSubtractionManager ringSubtractionManager,
const std::pair< eflowCaloENUM, short > &  ring,
double &  eSubtracted,
const double  eExpect,
eflowCellList orderedCells,
std::vector< std::pair< xAOD::CaloCluster *, bool >> &  tracksClusters,
bool &  annFlag,
eflowRecTrack theTrack,
const bool &  addCPData 
) const
private

Definition at line 178 of file eflowCellSubtractionFacilitator.cxx.

187 {
188  /* Subtract energy from ring, return TRUE if the whole expected energy is
189  * subtracted */
190 
191  const eflowCaloENUM subtLayer = ring.first;
192  const short ringNo = ring.second;
193 
194  const double r1 = ringNo * cellSubtractionManager.ringThickness(subtLayer);
195  const double r2 =
196  (ringNo + 1) * cellSubtractionManager.ringThickness(subtLayer);
197 
198  CellIt beginRing = orderedCells.getLowerBound(subtLayer, r1);
199  CellIt endRing = orderedCells.getLowerBound(subtLayer, r2);
200 
201  /* Get total energy of Rings from beginRing to endRing */
202  double eRings = getRingsEnergy(tracksClusters, beginRing, endRing);
203 
204  if (eSubtracted + eRings > eExpect) {
205  /* Subtract partial ring */
206 
207  ATH_MSG_DEBUG("eflowCellSubtractionFacilitator: Subtracting partial ring, "
208  "eSubtracted, eRings and eExpect are "
209  << eSubtracted << ", " << eRings << ", " << eExpect);
210 
211  /* Target ring energy is ring energy minus the energy that still needs to be
212  * subtracted */
213  double targetRingEnergy = eRings - (eExpect - eSubtracted);
214  ATH_MSG_DEBUG("eflowCellSubtractionFacilitator: targetRingEnergy is "
215  << targetRingEnergy);
217  tracksClusters, beginRing, endRing, targetRingEnergy, eRings, theTrack, addCPData);
218  eSubtracted = eExpect;
219 
220  /* Update the cluster four-momenta having done the subtraction */
221  updateClusterKinematics(tracksClusters);
222 
223  return true;
224 
225  } else {
226  /* Subtract full ring */
227 
228  ATH_MSG_DEBUG("eflowCellSubtractionFacilitator: Subtracting full ring ");
229 
230  subtractFullRings(tracksClusters, beginRing, endRing, theTrack, addCPData);
231  orderedCells.deleteFromList(beginRing, endRing);
232  eSubtracted += eRings;
233 
234  /* If no energy left */
235  double eClustersOld = getTotalEnergy(tracksClusters);
236  if (fabs(eClustersOld - eSubtracted) < 1.0e-6 * eClustersOld) {
237  /* Annihilate clusters, clear orderedCells, and update subtracted cluster
238  * kinematics */
239  annihilateClusters(tracksClusters,annFlag, theTrack, addCPData);
240  orderedCells.eraseList();
241  updateClusterKinematics(tracksClusters);
242 
243  return true;
244  }
245 
246  return false;
247  }
248 }

◆ updateClusterKinematics() [1/2]

void eflowCellSubtractionFacilitator::updateClusterKinematics ( std::vector< std::pair< xAOD::CaloCluster *, bool >> &  tracksClusters)
staticprivate

Definition at line 38 of file eflowCellSubtractionFacilitator.cxx.

40 {
41  for (auto thisPair : tracksClusters)
42  updateClusterKinematics(thisPair.first);
43 }

◆ updateClusterKinematics() [2/2]

void eflowCellSubtractionFacilitator::updateClusterKinematics ( xAOD::CaloCluster theCluster)
staticprivate

Definition at line 46 of file eflowCellSubtractionFacilitator.cxx.

48 {
49  float oldEnergy = theCluster->e();
50  CaloClusterKineHelper::calculateKine(theCluster, true, true);
51  if (0.0 != oldEnergy) {
52  float energyAdjustment = theCluster->e() / oldEnergy;
53  theCluster->setRawE(theCluster->rawE() * energyAdjustment);
54  theCluster->setRawEta(theCluster->eta());
55  theCluster->setRawPhi(theCluster->phi());
56  }
57 }

Member Data Documentation

◆ ATLAS_THREAD_SAFE

std::atomic_flag m_initialized AthMessaging::ATLAS_THREAD_SAFE = ATOMIC_FLAG_INIT
mutableprivateinherited

Messaging initialized (initMessaging)

Definition at line 141 of file AthMessaging.h.

◆ m_imsg

std::atomic<IMessageSvc*> AthMessaging::m_imsg { nullptr }
mutableprivateinherited

MessageSvc pointer.

Definition at line 135 of file AthMessaging.h.

◆ m_lvl

std::atomic<MSG::Level> AthMessaging::m_lvl { MSG::NIL }
mutableprivateinherited

Current logging level.

Definition at line 138 of file AthMessaging.h.

◆ m_msg_tls

boost::thread_specific_ptr<MsgStream> AthMessaging::m_msg_tls
mutableprivateinherited

MsgStream instance (a std::cout like with print-out levels)

Definition at line 132 of file AthMessaging.h.

◆ m_nm

std::string AthMessaging::m_nm
privateinherited

Message source name.

Definition at line 129 of file AthMessaging.h.


The documentation for this class was generated from the following files:
xAOD::iterator
JetConstituentVector::iterator iterator
Definition: JetConstituentVector.cxx:68
AthMessaging::m_lvl
std::atomic< MSG::Level > m_lvl
Current logging level.
Definition: AthMessaging.h:138
xAOD::CaloCluster_v1::phi
virtual double phi() const
The azimuthal angle ( ) of the particle.
Definition: CaloCluster_v1.cxx:256
eflowCellSubtractionFacilitator::getTotalEnergy
static double getTotalEnergy(const std::vector< std::pair< xAOD::CaloCluster *, bool >> &tracksClusters)
Definition: eflowCellSubtractionFacilitator.cxx:60
xAOD::CaloCluster_v1::rawE
flt_t rawE() const
AllowedVariables::e
e
Definition: AsgElectronSelectorTool.cxx:37
eflowCellList::reorderWithoutLayers
void reorderWithoutLayers()
Definition: eflowCellList.cxx:72
eflowCellSubtractionFacilitator::subtractRings
bool subtractRings(eflowRingSubtractionManager &ringSubtractionManager, const std::pair< eflowCaloENUM, short > &ring, double &eSubtracted, const double eExpect, eflowCellList &orderedCells, std::vector< std::pair< xAOD::CaloCluster *, bool >> &tracksClusters, bool &annFlag, eflowRecTrack &theTrack, const bool &addCPData) const
Definition: eflowCellSubtractionFacilitator.cxx:178
eflowCellSubtractionFacilitator::subtractReorderedCells
static bool subtractReorderedCells(std::vector< std::pair< xAOD::CaloCluster *, bool >> &tracksClusters, double eSubtracted, const double eExpect, eflowCellList &orderedCells, eflowRecTrack &theTrack, const bool &addCPData)
Definition: eflowCellSubtractionFacilitator.cxx:293
eflowCellList::deleteFromList
void deleteFromList(CellIt &start, CellIt &end)
Definition: eflowCellList.h:71
eflowCellSubtractionFacilitator::subtractCaloCell
static bool subtractCaloCell(double &eSubtracted, const double eExpect, xAOD::CaloCluster *cluster, const CaloCell *cell, eflowRecTrack &theTrack, const bool &addCPData)
Definition: eflowCellSubtractionFacilitator.cxx:251
PFRunESDtoAOD_WithJetsTausMET_CPData_mc21_13p6TeV.addCPData
addCPData
Definition: PFRunESDtoAOD_WithJetsTausMET_CPData_mc21_13p6TeV.py:13
ReadCellNoiseFromCool.cell
cell
Definition: ReadCellNoiseFromCool.py:53
eflowCellSubtractionFacilitator::subtractPartialRings
void subtractPartialRings(std::vector< std::pair< xAOD::CaloCluster *, bool >> &tracksClusters, CellIt beginRing, CellIt endRing, double targetRingEnergy, double eRing, eflowRecTrack &theTrack, const bool &addCPData) const
Definition: eflowCellSubtractionFacilitator.cxx:118
skel.it
it
Definition: skel.GENtoEVGEN.py:396
asg::AsgMessaging::AsgMessaging
AsgMessaging(const std::string &name)
Constructor with a name.
Definition: AsgMessaging.cxx:17
MCP::ScaleSmearParam::r2
@ r2
AthMessaging::m_imsg
std::atomic< IMessageSvc * > m_imsg
MessageSvc pointer.
Definition: AthMessaging.h:135
Athena::getMessageSvc
IMessageSvc * getMessageSvc(bool quiet=false)
Definition: getMessageSvc.cxx:20
eflowRecTrack::addSubtractedCaloCell
void addSubtractedCaloCell(ElementLink< CaloCellContainer > theCellLink, const double &weight)
Definition: eflowRecTrack.h:115
eflowCellSubtractionFacilitator::annihilateClusters
static void annihilateClusters(std::vector< std::pair< xAOD::CaloCluster *, bool >> &tracksClusters, bool &annFlag, eflowRecTrack &theTrack, const bool &addCPData)
Definition: eflowCellSubtractionFacilitator.cxx:96
xAOD::CaloCluster_v1
Description of a calorimeter cluster.
Definition: CaloCluster_v1.h:59
xAOD::CaloCluster_v1::setRawE
void setRawE(flt_t)
Set Energy for signal state UNCALIBRATED.
Definition: CaloCluster_v1.cxx:284
TrigConf::MSGTC::Level
Level
Definition: Trigger/TrigConfiguration/TrigConfBase/TrigConfBase/MsgStream.h:21
xAOD::CaloCluster_v1::removeCell
bool removeCell(const CaloCell *ptr)
Method to remove a cell to the cluster (slow!) (Beware: Kinematics not updated!)
Definition: CaloCluster_v1.cxx:923
xAOD::CaloCluster_v1::eta
virtual double eta() const
The pseudorapidity ( ) of the particle.
Definition: CaloCluster_v1.cxx:251
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
eflowCellSubtractionFacilitator::getRingsEnergy
static double getRingsEnergy(std::vector< std::pair< xAOD::CaloCluster *, bool >> &tracksClusters, CellIt beginRing, CellIt endRing)
Definition: eflowCellSubtractionFacilitator.cxx:71
xAOD::CaloCluster_v1::setRawEta
void setRawEta(flt_t)
Set for signal state UNCALIBRATED.
Definition: CaloCluster_v1.cxx:289
eflowCellList::eraseList
void eraseList()
Definition: eflowCellList.h:76
eflowCellSubtractionFacilitator::subtractCells
double subtractCells(eflowRingSubtractionManager &ringSubtractionManager, eflowRecTrack &theTrack, xAOD::CaloCluster *tracksClus, eflowCellList &orderedCells, bool &annFlag, const bool &addCPData) const
Definition: eflowCellSubtractionFacilitator.cxx:24
DeMoUpdate.tmp
string tmp
Definition: DeMoUpdate.py:1167
eflowRecTrack::getTrack
const xAOD::TrackParticle * getTrack() const
Definition: eflowRecTrack.h:54
eflowCellSubtractionFacilitator::updateClusterKinematics
static void updateClusterKinematics(std::vector< std::pair< xAOD::CaloCluster *, bool >> &tracksClusters)
Definition: eflowCellSubtractionFacilitator.cxx:38
xAOD::TrackParticle_v1::e
virtual double e() const override final
The total energy of the particle.
Definition: TrackParticle_v1.cxx:109
xAOD::CaloCluster_v1::setCalE
void setCalE(flt_t)
Set Energy for signal state CALIBRATED.
Definition: CaloCluster_v1.cxx:306
eflowCellSubtractionFacilitator::subtractFullRings
void subtractFullRings(std::vector< std::pair< xAOD::CaloCluster *, bool >> &tracksClusters, CellIt beginRing, CellIt endRing, eflowRecTrack &theTrack, const bool &addCPData) const
Definition: eflowCellSubtractionFacilitator.cxx:151
CellIt
std::map< eflowCellPosition, std::vector< std::pair< const CaloCell *, int > > >::iterator CellIt
Definition: eflowAbstractCellList.h:25
eflowCellList::mapSize
int mapSize()
Definition: eflowCellList.h:70
eflowCalo::LAYER
LAYER
Definition: eflowCaloRegions.h:36
CaloCell
Data object for each calorimeter readout cell.
Definition: CaloCell.h:57
xAOD::CaloCluster_v1::getOwnCellLinks
CaloClusterCellLink * getOwnCellLinks()
Get a pointer to the owned CaloClusterCellLink object (non-const version)
Definition: CaloCluster_v1.h:762
AthMessaging::m_nm
std::string m_nm
Message source name.
Definition: AthMessaging.h:129
CaloClusterKineHelper::calculateKine
static void calculateKine(xAOD::CaloCluster *clu, const bool useweight=true, const bool updateLayers=true, const bool useGPUCriteria=false)
Helper class to calculate cluster kinematics based on cells.
Definition: CaloClusterKineHelper.cxx:223
eflowCellList::getLowerBound
CellIt getLowerBound(eflowCaloENUM layer, double r)
Definition: eflowCellList.h:59
MCP::ScaleSmearParam::r1
@ r1
python.AutoConfigFlags.msg
msg
Definition: AutoConfigFlags.py:7
xAOD::CaloCluster_v1::e
virtual double e() const
The total energy of the particle.
Definition: CaloCluster_v1.cxx:265
xAOD::CaloCluster_v1::setRawPhi
void setRawPhi(flt_t)
Set for signal state UNCALIBRATED.
Definition: CaloCluster_v1.cxx:294
eflowCellSubtractionFacilitator::getCellIterator
static CaloClusterCellLink::iterator getCellIterator(xAOD::CaloCluster *thisCluster, const CaloCell *thisCell)
Definition: eflowCellSubtractionFacilitator.cxx:394