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, V, H > &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::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, V, H > &hndl, const SG::VarHandleKeyType &)
 specialization for handling Gaudi::Property<SG::VarHandleKey> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyArrayType &)
 specialization for handling Gaudi::Property<SG::VarHandleKeyArray> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T, V, H > &hndl, const SG::VarHandleType &)
 specialization for handling Gaudi::Property<SG::VarHandleBase> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T, V, H > &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::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 28 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 31 of file RpdSubtractCentroidTool.h.

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

◆ SubstepStatus

cosine of difference between reaction plane angles of the two sides

Enumerator
Success 
Failure 
SkipEvent 

Definition at line 169 of file RpdSubtractCentroidTool.h.

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

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 101 of file RpdSubtractCentroidTool.h.

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

◆ calculateDetectorCentroid()

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

Definition at line 351 of file RpdSubtractCentroidTool.cxx.

351  {
352  for (unsigned int col = 0; col < RPDUtils::nCols; col++) {
353  m_xCentroidPreGeomCorPreAvgSubtr.at(side) += m_subtrAmpColSum.at(side).at(col)*m_RPDChannelData.at(side).at(0).at(col).xposRel/m_subtrAmpSum.at(side);
354  }
355 
356  for (unsigned int row = 0; row < RPDUtils::nRows; row++) {
358  }
359 
360  for (unsigned int row = 0; row < RPDUtils::nRows; row++) {
361  if (m_subtrAmpRowSum.at(side).at(row) <= 0) continue;
362  for (unsigned int col = 0; col < RPDUtils::nCols; col++) {
363  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);
364  }
365  m_centroidStatus.at(side).set(Row0ValidBit + row, true);
366  }
367 
368  for (unsigned int col = 0; col < RPDUtils::nCols; col++) {
369  if (m_subtrAmpColSum.at(side).at(col) <= 0) continue;
370  for (unsigned int row = 0; row < RPDUtils::nRows; row++) {
371  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);
372  }
373  m_centroidStatus.at(side).set(Col0ValidBit + col, true);
374  }
375 }

◆ calculateReactionPlaneAngle()

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

Definition at line 388 of file RpdSubtractCentroidTool.cxx.

388  {
389  auto angle = std::atan2(m_yCentroid.at(side), m_xCentroid.at(side));
390  // our angles are now simply the angle of the centroid in ATLAS coordinates on either side
391  // however, we expect correlated deflection, so we want the difference between the angles
392  // to be small when the centroids are in opposite quadrants of the two RPDs
393  // therefore, we add pi to side A (chosen arbitrarily)
394  if (side == RPDUtils::sideA) angle += std::numbers::pi_v<float>;
395  // also, restrict to [-pi, pi)
396  // we choose this rather than (-pi, pi] for ease of binning the edge case +/- pi
397  if (angle >= std::numbers::pi) angle -= 2*std::numbers::pi_v<float>;
399 }

◆ checkZdcRpdValidity()

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

Definition at line 256 of file RpdSubtractCentroidTool.cxx.

256  {
257  if (m_readZDCDecorations) {
258  if (m_ZDCSideStatus->at(side) == 0) {
259  // zdc bad
260  m_centroidStatus.at(side).set(ZDCInvalidBit, true);
261  m_centroidStatus.at(side).set(ValidBit, false);
262  } else {
263  // zdc good
264  if (m_ZDCFinalEnergy->at(side) < m_minZDCEnergy.at(side)) {
266  m_centroidStatus.at(side).set(ValidBit, false);
267  }
268  if (m_ZDCFinalEnergy->at(side) > m_maxZDCEnergy.at(side)) {
270  m_centroidStatus.at(side).set(ValidBit, false);
271  }
272  }
273 
275  // em bad
276  m_centroidStatus.at(side).set(EMInvalidBit, true);
277  m_centroidStatus.at(side).set(ValidBit, false);
278  } else {
279  // em good
280  if (m_EMCalibEnergy->at(side) < m_minEMEnergy.at(side)) {
282  m_centroidStatus.at(side).set(ValidBit, false);
283  }
284  if (m_EMCalibEnergy->at(side) > m_maxEMEnergy.at(side)) {
286  m_centroidStatus.at(side).set(ValidBit, false);
287  }
288  }
289  }
290 
292  m_centroidStatus.at(side).set(PileupBit, true);
293  }
294 
295  for (unsigned int row = 0; row < RPDUtils::nRows; row++) {
296  for (unsigned int col = 0; col < RPDUtils::nCols; col++) {
297  if (m_RPDChannelData.at(side).at(row).at(col).pileupFrac > m_pileupMaxFrac.at(side)) {
299  m_centroidStatus.at(side).set(ValidBit, false);
300  }
301  }
302  }
303 
305  m_centroidStatus.at(side).set(RPDInvalidBit, true);
306  m_centroidStatus.at(side).set(ValidBit, false);
307  return false;
308  }
309 
310  return true;
311 }

