ATLAS Offline Software
Classes | Public Types | Public Member Functions | Protected Member Functions | Private Types | Private Member Functions | Static Private Member Functions | Private Attributes | List of all members
ZDC::RpdSubtractCentroidTool Class Referenceabstract

#include <RpdSubtractCentroidTool.h>

Inheritance diagram for ZDC::RpdSubtractCentroidTool:
Collaboration diagram for ZDC::RpdSubtractCentroidTool:

Classes

struct  RPDChannelData
 

Public Types

enum  {
  ValidBit = 0, HasCentroidBit = 1, ZDCInvalidBit = 2, InsufficientZDCEnergyBit = 3,
  ExcessiveZDCEnergyBit = 4, EMInvalidBit = 5, InsufficientEMEnergyBit = 6, ExcessiveEMEnergyBit = 7,
  RPDInvalidBit = 8, PileupBit = 9, ExcessivePileupBit = 10, ZeroSumBit = 11,
  ExcessiveSubtrUnderflowBit = 12, Row0ValidBit = 13, Row1ValidBit = 14, Row2ValidBit = 15,
  Row3ValidBit = 16, Col0ValidBit = 17, Col1ValidBit = 18, Col2ValidBit = 19,
  Col3ValidBit = 20, N_STATUS_BITS
}
 

Public Member Functions

 RpdSubtractCentroidTool (const std::string &name)
 
 ~RpdSubtractCentroidTool () override=default
 
 RpdSubtractCentroidTool (RpdSubtractCentroidTool const &)=delete
 
RpdSubtractCentroidTooloperator= (RpdSubtractCentroidTool const &)=delete
 
 RpdSubtractCentroidTool (RpdSubtractCentroidTool &&)=delete
 
RpdSubtractCentroidTooloperator= (RpdSubtractCentroidTool &&)=delete
 
StatusCode initialize () override
 Dummy implementation of the initialisation function. More...
 
StatusCode recoZdcModules (const xAOD::ZdcModuleContainer &moduleContainer, const xAOD::ZdcModuleContainer &moduleSumContainer) override
 
StatusCode reprocessZdc () override
 
virtual void print () const =0
 Print the state of the tool. More...
 
virtual void print () const
 Print the state of the tool. More...
 
ServiceHandle< StoreGateSvc > & evtStore ()
 The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc. More...
 
const ServiceHandle< StoreGateSvc > & evtStore () const
 The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc. More...
 
const ServiceHandle< StoreGateSvc > & detStore () const
 The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc. More...
 
virtual StatusCode sysInitialize () override
 Perform system initialization for an algorithm. More...
 
virtual StatusCode sysStart () override
 Handle START transition. More...
 
virtual std::vector< Gaudi::DataHandle * > inputHandles () const override
 Return this algorithm's input handles. More...
 
virtual std::vector< Gaudi::DataHandle * > outputHandles () const override
 Return this algorithm's output handles. More...
 
Gaudi::Details::PropertyBase & declareProperty (Gaudi::Property< T > &t)
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, SG::VarHandleKey &hndl, const std::string &doc, const SG::VarHandleKeyType &)
 Declare a new Gaudi property. More...
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, SG::VarHandleBase &hndl, const std::string &doc, const SG::VarHandleType &)
 Declare a new Gaudi property. More...
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, SG::VarHandleKeyArray &hndArr, const std::string &doc, const SG::VarHandleKeyArrayType &)
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, T &property, const std::string &doc, const SG::NotHandleType &)
 Declare a new Gaudi property. More...
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, T &property, const std::string &doc="none")
 Declare a new Gaudi property. More...
 
void updateVHKA (Gaudi::Details::PropertyBase &)
 
MsgStream & msg () const
 
MsgStream & msg (const MSG::Level lvl) const
 
bool msgLvl (const MSG::Level lvl) const
 

Protected Member Functions

void renounceArray (SG::VarHandleKeyArray &handlesArray)
 remove all handles from I/O resolution More...
 
std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > renounce (T &h)
 
void extraDeps_update_handler (Gaudi::Details::PropertyBase &ExtraDeps)
 Add StoreName to extra input/output deps as needed. More...
 

Private Types

enum  SubstepStatus { SubstepStatus::Success, SubstepStatus::Failure, SubstepStatus::SkipEvent }
 cosine of difference between reaction plane angles of the two sides More...
 
typedef ServiceHandle< StoreGateSvcStoreGateSvc_t
 

Private Member Functions

StatusCode initializeKey (std::string const &containerName, SG::ReadDecorHandleKey< xAOD::ZdcModuleContainer > &readHandleKey, std::string const &key)
 
StatusCode initializeKey (std::string const &containerName, SG::WriteDecorHandleKey< xAOD::ZdcModuleContainer > &writeHandleKey, std::string const &key)
 
void reset ()
 
SubstepStatus readAOD (xAOD::ZdcModuleContainer const &moduleContainer, xAOD::ZdcModuleContainer const &moduleSumContainer)
 
bool checkZdcRpdValidity (unsigned int side)
 
bool subtractRpdAmplitudes (unsigned int side)
 
void calculateDetectorCentroid (unsigned int side)
 
void geometryCorrection (unsigned int side)
 
void subtractAverageCentroid (unsigned int side)
 
void calculateReactionPlaneAngle (unsigned int side)
 
void writeAOD (xAOD::ZdcModuleContainer const &moduleSumContainer) const
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
 specialization for handling Gaudi::Property<SG::VarHandleKey> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleKeyArrayType &)
 specialization for handling Gaudi::Property<SG::VarHandleKeyArray> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleType &)
 specialization for handling Gaudi::Property<SG::VarHandleBase> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &t, const SG::NotHandleType &)
 specialization for handling everything that's not a Gaudi::Property<SG::VarHandleKey> or a <SG::VarHandleKeyArray> More...
 

Static Private Member Functions

static bool nonNegative (float const x)
 
static bool anyNonNegative (std::vector< float > const &v)
 

Private Attributes

std::string m_configuration
 
std::string m_ZDCModuleContainerName
 
std::string m_ZDCSumContainerName
 
bool m_writeAux
 
std::string m_auxSuffix
 
RPDUtils::OptionalToolProperty< std::vector< float > > m_forceMinZDCEnergy
 
RPDUtils::OptionalToolProperty< std::vector< float > > m_forceMaxZDCEnergy
 
RPDUtils::OptionalToolProperty< std::vector< float > > m_forceMinEMEnergy
 
RPDUtils::OptionalToolProperty< std::vector< float > > m_forceMaxEMEnergy
 
RPDUtils::OptionalToolProperty< std::vector< float > > m_forcePileupMaxFrac
 
RPDUtils::OptionalToolProperty< std::vector< float > > m_forceMaximumNegativeSubtrAmpFrac
 
RPDUtils::OptionalToolProperty< bool > m_forceUseRPDSumAdc
 
RPDUtils::OptionalToolProperty< bool > m_forceUseCalibDecorations
 
std::vector< float > m_minZDCEnergy
 
std::vector< float > m_maxZDCEnergy
 
std::vector< float > m_minEMEnergy
 
std::vector< float > m_maxEMEnergy
 
std::vector< float > m_pileupMaxFrac
 
std::vector< float > m_maximumNegativeSubtrAmpFrac
 
bool m_useRPDSumAdc
 
bool m_useCalibDecorations
 
bool m_initialized = false
 
bool m_readZDCDecorations = false
 
std::array< std::bitset< RPDDataAnalyzer::N_STATUS_BITS >, 2 > m_RPDSideStatus {}
 
std::optional< std::array< unsigned int, 2 > > m_ZDCSideStatus
 RPD analysis status word on each side. More...
 
std::optional< std::array< float, 2 > > m_ZDCFinalEnergy
 ZDC analysis status on each side. More...
 
std::optional< std::array< float, 2 > > m_EMCalibEnergy
 ZDC final (calibrated) energy on each side. More...
 
std::optional< std::array< std::bitset< ZDCPulseAnalyzer::N_STATUS_BITS >, 2 > > m_EMStatus
 EM calibrated energy on each side. More...
 
std::array< std::array< std::array< RPDChannelData, RPDUtils::nCols >, RPDUtils::nRows >, 2 > m_RPDChannelData {}
 EM modlue status word on each side. More...
 
std::array< float, 2 > m_alignmentXOffset {}
 RPD channel data for each channel (first index row, then index column) on each side. More...
 
std::array< float, 2 > m_alignmentYOffset {}
 geometry + crossing angle correction in x (ATLAS coordinates) More...
 
std::array< float, 2 > m_avgXCentroid {}
 geometry + crossing angle correction in y (ATLAS coordinates) More...
 
std::array< float, 2 > m_avgYCentroid {}
 average x centroid More...
 
bool m_eventValid = false
 average y centroid More...
 
std::array< std::bitset< N_STATUS_BITS >, 2 > m_centroidStatus {1 << ValidBit, 1 << ValidBit}
 event status More...
 
std::array< std::vector< float >, 2 > m_subtrAmp
 centroid status (valid by default) on each side More...
 
std::array< std::array< float, RPDUtils::nRows >, 2 > m_subtrAmpRowSum {}
 subtracted amplitude for each channel on each side More...
 
std::array< std::array< float, RPDUtils::nCols >, 2 > m_subtrAmpColSum {}
 subtracted amplitude for each row on each side More...
 
std::array< float, 2 > m_subtrAmpSum {}
 subtracted amplitude for each column on each side More...
 
std::array< float, 2 > m_xCentroidPreGeomCorPreAvgSubtr {}
 subtracted amplitude sum on each side More...
 
std::array< float, 2 > m_yCentroidPreGeomCorPreAvgSubtr {}
 x centroid before geomerty correction and before average subtraction (RPD detector coordinates) on each side More...
 
std::array< float, 2 > m_xCentroidPreAvgSubtr {}
 y centroid before geomerty correction and before average subtraction (RPD detector coordinates) on each side More...
 
std::array< float, 2 > m_yCentroidPreAvgSubtr {}
 x centroid after geomerty correction and before average subtraction on each side More...
 
std::array< float, 2 > m_xCentroid {}
 y centroid after geomerty correction and before average subtraction on each side More...
 
std::array< float, 2 > m_yCentroid {}
 x centroid after geomerty correction and after average subtraction on each side More...
 
std::array< std::vector< float >, 2 > m_xRowCentroid
 y centroid after geomerty correction and after average subtraction on each side More...
 
std::array< std::vector< float >, 2 > m_yColCentroid
 the x centroid for each row on each side More...
 
std::array< float, 2 > m_reactionPlaneAngle {}
 the y centroid for each column on each side More...
 
float m_cosDeltaReactionPlaneAngle = 0
 reaction plane angle on each side More...
 
SG::ReadHandleKey< xAOD::EventInfom_eventInfoKey
 
SG::ReadDecorHandleKey< xAOD::ZdcModuleContainerm_xposRelKey
 
SG::ReadDecorHandleKey< xAOD::ZdcModuleContainerm_yposRelKey
 
SG::ReadDecorHandleKey< xAOD::ZdcModuleContainerm_rowKey
 
SG::ReadDecorHandleKey< xAOD::ZdcModuleContainerm_colKey
 
SG::ReadDecorHandleKey< xAOD::ZdcModuleContainerm_ZDCModuleCalibEnergyKey
 
SG::ReadDecorHandleKey< xAOD::ZdcModuleContainerm_ZDCModuleStatusKey
 
SG::ReadDecorHandleKey< xAOD::ZdcModuleContainerm_RPDChannelAmplitudeKey
 
SG::ReadDecorHandleKey< xAOD::ZdcModuleContainerm_RPDChannelAmplitudeCalibKey
 
SG::ReadDecorHandleKey< xAOD::ZdcModuleContainerm_RPDChannelMaxADCKey
 
SG::ReadDecorHandleKey< xAOD::ZdcModuleContainerm_RPDChannelMaxADCCalibKey
 
SG::ReadDecorHandleKey< xAOD::ZdcModuleContainerm_RPDChannelPileupFracKey
 
SG::ReadDecorHandleKey< xAOD::ZdcModuleContainerm_RPDChannelStatusKey
 
SG::ReadDecorHandleKey< xAOD::ZdcModuleContainerm_RPDSideStatusKey
 
SG::ReadDecorHandleKey< xAOD::ZdcModuleContainerm_ZDCFinalEnergyKey
 
SG::ReadDecorHandleKey< xAOD::ZdcModuleContainerm_ZDCStatusKey
 
SG::WriteDecorHandleKey< xAOD::ZdcModuleContainerm_centroidEventValidKey
 
SG::WriteDecorHandleKey< xAOD::ZdcModuleContainerm_centroidStatusKey
 
SG::WriteDecorHandleKey< xAOD::ZdcModuleContainerm_RPDChannelSubtrAmpKey
 
SG::WriteDecorHandleKey< xAOD::ZdcModuleContainerm_RPDSubtrAmpSumKey
 
SG::WriteDecorHandleKey< xAOD::ZdcModuleContainerm_xCentroidPreGeomCorPreAvgSubtrKey
 
SG::WriteDecorHandleKey< xAOD::ZdcModuleContainerm_yCentroidPreGeomCorPreAvgSubtrKey
 
SG::WriteDecorHandleKey< xAOD::ZdcModuleContainerm_xCentroidPreAvgSubtrKey
 
SG::WriteDecorHandleKey< xAOD::ZdcModuleContainerm_yCentroidPreAvgSubtrKey
 
SG::WriteDecorHandleKey< xAOD::ZdcModuleContainerm_xCentroidKey
 
SG::WriteDecorHandleKey< xAOD::ZdcModuleContainerm_yCentroidKey
 
SG::WriteDecorHandleKey< xAOD::ZdcModuleContainerm_xRowCentroidKey
 
SG::WriteDecorHandleKey< xAOD::ZdcModuleContainerm_yColCentroidKey
 
SG::WriteDecorHandleKey< xAOD::ZdcModuleContainerm_reactionPlaneAngleKey
 
SG::WriteDecorHandleKey< xAOD::ZdcModuleContainerm_cosDeltaReactionPlaneAngleKey
 
StoreGateSvc_t m_evtStore
 Pointer to StoreGate (event store by default) More...
 
