Loading [MathJax]/jax/output/SVG/config.js
ATLAS Offline Software
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
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 
106  //We don't advance the iterator, theCell, because we call removeCell. This avoids issues with
107  //invalid iterators that would otherwise occur and cause only a subset of cells to be processed.
108  //We also have to reset the lastCell iterator after each call to ensure the loop exits at the end,
109  //instead of being stuck in an infinite loop.
110  for (; theFirstCell != theLastCell;){
111  if (addCPData) theTrack.addSubtractedCaloCell(ElementLink<CaloCellContainer>("AllCalo",theFirstCell.index()),theFirstCell.weight());
112  thisCluster->removeCell(*theFirstCell);
113  theLastCell = theCellLink->end();
114  }
115  thisCluster->setCalE(0.0);
116  thisCluster->setRawE(0.0);
117  // set the subtracted status to true
118  thisPair.second = true;
119  }
120  annFlag = true;
121 }

◆ getCellIterator()

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

Definition at line 400 of file eflowCellSubtractionFacilitator.cxx.

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

◆ 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 257 of file eflowCellSubtractionFacilitator.cxx.

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

◆ 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 334 of file eflowCellSubtractionFacilitator.cxx.

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

◆ 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 157 of file eflowCellSubtractionFacilitator.cxx.

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

◆ 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 124 of file eflowCellSubtractionFacilitator.cxx.

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

◆ 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 299 of file eflowCellSubtractionFacilitator.cxx.

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

◆ 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 184 of file eflowCellSubtractionFacilitator.cxx.

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

◆ 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:184
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:299
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:257
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:124
skel.it
it
Definition: skel.GENtoEVGEN.py:407
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:62
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:877
columnar::ContainerId::cluster
@ cluster
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:157
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:765
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:400