◆ declareGaudiProperty() [1/4]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< AlgTool > >::declareGaudiProperty ( Gaudi::Property< T, V, H > &  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, V, H > &  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, V, H > &  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, V, H > &  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, V, H > &  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 377 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 41 of file RpdSubtractCentroidTool.cxx.

41  {
42  // first initialize reconstruction parameters
43  m_minZDCEnergy = {-1.0, -1.0};
44  m_maxZDCEnergy = {-1.0, -1.0};
45  m_minEMEnergy = {-1.0, -1.0};
46  m_maxEMEnergy = {-1.0, -1.0};
47  m_pileupMaxFrac = {1.0, 1.0};
48  m_maximumNegativeSubtrAmpFrac = {1.0, 1.0};
49  m_useRPDSumAdc = true;
50  m_useCalibDecorations = true;
51 
52  // then overwrite inidividual parameters from configuration if any were provided
55  }
58  }
61  }
64  }
67  }
70  }
73  }
76  }
77 
78  // if any ZDC/EM energy threshold is nonnegative, ZDC decorations must be read
80 
81  for (auto const side : RPDUtils::sides) {
82  if (m_minZDCEnergy.at(side) < 0) m_minZDCEnergy.at(side) = -std::numeric_limits<float>::infinity();
83  if (m_maxZDCEnergy.at(side) < 0) m_maxZDCEnergy.at(side) = std::numeric_limits<float>::infinity();
84  if (m_minEMEnergy.at(side) < 0) m_minEMEnergy.at(side) = -std::numeric_limits<float>::infinity();
85  if (m_maxEMEnergy.at(side) < 0) m_maxEMEnergy.at(side) = std::numeric_limits<float>::infinity();
86  }
87 
88  ATH_MSG_DEBUG("RpdSubtractCentroidTool reconstruction parameters:");
89  ATH_MSG_DEBUG("config = " << m_configuration);
90  ATH_MSG_DEBUG("minZDCEnergy = " << RPDUtils::vecToString(m_minZDCEnergy));
91  ATH_MSG_DEBUG("maxZDCEnergy = " << RPDUtils::vecToString(m_maxZDCEnergy));
94  ATH_MSG_DEBUG("pileupMaxFrac = " << RPDUtils::vecToString(m_pileupMaxFrac));
95  ATH_MSG_DEBUG("maximumNegativeSubtrAmpFrac = " << RPDUtils::vecToString(m_maximumNegativeSubtrAmpFrac));
96  ATH_MSG_DEBUG("useRPDSumAdc = " << m_useRPDSumAdc);
97  ATH_MSG_DEBUG("useCalibDecorations = " << m_useCalibDecorations);
98 
100  ATH_MSG_DEBUG("RpdSubtractCentroidTool is configured to check ZDC or EM energy; ZDC-related ReadDecorHandleKey's will be initialized");
101  m_ZDCSideStatus = {0, 0};
102  m_ZDCFinalEnergy = {0, 0};
103  m_EMCalibEnergy = {0, 0};
104  m_EMStatus = {0, 0};
105  }
106 
108 
123 
124  if (m_writeAux && !m_auxSuffix.empty()) {
125  ATH_MSG_DEBUG("suffix string = " << m_auxSuffix);
126  }
127 
128  m_initialized = true;
129 
130  return StatusCode::SUCCESS;
131 }

◆ initializeKey()

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

Definition at line 36 of file RpdSubtractCentroidTool.cxx.

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

◆ 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 100 of file RpdSubtractCentroidTool.h.