StoreGateSvc_t m_detStore
 Pointer to StoreGate (detector store by default) More...
 
std::vector< SG::VarHandleKeyArray * > m_vhka
 
bool m_varHandleArraysDeclared
 

Detailed Description

Definition at line 25 of file RpdSubtractCentroidTool.h.

Member Typedef Documentation

◆ StoreGateSvc_t

typedef ServiceHandle<StoreGateSvc> AthCommonDataStore< AthCommonMsg< AlgTool > >::StoreGateSvc_t
privateinherited

Definition at line 388 of file AthCommonDataStore.h.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
Enumerator
ValidBit 
HasCentroidBit 
ZDCInvalidBit 
InsufficientZDCEnergyBit 
ExcessiveZDCEnergyBit 
EMInvalidBit 
InsufficientEMEnergyBit 
ExcessiveEMEnergyBit 
RPDInvalidBit 
PileupBit 
ExcessivePileupBit 
ZeroSumBit 
ExcessiveSubtrUnderflowBit 
Row0ValidBit 
Row1ValidBit 
Row2ValidBit 
Row3ValidBit 
Col0ValidBit 
Col1ValidBit 
Col2ValidBit 
Col3ValidBit 
N_STATUS_BITS 

Definition at line 28 of file RpdSubtractCentroidTool.h.

28  {
29  ValidBit = 0, // analysis and output are valid
30  HasCentroidBit = 1, // centroid was calculated but analysis is invalid
31  ZDCInvalidBit = 2, // ZDC analysis on this side failed => analysis is invalid
32  InsufficientZDCEnergyBit = 3, // ZDC energy on this side is below minimum => analysis is invalid
33  ExcessiveZDCEnergyBit = 4, // ZDC energy on this side is above maximum => analysis is invalid
34  EMInvalidBit = 5, // EM analysis on this side failed => analysis is invalid
35  InsufficientEMEnergyBit = 6, // EM energy on this side is below minimum => analysis is invalid
36  ExcessiveEMEnergyBit = 7, // EM energy on this side is above maximum => analysis is invalid
37  RPDInvalidBit = 8, // RPD analysis on this side was invalid => calculation stopped and analysis is invalid
38  PileupBit = 9, // pileup was detected in RPD on this side
39  ExcessivePileupBit = 10, // pileup was detected in RPD on this side and a channel exceeded the fractional limit => analysis is invalid
40  ZeroSumBit = 11, // sum of subtracted RPD amplitudes on this side was not positive => calculation stopped and analysis is invalid
41  ExcessiveSubtrUnderflowBit = 12, // a subtracted RPD amplitude on this side was negative and exceeded the fractional limit => analysis is invalid
42 
43  Row0ValidBit = 13, // row 0 x centroid is valid
44  Row1ValidBit = 14, // row 1 x centroid is valid
45  Row2ValidBit = 15, // row 2 x centroid is valid
46  Row3ValidBit = 16, // row 3 x centroid is valid
47  Col0ValidBit = 17, // column 0 y centroid is valid
48  Col1ValidBit = 18, // column 1 y centroid is valid
49  Col2ValidBit = 19, // column 2 y centroid is valid
50  Col3ValidBit = 20, // column 3 y centroid is valid
51 
53  };

◆ SubstepStatus

cosine of difference between reaction plane angles of the two sides

Enumerator
Success 
Failure 
SkipEvent 

Definition at line 167 of file RpdSubtractCentroidTool.h.

167  {
168  Success, // continue to next step
169  Failure, // stop (do not proceed to next step) and propagate error to Athena
170  SkipEvent, // stop (do not proceed to next step) and tell Athena the event was a success
171  };

Constructor & Destructor Documentation

◆ RpdSubtractCentroidTool() [1/3]

ZDC::RpdSubtractCentroidTool::RpdSubtractCentroidTool ( const std::string &  name)
explicit

Definition at line 18 of file RpdSubtractCentroidTool.cxx.

20 {
21  declareProperty("ZDCModuleContainerName", m_ZDCModuleContainerName = "ZdcModules", "Location of ZDC processed data");
22  declareProperty("ZDCSumContainerName", m_ZDCSumContainerName = "ZdcSums", "Location of ZDC processed sums");
23  declareProperty("Configuration", m_configuration = "default");
24  declareProperty("WriteAux", m_writeAux = true, "If true, write AOD decorations");
25  declareProperty("AuxSuffix", m_auxSuffix = "", "Suffix to add to AOD decorations for reading and writing");
26  declareProperty("MinZDCEnergy", m_forceMinZDCEnergy, "Minimum (calibrated) ZDC energy for valid centroid (negative to disable); per side");
27  declareProperty("MaxZDCEnergy", m_forceMaxZDCEnergy, "Maximum (calibrated) ZDC energy for valid centroid (negative to disable); per side");
28  declareProperty("MinEMEnergy", m_forceMinEMEnergy, "Minimum (calibrated) EM energy for valid centroid (negative to disable); per side");
29  declareProperty("MaxEMEnergy", m_forceMaxEMEnergy, "Minimum (calibrated) EM energy for valid centroid (negative to disable); per side");
30  declareProperty("PileupMaxFrac", m_forcePileupMaxFrac, "Maximum fractional pileup allowed in an RPD channel for valid centroid; per side");
31  declareProperty("ExcessiveSubtrUnderflowFrac", m_forceMaximumNegativeSubtrAmpFrac, "If any RPD channel subtracted amplitude is negative and its fraction of subtracted amplitude sum is greater than or equal to this number, the centroid is invalid; per side");
32  declareProperty("UseRPDSumAdc", m_forceUseRPDSumAdc, "If true, use RPD channel sum ADC for centroid calculation, else use RPD channel max ADC");
33  declareProperty("UseCalibDecorations", m_forceUseCalibDecorations, "If true, use RPD channel sum/max ADC decorations with output calibration factors applied during reconstruction, else use decorations with raw values");
34 }

◆ ~RpdSubtractCentroidTool()

ZDC::RpdSubtractCentroidTool::~RpdSubtractCentroidTool ( )
overridedefault

◆ RpdSubtractCentroidTool() [2/3]

ZDC::RpdSubtractCentroidTool::RpdSubtractCentroidTool ( RpdSubtractCentroidTool const )
delete

◆ RpdSubtractCentroidTool() [3/3]

ZDC::RpdSubtractCentroidTool::RpdSubtractCentroidTool ( RpdSubtractCentroidTool &&  )
delete

Member Function Documentation

◆ anyNonNegative()

static bool ZDC::RpdSubtractCentroidTool::anyNonNegative ( std::vector< float > const v)
inlinestaticprivate

Definition at line 99 of file RpdSubtractCentroidTool.h.

99 { return std::any_of(v.begin(), v.end(), nonNegative); }

◆ calculateDetectorCentroid()

void ZDC::RpdSubtractCentroidTool::calculateDetectorCentroid ( unsigned int  side)
private

Definition at line 387 of file RpdSubtractCentroidTool.cxx.

387  {
388  for (unsigned int col = 0; col < RPDUtils::nCols; col++) {
390  }
391 
392  for (unsigned int row = 0; row < RPDUtils::nRows; row++) {
394  }
395 
396  for (unsigned int row = 0; row < RPDUtils::nRows; row++) {
397  if (m_subtrAmpRowSum.at(side).at(row) <= 0) continue;
398  for (unsigned int col = 0; col < RPDUtils::nCols; col++) {
399  m_xRowCentroid.at(side).at(row) += m_RPDChannelData.at(side).at(row).at(col).subtrAmp*m_RPDChannelData.at(side).at(row).at(col).xposRel/m_subtrAmpRowSum.at(side).at(row);
400  }
401  m_centroidStatus.at(side).set(Row0ValidBit + row, true);
402  }
403 
404  for (unsigned int col = 0; col < RPDUtils::nCols; col++) {
405  if (m_subtrAmpColSum.at(side).at(col) <= 0) continue;
406  for (unsigned int row = 0; row < RPDUtils::nRows; row++) {
407  m_yColCentroid.at(side).at(col) += m_RPDChannelData.at(side).at(row).at(col).subtrAmp*m_RPDChannelData.at(side).at(row).at(col).yposRel/m_subtrAmpColSum.at(side).at(col);
408  }
409  m_centroidStatus.at(side).set(Col0ValidBit + col, true);
410  }
411 }

◆ calculateReactionPlaneAngle()

void ZDC::RpdSubtractCentroidTool::calculateReactionPlaneAngle ( unsigned int  side)
private

Definition at line 424 of file RpdSubtractCentroidTool.cxx.

424  {
425  auto angle = std::atan2(m_yCentroid.at(side), m_xCentroid.at(side));
426  // our angles are now simply the angle of the centroid in ATLAS coordinates on either side
427  // however, we expect correlated deflection, so we want the difference between the angles
428  // to be small when the centroids are in opposite quadrants of the two RPDs
429  // therefore, we add pi to side A (chosen arbitrarily)
431  // also, restrict to [-pi, pi)
432  // we choose this rather than (-pi, pi] for ease of binning the edge case +/- pi
435 }

◆ checkZdcRpdValidity()

bool ZDC::RpdSubtractCentroidTool::checkZdcRpdValidity ( unsigned int  side)
private

Definition at line 292 of file RpdSubtractCentroidTool.cxx.

292  {
293  if (m_readZDCDecorations) {
294  if (!m_ZDCSideStatus->at(side)) {
295  // zdc bad
296  m_centroidStatus.at(side).set(ZDCInvalidBit, true);
297  m_centroidStatus.at(side).set(ValidBit, false);
298  } else {
299  // zdc good
300  if (m_ZDCFinalEnergy->at(side) < m_minZDCEnergy.at(side)) {
302  m_centroidStatus.at(side).set(ValidBit, false);
303  }
304  if (m_ZDCFinalEnergy->at(side) > m_maxZDCEnergy.at(side)) {
306  m_centroidStatus.at(side).set(ValidBit, false);
307  }
308  }
309 
311  // em bad
312  m_centroidStatus.at(side).set(EMInvalidBit, true);
313  m_centroidStatus.at(side).set(ValidBit, false);
314  } else {
315  // em good
316  if (m_EMCalibEnergy->at(side) < m_minEMEnergy.at(side)) {
318  m_centroidStatus.at(side).set(ValidBit, false);
319  }
320  if (m_EMCalibEnergy->at(side) > m_maxEMEnergy.at(side)) {
322  m_centroidStatus.at(side).set(ValidBit, false);
323  }
324  }
325  }
326 
328  m_centroidStatus.at(side).set(PileupBit, true);
329  }
330 
331  for (unsigned int row = 0; row < RPDUtils::nRows; row++) {
332  for (unsigned int col = 0; col < RPDUtils::nCols; col++) {
333  if (m_RPDChannelData.at(side).at(row).at(col).pileupFrac > m_pileupMaxFrac.at(side)) {
335  m_centroidStatus.at(side).set(ValidBit, false);
336  }
337  }
338  }
339 
341  m_centroidStatus.at(side).set(RPDInvalidBit, true);
342  m_centroidStatus.at(side).set(ValidBit, false);
343  return false;
344  }
345 
346  return true;
347 }

◆ declareGaudiProperty() [1/4]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< AlgTool > >::declareGaudiProperty ( Gaudi::Property< T > &  hndl,
const SG::VarHandleKeyArrayType  
)
inlineprivateinherited

specialization for handling Gaudi::Property<SG::VarHandleKeyArray>

Definition at line 170 of file AthCommonDataStore.h.

172  {
173  return *AthCommonDataStore<PBASE>::declareProperty(hndl.name(),
174  hndl.value(),
175  hndl.documentation());
176 
177  }

◆ declareGaudiProperty() [2/4]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< AlgTool > >::declareGaudiProperty ( Gaudi::Property< T > &  hndl,
const SG::VarHandleKeyType  
)
inlineprivateinherited

specialization for handling Gaudi::Property<SG::VarHandleKey>

Definition at line 156 of file AthCommonDataStore.h.

158  {
159  return *AthCommonDataStore<PBASE>::declareProperty(hndl.name(),
160  hndl.value(),
161  hndl.documentation());
162 
163  }

◆ declareGaudiProperty() [3/4]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< AlgTool > >::declareGaudiProperty ( Gaudi::Property< T > &  hndl,
const SG::VarHandleType  
)
inlineprivateinherited

specialization for handling Gaudi::Property<SG::VarHandleBase>

Definition at line 184 of file AthCommonDataStore.h.

186  {
187  return *AthCommonDataStore<PBASE>::declareProperty(hndl.name(),
188  hndl.value(),
189  hndl.documentation());
190  }

◆ declareGaudiProperty() [4/4]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< AlgTool > >::declareGaudiProperty ( Gaudi::Property< T > &  t,
const SG::NotHandleType  
)
inlineprivateinherited

specialization for handling everything that's not a Gaudi::Property<SG::VarHandleKey> or a <SG::VarHandleKeyArray>

Definition at line 199 of file AthCommonDataStore.h.

200  {
201  return PBASE::declareProperty(t);
202  }

◆ declareProperty() [1/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( const std::string &  name,
SG::VarHandleBase hndl,
const std::string &  doc,
const SG::VarHandleType  
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
hndlObject holding the property value.
docDocumentation string for the property.

This is the version for types that derive from SG::VarHandleBase. The property value object is put on the input and output lists as appropriate; then we forward to the base class.

Definition at line 245 of file AthCommonDataStore.h.

249  {
250  this->declare(hndl.vhKey());
251  hndl.vhKey().setOwner(this);
252 
253  return PBASE::declareProperty(name,hndl,doc);
254  }

◆ declareProperty() [2/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( const std::string &  name,
SG::VarHandleKey hndl,
const std::string &  doc,
const SG::VarHandleKeyType  
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
hndlObject holding the property value.
docDocumentation string for the property.

This is the version for types that derive from SG::VarHandleKey. The property value object is put on the input and output lists as appropriate; then we forward to the base class.

Definition at line 221 of file AthCommonDataStore.h.

225  {
226  this->declare(hndl);
227  hndl.setOwner(this);
228 
229  return PBASE::declareProperty(name,hndl,doc);
230  }

◆ declareProperty() [3/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( const std::string &  name,
SG::VarHandleKeyArray hndArr,
const std::string &  doc,
const SG::VarHandleKeyArrayType  
)
inlineinherited

Definition at line 259 of file AthCommonDataStore.h.

263  {
264 
265  // std::ostringstream ost;
266  // ost << Algorithm::name() << " VHKA declareProp: " << name
267  // << " size: " << hndArr.keys().size()
268  // << " mode: " << hndArr.mode()
269  // << " vhka size: " << m_vhka.size()
270  // << "\n";
271  // debug() << ost.str() << endmsg;
272 
273  hndArr.setOwner(this);
274  m_vhka.push_back(&hndArr);
275 
276  Gaudi::Details::PropertyBase* p = PBASE::declareProperty(name, hndArr, doc);
277  if (p != 0) {
278  p->declareUpdateHandler(&AthCommonDataStore<PBASE>::updateVHKA, this);
279  } else {
280  ATH_MSG_ERROR("unable to call declareProperty on VarHandleKeyArray "
281  << name);
282  }
283 
284  return p;
285 
286  }

◆ declareProperty() [4/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( const std::string &  name,
T &  property,
const std::string &  doc,
const SG::NotHandleType  
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
propertyObject holding the property value.
docDocumentation string for the property.

This is the generic version, for types that do not derive from SG::VarHandleKey. It just forwards to the base class version of declareProperty.

Definition at line 333 of file AthCommonDataStore.h.

337  {
338  return PBASE::declareProperty(name, property, doc);
339  }

◆ declareProperty() [5/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( const std::string &  name,
T &  property,
const std::string &  doc = "none" 
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
propertyObject holding the property value.
docDocumentation string for the property.

This dispatches to either the generic declareProperty or the one for VarHandle/Key/KeyArray.

Definition at line 352 of file AthCommonDataStore.h.

355  {
356  typedef typename SG::HandleClassifier<T>::type htype;
357  return declareProperty (name, property, doc, htype());
358  }

◆ declareProperty() [6/6]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( Gaudi::Property< T > &  t)
inlineinherited

Definition at line 145 of file AthCommonDataStore.h.

145  {
146  typedef typename SG::HandleClassifier<T>::type htype;
148  }

◆ detStore()

const ServiceHandle<StoreGateSvc>& AthCommonDataStore< AthCommonMsg< AlgTool > >::detStore ( ) const
inlineinherited

The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 95 of file AthCommonDataStore.h.

95 { return m_detStore; }

◆ evtStore() [1/2]

ServiceHandle<StoreGateSvc>& AthCommonDataStore< AthCommonMsg< AlgTool > >::evtStore ( )
inlineinherited

The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 85 of file AthCommonDataStore.h.

85 { return m_evtStore; }

◆ evtStore() [2/2]

const ServiceHandle<StoreGateSvc>& AthCommonDataStore< AthCommonMsg< AlgTool > >::evtStore ( ) const
inlineinherited

The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 90 of file AthCommonDataStore.h.

90 { return m_evtStore; }

◆ extraDeps_update_handler()

void AthCommonDataStore< AthCommonMsg< AlgTool > >::extraDeps_update_handler ( Gaudi::Details::PropertyBase &  ExtraDeps)
protectedinherited

Add StoreName to extra input/output deps as needed.

use the logic of the VarHandleKey to parse the DataObjID keys supplied via the ExtraInputs and ExtraOuputs Properties to add the StoreName if it's not explicitly given

◆ geometryCorrection()

void ZDC::RpdSubtractCentroidTool::geometryCorrection ( unsigned int  side)
private

ROTATIONS CORRECTIONS GO HERE

Definition at line 413 of file RpdSubtractCentroidTool.cxx.

◆ getKey()

SG::sgkey_t asg::AsgTool::getKey ( const void *  ptr) const
inherited

Get the (hashed) key of an object that is in the event store.

This is a bit of a special one. StoreGateSvc and xAOD::TEvent both provide ways for getting the SG::sgkey_t key for an object that is in the store, based on a bare pointer. But they provide different interfaces for doing so.

In order to allow tools to efficiently perform this operation, they can use this helper function.

See also
asg::AsgTool::getName
Parameters
ptrThe bare pointer to the object that the event store should know about
Returns
The hashed key of the object in the store. If not found, an invalid (zero) key.

Definition at line 119 of file AsgTool.cxx.

119  {
120 
121 #ifdef XAOD_STANDALONE
122  // In case we use @c xAOD::TEvent, we have a direct function call
123  // for this.
124  return evtStore()->event()->getKey( ptr );
125 #else
126  const SG::DataProxy* proxy = evtStore()->proxy( ptr );
127  return ( proxy == nullptr ? 0 : proxy->sgkey() );
128 #endif // XAOD_STANDALONE
129  }

◆ getName()

const std::string & asg::AsgTool::getName ( const void *  ptr) const
inherited

Get the name of an object that is / should be in the event store.

This is a bit of a special one. StoreGateSvc and xAOD::TEvent both provide ways for getting the std::string name for an object that is in the store, based on a bare pointer. But they provide different interfaces for doing so.

In order to allow tools to efficiently perform this operation, they can use this helper function.

See also
asg::AsgTool::getKey
Parameters
ptrThe bare pointer to the object that the event store should know about
Returns
The string name of the object in the store. If not found, an empty string.

Definition at line 106 of file AsgTool.cxx.

106  {
107 
108 #ifdef XAOD_STANDALONE
109  // In case we use @c xAOD::TEvent, we have a direct function call
110  // for this.
111  return evtStore()->event()->getName( ptr );
112 #else
113  const SG::DataProxy* proxy = evtStore()->proxy( ptr );
114  static const std::string dummy = "";
115  return ( proxy == nullptr ? dummy : proxy->name() );
116 #endif // XAOD_STANDALONE
117  }

◆ getProperty()

template<class T >
const T* asg::AsgTool::getProperty ( const std::string &  name) const
inherited

Get one of the tool's properties.

◆ initialize()

StatusCode ZDC::RpdSubtractCentroidTool::initialize ( )
overridevirtual

Dummy implementation of the initialisation function.

It's here to allow the dual-use tools to skip defining an initialisation function. Since many are doing so...

Reimplemented from asg::AsgTool.

Definition at line 46 of file RpdSubtractCentroidTool.cxx.

46  {
47  // first initialize reconstruction parameters from config string
48  if (m_configuration == "default" || m_configuration == "pp2023" || m_configuration == "PbPb2023") {
49  m_minZDCEnergy = {-1.0, -1.0};
50  m_maxZDCEnergy = {-1.0, -1.0};
51  m_minEMEnergy = {-1.0, -1.0};
52  m_maxEMEnergy = {-1.0, -1.0};
53  m_pileupMaxFrac = {1.0, 1.0};
54  m_maximumNegativeSubtrAmpFrac = {1.0, 1.0};
55  m_useRPDSumAdc = true;
56  m_useCalibDecorations = true;
57  } else if (m_configuration == "pp2024" || m_configuration == "PbPb2024") {
58  m_minZDCEnergy = {-1.0, -1.0};
59  m_maxZDCEnergy = {-1.0, -1.0};
60  m_minEMEnergy = {-1.0, -1.0};
61  m_maxEMEnergy = {-1.0, -1.0};
62  m_pileupMaxFrac = {1.0, 1.0};
63  m_maximumNegativeSubtrAmpFrac = {1.0, 1.0};
64  m_useRPDSumAdc = true;
65  m_useCalibDecorations = true;
66  }
67  // then overwrite inidividual parameters from configuration if any were provided
70  }
73  }
76  }
79  }
82  }
85  }
88  }
91  }
92 
93  // if any ZDC/EM energy threshold is nonnegative, ZDC decorations must be read
95 
96  for (auto const side : RPDUtils::sides) {
97  if (m_minZDCEnergy.at(side) < 0) m_minZDCEnergy.at(side) = -std::numeric_limits<float>::infinity();
98  if (m_maxZDCEnergy.at(side) < 0) m_maxZDCEnergy.at(side) = std::numeric_limits<float>::infinity();
99  if (m_minEMEnergy.at(side) < 0) m_minEMEnergy.at(side) = -std::numeric_limits<float>::infinity();
100  if (m_maxEMEnergy.at(side) < 0) m_maxEMEnergy.at(side) = std::numeric_limits<float>::infinity();
101  }
102 
103  ATH_MSG_DEBUG("RpdSubtractCentroidTool reconstruction parameters:");
104  ATH_MSG_DEBUG("config = " << m_configuration);
105  ATH_MSG_DEBUG("minZDCEnergy = " << RPDUtils::vecToString(m_minZDCEnergy));
106  ATH_MSG_DEBUG("maxZDCEnergy = " << RPDUtils::vecToString(m_maxZDCEnergy));
107  ATH_MSG_DEBUG("minEMEnergy = " << RPDUtils::vecToString(m_minEMEnergy));
108  ATH_MSG_DEBUG("maxEMEnergy = " << RPDUtils::vecToString(m_maxEMEnergy));
109  ATH_MSG_DEBUG("pileupMaxFrac = " << RPDUtils::vecToString(m_pileupMaxFrac));
110  ATH_MSG_DEBUG("maximumNegativeSubtrAmpFrac = " << RPDUtils::vecToString(m_maximumNegativeSubtrAmpFrac));
111  ATH_MSG_DEBUG("useRPDSumAdc = " << m_useRPDSumAdc);
112  ATH_MSG_DEBUG("useCalibDecorations = " << m_useCalibDecorations);
113 
114  if (m_readZDCDecorations) {
115  ATH_MSG_DEBUG("RpdSubtractCentroidTool is configured to check ZDC or EM energy; ZDC-related ReadDecorHandleKey's will be initialized");
116  m_ZDCSideStatus = {0, 0};
117  m_ZDCFinalEnergy = {0, 0};
118  m_EMCalibEnergy = {0, 0};
119  m_EMStatus = {0, 0};
120  }
121 
123 
124  // zdc modules read keys
129 
130  if (m_readZDCDecorations) {
133  }
140 
141  // zdc sums read keys
143  if (m_readZDCDecorations) {
146  }
147 
148  // zdc sums write keys
163 
164  if (m_writeAux && !m_auxSuffix.empty()) {
165  ATH_MSG_DEBUG("suffix string = " << m_auxSuffix);
166  }
167 
168  m_initialized = true;
169 
170  return StatusCode::SUCCESS;
171 }

◆ initializeKey() [1/2]

StatusCode ZDC::RpdSubtractCentroidTool::initializeKey ( std::string const containerName,
SG::ReadDecorHandleKey< xAOD::ZdcModuleContainer > &  readHandleKey,
std::string const key 
)
private

Definition at line 36 of file RpdSubtractCentroidTool.cxx.

36  {
37  readHandleKey = containerName + key + m_auxSuffix;
38  return readHandleKey.initialize();
39 }

◆ initializeKey() [2/2]

StatusCode ZDC::RpdSubtractCentroidTool::initializeKey ( std::string const containerName,
SG::WriteDecorHandleKey< xAOD::ZdcModuleContainer > &  writeHandleKey,
std::string const key 
)
private

Definition at line 41 of file RpdSubtractCentroidTool.cxx.

41  {
42  writeHandleKey = containerName + key + m_auxSuffix;
43  return writeHandleKey.initialize();
44 }

◆ inputHandles()

virtual std::vector<Gaudi::DataHandle*> AthCommonDataStore< AthCommonMsg< AlgTool > >::inputHandles ( ) const
overridevirtualinherited

Return this algorithm's input handles.

We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.

◆ msg() [1/2]

MsgStream& AthCommonMsg< AlgTool >::msg ( ) const
inlineinherited

Definition at line 24 of file AthCommonMsg.h.

24  {
25  return this->msgStream();
26  }

◆ msg() [2/2]

MsgStream& AthCommonMsg< AlgTool >::msg ( const MSG::Level  lvl) const
inlineinherited

Definition at line 27 of file AthCommonMsg.h.

27  {
28  return this->msgStream(lvl);
29  }

◆ msg_level_name()

const std::string & asg::AsgTool::msg_level_name ( ) const
inherited

A deprecated function for getting the message level's name.

Instead of using this, weirdly named function, user code should get the string name of the current minimum message level (in case they really need it...), with:

MSG::name( msg().level() )

This function's name doesn't follow the ATLAS coding rules, and as such will be removed in the not too distant future.

Returns
The string name of the current minimum message level that's printed

Definition at line 101 of file AsgTool.cxx.

101  {
102 
103  return MSG::name( msg().level() );
104  }

◆ msgLvl()

bool AthCommonMsg< AlgTool >::msgLvl ( const MSG::Level  lvl) const
inlineinherited

Definition at line 30 of file AthCommonMsg.h.

30  {
31  return this->msgLevel(lvl);
32  }

◆ nonNegative()

static bool ZDC::RpdSubtractCentroidTool::nonNegative ( float const  x)
inlinestaticprivate

Definition at line 98 of file RpdSubtractCentroidTool.h.

98 { return x >= 0; }

◆ operator=() [1/2]

RpdSubtractCentroidTool& ZDC::RpdSubtractCentroidTool::operator= ( RpdSubtractCentroidTool &&  )
delete

◆ operator=() [2/2]

RpdSubtractCentroidTool& ZDC::RpdSubtractCentroidTool::operator= ( RpdSubtractCentroidTool const )
delete

◆ outputHandles()

virtual std::vector<Gaudi::DataHandle*> AthCommonDataStore< AthCommonMsg< AlgTool > >::outputHandles ( ) const
overridevirtualinherited

Return this algorithm's output handles.

We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.

◆ print() [1/2]

void asg::AsgTool::print ( ) const
virtualinherited

◆ print() [2/2]

virtual void asg::IAsgTool::print ( ) const
pure virtualinherited

◆ readAOD()

RpdSubtractCentroidTool::SubstepStatus ZDC::RpdSubtractCentroidTool::readAOD ( xAOD::ZdcModuleContainer const moduleContainer,
xAOD::ZdcModuleContainer const moduleSumContainer 
)
private

Definition at line 195 of file RpdSubtractCentroidTool.cxx.

195  {
196  // initialize read handles from read handle keys
198  if (!eventInfo.isValid()) {
199  return SubstepStatus::Failure;
200  }
201  // RPD decorations are always needed
202  if (eventInfo->isEventFlagBitSet(xAOD::EventInfo::ForwardDet, ZdcEventInfo::RPDDECODINGERROR)) {
203  ATH_MSG_WARNING("RPD decoding error found - abandoning RPD centroid reco!");
205  }
206  // ZDC decorations are sometimes needed
208  ATH_MSG_WARNING("ZDC decoding error found - abandoning RPD centroid reco!");
210  }
211 
223  std::optional<SG::ReadDecorHandle<xAOD::ZdcModuleContainer, float>> zdcModuleCalibEnergyHandle;
224  std::optional<SG::ReadDecorHandle<xAOD::ZdcModuleContainer, unsigned int>> zdcModuleStatusHandle;
225  std::optional<SG::ReadDecorHandle<xAOD::ZdcModuleContainer, float>> zdcFinalEnergyHandle;
226  std::optional<SG::ReadDecorHandle<xAOD::ZdcModuleContainer, unsigned int>> zdcStatusHandle;
227  if (m_readZDCDecorations) {
232  }
233 
234  ATH_MSG_DEBUG("Processing modules");
235 
236  for (auto const& zdcModule : moduleContainer) {
237  unsigned int const side = RPDUtils::ZDCSideToSideIndex(zdcModule->zdcSide());
238  if (zdcModule->zdcType() == RPDUtils::ZDCModuleZDCType && zdcModule->zdcModule() == RPDUtils::ZDCModuleEMModule) {
239  // this is a ZDC module and this is an EM module
240  if (m_readZDCDecorations) {
241  m_EMCalibEnergy->at(side) = (*zdcModuleCalibEnergyHandle)(*zdcModule);
242  m_EMStatus->at(side) = (*zdcModuleStatusHandle)(*zdcModule);
243  }
244  } else if (zdcModule->zdcType() == RPDUtils::ZDCModuleRPDType) {
245  // this is a Run 3 RPD module
246  // (it is assumed that this tool will not be invoked otherwise)
247  //
248  if (zdcModule->zdcChannel() < 0 || static_cast<unsigned int>(zdcModule->zdcChannel()) > RPDUtils::nChannels - 1) {
249  ATH_MSG_ERROR("Invalid RPD channel found on side " << side << ": channel number = " << zdcModule->zdcChannel());
250  }
251  // channel numbers are fixed in mapping in ZdcConditions, numbered 0-15
252  unsigned int const channel = zdcModule->zdcChannel();
253  auto const& row = rowHandle(*zdcModule);
254  auto const& col = colHandle(*zdcModule);
255  m_RPDChannelData.at(side).at(row).at(col).channel = channel;
256  m_RPDChannelData.at(side).at(row).at(col).xposRel = xposRelHandle(*zdcModule);
257  m_RPDChannelData.at(side).at(row).at(col).yposRel = yposRelHandle(*zdcModule);
258  m_RPDChannelData.at(side).at(row).at(col).row = rowHandle(*zdcModule);
259  m_RPDChannelData.at(side).at(row).at(col).col = colHandle(*zdcModule);
260  if (m_useRPDSumAdc) {
261  if (m_useCalibDecorations) {
262  m_RPDChannelData.at(side).at(row).at(col).amp = rpdChannelSumAdcCalibHandle(*zdcModule);
263  } else {
264  m_RPDChannelData.at(side).at(row).at(col).amp = rpdChannelSumAdcHandle(*zdcModule);
265  }
266  } else {
267  if (m_useCalibDecorations) {
268  m_RPDChannelData.at(side).at(row).at(col).amp = rpdChannelMaxADCCalibHandle(*zdcModule);
269  } else {
270  m_RPDChannelData.at(side).at(row).at(col).amp = rpdChannelMaxADCHandle(*zdcModule);
271  }
272  }
273  m_RPDChannelData.at(side).at(row).at(col).pileupFrac = rpdChannelPileupFracHandle(*zdcModule);
274  m_RPDChannelData.at(side).at(row).at(col).status = rpdChannelStatusHandle(*zdcModule);
275  }
276  }
277 
278  for (auto const& zdcSum: moduleSumContainer) {
279  if (zdcSum->zdcSide() == RPDUtils::ZDCSumsGlobalZDCSide) {
280  // skip global sum (it's like the side between sides)
281  continue;
282  }
283  unsigned int const side = RPDUtils::ZDCSideToSideIndex(zdcSum->zdcSide());
284  m_RPDSideStatus.at(side) = rpdSideStatusHandle(*zdcSum);
285  if (m_ZDCSideStatus) m_ZDCSideStatus->at(side) = (*zdcStatusHandle)(*zdcSum);
286  if (m_ZDCFinalEnergy) m_ZDCFinalEnergy->at(side) = (*zdcFinalEnergyHandle)(*zdcSum);
287  }
288 
289  return SubstepStatus::Success;
290 }