100 { 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 155 of file RpdSubtractCentroidTool.cxx.

155  {
156  // initialize read handles from read handle keys
158  if (!eventInfo.isValid()) {
159  return SubstepStatus::Failure;
160  }
161  // RPD decorations are always needed
162  if (eventInfo->isEventFlagBitSet(xAOD::EventInfo::ForwardDet, ZdcEventInfo::RPDDECODINGERROR)) {
163  ATH_MSG_WARNING("RPD decoding error found - abandoning RPD centroid reco!");
165  }
166  // ZDC decorations are sometimes needed
168  ATH_MSG_WARNING("ZDC decoding error found - abandoning RPD centroid reco!");
170  }
171 
172  // nominally, aux suffix is added to read key, since upstream tools were probably configured to write decorations with the same suffix
173  // however, certain decorations remain unchanged in a reprocessing (e.g., those written by ZdcRecChannelToolLucrod), in which case the suffix should NOT be added
174  static SG::ConstAccessor<float> const xposRelAcc("xposRel");
175  static SG::ConstAccessor<float> const yposRelAcc("yposRel");
176  static SG::ConstAccessor<unsigned short> const rowAcc("row");
177  static SG::ConstAccessor<unsigned short> const colAcc("col");
178  static SG::ConstAccessor<float> const rpdChannelSumAdcAcc("RPDChannelAmplitude" + m_auxSuffix);
179  static SG::ConstAccessor<float> const rpdChannelSumAdcCalibAcc("RPDChannelAmplitudeCalib" + m_auxSuffix);
180  static SG::ConstAccessor<float> const rpdChannelMaxADCAcc("RPDChannelMaxADC" + m_auxSuffix);
181  static SG::ConstAccessor<float> const rpdChannelMaxADCCalibAcc("RPDChannelMaxADCCalib" + m_auxSuffix);
182  static SG::ConstAccessor<float> const rpdChannelPileupFracAcc("RPDChannelPileupFrac" + m_auxSuffix);
183  static SG::ConstAccessor<unsigned int> const rpdChannelStatusAcc("RPDChannelStatus" + m_auxSuffix);
184  static SG::ConstAccessor<unsigned int> const rpdSideStatusAcc("RPDStatus" + m_auxSuffix);
185  static auto const zdcModuleCalibEnergyAcc = m_readZDCDecorations
186  ? std::optional<SG::ConstAccessor<float>>("CalibEnergy" + m_auxSuffix)
187  : std::nullopt;
188  static auto const zdcModuleStatusAcc = m_readZDCDecorations
189  ? std::optional<SG::ConstAccessor<unsigned int>>("Status" + m_auxSuffix)
190  : std::nullopt;
191  static auto const zdcFinalEnergyAcc = m_readZDCDecorations
192  ? std::optional<SG::ConstAccessor<float>>("FinalEnergy" + m_auxSuffix)
193  : std::nullopt;
194  static auto const zdcStatusAcc = m_readZDCDecorations
195  ? std::optional<SG::ConstAccessor<unsigned int>>("Status" + m_auxSuffix)
196  : std::nullopt;
197 
198  ATH_MSG_DEBUG("Processing modules");
199 
200  for (auto const * const zdcModule : moduleContainer) {
201  unsigned int const side = RPDUtils::ZDCSideToSideIndex(zdcModule->zdcSide());
202  if (zdcModule->zdcType() == RPDUtils::ZDCModuleZDCType && zdcModule->zdcModule() == RPDUtils::ZDCModuleEMModule) {
203  // this is a ZDC module and this is an EM module
204  if (m_readZDCDecorations) {
205  m_EMCalibEnergy->at(side) = (*zdcModuleCalibEnergyAcc)(*zdcModule);
206  m_EMStatus->at(side) = (*zdcModuleStatusAcc)(*zdcModule);
207  }
208  } else if (zdcModule->zdcType() == RPDUtils::ZDCModuleRPDType) {
209  // this is a Run 3 RPD module
210  // (it is assumed that this tool will not be invoked otherwise)
211  //
212  if (zdcModule->zdcChannel() < 0 || static_cast<unsigned int>(zdcModule->zdcChannel()) > RPDUtils::nChannels - 1) {
213  ATH_MSG_ERROR("Invalid RPD channel found on side " << side << ": channel number = " << zdcModule->zdcChannel());
214  }
215  // channel numbers are fixed in mapping in ZdcConditions, numbered 0-15
216  auto const channel = zdcModule->zdcChannel();
217  auto const& row = rowAcc(*zdcModule);
218  auto const& col = colAcc(*zdcModule);
219  m_RPDChannelData.at(side).at(row).at(col).channel = static_cast<unsigned int>(channel);
220  m_RPDChannelData.at(side).at(row).at(col).xposRel = xposRelAcc(*zdcModule);
221  m_RPDChannelData.at(side).at(row).at(col).yposRel = yposRelAcc(*zdcModule);
222  m_RPDChannelData.at(side).at(row).at(col).row = rowAcc(*zdcModule);
223  m_RPDChannelData.at(side).at(row).at(col).col = colAcc(*zdcModule);
224  if (m_useRPDSumAdc) {
225  if (m_useCalibDecorations) {
226  m_RPDChannelData.at(side).at(row).at(col).amp = rpdChannelSumAdcCalibAcc(*zdcModule);
227  } else {
228  m_RPDChannelData.at(side).at(row).at(col).amp = rpdChannelSumAdcAcc(*zdcModule);
229  }
230  } else {
231  if (m_useCalibDecorations) {
232  m_RPDChannelData.at(side).at(row).at(col).amp = rpdChannelMaxADCCalibAcc(*zdcModule);
233  } else {
234  m_RPDChannelData.at(side).at(row).at(col).amp = rpdChannelMaxADCAcc(*zdcModule);
235  }
236  }
237  m_RPDChannelData.at(side).at(row).at(col).pileupFrac = rpdChannelPileupFracAcc(*zdcModule);
238  m_RPDChannelData.at(side).at(row).at(col).status = rpdChannelStatusAcc(*zdcModule);
239  }
240  }
241 
242  for (auto const * const zdcSum: moduleSumContainer) {
243  if (zdcSum->zdcSide() == RPDUtils::ZDCSumsGlobalZDCSide) {
244  // skip global sum (it's like the side between sides)
245  continue;
246  }
247  unsigned int const side = RPDUtils::ZDCSideToSideIndex(zdcSum->zdcSide());
248  m_RPDSideStatus.at(side) = rpdSideStatusAcc(*zdcSum);
249  if (m_ZDCSideStatus) m_ZDCSideStatus->at(side) = (*zdcStatusAcc)(*zdcSum);
250  if (m_ZDCFinalEnergy) m_ZDCFinalEnergy->at(side) = (*zdcFinalEnergyAcc)(*zdcSum);
251  }
252 
253  return SubstepStatus::Success;
254 }

◆ recoZdcModules()

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

Implements ZDC::IZdcAnalysisTool.

Definition at line 445 of file RpdSubtractCentroidTool.cxx.

445  {
446  if (moduleContainer.empty()) {
447  // no modules - do nothing
448  return StatusCode::SUCCESS;
449  }
450  reset();
451  switch (readAOD(moduleContainer, moduleSumContainer)) {
453  // do nothing - proceed
454  break;
456  // stop and propagate error to Athena
457  return StatusCode::FAILURE;
459  // stop and tell Athena the event was a success
460  return StatusCode::SUCCESS;
461  }
462  for (auto const side : RPDUtils::sides) {
463  if (!checkZdcRpdValidity(side)) continue; // rpd invalid -> don't calculate centroid
464  if (!subtractRpdAmplitudes(side)) continue; // bad total sum -> don't calculate centroid
469  m_centroidStatus.at(side).set(HasCentroidBit, true);
470  }
473  }
475  m_eventValid = true; // event is good for analysis
476  }
477  writeAOD(moduleSumContainer);
478  ATH_MSG_DEBUG("Finishing event processing");
479  return StatusCode::SUCCESS;
480 }

◆ 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 482 of file RpdSubtractCentroidTool.cxx.

482  {
483  if (!m_initialized) {
484  ATH_MSG_WARNING("Tool not initialized!");
485  return StatusCode::FAILURE;
486  }
487  ATH_MSG_DEBUG("Trying to retrieve " << m_ZDCModuleContainerName);
488  xAOD::ZdcModuleContainer const* zdcModules = nullptr;
490  xAOD::ZdcModuleContainer const* zdcSums = nullptr;
492  ATH_CHECK(recoZdcModules(*zdcModules, *zdcSums));
493  return StatusCode::SUCCESS;
494 }

◆ reset()

void ZDC::RpdSubtractCentroidTool::reset ( )
private

◆ subtractAverageCentroid()

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

Definition at line 383 of file RpdSubtractCentroidTool.cxx.

◆ subtractRpdAmplitudes()

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

Definition at line 313 of file RpdSubtractCentroidTool.cxx.

313  {
314  for (unsigned int row = 0; row < RPDUtils::nRows; row++) {
315  for (unsigned int col = 0; col < RPDUtils::nCols; col++) {
316  float subtrAmp {};
317  if (row == RPDUtils::nRows - 1) {
318  // top row -> nothing to subtract
319  subtrAmp = m_RPDChannelData.at(side).at(row).at(col).amp;
320  } else {
321  // other rows -> subtract the tile above this one
322  subtrAmp = m_RPDChannelData.at(side).at(row).at(col).amp - m_RPDChannelData.at(side).at(row + 1).at(col).amp;
323  }
324  m_RPDChannelData.at(side).at(row).at(col).subtrAmp = subtrAmp;
325  m_subtrAmp.at(side).at(m_RPDChannelData.at(side).at(row).at(col).channel) = subtrAmp;
326  m_subtrAmpRowSum.at(side).at(row) += subtrAmp;
327  m_subtrAmpColSum.at(side).at(col) += subtrAmp;
328  m_subtrAmpSum.at(side) += subtrAmp;
329  }
330  }
331 
332  if (m_subtrAmpSum.at(side) <= 0) {
333  m_centroidStatus.at(side).set(ZeroSumBit, true);
334  m_centroidStatus.at(side).set(ValidBit, false);
335  return false;
336  }
337 
338  for (unsigned int row = 0; row < RPDUtils::nRows; row++) {
339  for (unsigned int col = 0; col < RPDUtils::nCols; col++) {
340  const float &subtrAmp = m_RPDChannelData.at(side).at(row).at(col).subtrAmp;
341  if (subtrAmp < 0 && -subtrAmp/m_subtrAmpSum.at(side) > m_maximumNegativeSubtrAmpFrac.at(side)) {
343  m_centroidStatus.at(side).set(ValidBit, false);
344  }
345  }
346  }
347 
348  return true;
349 }

◆ 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 401 of file RpdSubtractCentroidTool.cxx.

401  {
402  if (!m_writeAux) return;
403  ATH_MSG_DEBUG("Adding variables with suffix = " + m_auxSuffix);
404 
405  // initialize write handles from write handle keys
420 
421  for (auto const * const zdcSum: moduleSumContainer) {
422  if (zdcSum->zdcSide() == RPDUtils::ZDCSumsGlobalZDCSide) {
423  // global sum container
424  // event status is bool, but stored as char to save disk space
425  centroidEventValidHandle(*zdcSum) = static_cast<char>(m_eventValid);
426  cosDeltaReactionPlaneAngleHandle(*zdcSum) = m_cosDeltaReactionPlaneAngle;
427  continue;
428  }
429  unsigned int const side = RPDUtils::ZDCSideToSideIndex(zdcSum->zdcSide());
430  centroidStatusHandle(*zdcSum) = static_cast<unsigned int>(m_centroidStatus.at(side).to_ulong());
431  rpdChannelSubtrAmpHandle(*zdcSum) = m_subtrAmp.at(side);
432  rpdSubtrAmpSumHandle(*zdcSum) = m_subtrAmpSum.at(side);
433  xCentroidPreGeomCorPreAvgSubtrHandle(*zdcSum) = m_xCentroidPreGeomCorPreAvgSubtr.at(side);
434  yCentroidPreGeomCorPreAvgSubtrHandle(*zdcSum) = m_yCentroidPreGeomCorPreAvgSubtr.at(side);
435  xCentroidPreAvgSubtrHandle(*zdcSum) = m_xCentroidPreAvgSubtr.at(side);
436  yCentroidPreAvgSubtrHandle(*zdcSum) = m_yCentroidPreAvgSubtr.at(side);
437  xCentroidHandle(*zdcSum) = m_xCentroid.at(side);
438  yCentroidHandle(*zdcSum) = m_yCentroid.at(side);
439  xRowCentroidHandle(*zdcSum) = m_xRowCentroid.at(side);
440  yColCentroidHandle(*zdcSum) = m_yColCentroid.at(side);
441  reactionPlaneAngleHandle(*zdcSum) = m_reactionPlaneAngle.at(side);
442  }
443 }

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 130 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 131 of file RpdSubtractCentroidTool.h.

◆ m_auxSuffix

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

Definition at line 78 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 136 of file RpdSubtractCentroidTool.h.

◆ m_avgYCentroid

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

average x centroid

Definition at line 137 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 193 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 142 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 197 of file RpdSubtractCentroidTool.h.

◆ m_configuration

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

Definition at line 74 of file RpdSubtractCentroidTool.h.

◆ m_cosDeltaReactionPlaneAngle

float ZDC::RpdSubtractCentroidTool::m_cosDeltaReactionPlaneAngle = 0
private

reaction plane angle on each side

Definition at line 165 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 245 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 124 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 125 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 141 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 83 of file RpdSubtractCentroidTool.h.

◆ m_forceMaximumNegativeSubtrAmpFrac

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

Definition at line 85 of file RpdSubtractCentroidTool.h.

◆ m_forceMaxZDCEnergy

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