◆ recoZdcModules()

StatusCode ZDC::RpdSubtractCentroidTool::recoZdcModules ( const xAOD::ZdcModuleContainer moduleContainer,
const xAOD::ZdcModuleContainer moduleSumContainer 
)
overridevirtual

Implements ZDC::IZdcAnalysisTool.

Definition at line 481 of file RpdSubtractCentroidTool.cxx.

481  {
482  if (moduleContainer.empty()) {
483  // no modules - do nothing
484  return StatusCode::SUCCESS;
485  }
486  reset();
487  switch (readAOD(moduleContainer, moduleSumContainer)) {
489  // do nothing - proceed
490  break;
492  // stop and propagate error to Athena
493  return StatusCode::FAILURE;
495  // stop and tell Athena the event was a success
496  return StatusCode::SUCCESS;
497  }
498  for (auto const side : RPDUtils::sides) {
499  if (!checkZdcRpdValidity(side)) continue; // rpd invalid -> don't calculate centroid
500  if (!subtractRpdAmplitudes(side)) continue; // bad total sum -> don't calculate centroid
505  m_centroidStatus.at(side).set(HasCentroidBit, true);
506  }
509  }
511  m_eventValid = true; // event is good for analysis
512  }
513  writeAOD(moduleSumContainer);
514  ATH_MSG_DEBUG("Finishing event processing");
515  return StatusCode::SUCCESS;
516 }

◆ renounce()

std::enable_if_t<std::is_void_v<std::result_of_t<decltype(&T::renounce)(T)> > && !std::is_base_of_v<SG::VarHandleKeyArray, T> && std::is_base_of_v<Gaudi::DataHandle, T>, void> AthCommonDataStore< AthCommonMsg< AlgTool > >::renounce ( T &  h)
inlineprotectedinherited

Definition at line 380 of file AthCommonDataStore.h.

381  {
382  h.renounce();
383  PBASE::renounce (h);
384  }

◆ renounceArray()

void AthCommonDataStore< AthCommonMsg< AlgTool > >::renounceArray ( SG::VarHandleKeyArray handlesArray)
inlineprotectedinherited

remove all handles from I/O resolution

Definition at line 364 of file AthCommonDataStore.h.

364  {
365  handlesArray.renounce();
366  }

◆ reprocessZdc()

StatusCode ZDC::RpdSubtractCentroidTool::reprocessZdc ( )
overridevirtual

Implements ZDC::IZdcAnalysisTool.

Definition at line 518 of file RpdSubtractCentroidTool.cxx.

518  {
519  if (!m_initialized) {
520  ATH_MSG_WARNING("Tool not initialized!");
521  return StatusCode::FAILURE;
522  }
523  ATH_MSG_DEBUG("Trying to retrieve " << m_ZDCModuleContainerName);
524  xAOD::ZdcModuleContainer const* zdcModules = nullptr;
526  xAOD::ZdcModuleContainer const* zdcSums = nullptr;
528  ATH_CHECK(recoZdcModules(*zdcModules, *zdcSums));
529  return StatusCode::SUCCESS;
530 }

◆ reset()

void ZDC::RpdSubtractCentroidTool::reset ( )
private

◆ subtractAverageCentroid()

void ZDC::RpdSubtractCentroidTool::subtractAverageCentroid ( unsigned int  side)
private

Definition at line 419 of file RpdSubtractCentroidTool.cxx.

◆ subtractRpdAmplitudes()

bool ZDC::RpdSubtractCentroidTool::subtractRpdAmplitudes ( unsigned int  side)
private

Definition at line 349 of file RpdSubtractCentroidTool.cxx.

349  {
350  for (unsigned int row = 0; row < RPDUtils::nRows; row++) {
351  for (unsigned int col = 0; col < RPDUtils::nCols; col++) {
352  float subtrAmp {};
353  if (row == RPDUtils::nRows - 1) {
354  // top row -> nothing to subtract
355  subtrAmp = m_RPDChannelData.at(side).at(row).at(col).amp;
356  } else {
357  // other rows -> subtract the tile above this one
358  subtrAmp = m_RPDChannelData.at(side).at(row).at(col).amp - m_RPDChannelData.at(side).at(row + 1).at(col).amp;
359  }
360  m_RPDChannelData.at(side).at(row).at(col).subtrAmp = subtrAmp;
361  m_subtrAmp.at(side).at(m_RPDChannelData.at(side).at(row).at(col).channel) = subtrAmp;
362  m_subtrAmpRowSum.at(side).at(row) += subtrAmp;
363  m_subtrAmpColSum.at(side).at(col) += subtrAmp;
364  m_subtrAmpSum.at(side) += subtrAmp;
365  }
366  }
367 
368  if (m_subtrAmpSum.at(side) <= 0) {
369  m_centroidStatus.at(side).set(ZeroSumBit, true);
370  m_centroidStatus.at(side).set(ValidBit, false);
371  return false;
372  }
373 
374  for (unsigned int row = 0; row < RPDUtils::nRows; row++) {
375  for (unsigned int col = 0; col < RPDUtils::nCols; col++) {
376  const float &subtrAmp = m_RPDChannelData.at(side).at(row).at(col).subtrAmp;
377  if (subtrAmp < 0 && -subtrAmp/m_subtrAmpSum.at(side) > m_maximumNegativeSubtrAmpFrac.at(side)) {
379  m_centroidStatus.at(side).set(ValidBit, false);
380  }
381  }
382  }
383 
384  return true;
385 }

◆ sysInitialize()

virtual StatusCode AthCommonDataStore< AthCommonMsg< AlgTool > >::sysInitialize ( )
overridevirtualinherited

Perform system initialization for an algorithm.

We override this to declare all the elements of handle key arrays at the end of initialization. See comments on updateVHKA.

Reimplemented in DerivationFramework::CfAthAlgTool, AthCheckedComponent< AthAlgTool >, AthCheckedComponent<::AthAlgTool >, and asg::AsgMetadataTool.

◆ sysStart()

virtual StatusCode AthCommonDataStore< AthCommonMsg< AlgTool > >::sysStart ( )
overridevirtualinherited

Handle START transition.

We override this in order to make sure that conditions handle keys can cache a pointer to the conditions container.

◆ updateVHKA()

void AthCommonDataStore< AthCommonMsg< AlgTool > >::updateVHKA ( Gaudi::Details::PropertyBase &  )
inlineinherited

Definition at line 308 of file AthCommonDataStore.h.

308  {
309  // debug() << "updateVHKA for property " << p.name() << " " << p.toString()
310  // << " size: " << m_vhka.size() << endmsg;
311  for (auto &a : m_vhka) {
312  std::vector<SG::VarHandleKey*> keys = a->keys();
313  for (auto k : keys) {
314  k->setOwner(this);
315  }
316  }
317  }

◆ writeAOD()

void ZDC::RpdSubtractCentroidTool::writeAOD ( xAOD::ZdcModuleContainer const moduleSumContainer) const
private

Definition at line 437 of file RpdSubtractCentroidTool.cxx.

437  {
438  if (!m_writeAux) return;
439  ATH_MSG_DEBUG("Adding variables with suffix = " + m_auxSuffix);
440 
441  // initialize write handles from write handle keys
456 
457  for (auto const& zdcSum: moduleSumContainer) {
458  if (zdcSum->zdcSide() == RPDUtils::ZDCSumsGlobalZDCSide) {
459  // global sum container
460  // event status is bool, but stored as char to save disk space
461  centroidEventValidHandle(*zdcSum) = static_cast<char>(m_eventValid);
462  cosDeltaReactionPlaneAngleHandle(*zdcSum) = m_cosDeltaReactionPlaneAngle;
463  continue;
464  }
465  unsigned int const side = RPDUtils::ZDCSideToSideIndex(zdcSum->zdcSide());
466  centroidStatusHandle(*zdcSum) = static_cast<unsigned int>(m_centroidStatus.at(side).to_ulong());
467  rpdChannelSubtrAmpHandle(*zdcSum) = m_subtrAmp.at(side);
468  rpdSubtrAmpSumHandle(*zdcSum) = m_subtrAmpSum.at(side);
469  xCentroidPreGeomCorPreAvgSubtrHandle(*zdcSum) = m_xCentroidPreGeomCorPreAvgSubtr.at(side);
470  yCentroidPreGeomCorPreAvgSubtrHandle(*zdcSum) = m_yCentroidPreGeomCorPreAvgSubtr.at(side);
471  xCentroidPreAvgSubtrHandle(*zdcSum) = m_xCentroidPreAvgSubtr.at(side);
472  yCentroidPreAvgSubtrHandle(*zdcSum) = m_yCentroidPreAvgSubtr.at(side);
473  xCentroidHandle(*zdcSum) = m_xCentroid.at(side);
474  yCentroidHandle(*zdcSum) = m_yCentroid.at(side);
475  xRowCentroidHandle(*zdcSum) = m_xRowCentroid.at(side);
476  yColCentroidHandle(*zdcSum) = m_yColCentroid.at(side);
477  reactionPlaneAngleHandle(*zdcSum) = m_reactionPlaneAngle.at(side);
478  }
479 }

Member Data Documentation

◆ m_alignmentXOffset

std::array<float, 2> ZDC::RpdSubtractCentroidTool::m_alignmentXOffset {}
private

RPD channel data for each channel (first index row, then index column) on each side.

Definition at line 128 of file RpdSubtractCentroidTool.h.