Definition at line 81 of file RpdSubtractCentroidTool.h.

◆ m_forceMinEMEnergy

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

Definition at line 82 of file RpdSubtractCentroidTool.h.

◆ m_forceMinZDCEnergy

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

Definition at line 80 of file RpdSubtractCentroidTool.h.

◆ m_forcePileupMaxFrac

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

Definition at line 84 of file RpdSubtractCentroidTool.h.

◆ m_forceUseCalibDecorations

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

Definition at line 87 of file RpdSubtractCentroidTool.h.

◆ m_forceUseRPDSumAdc

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

Definition at line 86 of file RpdSubtractCentroidTool.h.

◆ m_initialized

bool ZDC::RpdSubtractCentroidTool::m_initialized = false
private

Definition at line 105 of file RpdSubtractCentroidTool.h.

◆ m_maxEMEnergy

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

Definition at line 93 of file RpdSubtractCentroidTool.h.

◆ m_maximumNegativeSubtrAmpFrac

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

Definition at line 95 of file RpdSubtractCentroidTool.h.

◆ m_maxZDCEnergy

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

Definition at line 91 of file RpdSubtractCentroidTool.h.

◆ m_minEMEnergy

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

Definition at line 92 of file RpdSubtractCentroidTool.h.

◆ m_minZDCEnergy

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

Definition at line 90 of file RpdSubtractCentroidTool.h.

◆ m_pileupMaxFrac

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

Definition at line 94 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 164 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 241 of file RpdSubtractCentroidTool.h.

◆ m_readZDCDecorations

bool ZDC::RpdSubtractCentroidTool::m_readZDCDecorations = false
private

Definition at line 106 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 126 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 201 of file RpdSubtractCentroidTool.h.

◆ m_RPDSideStatus

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

Definition at line 121 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 205 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 143 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 148 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 147 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 149 of file RpdSubtractCentroidTool.h.

◆ m_useCalibDecorations

bool ZDC::RpdSubtractCentroidTool::m_useCalibDecorations {}
private

Definition at line 97 of file RpdSubtractCentroidTool.h.

◆ m_useRPDSumAdc

bool ZDC::RpdSubtractCentroidTool::m_useRPDSumAdc {}
private

Definition at line 96 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 77 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 154 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 225 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 152 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 217 of file RpdSubtractCentroidTool.h.

◆ m_xCentroidPreGeomCorPreAvgSubtr

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

subtracted amplitude sum on each side

Definition at line 150 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 209 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 156 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 233 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 155 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 229 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 153 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 221 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 151 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 213 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 160 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 237 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 123 of file RpdSubtractCentroidTool.h.

◆ m_ZDCModuleContainerName

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

Definition at line 75 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 122 of file RpdSubtractCentroidTool.h.

◆ m_ZDCSumContainerName

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