◆ m_alignmentYOffset

std::array<float, 2> ZDC::RpdSubtractCentroidTool::m_alignmentYOffset {}
private

geometry + crossing angle correction in x (ATLAS coordinates)

Definition at line 129 of file RpdSubtractCentroidTool.h.

◆ m_auxSuffix

std::string ZDC::RpdSubtractCentroidTool::m_auxSuffix
private

Definition at line 75 of file RpdSubtractCentroidTool.h.

◆ m_avgXCentroid

std::array<float, 2> ZDC::RpdSubtractCentroidTool::m_avgXCentroid {}
private

geometry + crossing angle correction in y (ATLAS coordinates)

ROTATIONS GO HERE

Definition at line 134 of file RpdSubtractCentroidTool.h.

◆ m_avgYCentroid

std::array<float, 2> ZDC::RpdSubtractCentroidTool::m_avgYCentroid {}
private

average x centroid

Definition at line 135 of file RpdSubtractCentroidTool.h.

◆ m_centroidEventValidKey

SG::WriteDecorHandleKey<xAOD::ZdcModuleContainer> ZDC::RpdSubtractCentroidTool::m_centroidEventValidKey
private
Initial value:
{
this, "centroidEventValidKey", "",
"Event status: true if both centroids are valid, else false"
}

Definition at line 254 of file RpdSubtractCentroidTool.h.

◆ m_centroidStatus

std::array<std::bitset<N_STATUS_BITS>, 2> ZDC::RpdSubtractCentroidTool::m_centroidStatus {1 << ValidBit, 1 << ValidBit}
private

event status

Definition at line 140 of file RpdSubtractCentroidTool.h.

◆ m_centroidStatusKey

SG::WriteDecorHandleKey<xAOD::ZdcModuleContainer> ZDC::RpdSubtractCentroidTool::m_centroidStatusKey
private
Initial value:
{
this, "centroidStatusKey", "",
"Centroid status word"
}

Definition at line 258 of file RpdSubtractCentroidTool.h.

◆ m_colKey

SG::ReadDecorHandleKey<xAOD::ZdcModuleContainer> ZDC::RpdSubtractCentroidTool::m_colKey
private
Initial value:
{
this, "colKey", "",
"Column index of RPD channel"
}

Definition at line 204 of file RpdSubtractCentroidTool.h.

◆ m_configuration

std::string ZDC::RpdSubtractCentroidTool::m_configuration
private

Definition at line 71 of file RpdSubtractCentroidTool.h.

◆ m_cosDeltaReactionPlaneAngle

float ZDC::RpdSubtractCentroidTool::m_cosDeltaReactionPlaneAngle = 0
private

reaction plane angle on each side

Definition at line 163 of file RpdSubtractCentroidTool.h.

◆ m_cosDeltaReactionPlaneAngleKey

SG::WriteDecorHandleKey<xAOD::ZdcModuleContainer> ZDC::RpdSubtractCentroidTool::m_cosDeltaReactionPlaneAngleKey
private
Initial value:
{
this, "cosDeltaReactionPlaneAngleKey", "",
"Cosine of the difference between the reaction plane angles of the two sides"
}

Definition at line 306 of file RpdSubtractCentroidTool.h.

◆ m_detStore

StoreGateSvc_t AthCommonDataStore< AthCommonMsg< AlgTool > >::m_detStore
privateinherited

Pointer to StoreGate (detector store by default)

Definition at line 393 of file AthCommonDataStore.h.

◆ m_EMCalibEnergy

std::optional<std::array<float, 2> > ZDC::RpdSubtractCentroidTool::m_EMCalibEnergy
private

ZDC final (calibrated) energy on each side.

Definition at line 122 of file RpdSubtractCentroidTool.h.

◆ m_EMStatus

std::optional<std::array<std::bitset<ZDCPulseAnalyzer::N_STATUS_BITS>, 2> > ZDC::RpdSubtractCentroidTool::m_EMStatus
private

EM calibrated energy on each side.

Definition at line 123 of file RpdSubtractCentroidTool.h.

◆ m_eventInfoKey

SG::ReadHandleKey<xAOD::EventInfo> ZDC::RpdSubtractCentroidTool::m_eventInfoKey
private
Initial value:
{
this, "EventInfoKey", "EventInfo",
"Location of the event info"
}

Definition at line 188 of file RpdSubtractCentroidTool.h.

◆ m_eventValid

bool ZDC::RpdSubtractCentroidTool::m_eventValid = false
private

average y centroid

Definition at line 139 of file RpdSubtractCentroidTool.h.

◆ m_evtStore

StoreGateSvc_t AthCommonDataStore< AthCommonMsg< AlgTool > >::m_evtStore
privateinherited

Pointer to StoreGate (event store by default)

Definition at line 390 of file AthCommonDataStore.h.

◆ m_forceMaxEMEnergy

RPDUtils::OptionalToolProperty<std::vector<float> > ZDC::RpdSubtractCentroidTool::m_forceMaxEMEnergy
private

Definition at line 80 of file RpdSubtractCentroidTool.h.

◆ m_forceMaximumNegativeSubtrAmpFrac

RPDUtils::OptionalToolProperty<std::vector<float> > ZDC::RpdSubtractCentroidTool::m_forceMaximumNegativeSubtrAmpFrac
private

Definition at line 82 of file RpdSubtractCentroidTool.h.

◆ m_forceMaxZDCEnergy

RPDUtils::OptionalToolProperty<std::vector<float> > ZDC::RpdSubtractCentroidTool::m_forceMaxZDCEnergy
private

Definition at line 78 of file RpdSubtractCentroidTool.h.

◆ m_forceMinEMEnergy

RPDUtils::OptionalToolProperty<std::vector<float> > ZDC::RpdSubtractCentroidTool::m_forceMinEMEnergy
private

Definition at line 79 of file RpdSubtractCentroidTool.h.

◆ m_forceMinZDCEnergy

RPDUtils::OptionalToolProperty<std::vector<float> > ZDC::RpdSubtractCentroidTool::m_forceMinZDCEnergy
private

Definition at line 77 of file RpdSubtractCentroidTool.h.

◆ m_forcePileupMaxFrac

RPDUtils::OptionalToolProperty<std::vector<float> > ZDC::RpdSubtractCentroidTool::m_forcePileupMaxFrac
private

Definition at line 81 of file RpdSubtractCentroidTool.h.

◆ m_forceUseCalibDecorations

RPDUtils::OptionalToolProperty<bool> ZDC::RpdSubtractCentroidTool::m_forceUseCalibDecorations
private

Definition at line 84 of file RpdSubtractCentroidTool.h.

◆ m_forceUseRPDSumAdc

RPDUtils::OptionalToolProperty<bool> ZDC::RpdSubtractCentroidTool::m_forceUseRPDSumAdc
private

Definition at line 83 of file RpdSubtractCentroidTool.h.

◆ m_initialized

bool ZDC::RpdSubtractCentroidTool::m_initialized = false
private

Definition at line 103 of file RpdSubtractCentroidTool.h.

◆ m_maxEMEnergy

std::vector<float> ZDC::RpdSubtractCentroidTool::m_maxEMEnergy
private

Definition at line 90 of file RpdSubtractCentroidTool.h.

◆ m_maximumNegativeSubtrAmpFrac

std::vector<float> ZDC::RpdSubtractCentroidTool::m_maximumNegativeSubtrAmpFrac
private

Definition at line 92 of file RpdSubtractCentroidTool.h.

◆ m_maxZDCEnergy

std::vector<float> ZDC::RpdSubtractCentroidTool::m_maxZDCEnergy
private

Definition at line 88 of file RpdSubtractCentroidTool.h.

◆ m_minEMEnergy

std::vector<float> ZDC::RpdSubtractCentroidTool::m_minEMEnergy
private

Definition at line 89 of file RpdSubtractCentroidTool.h.

◆ m_minZDCEnergy

std::vector<float> ZDC::RpdSubtractCentroidTool::m_minZDCEnergy
private

Definition at line 87 of file RpdSubtractCentroidTool.h.

◆ m_pileupMaxFrac

std::vector<float> ZDC::RpdSubtractCentroidTool::m_pileupMaxFrac
private

Definition at line 91 of file RpdSubtractCentroidTool.h.

◆ m_reactionPlaneAngle

std::array<float, 2> ZDC::RpdSubtractCentroidTool::m_reactionPlaneAngle {}
private

the y centroid for each column on each side

Definition at line 162 of file RpdSubtractCentroidTool.h.

◆ m_reactionPlaneAngleKey

SG::WriteDecorHandleKey<xAOD::ZdcModuleContainer> ZDC::RpdSubtractCentroidTool::m_reactionPlaneAngleKey
private
Initial value:
{
this, "reactionPlaneAngleKey", "",
"Reaction plane angle in [-pi, pi) from the positive x axis"
}

Definition at line 302 of file RpdSubtractCentroidTool.h.

◆ m_readZDCDecorations

bool ZDC::RpdSubtractCentroidTool::m_readZDCDecorations = false
private

Definition at line 104 of file RpdSubtractCentroidTool.h.

◆ m_rowKey

SG::ReadDecorHandleKey<xAOD::ZdcModuleContainer> ZDC::RpdSubtractCentroidTool::m_rowKey
private
Initial value:
{
this, "rowKey", "",
"Row index of RPD channel"
}

Definition at line 200 of file RpdSubtractCentroidTool.h.

◆ m_RPDChannelAmplitudeCalibKey

SG::ReadDecorHandleKey<xAOD::ZdcModuleContainer> ZDC::RpdSubtractCentroidTool::m_RPDChannelAmplitudeCalibKey
private
Initial value:
{
this, "RPDChannelAmplitudeCalibKey", "",
"Calibrated RPD channel amplitude"
}

Definition at line 220 of file RpdSubtractCentroidTool.h.

◆ m_RPDChannelAmplitudeKey

SG::ReadDecorHandleKey<xAOD::ZdcModuleContainer> ZDC::RpdSubtractCentroidTool::m_RPDChannelAmplitudeKey
private
Initial value:
{
this, "RPDChannelAmplitudeKey", "",
"RPD channel amplitude"
}

Definition at line 216 of file RpdSubtractCentroidTool.h.

◆ m_RPDChannelData

std::array<std::array<std::array<RPDChannelData, RPDUtils::nCols>, RPDUtils::nRows>, 2> ZDC::RpdSubtractCentroidTool::m_RPDChannelData {}
private

EM modlue status word on each side.

Definition at line 124 of file RpdSubtractCentroidTool.h.

◆ m_RPDChannelMaxADCCalibKey

SG::ReadDecorHandleKey<xAOD::ZdcModuleContainer> ZDC::RpdSubtractCentroidTool::m_RPDChannelMaxADCCalibKey
private
Initial value:
{
this, "RPDChannelMaxADCCalibKey", "",
"Calibrated RPD channel max ADC"
}

Definition at line 228 of file RpdSubtractCentroidTool.h.

◆ m_RPDChannelMaxADCKey

SG::ReadDecorHandleKey<xAOD::ZdcModuleContainer> ZDC::RpdSubtractCentroidTool::m_RPDChannelMaxADCKey
private
Initial value:
{
this, "RPDChannelMaxADCKey", "",
"RPD channel max ADC"
}

Definition at line 224 of file RpdSubtractCentroidTool.h.

◆ m_RPDChannelPileupFracKey

SG::ReadDecorHandleKey<xAOD::ZdcModuleContainer> ZDC::RpdSubtractCentroidTool::m_RPDChannelPileupFracKey
private
Initial value:
{
this, "RPDChannelPileupFracKey", "",
"RPD channel (out of time) pileup as a fraction of non-pileup sum"
}

Definition at line 232 of file RpdSubtractCentroidTool.h.

◆ m_RPDChannelStatusKey

SG::ReadDecorHandleKey<xAOD::ZdcModuleContainer> ZDC::RpdSubtractCentroidTool::m_RPDChannelStatusKey
private
Initial value:
{
this, "RPDChannelStatusKey", "",
"RPD channel status word"
}

Definition at line 236 of file RpdSubtractCentroidTool.h.

◆ m_RPDChannelSubtrAmpKey

SG::WriteDecorHandleKey<xAOD::ZdcModuleContainer> ZDC::RpdSubtractCentroidTool::m_RPDChannelSubtrAmpKey
private
Initial value:
{
this, "RPDChannelSubtrAmpKey", "",
"RPD channel subtracted amplitudes (tile mass) used in centroid calculation"
}

Definition at line 262 of file RpdSubtractCentroidTool.h.

◆ m_RPDSideStatus

std::array<std::bitset<RPDDataAnalyzer::N_STATUS_BITS>, 2> ZDC::RpdSubtractCentroidTool::m_RPDSideStatus {}
private

Definition at line 119 of file RpdSubtractCentroidTool.h.

◆ m_RPDSideStatusKey

SG::ReadDecorHandleKey<xAOD::ZdcModuleContainer> ZDC::RpdSubtractCentroidTool::m_RPDSideStatusKey
private
Initial value:
{
this, "RPDStatusKey", "",
"RPD side status word"
}

Definition at line 240 of file RpdSubtractCentroidTool.h.

◆ m_RPDSubtrAmpSumKey

SG::WriteDecorHandleKey<xAOD::ZdcModuleContainer> ZDC::RpdSubtractCentroidTool::m_RPDSubtrAmpSumKey
private
Initial value:
{
this, "RPDSubtrAmpSumKey", "",
"Sum of RPD channel subtracted amplitudes (total mass) used in centroid calculation"
}

Definition at line 266 of file RpdSubtractCentroidTool.h.

◆ m_subtrAmp

std::array<std::vector<float>, 2> ZDC::RpdSubtractCentroidTool::m_subtrAmp
private
Initial value:
= {
std::vector<float>(RPDUtils::nChannels, 0.0),
std::vector<float>(RPDUtils::nChannels, 0.0)
}

centroid status (valid by default) on each side

Definition at line 141 of file RpdSubtractCentroidTool.h.

◆ m_subtrAmpColSum

std::array<std::array<float, RPDUtils::nCols>, 2> ZDC::RpdSubtractCentroidTool::m_subtrAmpColSum {}
private