Definition at line 76 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::EMInvalidBit
@ EMInvalidBit
Definition: RpdSubtractCentroidTool.h:37
ZDC::RpdSubtractCentroidTool::checkZdcRpdValidity
bool checkZdcRpdValidity(unsigned int side)
Definition: RpdSubtractCentroidTool.cxx:256
ZDC::RpdSubtractCentroidTool::m_centroidStatus
std::array< std::bitset< N_STATUS_BITS >, 2 > m_centroidStatus
event status
Definition: RpdSubtractCentroidTool.h:142
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:125
ZDC::RpdSubtractCentroidTool::m_reactionPlaneAngle
std::array< float, 2 > m_reactionPlaneAngle
the y centroid for each column on each side
Definition: RpdSubtractCentroidTool.h:164
ZDC::RpdSubtractCentroidTool::HasCentroidBit
@ HasCentroidBit
Definition: RpdSubtractCentroidTool.h:33
ZDC::RpdSubtractCentroidTool::ZDCInvalidBit
@ ZDCInvalidBit
Definition: RpdSubtractCentroidTool.h:34
ZDC::RpdSubtractCentroidTool::m_forceUseCalibDecorations
RPDUtils::OptionalToolProperty< bool > m_forceUseCalibDecorations
Definition: RpdSubtractCentroidTool.h:87
ZDC::RpdSubtractCentroidTool::ExcessiveEMEnergyBit
@ ExcessiveEMEnergyBit
Definition: RpdSubtractCentroidTool.h:39
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:96
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:148
ZDC::RpdSubtractCentroidTool::Row1ValidBit
@ Row1ValidBit
Definition: RpdSubtractCentroidTool.h:47
StateLessPT_NewConfig.proxy
proxy
Definition: StateLessPT_NewConfig.py:407
ZDC::RpdSubtractCentroidTool::m_ZDCFinalEnergy
std::optional< std::array< float, 2 > > m_ZDCFinalEnergy
ZDC analysis status on each side.
Definition: RpdSubtractCentroidTool.h:123
ZDC::RpdSubtractCentroidTool::m_readZDCDecorations
bool m_readZDCDecorations
Definition: RpdSubtractCentroidTool.h:106
ZDC::RpdSubtractCentroidTool::m_forceMaxEMEnergy
RPDUtils::OptionalToolProperty< std::vector< float > > m_forceMaxEMEnergy
Definition: RpdSubtractCentroidTool.h:83
plotting.yearwise_efficiency.channel
channel
Definition: yearwise_efficiency.py:24
ZDC::RpdSubtractCentroidTool::m_centroidStatusKey
SG::WriteDecorHandleKey< xAOD::ZdcModuleContainer > m_centroidStatusKey
Definition: RpdSubtractCentroidTool.h:197
ZDC::RpdSubtractCentroidTool::m_RPDSideStatus
std::array< std::bitset< RPDDataAnalyzer::N_STATUS_BITS >, 2 > m_RPDSideStatus
Definition: RpdSubtractCentroidTool.h:121
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:84
ZDC::RpdSubtractCentroidTool::InsufficientEMEnergyBit
@ InsufficientEMEnergyBit
Definition: RpdSubtractCentroidTool.h:38
ZDC::RpdSubtractCentroidTool::m_RPDChannelSubtrAmpKey
SG::WriteDecorHandleKey< xAOD::ZdcModuleContainer > m_RPDChannelSubtrAmpKey
Definition: RpdSubtractCentroidTool.h:201
ZDC::RpdSubtractCentroidTool::m_forceMinZDCEnergy
RPDUtils::OptionalToolProperty< std::vector< float > > m_forceMinZDCEnergy
Definition: RpdSubtractCentroidTool.h:80
ZDC::RpdSubtractCentroidTool::m_reactionPlaneAngleKey
SG::WriteDecorHandleKey< xAOD::ZdcModuleContainer > m_reactionPlaneAngleKey
Definition: RpdSubtractCentroidTool.h:241
ZDC::RpdSubtractCentroidTool::m_RPDSubtrAmpSumKey
SG::WriteDecorHandleKey< xAOD::ZdcModuleContainer > m_RPDSubtrAmpSumKey
Definition: RpdSubtractCentroidTool.h:205
ZDC::RpdSubtractCentroidTool::m_cosDeltaReactionPlaneAngleKey
SG::WriteDecorHandleKey< xAOD::ZdcModuleContainer > m_cosDeltaReactionPlaneAngleKey
Definition: RpdSubtractCentroidTool.h:245
RPDUtils::sides
constexpr std::initializer_list< unsigned int > sides
Definition: RPDUtils.h:17
SG::ReadHandle
Definition: StoreGate/StoreGate/ReadHandle.h:67
ZDC::RpdSubtractCentroidTool::m_auxSuffix
std::string m_auxSuffix
Definition: RpdSubtractCentroidTool.h:78
ZDC::RpdSubtractCentroidTool::readAOD
SubstepStatus readAOD(xAOD::ZdcModuleContainer const &moduleContainer, xAOD::ZdcModuleContainer const &moduleSumContainer)
Definition: RpdSubtractCentroidTool.cxx:155
ZDC::RpdSubtractCentroidTool::subtractAverageCentroid
void subtractAverageCentroid(unsigned int side)
Definition: RpdSubtractCentroidTool.cxx:383
ZDC::RpdSubtractCentroidTool::m_subtrAmp
std::array< std::vector< float >, 2 > m_subtrAmp
centroid status (valid by default) on each side
Definition: RpdSubtractCentroidTool.h:143
ZDC::RpdSubtractCentroidTool::recoZdcModules
StatusCode recoZdcModules(const xAOD::ZdcModuleContainer &moduleContainer, const xAOD::ZdcModuleContainer &moduleSumContainer) override
Definition: RpdSubtractCentroidTool.cxx:445
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:155
ZDC::RpdSubtractCentroidTool::N_STATUS_BITS
@ N_STATUS_BITS
Definition: RpdSubtractCentroidTool.h:55
ZDC::RpdSubtractCentroidTool::m_minEMEnergy
std::vector< float > m_minEMEnergy
Definition: RpdSubtractCentroidTool.h:92
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:101
ZDC::RpdSubtractCentroidTool::m_subtrAmpSum
std::array< float, 2 > m_subtrAmpSum
subtracted amplitude for each column on each side
Definition: RpdSubtractCentroidTool.h:149
keylayer_zslicemap.row
row
Definition: keylayer_zslicemap.py:155
ZDC::RpdSubtractCentroidTool::SubstepStatus::Failure
@ Failure
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:126
ZDC::RpdSubtractCentroidTool::m_useCalibDecorations
bool m_useCalibDecorations
Definition: RpdSubtractCentroidTool.h:97
SG::ConstAccessor< float >
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:160
dbg::ptr
void * ptr(T *p)
Definition: SGImplSvc.cxx:74
ZDC::RpdSubtractCentroidTool::PileupBit
@ PileupBit
Definition: RpdSubtractCentroidTool.h:41
ZDC::RpdSubtractCentroidTool::m_configuration
std::string m_configuration
Definition: RpdSubtractCentroidTool.h:74
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:152
ZDC::RpdSubtractCentroidTool::m_minZDCEnergy
std::vector< float > m_minZDCEnergy
Definition: RpdSubtractCentroidTool.h:90
x
#define x
ZDC::RpdSubtractCentroidTool::m_forceMaximumNegativeSubtrAmpFrac
RPDUtils::OptionalToolProperty< std::vector< float > > m_forceMaximumNegativeSubtrAmpFrac
Definition: RpdSubtractCentroidTool.h:85
ZDC::RpdSubtractCentroidTool::m_forceMinEMEnergy
RPDUtils::OptionalToolProperty< std::vector< float > > m_forceMinEMEnergy
Definition: RpdSubtractCentroidTool.h:82
ZDC::RpdSubtractCentroidTool::InsufficientZDCEnergyBit
@ InsufficientZDCEnergyBit
Definition: RpdSubtractCentroidTool.h:35
pi
#define pi
Definition: TileMuonFitter.cxx:65
ZDC::RpdSubtractCentroidTool::m_xRowCentroidKey
SG::WriteDecorHandleKey< xAOD::ZdcModuleContainer > m_xRowCentroidKey
Definition: RpdSubtractCentroidTool.h:233
python.iconfTool.models.loaders.level
level
Definition: loaders.py:20
SG::VarHandleKeyArray::setOwner
virtual void setOwner(IDataHandleHolder *o)=0
ZDC::RpdSubtractCentroidTool::m_cosDeltaReactionPlaneAngle
float m_cosDeltaReactionPlaneAngle
reaction plane angle on each side
Definition: RpdSubtractCentroidTool.h:165
IDTPMcnv.htype
htype
Definition: IDTPMcnv.py:29
TRT::Hit::side
@ side
Definition: HitInfo.h:83
ZDC::RpdSubtractCentroidTool::subtractRpdAmplitudes
bool subtractRpdAmplitudes(unsigned int side)
Definition: RpdSubtractCentroidTool.cxx:313
ZDC::RpdSubtractCentroidTool::m_ZDCSideStatus
std::optional< std::array< unsigned int, 2 > > m_ZDCSideStatus
RPD analysis status word on each side.
Definition: RpdSubtractCentroidTool.h:122
AthCommonDataStore::declareGaudiProperty
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition: AthCommonDataStore.h:156
ZDC::RpdSubtractCentroidTool::m_forceMaxZDCEnergy
RPDUtils::OptionalToolProperty< std::vector< float > > m_forceMaxZDCEnergy
Definition: RpdSubtractCentroidTool.h:81
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:153
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::ValidBit
@ ValidBit
Definition: RpdSubtractCentroidTool.h:32
python.utils.AtlRunQueryDQUtils.p
p
Definition: AtlRunQueryDQUtils.py:209
ZDC::RpdSubtractCentroidTool::m_alignmentYOffset
std::array< float, 2 > m_alignmentYOffset
geometry + crossing angle correction in x (ATLAS coordinates)
Definition: RpdSubtractCentroidTool.h:131
AthCommonDataStore
Definition: AthCommonDataStore.h:52
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
ZdcEventInfo::ZDCDECODINGERROR
@ ZDCDECODINGERROR
Definition: ZdcEventInfo.h:19
ZDC::RpdSubtractCentroidTool::Col0ValidBit
@ Col0ValidBit
Definition: RpdSubtractCentroidTool.h:50
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:130
RPDUtils::OptionalToolProperty::has_value
bool has_value() const
Definition: RPDUtils.cxx:28
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:221
angle
double angle(const GeoTrf::Vector2D &a, const GeoTrf::Vector2D &b)
Definition: TRTDetectorFactory_Full.cxx:71
AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T, V, H > &t)
Definition: AthCommonDataStore.h:145
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
CalibDbCompareRT.dummy
dummy
Definition: CalibDbCompareRT.py:59
ZDC::RpdSubtractCentroidTool::m_maxEMEnergy
std::vector< float > m_maxEMEnergy
Definition: RpdSubtractCentroidTool.h:93
ZDC::RpdSubtractCentroidTool::m_eventValid
bool m_eventValid
average y centroid
Definition: RpdSubtractCentroidTool.h:141
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:124
ZDC::RpdSubtractCentroidTool::ZeroSumBit
@ ZeroSumBit
Definition: RpdSubtractCentroidTool.h:43
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
DataVector
Derived DataVector<T>.
Definition: DataVector.h:795
ZDC::RpdSubtractCentroidTool::m_ZDCModuleContainerName
std::string m_ZDCModuleContainerName
Definition: RpdSubtractCentroidTool.h:75
ZDC::RpdSubtractCentroidTool::reset
void reset()
Definition: RpdSubtractCentroidTool.cxx:133
ZDC::RpdSubtractCentroidTool::m_writeAux
bool m_writeAux
Definition: RpdSubtractCentroidTool.h:77
xAOD::EventInfo_v1::ForwardDet
@ ForwardDet
The forward detectors.
Definition: EventInfo_v1.h:338
ZDC::RpdSubtractCentroidTool::m_initialized
bool m_initialized
Definition: RpdSubtractCentroidTool.h:105
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:213
ZDC::RpdSubtractCentroidTool::Row0ValidBit
@ Row0ValidBit
Definition: RpdSubtractCentroidTool.h:46
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:151
ZDC::RpdSubtractCentroidTool::RPDInvalidBit
@ RPDInvalidBit
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:150
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:240
ZDC::RpdSubtractCentroidTool::m_ZDCSumContainerName
std::string m_ZDCSumContainerName
Definition: RpdSubtractCentroidTool.h:76
ZDC::RpdSubtractCentroidTool::Col2ValidBit
@ Col2ValidBit
Definition: RpdSubtractCentroidTool.h:52
RPDUtils::ZDCModuleZDCType
unsigned constexpr int ZDCModuleZDCType
Definition: RPDUtils.h:20
RPDUtils::ZDCModuleEMModule
unsigned constexpr int ZDCModuleEMModule
Definition: RPDUtils.h:22
ZDC::RPDDataAnalyzer::ValidBit
@ ValidBit
Definition: RPDDataAnalyzer.h:37
ZDC::RpdSubtractCentroidTool::Col1ValidBit
@ Col1ValidBit
Definition: RpdSubtractCentroidTool.h:51
ZDC::RpdSubtractCentroidTool::m_centroidEventValidKey
SG::WriteDecorHandleKey< xAOD::ZdcModuleContainer > m_centroidEventValidKey
Definition: RpdSubtractCentroidTool.h:193
ZDC::RpdSubtractCentroidTool::m_maxZDCEnergy
std::vector< float > m_maxZDCEnergy
Definition: RpdSubtractCentroidTool.h:91
ZDC::RpdSubtractCentroidTool::calculateDetectorCentroid
void calculateDetectorCentroid(unsigned int side)
Definition: RpdSubtractCentroidTool.cxx:351
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:156
ZDC::RpdSubtractCentroidTool::ExcessivePileupBit
@ ExcessivePileupBit
Definition: RpdSubtractCentroidTool.h:42
ZDC::RpdSubtractCentroidTool::m_pileupMaxFrac
std::vector< float > m_pileupMaxFrac
Definition: RpdSubtractCentroidTool.h:94
ZDC::RPDDataAnalyzer::OutOfTimePileupBit
@ OutOfTimePileupBit
Definition: RPDDataAnalyzer.h:38
python.PyAthena.v
v
Definition: PyAthena.py:154
ZDC::RpdSubtractCentroidTool::m_xCentroidKey
SG::WriteDecorHandleKey< xAOD::ZdcModuleContainer > m_xCentroidKey
Definition: RpdSubtractCentroidTool.h:225
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:147
a
TList * a
Definition: liststreamerinfos.cxx:10
ZDC::RpdSubtractCentroidTool::ExcessiveZDCEnergyBit
@ ExcessiveZDCEnergyBit
Definition: RpdSubtractCentroidTool.h:36
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.
h
ZDC::RpdSubtractCentroidTool::m_yColCentroidKey
SG::WriteDecorHandleKey< xAOD::ZdcModuleContainer > m_yColCentroidKey
Definition: RpdSubtractCentroidTool.h:237
ZDC::RpdSubtractCentroidTool::m_xCentroidPreGeomCorPreAvgSubtrKey
SG::WriteDecorHandleKey< xAOD::ZdcModuleContainer > m_xCentroidPreGeomCorPreAvgSubtrKey
Definition: RpdSubtractCentroidTool.h:209
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition: AthMsgStreamMacros.h:32
ZDC::RpdSubtractCentroidTool::m_maximumNegativeSubtrAmpFrac
std::vector< float > m_maximumNegativeSubtrAmpFrac
Definition: RpdSubtractCentroidTool.h:95
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:401
SG::VarHandleBase::vhKey
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
Definition: StoreGate/src/VarHandleBase.cxx:629
ZDC::RpdSubtractCentroidTool::Col3ValidBit
@ Col3ValidBit
Definition: RpdSubtractCentroidTool.h:53
ZDC::RpdSubtractCentroidTool::Row2ValidBit
@ Row2ValidBit
Definition: RpdSubtractCentroidTool.h:48
python.Bindings.keys
keys
Definition: Control/AthenaPython/python/Bindings.py:801
merge.status
status
Definition: merge.py:16
ZDC::RpdSubtractCentroidTool::ExcessiveSubtrUnderflowBit
@ ExcessiveSubtrUnderflowBit
Definition: RpdSubtractCentroidTool.h:44
RPDUtils::nRows
unsigned constexpr int nRows
Definition: RPDUtils.h:24
ZDC::RpdSubtractCentroidTool::geometryCorrection
void geometryCorrection(unsigned int side)
Definition: RpdSubtractCentroidTool.cxx:377
RPDUtils::ZDCSideToSideIndex
unsigned int ZDCSideToSideIndex(int const ZDCSide)
Definition: RPDUtils.cxx:7
ZDC::RpdSubtractCentroidTool::m_forceUseRPDSumAdc
RPDUtils::OptionalToolProperty< bool > m_forceUseRPDSumAdc
Definition: RpdSubtractCentroidTool.h:86
ZDC::RpdSubtractCentroidTool::nonNegative
static bool nonNegative(float const x)
Definition: RpdSubtractCentroidTool.h:100
ZDC::RpdSubtractCentroidTool::calculateReactionPlaneAngle
void calculateReactionPlaneAngle(unsigned int side)
Definition: RpdSubtractCentroidTool.cxx:388
ZDC::RpdSubtractCentroidTool::m_xCentroidPreAvgSubtrKey
SG::WriteDecorHandleKey< xAOD::ZdcModuleContainer > m_xCentroidPreAvgSubtrKey
Definition: RpdSubtractCentroidTool.h:217
SG::DataProxy
Definition: DataProxy.h:45
ZDC::RpdSubtractCentroidTool::SubstepStatus::Success
@ Success
ZDC::RpdSubtractCentroidTool::m_avgYCentroid
std::array< float, 2 > m_avgYCentroid
average x centroid
Definition: RpdSubtractCentroidTool.h:137
DataVector::empty
bool empty() const noexcept
Returns true if the collection is empty.
ZDC::RpdSubtractCentroidTool::Row3ValidBit
@ Row3ValidBit
Definition: RpdSubtractCentroidTool.h:49
ZDCPulseAnalyzer::FailBit
@ FailBit
Definition: ZDCPulseAnalyzer.h:30
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:154
ZDC::RpdSubtractCentroidTool::m_avgXCentroid
std::array< float, 2 > m_avgXCentroid
geometry + crossing angle correction in y (ATLAS coordinates)
Definition: RpdSubtractCentroidTool.h:136
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::initializeKey
StatusCode initializeKey(std::string const &containerName, SG::WriteDecorHandleKey< xAOD::ZdcModuleContainer > &writeHandleKey, std::string const &key)
Definition: RpdSubtractCentroidTool.cxx:36
ZDC::RpdSubtractCentroidTool::m_yCentroidKey
SG::WriteDecorHandleKey< xAOD::ZdcModuleContainer > m_yCentroidKey
Definition: RpdSubtractCentroidTool.h:229
ZdcEventInfo::RPDDECODINGERROR
@ RPDDECODINGERROR
Definition: ZdcEventInfo.h:19
mapkey::key
key
Definition: TElectronEfficiencyCorrectionTool.cxx:37