subtracted amplitude for each row on each side

Definition at line 146 of file RpdSubtractCentroidTool.h.

◆ m_subtrAmpRowSum

std::array<std::array<float, RPDUtils::nRows>, 2> ZDC::RpdSubtractCentroidTool::m_subtrAmpRowSum {}
private

subtracted amplitude for each channel on each side

Definition at line 145 of file RpdSubtractCentroidTool.h.

◆ m_subtrAmpSum

std::array<float, 2> ZDC::RpdSubtractCentroidTool::m_subtrAmpSum {}
private

subtracted amplitude for each column on each side

Definition at line 147 of file RpdSubtractCentroidTool.h.

◆ m_useCalibDecorations

bool ZDC::RpdSubtractCentroidTool::m_useCalibDecorations
private

Definition at line 94 of file RpdSubtractCentroidTool.h.

◆ m_useRPDSumAdc

bool ZDC::RpdSubtractCentroidTool::m_useRPDSumAdc
private

Definition at line 93 of file RpdSubtractCentroidTool.h.

◆ m_varHandleArraysDeclared

bool AthCommonDataStore< AthCommonMsg< AlgTool > >::m_varHandleArraysDeclared
privateinherited

Definition at line 399 of file AthCommonDataStore.h.

◆ m_vhka

std::vector<SG::VarHandleKeyArray*> AthCommonDataStore< AthCommonMsg< AlgTool > >::m_vhka
privateinherited

Definition at line 398 of file AthCommonDataStore.h.

◆ m_writeAux

bool ZDC::RpdSubtractCentroidTool::m_writeAux
private

Definition at line 74 of file RpdSubtractCentroidTool.h.

◆ m_xCentroid

std::array<float, 2> ZDC::RpdSubtractCentroidTool::m_xCentroid {}
private

y centroid after geomerty correction and before average subtraction on each side

Definition at line 152 of file RpdSubtractCentroidTool.h.

◆ m_xCentroidKey

SG::WriteDecorHandleKey<xAOD::ZdcModuleContainer> ZDC::RpdSubtractCentroidTool::m_xCentroidKey
private
Initial value:
{
this, "xCentroidKey", "",
"X centroid after geometry corrections and after average centroid subtraction"
}

Definition at line 286 of file RpdSubtractCentroidTool.h.

◆ m_xCentroidPreAvgSubtr

std::array<float, 2> ZDC::RpdSubtractCentroidTool::m_xCentroidPreAvgSubtr {}
private

y centroid before geomerty correction and before average subtraction (RPD detector coordinates) on each side

Definition at line 150 of file RpdSubtractCentroidTool.h.

◆ m_xCentroidPreAvgSubtrKey

SG::WriteDecorHandleKey<xAOD::ZdcModuleContainer> ZDC::RpdSubtractCentroidTool::m_xCentroidPreAvgSubtrKey
private
Initial value:
{
this, "xCentroidPreAvgSubtrKey", "",
"X centroid after geometry corrections and before average centroid subtraction"
}

Definition at line 278 of file RpdSubtractCentroidTool.h.

◆ m_xCentroidPreGeomCorPreAvgSubtr

std::array<float, 2> ZDC::RpdSubtractCentroidTool::m_xCentroidPreGeomCorPreAvgSubtr {}
private

subtracted amplitude sum on each side

Definition at line 148 of file RpdSubtractCentroidTool.h.

◆ m_xCentroidPreGeomCorPreAvgSubtrKey

SG::WriteDecorHandleKey<xAOD::ZdcModuleContainer> ZDC::RpdSubtractCentroidTool::m_xCentroidPreGeomCorPreAvgSubtrKey
private
Initial value:
{
this, "xCentroidPreGeomCorPreAvgSubtrKey", "",
"X centroid before geometry corrections and before average centroid subtraction (RPD detector coordinates)"
}

Definition at line 270 of file RpdSubtractCentroidTool.h.

◆ m_xposRelKey

SG::ReadDecorHandleKey<xAOD::ZdcModuleContainer> ZDC::RpdSubtractCentroidTool::m_xposRelKey
private
Initial value:
{
this, "xposRelKey", "",
"X position of RPD tile center relative to center of RPD active area"
}

Definition at line 192 of file RpdSubtractCentroidTool.h.

◆ m_xRowCentroid

std::array<std::vector<float>, 2> ZDC::RpdSubtractCentroidTool::m_xRowCentroid
private
Initial value:
= {
std::vector<float>(RPDUtils::nRows, 0.0),
std::vector<float>(RPDUtils::nRows, 0.0)
}

y centroid after geomerty correction and after average subtraction on each side

Definition at line 154 of file RpdSubtractCentroidTool.h.

◆ m_xRowCentroidKey

SG::WriteDecorHandleKey<xAOD::ZdcModuleContainer> ZDC::RpdSubtractCentroidTool::m_xRowCentroidKey
private
Initial value:
{
this, "xRowCentroidKey", "",
"Row X centroids before geometry corrections and before average centroid subtraction (RPD detector coordinates)"
}

Definition at line 294 of file RpdSubtractCentroidTool.h.

◆ m_yCentroid

std::array<float, 2> ZDC::RpdSubtractCentroidTool::m_yCentroid {}
private

x centroid after geomerty correction and after average subtraction on each side

Definition at line 153 of file RpdSubtractCentroidTool.h.

◆ m_yCentroidKey

SG::WriteDecorHandleKey<xAOD::ZdcModuleContainer> ZDC::RpdSubtractCentroidTool::m_yCentroidKey
private
Initial value:
{
this, "yCentroidKey", "",
"Y centroid after geometry corrections and after average centroid subtraction"
}

Definition at line 290 of file RpdSubtractCentroidTool.h.

◆ m_yCentroidPreAvgSubtr

std::array<float, 2> ZDC::RpdSubtractCentroidTool::m_yCentroidPreAvgSubtr {}
private

x centroid after geomerty correction and before average subtraction on each side

Definition at line 151 of file RpdSubtractCentroidTool.h.

◆ m_yCentroidPreAvgSubtrKey

SG::WriteDecorHandleKey<xAOD::ZdcModuleContainer> ZDC::RpdSubtractCentroidTool::m_yCentroidPreAvgSubtrKey
private
Initial value:
{
this, "yCentroidPreAvgSubtrKey", "",
"Y centroid after geometry corrections and before average centroid subtraction"
}

Definition at line 282 of file RpdSubtractCentroidTool.h.

◆ m_yCentroidPreGeomCorPreAvgSubtr

std::array<float, 2> ZDC::RpdSubtractCentroidTool::m_yCentroidPreGeomCorPreAvgSubtr {}
private

x centroid before geomerty correction and before average subtraction (RPD detector coordinates) on each side

Definition at line 149 of file RpdSubtractCentroidTool.h.

◆ m_yCentroidPreGeomCorPreAvgSubtrKey

SG::WriteDecorHandleKey<xAOD::ZdcModuleContainer> ZDC::RpdSubtractCentroidTool::m_yCentroidPreGeomCorPreAvgSubtrKey
private
Initial value:
{
this, "yCentroidPreGeomCorPreAvgSubtrKey", "",
"Y centroid before geometry corrections and before average centroid subtraction (RPD detector coordinates)"
}

Definition at line 274 of file RpdSubtractCentroidTool.h.

◆ m_yColCentroid

std::array<std::vector<float>, 2> ZDC::RpdSubtractCentroidTool::m_yColCentroid
private
Initial value:
= {
std::vector<float>(RPDUtils::nCols, 0.0),
std::vector<float>(RPDUtils::nCols, 0.0)
}

the x centroid for each row on each side

Definition at line 158 of file RpdSubtractCentroidTool.h.

◆ m_yColCentroidKey

SG::WriteDecorHandleKey<xAOD::ZdcModuleContainer> ZDC::RpdSubtractCentroidTool::m_yColCentroidKey
private
Initial value:
{
this, "yColCentroidKey", "",
"Column Y centroids before geometry corrections and before average centroid subtraction (RPD detector coordinates)"
}

Definition at line 298 of file RpdSubtractCentroidTool.h.

◆ m_yposRelKey

SG::ReadDecorHandleKey<xAOD::ZdcModuleContainer> ZDC::RpdSubtractCentroidTool::m_yposRelKey
private
Initial value:
{
this, "yposRelKey", "",
"Y position of RPD tile center relative to center of RPD active area"
}

Definition at line 196 of file RpdSubtractCentroidTool.h.

◆ m_ZDCFinalEnergy

std::optional<std::array<float, 2> > ZDC::RpdSubtractCentroidTool::m_ZDCFinalEnergy
private

ZDC analysis status on each side.

Definition at line 121 of file RpdSubtractCentroidTool.h.

◆ m_ZDCFinalEnergyKey

SG::ReadDecorHandleKey<xAOD::ZdcModuleContainer> ZDC::RpdSubtractCentroidTool::m_ZDCFinalEnergyKey
private
Initial value:
{
this, "FinalEnergyKey", "",
"ZDC final energy"
}

Definition at line 244 of file RpdSubtractCentroidTool.h.

◆ m_ZDCModuleCalibEnergyKey

SG::ReadDecorHandleKey<xAOD::ZdcModuleContainer> ZDC::RpdSubtractCentroidTool::m_ZDCModuleCalibEnergyKey
private
Initial value:
{
this, "CalibEnergyKey", "",
"ZDC module amplitude"
}

Definition at line 208 of file RpdSubtractCentroidTool.h.

◆ m_ZDCModuleContainerName

std::string ZDC::RpdSubtractCentroidTool::m_ZDCModuleContainerName
private

Definition at line 72 of file RpdSubtractCentroidTool.h.

◆ m_ZDCModuleStatusKey

SG::ReadDecorHandleKey<xAOD::ZdcModuleContainer> ZDC::RpdSubtractCentroidTool::m_ZDCModuleStatusKey
private
Initial value:
{
this, "ZDCModuleStatusKey", "",
"ZDC module status word"
}

Definition at line 212 of file RpdSubtractCentroidTool.h.

◆ m_ZDCSideStatus

std::optional<std::array<unsigned int, 2> > ZDC::RpdSubtractCentroidTool::m_ZDCSideStatus
private

RPD analysis status word on each side.

Definition at line 120 of file RpdSubtractCentroidTool.h.

◆ m_ZDCStatusKey

SG::ReadDecorHandleKey<xAOD::ZdcModuleContainer> ZDC::RpdSubtractCentroidTool::m_ZDCStatusKey
private
Initial value:
{
this, "ZDCStatusKey", "",
"ZDC sum status word"
}

Definition at line 248 of file RpdSubtractCentroidTool.h.

◆ m_ZDCSumContainerName

std::string ZDC::RpdSubtractCentroidTool::m_ZDCSumContainerName
private

Definition at line 73 of file RpdSubtractCentroidTool.h.


The documentation for this class was generated from the following files:
python.PyKernel.retrieve
def retrieve(aClass, aKey=None)
Definition: PyKernel.py:110
RPDUtils::vecToString
std::string vecToString(std::vector< T > const &v)
Definition: RPDUtils.cxx:57
ZDC::RpdSubtractCentroidTool::PileupBit
@ PileupBit
Definition: RpdSubtractCentroidTool.h:38
ZDC::RpdSubtractCentroidTool::m_RPDChannelMaxADCCalibKey
SG::ReadDecorHandleKey< xAOD::ZdcModuleContainer > m_RPDChannelMaxADCCalibKey
Definition: RpdSubtractCentroidTool.h:228
query_example.row
row
Definition: query_example.py:24
ZDC::RpdSubtractCentroidTool::checkZdcRpdValidity
bool checkZdcRpdValidity(unsigned int side)
Definition: RpdSubtractCentroidTool.cxx:292
ZDC::RpdSubtractCentroidTool::m_ZDCFinalEnergyKey
SG::ReadDecorHandleKey< xAOD::ZdcModuleContainer > m_ZDCFinalEnergyKey
Definition: RpdSubtractCentroidTool.h:244
ZDC::RpdSubtractCentroidTool::m_centroidStatus
std::array< std::bitset< N_STATUS_BITS >, 2 > m_centroidStatus
event status
Definition: RpdSubtractCentroidTool.h:140
RPDUtils::nChannels
unsigned constexpr int nChannels
Definition: RPDUtils.h:23
ZDC::RpdSubtractCentroidTool::m_EMStatus
std::optional< std::array< std::bitset< ZDCPulseAnalyzer::N_STATUS_BITS >, 2 > > m_EMStatus
EM calibrated energy on each side.
Definition: RpdSubtractCentroidTool.h:123
ZDC::RpdSubtractCentroidTool::ExcessiveSubtrUnderflowBit
@ ExcessiveSubtrUnderflowBit
Definition: RpdSubtractCentroidTool.h:41
ZDC::RpdSubtractCentroidTool::m_reactionPlaneAngle
std::array< float, 2 > m_reactionPlaneAngle
the y centroid for each column on each side
Definition: RpdSubtractCentroidTool.h:162
ZDC::RpdSubtractCentroidTool::m_forceUseCalibDecorations
RPDUtils::OptionalToolProperty< bool > m_forceUseCalibDecorations
Definition: RpdSubtractCentroidTool.h:84
asg::AsgTool
Base class for the dual-use tool implementation classes.
Definition: AsgTool.h:47
ZDC::RpdSubtractCentroidTool::m_useRPDSumAdc
bool m_useRPDSumAdc
Definition: RpdSubtractCentroidTool.h:93
ZDC::RpdSubtractCentroidTool::m_subtrAmpColSum
std::array< std::array< float, RPDUtils::nCols >, 2 > m_subtrAmpColSum
subtracted amplitude for each row on each side
Definition: RpdSubtractCentroidTool.h:146
ZDC::RpdSubtractCentroidTool::m_RPDChannelMaxADCKey
SG::ReadDecorHandleKey< xAOD::ZdcModuleContainer > m_RPDChannelMaxADCKey
Definition: RpdSubtractCentroidTool.h:224
StateLessPT_NewConfig.proxy
proxy
Definition: StateLessPT_NewConfig.py:392
ZDC::RpdSubtractCentroidTool::m_ZDCFinalEnergy
std::optional< std::array< float, 2 > > m_ZDCFinalEnergy
ZDC analysis status on each side.
Definition: RpdSubtractCentroidTool.h:121
ZDC::RpdSubtractCentroidTool::m_readZDCDecorations
bool m_readZDCDecorations
Definition: RpdSubtractCentroidTool.h:104
ZDC::RpdSubtractCentroidTool::Row0ValidBit
@ Row0ValidBit
Definition: RpdSubtractCentroidTool.h:43
ZDC::RpdSubtractCentroidTool::m_forceMaxEMEnergy
RPDUtils::OptionalToolProperty< std::vector< float > > m_forceMaxEMEnergy
Definition: RpdSubtractCentroidTool.h:80
plotting.yearwise_efficiency.channel
channel
Definition: yearwise_efficiency.py:24
ZDC::RpdSubtractCentroidTool::m_centroidStatusKey
SG::WriteDecorHandleKey< xAOD::ZdcModuleContainer > m_centroidStatusKey
Definition: RpdSubtractCentroidTool.h:258
ZDC::RpdSubtractCentroidTool::m_RPDSideStatus
std::array< std::bitset< RPDDataAnalyzer::N_STATUS_BITS >, 2 > m_RPDSideStatus
Definition: RpdSubtractCentroidTool.h:119
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition: AthMsgStreamMacros.h:31
ZDC::RpdSubtractCentroidTool::m_forcePileupMaxFrac
RPDUtils::OptionalToolProperty< std::vector< float > > m_forcePileupMaxFrac
Definition: RpdSubtractCentroidTool.h:81
ZDC::RpdSubtractCentroidTool::m_RPDChannelSubtrAmpKey
SG::WriteDecorHandleKey< xAOD::ZdcModuleContainer > m_RPDChannelSubtrAmpKey
Definition: RpdSubtractCentroidTool.h:262
ZDC::RpdSubtractCentroidTool::m_forceMinZDCEnergy
RPDUtils::OptionalToolProperty< std::vector< float > > m_forceMinZDCEnergy
Definition: RpdSubtractCentroidTool.h:77
ZDC::RpdSubtractCentroidTool::m_RPDChannelPileupFracKey
SG::ReadDecorHandleKey< xAOD::ZdcModuleContainer > m_RPDChannelPileupFracKey
Definition: RpdSubtractCentroidTool.h:232
ZDC::RpdSubtractCentroidTool::m_reactionPlaneAngleKey
SG::WriteDecorHandleKey< xAOD::ZdcModuleContainer > m_reactionPlaneAngleKey
Definition: RpdSubtractCentroidTool.h:302
ZDC::RpdSubtractCentroidTool::m_RPDSubtrAmpSumKey
SG::WriteDecorHandleKey< xAOD::ZdcModuleContainer > m_RPDSubtrAmpSumKey
Definition: RpdSubtractCentroidTool.h:266
ZDC::RpdSubtractCentroidTool::m_cosDeltaReactionPlaneAngleKey
SG::WriteDecorHandleKey< xAOD::ZdcModuleContainer > m_cosDeltaReactionPlaneAngleKey
Definition: RpdSubtractCentroidTool.h:306
RPDUtils::sides
constexpr std::initializer_list< unsigned int > sides
Definition: RPDUtils.h:17
SG::ReadHandle
Definition: StoreGate/StoreGate/ReadHandle.h:70
ZDC::RpdSubtractCentroidTool::m_auxSuffix
std::string m_auxSuffix
Definition: RpdSubtractCentroidTool.h:75
AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
Definition: AthCommonDataStore.h:145
ZDC::RpdSubtractCentroidTool::readAOD
SubstepStatus readAOD(xAOD::ZdcModuleContainer const &moduleContainer, xAOD::ZdcModuleContainer const &moduleSumContainer)
Definition: RpdSubtractCentroidTool.cxx:195
ZDC::RpdSubtractCentroidTool::subtractAverageCentroid
void subtractAverageCentroid(unsigned int side)
Definition: RpdSubtractCentroidTool.cxx:419
ZDC::RpdSubtractCentroidTool::m_subtrAmp
std::array< std::vector< float >, 2 > m_subtrAmp
centroid status (valid by default) on each side
Definition: RpdSubtractCentroidTool.h:141
ZDC::RpdSubtractCentroidTool::m_RPDSideStatusKey
SG::ReadDecorHandleKey< xAOD::ZdcModuleContainer > m_RPDSideStatusKey
Definition: RpdSubtractCentroidTool.h:240
ZDC::RpdSubtractCentroidTool::recoZdcModules
StatusCode recoZdcModules(const xAOD::ZdcModuleContainer &moduleContainer, const xAOD::ZdcModuleContainer &moduleSumContainer) override
Definition: RpdSubtractCentroidTool.cxx:481
ZDC::RpdSubtractCentroidTool::m_yCentroid
std::array< float, 2 > m_yCentroid
x centroid after geomerty correction and after average subtraction on each side
Definition: RpdSubtractCentroidTool.h:153
ZDC::RpdSubtractCentroidTool::m_minEMEnergy
std::vector< float > m_minEMEnergy
Definition: RpdSubtractCentroidTool.h:89
AthCommonDataStore< AthCommonMsg< AlgTool > >::m_evtStore
StoreGateSvc_t m_evtStore
Pointer to StoreGate (event store by default)
Definition: AthCommonDataStore.h:390
AthCommonDataStore< AthCommonMsg< AlgTool > >::m_vhka
std::vector< SG::VarHandleKeyArray * > m_vhka
Definition: AthCommonDataStore.h:398
RPDUtils::ZDCSumsGlobalZDCSide
constexpr int ZDCSumsGlobalZDCSide
Definition: RPDUtils.h:19
ZDC::RpdSubtractCentroidTool::anyNonNegative
static bool anyNonNegative(std::vector< float > const &v)
Definition: RpdSubtractCentroidTool.h:99
ZDC::RpdSubtractCentroidTool::m_subtrAmpSum
std::array< float, 2 > m_subtrAmpSum
subtracted amplitude for each column on each side
Definition: RpdSubtractCentroidTool.h:147
ZDC::RpdSubtractCentroidTool::SubstepStatus::Failure
@ Failure
ZDC::RPDDataAnalyzer::ValidBit
@ ValidBit
Definition: RPDDataAnalyzer.h:40
ZDC::RpdSubtractCentroidTool::m_RPDChannelData
std::array< std::array< std::array< RPDChannelData, RPDUtils::nCols >, RPDUtils::nRows >, 2 > m_RPDChannelData
EM modlue status word on each side.
Definition: RpdSubtractCentroidTool.h:124
ZDC::RpdSubtractCentroidTool::m_useCalibDecorations
bool m_useCalibDecorations
Definition: RpdSubtractCentroidTool.h:94
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
drawFromPickle.cos
cos
Definition: drawFromPickle.py:36
ZDC::RpdSubtractCentroidTool::m_yColCentroid
std::array< std::vector< float >, 2 > m_yColCentroid
the x centroid for each row on each side
Definition: RpdSubtractCentroidTool.h:158
dbg::ptr
void * ptr(T *p)
Definition: SGImplSvc.cxx:74
ZDC::RpdSubtractCentroidTool::m_configuration
std::string m_configuration
Definition: RpdSubtractCentroidTool.h:71
ZDC::RpdSubtractCentroidTool::m_xCentroidPreAvgSubtr
std::array< float, 2 > m_xCentroidPreAvgSubtr
y centroid before geomerty correction and before average subtraction (RPD detector coordinates) on ea...
Definition: RpdSubtractCentroidTool.h:150
ZDC::RpdSubtractCentroidTool::m_minZDCEnergy
std::vector< float > m_minZDCEnergy
Definition: RpdSubtractCentroidTool.h:87
x
#define x
ZDC::RpdSubtractCentroidTool::m_forceMaximumNegativeSubtrAmpFrac
RPDUtils::OptionalToolProperty< std::vector< float > > m_forceMaximumNegativeSubtrAmpFrac
Definition: RpdSubtractCentroidTool.h:82
ZDC::RpdSubtractCentroidTool::m_forceMinEMEnergy
RPDUtils::OptionalToolProperty< std::vector< float > > m_forceMinEMEnergy
Definition: RpdSubtractCentroidTool.h:79
ZDC::RpdSubtractCentroidTool::Row1ValidBit
@ Row1ValidBit
Definition: RpdSubtractCentroidTool.h:44
pi
#define pi
Definition: TileMuonFitter.cxx:65
ZDC::RpdSubtractCentroidTool::m_colKey
SG::ReadDecorHandleKey< xAOD::ZdcModuleContainer > m_colKey
Definition: RpdSubtractCentroidTool.h:204
ZDC::RpdSubtractCentroidTool::Col3ValidBit
@ Col3ValidBit
Definition: RpdSubtractCentroidTool.h:50
ZDC::RpdSubtractCentroidTool::m_xRowCentroidKey
SG::WriteDecorHandleKey< xAOD::ZdcModuleContainer > m_xRowCentroidKey
Definition: RpdSubtractCentroidTool.h:294
python.iconfTool.models.loaders.level
level
Definition: loaders.py:20
SG::VarHandleKeyArray::setOwner
virtual void setOwner(IDataHandleHolder *o)=0
ZDC::RpdSubtractCentroidTool::m_ZDCStatusKey
SG::ReadDecorHandleKey< xAOD::ZdcModuleContainer > m_ZDCStatusKey
Definition: RpdSubtractCentroidTool.h:248
ZDC::RpdSubtractCentroidTool::m_cosDeltaReactionPlaneAngle
float m_cosDeltaReactionPlaneAngle
reaction plane angle on each side
Definition: RpdSubtractCentroidTool.h:163
IDTPMcnv.htype
htype
Definition: IDTPMcnv.py:27
TRT::Hit::side
@ side
Definition: HitInfo.h:83
ZDC::RpdSubtractCentroidTool::subtractRpdAmplitudes
bool subtractRpdAmplitudes(unsigned int side)
Definition: RpdSubtractCentroidTool.cxx:349
ZDC::RpdSubtractCentroidTool::ExcessiveZDCEnergyBit
@ ExcessiveZDCEnergyBit
Definition: RpdSubtractCentroidTool.h:33
ZDC::RpdSubtractCentroidTool::m_ZDCSideStatus
std::optional< std::array< unsigned int, 2 > > m_ZDCSideStatus
RPD analysis status word on each side.
Definition: RpdSubtractCentroidTool.h:120
ZDC::RpdSubtractCentroidTool::m_forceMaxZDCEnergy
RPDUtils::OptionalToolProperty< std::vector< float > > m_forceMaxZDCEnergy
Definition: RpdSubtractCentroidTool.h:78
ZDC::RpdSubtractCentroidTool::m_yCentroidPreAvgSubtr
std::array< float, 2 > m_yCentroidPreAvgSubtr
x centroid after geomerty correction and before average subtraction on each side
Definition: RpdSubtractCentroidTool.h:151
AthCommonDataStore< AthCommonMsg< AlgTool > >::evtStore
ServiceHandle< StoreGateSvc > & evtStore()
The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.
Definition: AthCommonDataStore.h:85
ZDC::RpdSubtractCentroidTool::ExcessivePileupBit
@ ExcessivePileupBit
Definition: RpdSubtractCentroidTool.h:39
python.utils.AtlRunQueryDQUtils.p
p
Definition: AtlRunQueryDQUtils.py:210
ZDC::RpdSubtractCentroidTool::m_alignmentYOffset
std::array< float, 2 > m_alignmentYOffset
geometry + crossing angle correction in x (ATLAS coordinates)
Definition: RpdSubtractCentroidTool.h:129
AthCommonDataStore
Definition: AthCommonDataStore.h:52
ZDC::RpdSubtractCentroidTool::Col1ValidBit
@ Col1ValidBit
Definition: RpdSubtractCentroidTool.h:48
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
SG::ReadDecorHandle
Handle class for reading a decoration on an object.
Definition: StoreGate/StoreGate/ReadDecorHandle.h:94
ZdcEventInfo::ZDCDECODINGERROR
@ ZDCDECODINGERROR
Definition: ZdcEventInfo.h:19
ZDC::RpdSubtractCentroidTool::m_alignmentXOffset
std::array< float, 2 > m_alignmentXOffset
RPD channel data for each channel (first index row, then index column) on each side.
Definition: RpdSubtractCentroidTool.h:128
SG::ReadDecorHandleKey::initialize
StatusCode initialize(bool used=true)
If this object is used as a property, then this should be called during the initialize phase.
ZDC::RpdSubtractCentroidTool::m_RPDChannelAmplitudeCalibKey
SG::ReadDecorHandleKey< xAOD::ZdcModuleContainer > m_RPDChannelAmplitudeCalibKey
Definition: RpdSubtractCentroidTool.h:220
RPDUtils::OptionalToolProperty::has_value
bool has_value() const
Definition: RPDUtils.cxx:28
ZDC::RpdSubtractCentroidTool::m_xposRelKey
SG::ReadDecorHandleKey< xAOD::ZdcModuleContainer > m_xposRelKey
Definition: RpdSubtractCentroidTool.h:192
ZDC::RpdSubtractCentroidTool::SubstepStatus::SkipEvent
@ SkipEvent
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
ZDC::RpdSubtractCentroidTool::m_yCentroidPreAvgSubtrKey
SG::WriteDecorHandleKey< xAOD::ZdcModuleContainer > m_yCentroidPreAvgSubtrKey
Definition: RpdSubtractCentroidTool.h:282
angle
double angle(const GeoTrf::Vector2D &a, const GeoTrf::Vector2D &b)
Definition: TRTDetectorFactory_Full.cxx:73
ZDC::RpdSubtractCentroidTool::m_eventInfoKey
SG::ReadHandleKey< xAOD::EventInfo > m_eventInfoKey
Definition: RpdSubtractCentroidTool.h:188
SG::WriteDecorHandle
Handle class for adding a decoration to an object.
Definition: StoreGate/StoreGate/WriteDecorHandle.h:100
ZDC::RpdSubtractCentroidTool::ValidBit
@ ValidBit
Definition: RpdSubtractCentroidTool.h:29
ZDC::RpdSubtractCentroidTool::m_ZDCModuleCalibEnergyKey
SG::ReadDecorHandleKey< xAOD::ZdcModuleContainer > m_ZDCModuleCalibEnergyKey
Definition: RpdSubtractCentroidTool.h:208
ZDC::RpdSubtractCentroidTool::m_RPDChannelAmplitudeKey
SG::ReadDecorHandleKey< xAOD::ZdcModuleContainer > m_RPDChannelAmplitudeKey
Definition: RpdSubtractCentroidTool.h:216
ZDC::RpdSubtractCentroidTool::m_maxEMEnergy
std::vector< float > m_maxEMEnergy
Definition: RpdSubtractCentroidTool.h:90
ZDC::RpdSubtractCentroidTool::m_eventValid
bool m_eventValid
average y centroid
Definition: RpdSubtractCentroidTool.h:139
ZDC::RpdSubtractCentroidTool::m_rowKey
SG::ReadDecorHandleKey< xAOD::ZdcModuleContainer > m_rowKey
Definition: RpdSubtractCentroidTool.h:200
python.xAODType.dummy
dummy
Definition: xAODType.py:4
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
MSG::name
const std::string & name(Level lvl)
Convenience function for translating message levels to strings.
Definition: MsgLevel.cxx:19
ZDC::RpdSubtractCentroidTool::m_EMCalibEnergy
std::optional< std::array< float, 2 > > m_EMCalibEnergy
ZDC final (calibrated) energy on each side.
Definition: RpdSubtractCentroidTool.h:122
RPDUtils::OptionalToolProperty::value
T const & value() const
Definition: RPDUtils.cxx:31
AthCommonDataStore< AthCommonMsg< AlgTool > >::m_detStore
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
Definition: AthCommonDataStore.h:393
SG::VarHandleKey::initialize
StatusCode initialize(bool used=true)
If this object is used as a property, then this should be called during the initialize phase.
Definition: AthToolSupport/AsgDataHandles/Root/VarHandleKey.cxx:103
ZDC::RpdSubtractCentroidTool::Col0ValidBit
@ Col0ValidBit
Definition: RpdSubtractCentroidTool.h:47
DataVector
Derived DataVector<T>.
Definition: DataVector.h:581
ZDC::RpdSubtractCentroidTool::m_ZDCModuleContainerName
std::string m_ZDCModuleContainerName
Definition: RpdSubtractCentroidTool.h:72
ZDC::RpdSubtractCentroidTool::reset
void reset()
Definition: RpdSubtractCentroidTool.cxx:173
ZDC::RpdSubtractCentroidTool::m_ZDCModuleStatusKey
SG::ReadDecorHandleKey< xAOD::ZdcModuleContainer > m_ZDCModuleStatusKey
Definition: RpdSubtractCentroidTool.h:212
ZDC::RpdSubtractCentroidTool::m_writeAux
bool m_writeAux
Definition: RpdSubtractCentroidTool.h:74
xAOD::EventInfo_v1::ForwardDet
@ ForwardDet
The forward detectors.
Definition: EventInfo_v1.h:338
ZDC::RpdSubtractCentroidTool::m_RPDChannelStatusKey
SG::ReadDecorHandleKey< xAOD::ZdcModuleContainer > m_RPDChannelStatusKey
Definition: RpdSubtractCentroidTool.h:236
ZDC::RpdSubtractCentroidTool::m_initialized
bool m_initialized
Definition: RpdSubtractCentroidTool.h:103
ZDC::RpdSubtractCentroidTool::InsufficientZDCEnergyBit
@ InsufficientZDCEnergyBit
Definition: RpdSubtractCentroidTool.h:32
RPDUtils::sideA
unsigned constexpr int sideA
Definition: RPDUtils.h:16
SG::VarHandleKeyArray::renounce
virtual void renounce()=0
SG::HandleClassifier::type
std::conditional< std::is_base_of< SG::VarHandleKeyArray, T >::value, VarHandleKeyArrayType, type2 >::type type
Definition: HandleClassifier.h:54
ZDC::RpdSubtractCentroidTool::m_yCentroidPreGeomCorPreAvgSubtrKey
SG::WriteDecorHandleKey< xAOD::ZdcModuleContainer > m_yCentroidPreGeomCorPreAvgSubtrKey
Definition: RpdSubtractCentroidTool.h:274
RPDUtils::nCols
unsigned constexpr int nCols
Definition: RPDUtils.h:25
ZDC::RpdSubtractCentroidTool::m_yCentroidPreGeomCorPreAvgSubtr
std::array< float, 2 > m_yCentroidPreGeomCorPreAvgSubtr
x centroid before geomerty correction and before average subtraction (RPD detector coordinates) on ea...
Definition: RpdSubtractCentroidTool.h:149
ZDC::RpdSubtractCentroidTool::ZeroSumBit
@ ZeroSumBit
Definition: RpdSubtractCentroidTool.h:40
merge_scale_histograms.doc
string doc
Definition: merge_scale_histograms.py:9
ZDC::RpdSubtractCentroidTool::m_xCentroidPreGeomCorPreAvgSubtr
std::array< float, 2 > m_xCentroidPreGeomCorPreAvgSubtr
subtracted amplitude sum on each side
Definition: RpdSubtractCentroidTool.h:148
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:221
ZDC::RpdSubtractCentroidTool::m_yposRelKey
SG::ReadDecorHandleKey< xAOD::ZdcModuleContainer > m_yposRelKey
Definition: RpdSubtractCentroidTool.h:196
ZDC::RpdSubtractCentroidTool::m_ZDCSumContainerName
std::string m_ZDCSumContainerName
Definition: RpdSubtractCentroidTool.h:73
ZDC::RpdSubtractCentroidTool::initializeKey
StatusCode initializeKey(std::string const &containerName, SG::ReadDecorHandleKey< xAOD::ZdcModuleContainer > &readHandleKey, std::string const &key)
Definition: RpdSubtractCentroidTool.cxx:36
RPDUtils::ZDCModuleZDCType
unsigned constexpr int ZDCModuleZDCType
Definition: RPDUtils.h:20
RPDUtils::ZDCModuleEMModule
unsigned constexpr int ZDCModuleEMModule
Definition: RPDUtils.h:22
ZDC::RpdSubtractCentroidTool::RPDInvalidBit
@ RPDInvalidBit
Definition: RpdSubtractCentroidTool.h:37
ZDC::RpdSubtractCentroidTool::m_centroidEventValidKey
SG::WriteDecorHandleKey< xAOD::ZdcModuleContainer > m_centroidEventValidKey
Definition: RpdSubtractCentroidTool.h:254
query_example.col
col
Definition: query_example.py:7
ZDC::RpdSubtractCentroidTool::EMInvalidBit
@ EMInvalidBit
Definition: RpdSubtractCentroidTool.h:34
ZDC::RpdSubtractCentroidTool::m_maxZDCEnergy
std::vector< float > m_maxZDCEnergy
Definition: RpdSubtractCentroidTool.h:88
ZDC::RpdSubtractCentroidTool::Col2ValidBit
@ Col2ValidBit
Definition: RpdSubtractCentroidTool.h:49
ZDC::RpdSubtractCentroidTool::calculateDetectorCentroid
void calculateDetectorCentroid(unsigned int side)
Definition: RpdSubtractCentroidTool.cxx:387
ZDC::RpdSubtractCentroidTool::m_xRowCentroid
std::array< std::vector< float >, 2 > m_xRowCentroid
y centroid after geomerty correction and after average subtraction on each side
Definition: RpdSubtractCentroidTool.h:154
ZDC::RpdSubtractCentroidTool::m_pileupMaxFrac
std::vector< float > m_pileupMaxFrac
Definition: RpdSubtractCentroidTool.h:91
ZDC::RpdSubtractCentroidTool::InsufficientEMEnergyBit
@ InsufficientEMEnergyBit
Definition: RpdSubtractCentroidTool.h:35
python.PyAthena.v
v
Definition: PyAthena.py:154
ZDC::RpdSubtractCentroidTool::m_xCentroidKey
SG::WriteDecorHandleKey< xAOD::ZdcModuleContainer > m_xCentroidKey
Definition: RpdSubtractCentroidTool.h:286
ZDC::RpdSubtractCentroidTool::m_subtrAmpRowSum
std::array< std::array< float, RPDUtils::nRows >, 2 > m_subtrAmpRowSum
subtracted amplitude for each channel on each side
Definition: RpdSubtractCentroidTool.h:145
a
TList * a
Definition: liststreamerinfos.cxx:10
SG::WriteDecorHandleKey::initialize
StatusCode initialize(bool used=true)
If this object is used as a property, then this should be called during the initialize phase.
ZDC::RpdSubtractCentroidTool::Row3ValidBit
@ Row3ValidBit
Definition: RpdSubtractCentroidTool.h:46
h
ZDC::RpdSubtractCentroidTool::m_yColCentroidKey
SG::WriteDecorHandleKey< xAOD::ZdcModuleContainer > m_yColCentroidKey
Definition: RpdSubtractCentroidTool.h:298
ZDC::RpdSubtractCentroidTool::m_xCentroidPreGeomCorPreAvgSubtrKey
SG::WriteDecorHandleKey< xAOD::ZdcModuleContainer > m_xCentroidPreGeomCorPreAvgSubtrKey
Definition: RpdSubtractCentroidTool.h:270
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition: AthMsgStreamMacros.h:32
ZDC::RpdSubtractCentroidTool::m_maximumNegativeSubtrAmpFrac
std::vector< float > m_maximumNegativeSubtrAmpFrac
Definition: RpdSubtractCentroidTool.h:92
AthCommonMsg< AlgTool >::msg
MsgStream & msg() const
Definition: AthCommonMsg.h:24
RPDUtils::sideC
unsigned constexpr int sideC
Definition: RPDUtils.h:15
ZDC::RpdSubtractCentroidTool::writeAOD
void writeAOD(xAOD::ZdcModuleContainer const &moduleSumContainer) const
Definition: RpdSubtractCentroidTool.cxx:437
SG::VarHandleBase::vhKey
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
Definition: StoreGate/src/VarHandleBase.cxx:623
python.Bindings.keys
keys
Definition: Control/AthenaPython/python/Bindings.py:798
merge.status
status
Definition: merge.py:17
RPDUtils::nRows
unsigned constexpr int nRows
Definition: RPDUtils.h:24
ZDC::RpdSubtractCentroidTool::geometryCorrection
void geometryCorrection(unsigned int side)
Definition: RpdSubtractCentroidTool.cxx:413
RPDUtils::ZDCSideToSideIndex
unsigned int ZDCSideToSideIndex(int const ZDCSide)
Definition: RPDUtils.cxx:7
ZDCPulseAnalyzer::FailBit
@ FailBit
Definition: ZDCPulseAnalyzer.h:28
ZDC::RpdSubtractCentroidTool::m_forceUseRPDSumAdc
RPDUtils::OptionalToolProperty< bool > m_forceUseRPDSumAdc
Definition: RpdSubtractCentroidTool.h:83
ZDC::RpdSubtractCentroidTool::nonNegative
static bool nonNegative(float const x)
Definition: RpdSubtractCentroidTool.h:98
ZDC::RpdSubtractCentroidTool::calculateReactionPlaneAngle
void calculateReactionPlaneAngle(unsigned int side)
Definition: RpdSubtractCentroidTool.cxx:424
ZDC::RpdSubtractCentroidTool::m_xCentroidPreAvgSubtrKey
SG::WriteDecorHandleKey< xAOD::ZdcModuleContainer > m_xCentroidPreAvgSubtrKey
Definition: RpdSubtractCentroidTool.h:278
ZDC::RpdSubtractCentroidTool::Row2ValidBit
@ Row2ValidBit
Definition: RpdSubtractCentroidTool.h:45
ZDC::RpdSubtractCentroidTool::HasCentroidBit
@ HasCentroidBit
Definition: RpdSubtractCentroidTool.h:30
SG::DataProxy
Definition: DataProxy.h:44
ZDC::RpdSubtractCentroidTool::ZDCInvalidBit
@ ZDCInvalidBit
Definition: RpdSubtractCentroidTool.h:31
AthCommonDataStore::declareGaudiProperty
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition: AthCommonDataStore.h:156
ZDC::RPDDataAnalyzer::OutOfTimePileupBit
@ OutOfTimePileupBit
Definition: RPDDataAnalyzer.h:41
ZDC::RpdSubtractCentroidTool::N_STATUS_BITS
@ N_STATUS_BITS
Definition: RpdSubtractCentroidTool.h:52
ZDC::RpdSubtractCentroidTool::SubstepStatus::Success
@ Success
ZDC::RpdSubtractCentroidTool::m_avgYCentroid
std::array< float, 2 > m_avgYCentroid
average x centroid
Definition: RpdSubtractCentroidTool.h:135
DataVector::empty
bool empty() const noexcept
Returns true if the collection is empty.
ZDC::RpdSubtractCentroidTool::ExcessiveEMEnergyBit
@ ExcessiveEMEnergyBit
Definition: RpdSubtractCentroidTool.h:36
ZDC::RpdSubtractCentroidTool::m_xCentroid
std::array< float, 2 > m_xCentroid
y centroid after geomerty correction and before average subtraction on each side
Definition: RpdSubtractCentroidTool.h:152
ZDC::RpdSubtractCentroidTool::m_avgXCentroid
std::array< float, 2 > m_avgXCentroid
geometry + crossing angle correction in y (ATLAS coordinates)
Definition: RpdSubtractCentroidTool.h:134
RPDUtils::helpZero
void helpZero(Range &v) requires(std
Definition: RPDUtils.h:27
fitman.k
k
Definition: fitman.py:528
RPDUtils::ZDCModuleRPDType
unsigned constexpr int ZDCModuleRPDType
Definition: RPDUtils.h:21
ZDC::RpdSubtractCentroidTool::m_yCentroidKey
SG::WriteDecorHandleKey< xAOD::ZdcModuleContainer > m_yCentroidKey
Definition: RpdSubtractCentroidTool.h:290
ZdcEventInfo::RPDDECODINGERROR
@ RPDDECODINGERROR
Definition: ZdcEventInfo.h:19
mapkey::key
key
Definition: TElectronEfficiencyCorrectionTool.cxx:37