ATLAS Offline Software
RPDAnalysisTool.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3 */
4 
6 
8 #include "ZdcUtils/RPDUtils.h"
10 #include "ZdcUtils/ZdcEventInfo.h"
11 
12 namespace ZDC {
13 
14 RPDAnalysisTool::RPDAnalysisTool(std::string const& name) : asg::AsgTool(name) {
15  declareProperty("ZdcModuleContainerName", m_ZDCModuleContainerName = "ZdcModules", "Location of ZDC processed data");
16  declareProperty("ZdcSumContainerName", m_ZDCSumContainerName = "ZdcSums", "Location of ZDC processed sums");
17  declareProperty("Configuration", m_configuration = "default");
18  declareProperty("WriteAux", m_writeAux = true);
19  declareProperty("AuxSuffix", m_auxSuffix = "");
20 
21  declareProperty("NSamples", m_forceNSamples, "Total number of FADC samples in readout window");
22  declareProperty("NBaselineSamples", m_forceNBaselineSamples, "Number of baseline samples; the sample equal to this number is the start of signal region");
23  declareProperty("EndSignalSample", m_forceEndSignalSample, "Samples before (not including) this sample are the signal region; 0 or Nsamples goes to end of window");
24  declareProperty("Pulse2ndDerivThresh", m_forcePulse2ndDerivThresh, "Second differences less than or equal to this number indicate a pulse");
25  declareProperty("PostPulseFracThresh", m_forcePostPulseFracThresh, "If there is a good pulse and post-pulse and size of post-pulse as a fraction of good pulse is less than or equal to this number, ignore post-pulse");
26  declareProperty("GoodPulseSampleStart", m_forceGoodPulseSampleStart, "Pulses before this sample are considered pre-pulses");
27  declareProperty("GoodPulseSampleStop", m_forceGoodPulseSampleStop, "Pulses after this sample are considered post-pulses");
28  declareProperty("NominalBaseline", m_forceNominalBaseline, "The global nominal baseline; used when pileup is detected");
29  declareProperty("PileupBaselineSumThresh", m_forcePileupBaselineSumThresh, "Baseline sum (after subtracting nominal baseline) less than this number indicates there is NO pileup");
30  declareProperty("PileupBaselineStdDevThresh", m_forcePileupBaselineStdDevThresh, "Baseline standard deviations less than this number indicate there is NO pileup");
31  declareProperty("NNegativesAllowed", m_forceNNegativesAllowed, "Maximum number of negative ADC values after baseline and pileup subtraction allowed in signal range");
32  declareProperty("ADCOverflow", m_forceADCOverflow, "ADC values greater than or equal to this number are considered overflow");
33  declareProperty("SideCCalibFactors", m_forceOutputCalibFactors.at(RPDUtils::sideC), "Multiplicative calibration factors to apply to RPD output, e.g., sum/max ADC, per channel on side C");
34  declareProperty("SideACalibFactors", m_forceOutputCalibFactors.at(RPDUtils::sideA), "Multiplicative calibration factors to apply to RPD output, e.g., sum/max ADC, per channel on side A");
35 }
36 
37 StatusCode RPDAnalysisTool::initializeWriteKey(std::string const& containerName, SG::WriteDecorHandleKey<xAOD::ZdcModuleContainer> & writeHandleKey, std::string const& key) {
38  writeHandleKey = containerName + key + m_auxSuffix;
39  return writeHandleKey.initialize();
40 }
41 
43  RPDConfig finalConfig {};
44  std::array<std::vector<float>, 2> finalOutputCalibFactors;
45  // first initialize reconstruction parameters
46  finalConfig.nSamples = 24;
47  finalConfig.nBaselineSamples = 7;
48  finalConfig.endSignalSample = 23;
49  finalConfig.pulse2ndDerivThresh = -18;
50  finalConfig.postPulseFracThresh = 0.15;
51  finalConfig.goodPulseSampleStart = 8;
52  finalConfig.goodPulseSampleStop = 10;
53  finalConfig.nominalBaseline = 100;
54  finalConfig.pileupBaselineSumThresh = 53;
55  finalConfig.pileupBaselineStdDevThresh = 2;
56  finalConfig.nNegativesAllowed = 2;
57  finalConfig.ADCOverflow = 4095;
58  finalOutputCalibFactors.at(RPDUtils::sideC) = std::vector<float>(16, 1.0);
59  finalOutputCalibFactors.at(RPDUtils::sideA) = std::vector<float>(16, 1.0);
60 
61  // then overwrite individual parameters from configuration if any were provided
62  if (m_forceNSamples.has_value()) {
63  finalConfig.nSamples = m_forceNSamples.value();
64  }
66  finalConfig.nBaselineSamples = m_forceNBaselineSamples.value();
67  }
69  finalConfig.endSignalSample = m_forceEndSignalSample.value();
70  }
72  finalConfig.pulse2ndDerivThresh = m_forcePulse2ndDerivThresh.value();
73  }
75  finalConfig.postPulseFracThresh = m_forcePostPulseFracThresh.value();
76  }
78  finalConfig.goodPulseSampleStart = m_forceGoodPulseSampleStart.value();
79  }
81  finalConfig.goodPulseSampleStop = m_forceGoodPulseSampleStop.value();
82  }
84  finalConfig.nominalBaseline = m_forceNominalBaseline.value();
85  }
87  finalConfig.pileupBaselineSumThresh = m_forcePileupBaselineSumThresh.value();
88  }
90  finalConfig.pileupBaselineStdDevThresh = m_forcePileupBaselineStdDevThresh.value();
91  }
93  finalConfig.nNegativesAllowed = m_forceNNegativesAllowed.value();
94  }
96  finalConfig.ADCOverflow = m_forceADCOverflow.value();
97  }
98  for (auto const side : RPDUtils::sides) {
99  if (m_forceOutputCalibFactors.at(side).has_value()) {
100  finalOutputCalibFactors.at(side) = m_forceOutputCalibFactors.at(side).value();
101  }
102  }
103 
104  ATH_MSG_DEBUG("RPDAnalysisTool reconstruction parameters:");
105  ATH_MSG_DEBUG("config = " << m_configuration);
106  ATH_MSG_DEBUG("nSamples = " << finalConfig.nSamples);
107  ATH_MSG_DEBUG("nBaselineSamples = " << finalConfig.nBaselineSamples);
108  ATH_MSG_DEBUG("endSignalSample = " << finalConfig.endSignalSample);
109  ATH_MSG_DEBUG("pulse2ndDerivThresh = " << finalConfig.pulse2ndDerivThresh);
110  ATH_MSG_DEBUG("postPulseFracThresh = " << finalConfig.postPulseFracThresh);
111  ATH_MSG_DEBUG("goodPulseSampleStart = " << finalConfig.goodPulseSampleStart);
112  ATH_MSG_DEBUG("goodPulseSampleStop = " << finalConfig.goodPulseSampleStop);
113  ATH_MSG_DEBUG("nominalBaseline = " << finalConfig.nominalBaseline);
114  ATH_MSG_DEBUG("pileupBaselineSumThresh = " << finalConfig.pileupBaselineSumThresh);
115  ATH_MSG_DEBUG("pileupBaselineStdDevThresh = " << finalConfig.pileupBaselineStdDevThresh);
116  ATH_MSG_DEBUG("nNegativesAllowed = " << finalConfig.nNegativesAllowed);
117  ATH_MSG_DEBUG("ADCOverflow = " << finalConfig.ADCOverflow);
118  ATH_MSG_DEBUG("sideCCalibFactors = " << RPDUtils::vecToString(finalOutputCalibFactors.at(RPDUtils::sideC)));
119  ATH_MSG_DEBUG("sideACalibFactors = " << RPDUtils::vecToString(finalOutputCalibFactors.at(RPDUtils::sideA)));
120 
121  m_dataAnalyzers.at(RPDUtils::sideC) = std::make_unique<RPDDataAnalyzer>(MakeMessageFunction(), "rpdC", finalConfig, finalOutputCalibFactors.at(RPDUtils::sideC));
122  m_dataAnalyzers.at(RPDUtils::sideA) = std::make_unique<RPDDataAnalyzer>(MakeMessageFunction(), "rpdA", finalConfig, finalOutputCalibFactors.at(RPDUtils::sideA));
123 
124  // initialize per-channel decorations (in ZdcModules)
129  ATH_CHECK(initializeWriteKey(m_ZDCModuleContainerName, m_chPileupStretchedExpFitParamErrsKey, ".RPDChannelPileupStretchedExpFitParamErrs"));
139 
140  // initialize per-side decorations (in ZdcSums)
142 
144 
145  if (m_writeAux && !m_auxSuffix.empty()) {
146  ATH_MSG_DEBUG("Suffix string = " << m_auxSuffix);
147  }
148 
149  m_initialized = true;
150  return StatusCode::SUCCESS;
151 }
152 
154  return std::make_shared<ZDCMsg::MessageFunction>(
155  [this] (int const messageZdcLevel, const std::string& message) -> bool {
156  auto const messageAthenaLevel = static_cast<MSG::Level>(messageZdcLevel);
157  bool const passesStreamOutputLevel = messageAthenaLevel >= this->msg().level();
158  if (passesStreamOutputLevel) {
159  this->msg(messageAthenaLevel) << message << endmsg;
160  }
161  return passesStreamOutputLevel;
162  }
163  );
164 }
165 
167  for (auto & analyzer : m_dataAnalyzers) {
168  analyzer->reset();
169  }
170 }
171 
173  // loop through ZDC modules to find those which are RPD channels
174  for (auto const module : moduleContainer) {
175  if (module->zdcType() != RPDUtils::ZDCModuleRPDType) {
176  // this is not an RPD channel, so skip it
177  continue;
178  }
179  unsigned int const side = RPDUtils::ZDCSideToSideIndex(module->zdcSide());
180  if (module->zdcChannel() < 0 || static_cast<unsigned int>(module->zdcChannel()) > RPDUtils::nChannels - 1) {
181  ATH_MSG_ERROR("Invalid RPD channel found on side " << side << ": channel number = " << module->zdcChannel());
182  }
183  // channel numbers are fixed in mapping in ZdcConditions, numbered 0-15
184  unsigned int const channel = module->zdcChannel();
185  ATH_MSG_DEBUG("RPD side " << side << " channel " << module->zdcChannel());
187  auto const& waveform = accessor(*module);
188  m_dataAnalyzers.at(side)->loadChannelData(channel, waveform);
189  }
190 }
191 
193  for (auto & analyzer : m_dataAnalyzers) {
194  analyzer->analyzeData();
195  }
196 }
197 
198 void RPDAnalysisTool::writeAOD(xAOD::ZdcModuleContainer const& moduleContainer, xAOD::ZdcModuleContainer const& moduleSumContainer) const {
199  if (!m_writeAux) {
200  return;
201  }
202 
203  ATH_MSG_DEBUG("Adding variables with suffix = " + m_auxSuffix);
204 
205  // write per-channel decorations (in ZdcModules)
220  for (auto const module : moduleContainer) {
221  if (module->zdcType() != RPDUtils::ZDCModuleRPDType) {
222  // this is not an RPD channel, so skip it
223  continue;
224  }
225  unsigned int const side = RPDUtils::ZDCSideToSideIndex(module->zdcSide());
226  unsigned int const channel = module->zdcChannel();
227  chBaseline(*module) = m_dataAnalyzers.at(side)->getChBaseline(channel);
228  chPileupExpFitParams(*module) = m_dataAnalyzers.at(side)->getChPileupExpFitParams(channel);
229  chPileupStretchedExpFitParams(*module) = m_dataAnalyzers.at(side)->getChPileupStretchedExpFitParams(channel);
230  chPileupExpFitParamErrs(*module) = m_dataAnalyzers.at(side)->getChPileupExpFitParamErrs(channel);
231  chPileupStretchedExpFitParamErrs(*module) = m_dataAnalyzers.at(side)->getChPileupStretchedExpFitParamErrs(channel);
232  chPileupExpFitMSE(*module) = m_dataAnalyzers.at(side)->getChPileupExpFitMSE(channel);
233  chPileupStretchedExpFitMSE(*module) = m_dataAnalyzers.at(side)->getChPileupStretchedExpFitMSE(channel);
234  chAmplitude(*module) = m_dataAnalyzers.at(side)->getChSumAdc(channel);
235  chAmplitudeCalib(*module) = m_dataAnalyzers.at(side)->getChSumAdcCalib(channel);
236  chMaxADC(*module) = m_dataAnalyzers.at(side)->getChMaxAdc(channel);
237  chMaxADCCalib(*module) = m_dataAnalyzers.at(side)->getChMaxAdcCalib(channel);
238  chMaxSample(*module) = m_dataAnalyzers.at(side)->getChMaxSample(channel);
239  chStatus(*module) = m_dataAnalyzers.at(side)->getChStatus(channel);
240  chPileupFrac(*module) = m_dataAnalyzers.at(side)->getChPileupFrac(channel);
241  }
242 
243  // write per-side decorations (in ZdcSums)
245  for (auto const sum: moduleSumContainer) {
246  if (sum->zdcSide() == RPDUtils::ZDCSumsGlobalZDCSide) {
247  // skip global sum (it's like the side between sides)
248  continue;
249  }
250  unsigned int const side = RPDUtils::ZDCSideToSideIndex(sum->zdcSide());
251  sideStatus(*sum) = m_dataAnalyzers.at(side)->getSideStatus();
252  }
253 }
254 
256  if (moduleContainer.empty()) {
257  return StatusCode::SUCCESS; // if no modules, do nothing
258  }
259 
261  if (!eventInfo.isValid()) {
262  return StatusCode::FAILURE;
263  }
264 
266  ATH_MSG_WARNING("RPD decoding error found - abandoning RPD reco!");
267  return StatusCode::SUCCESS;
268  }
269 
270  reset();
271  readAOD(moduleContainer);
272  analyze();
273  writeAOD(moduleContainer, moduleSumContainer);
274 
275  return StatusCode::SUCCESS;
276 }
277 
279  if (!m_initialized) {
280  ATH_MSG_WARNING("Tool not initialized!");
281  return StatusCode::FAILURE;
282  }
283  xAOD::ZdcModuleContainer const* ZDCModules = nullptr;
285  xAOD::ZdcModuleContainer const* ZDCSums = nullptr;
287  return recoZdcModules(*ZDCModules, *ZDCSums);
288 }
289 
290 } // namespace ZDC
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::RPDAnalysisTool::reset
void reset()
Definition: RPDAnalysisTool.cxx:166
ZDC::RPDAnalysisTool::readAOD
void readAOD(xAOD::ZdcModuleContainer const &moduleContainer)
Definition: RPDAnalysisTool.cxx:172
ZDC::RPDAnalysisTool::m_auxSuffix
std::string m_auxSuffix
Definition: RPDAnalysisTool.h:49
SG::WriteDecorHandleKey
Property holding a SG store/key/clid/attr name from which a WriteDecorHandle is made.
Definition: StoreGate/StoreGate/WriteDecorHandleKey.h:89
ZDC::RPDAnalysisTool::m_initialized
bool m_initialized
Definition: RPDAnalysisTool.h:45
RPDAnalysisTool.h
RPDUtils::nChannels
unsigned constexpr int nChannels
Definition: RPDUtils.h:23
ZDC::RPDAnalysisTool::m_forceOutputCalibFactors
std::array< RPDUtils::OptionalToolProperty< std::vector< float > >, 2 > m_forceOutputCalibFactors
Definition: RPDAnalysisTool.h:65
ZDC::RPDAnalysisTool::m_chPileupExpFitParamErrsKey
SG::WriteDecorHandleKey< xAOD::ZdcModuleContainer > m_chPileupExpFitParamErrsKey
Definition: RPDAnalysisTool.h:74
ZDC::RPDAnalysisTool::m_chMaxADCCalibKey
SG::WriteDecorHandleKey< xAOD::ZdcModuleContainer > m_chMaxADCCalibKey
Definition: RPDAnalysisTool.h:81
ZDC::RPDAnalysisTool::m_configuration
std::string m_configuration
Definition: RPDAnalysisTool.h:47
plotting.yearwise_efficiency.channel
channel
Definition: yearwise_efficiency.py:24
ZDC::RPDAnalysisTool::m_chMaxSampleKey
SG::WriteDecorHandleKey< xAOD::ZdcModuleContainer > m_chMaxSampleKey
Definition: RPDAnalysisTool.h:82
RPDUtils::sides
constexpr std::initializer_list< unsigned int > sides
Definition: RPDUtils.h:17
SG::ReadHandle
Definition: StoreGate/StoreGate/ReadHandle.h:67
ZDC::RPDAnalysisTool::m_forceGoodPulseSampleStart
RPDUtils::OptionalToolProperty< unsigned int > m_forceGoodPulseSampleStart
Definition: RPDAnalysisTool.h:58
ZDC::RPDAnalysisTool::m_chAmplitudeKey
SG::WriteDecorHandleKey< xAOD::ZdcModuleContainer > m_chAmplitudeKey
Definition: RPDAnalysisTool.h:78
ZDC::RPDAnalysisTool::m_chPileupStretchedExpFitParamsKey
SG::WriteDecorHandleKey< xAOD::ZdcModuleContainer > m_chPileupStretchedExpFitParamsKey
Definition: RPDAnalysisTool.h:73
asg
Definition: DataHandleTestTool.h:28
ZDC::RPDAnalysisTool::initialize
StatusCode initialize() override
Dummy implementation of the initialisation function.
Definition: RPDAnalysisTool.cxx:42
ZDC::RPDAnalysisTool::m_chPileupExpFitMSEKey
SG::WriteDecorHandleKey< xAOD::ZdcModuleContainer > m_chPileupExpFitMSEKey
Definition: RPDAnalysisTool.h:76
ZDC::RPDAnalysisTool::m_chPileupFracKey
SG::WriteDecorHandleKey< xAOD::ZdcModuleContainer > m_chPileupFracKey
Definition: RPDAnalysisTool.h:84
ZDC::RPDAnalysisTool::analyze
void analyze()
Definition: RPDAnalysisTool.cxx:192
RPDUtils::ZDCSumsGlobalZDCSide
constexpr int ZDCSumsGlobalZDCSide
Definition: RPDUtils.h:19
SG::ConstAccessor
Helper class to provide constant type-safe access to aux data.
Definition: ConstAccessor.h:55
ReweightUtils.message
message
Definition: ReweightUtils.py:15
ZDC::RPDAnalysisTool::m_writeAux
bool m_writeAux
Definition: RPDAnalysisTool.h:48
ZDC::RPDAnalysisTool::m_forceNSamples
RPDUtils::OptionalToolProperty< unsigned int > m_forceNSamples
Definition: RPDAnalysisTool.h:53
ZDC::RPDAnalysisTool::m_chStatusKey
SG::WriteDecorHandleKey< xAOD::ZdcModuleContainer > m_chStatusKey
Definition: RPDAnalysisTool.h:83
TRT::Hit::side
@ side
Definition: HitInfo.h:83
ZDC::RPDAnalysisTool::m_chPileupStretchedExpFitParamErrsKey
SG::WriteDecorHandleKey< xAOD::ZdcModuleContainer > m_chPileupStretchedExpFitParamErrsKey
Definition: RPDAnalysisTool.h:75
ZDC::RPDAnalysisTool::m_sideStatusKey
SG::WriteDecorHandleKey< xAOD::ZdcModuleContainer > m_sideStatusKey
Definition: RPDAnalysisTool.h:86
python.PyAthena.module
module
Definition: PyAthena.py:131
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::RPDConfig::nSamples
unsigned int nSamples
Definition: RPDDataAnalyzer.h:20
ZDC::RPDAnalysisTool::m_chPileupExpFitParamsKey
SG::WriteDecorHandleKey< xAOD::ZdcModuleContainer > m_chPileupExpFitParamsKey
Definition: RPDAnalysisTool.h:72
ZDC::RPDAnalysisTool::m_forcePulse2ndDerivThresh
RPDUtils::OptionalToolProperty< float > m_forcePulse2ndDerivThresh
Definition: RPDAnalysisTool.h:56
TrigConf::MSGTC::Level
Level
Definition: Trigger/TrigConfiguration/TrigConfBase/TrigConfBase/MsgStream.h:21
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
convertTimingResiduals.sum
sum
Definition: convertTimingResiduals.py:55
ZDC::RPDAnalysisTool::m_ZDCSumContainerName
std::string m_ZDCSumContainerName
Definition: RPDAnalysisTool.h:51
RPDUtils::OptionalToolProperty::has_value
bool has_value() const
Definition: RPDUtils.cxx:28
endmsg
#define endmsg
Definition: AnalysisConfig_Ntuple.cxx:63
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T, V, H > &t)
Definition: AthCommonDataStore.h:145
SG::WriteDecorHandle
Handle class for adding a decoration to an object.
Definition: StoreGate/StoreGate/WriteDecorHandle.h:100
ZDC::RPDAnalysisTool::RPDAnalysisTool
RPDAnalysisTool(std::string const &name)
Definition: RPDAnalysisTool.cxx:14
ZDC::RPDAnalysisTool::m_ZDCModuleContainerName
std::string m_ZDCModuleContainerName
Definition: RPDAnalysisTool.h:50
ZDC::RPDAnalysisTool::m_forcePostPulseFracThresh
RPDUtils::OptionalToolProperty< float > m_forcePostPulseFracThresh
Definition: RPDAnalysisTool.h:57
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
ZDC::RPDAnalysisTool::initializeWriteKey
StatusCode initializeWriteKey(std::string const &containerName, SG::WriteDecorHandleKey< xAOD::ZdcModuleContainer > &writeHandleKey, std::string const &key)
Definition: RPDAnalysisTool.cxx:37
ZDC::RPDAnalysisTool::m_chPileupStretchedExpFitMSEKey
SG::WriteDecorHandleKey< xAOD::ZdcModuleContainer > m_chPileupStretchedExpFitMSEKey
Definition: RPDAnalysisTool.h:77
ZDC::RPDAnalysisTool::writeAOD
void writeAOD(xAOD::ZdcModuleContainer const &moduleContainer, xAOD::ZdcModuleContainer const &moduleSumContainer) const
Definition: RPDAnalysisTool.cxx:198
RPDUtils::OptionalToolProperty::value
T const & value() const
Definition: RPDUtils.cxx:31
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:794
WriteDecorHandle.h
Handle class for adding a decoration to an object.
ZDC::RPDAnalysisTool::m_chAmplitudeCalibKey
SG::WriteDecorHandleKey< xAOD::ZdcModuleContainer > m_chAmplitudeCalibKey
Definition: RPDAnalysisTool.h:79
xAOD::EventInfo_v1::ForwardDet
@ ForwardDet
The forward detectors.
Definition: EventInfo_v1.h:338
ZDC::RPDAnalysisTool::m_forceNominalBaseline
RPDUtils::OptionalToolProperty< float > m_forceNominalBaseline
Definition: RPDAnalysisTool.h:60
SG::ReadHandle::isValid
virtual bool isValid() override final
Can the handle be successfully dereferenced?
ZDC::RPDAnalysisTool::m_forcePileupBaselineSumThresh
RPDUtils::OptionalToolProperty< float > m_forcePileupBaselineSumThresh
Definition: RPDAnalysisTool.h:61
RPDUtils::sideA
unsigned constexpr int sideA
Definition: RPDUtils.h:16
ZDC::RPDAnalysisTool::m_forcePileupBaselineStdDevThresh
RPDUtils::OptionalToolProperty< float > m_forcePileupBaselineStdDevThresh
Definition: RPDAnalysisTool.h:62
ZDC::RPDAnalysisTool::m_dataAnalyzers
std::array< std::unique_ptr< RPDDataAnalyzer >, 2 > m_dataAnalyzers
Definition: RPDAnalysisTool.h:68
RPDUtils.h
ZDC::RPDAnalysisTool::MakeMessageFunction
ZDCMsg::MessageFunctionPtr MakeMessageFunction()
Definition: RPDAnalysisTool.cxx:153
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:240
ZDC::RPDAnalysisTool::m_forceEndSignalSample
RPDUtils::OptionalToolProperty< unsigned int > m_forceEndSignalSample
Definition: RPDAnalysisTool.h:55
ZDC::RPDAnalysisTool::m_eventInfoKey
SG::ReadHandleKey< xAOD::EventInfo > m_eventInfoKey
Definition: RPDAnalysisTool.h:88
ZDCMsg::MessageFunctionPtr
std::shared_ptr< MessageFunction > MessageFunctionPtr
Definition: ZDCMsg.h:14
EventInfo.h
xAOD::JetAttributeAccessor::accessor
const AccessorWrapper< T > * accessor(xAOD::JetAttribute::AttributeID id)
Returns an attribute accessor corresponding to an AttributeID.
Definition: JetAccessorMap.h:26
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::RPDAnalysisTool::reprocessZdc
StatusCode reprocessZdc() override
Definition: RPDAnalysisTool.cxx:278
ZDC::RPDAnalysisTool::m_chMaxADCKey
SG::WriteDecorHandleKey< xAOD::ZdcModuleContainer > m_chMaxADCKey
Definition: RPDAnalysisTool.h:80
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition: AthMsgStreamMacros.h:32
ZDC::RPDAnalysisTool::m_chBaselineKey
SG::WriteDecorHandleKey< xAOD::ZdcModuleContainer > m_chBaselineKey
Definition: RPDAnalysisTool.h:71
ZDC
Definition: RPDAnalysisTool.cxx:12
AthCommonMsg< AlgTool >::msg
MsgStream & msg() const
Definition: AthCommonMsg.h:24
RPDUtils::sideC
unsigned constexpr int sideC
Definition: RPDUtils.h:15
ZDC::RPDConfig
Definition: RPDDataAnalyzer.h:19
xAOD::EventInfo_v1::isEventFlagBitSet
bool isEventFlagBitSet(EventFlagSubDet subDet, size_t bit) const
Check one particular bit of one particular sub-detector.
Definition: EventInfo_v1.cxx:703
ZDC::RPDAnalysisTool::m_forceNNegativesAllowed
RPDUtils::OptionalToolProperty< unsigned int > m_forceNNegativesAllowed
Definition: RPDAnalysisTool.h:63
ZDC::RPDAnalysisTool::m_forceGoodPulseSampleStop
RPDUtils::OptionalToolProperty< unsigned int > m_forceGoodPulseSampleStop
Definition: RPDAnalysisTool.h:59
RPDUtils::ZDCSideToSideIndex
unsigned int ZDCSideToSideIndex(int const ZDCSide)
Definition: RPDUtils.cxx:7
ZdcEventInfo.h
Define enumerations for event-level ZDC data.
DataVector::empty
bool empty() const noexcept
Returns true if the collection is empty.
ZDC::RPDAnalysisTool::m_forceNBaselineSamples
RPDUtils::OptionalToolProperty< unsigned int > m_forceNBaselineSamples
Definition: RPDAnalysisTool.h:54
ZDC::RPDAnalysisTool::m_forceADCOverflow
RPDUtils::OptionalToolProperty< unsigned int > m_forceADCOverflow
Definition: RPDAnalysisTool.h:64
RPDUtils::ZDCModuleRPDType
unsigned constexpr int ZDCModuleRPDType
Definition: RPDUtils.h:21
ZdcEventInfo::RPDDECODINGERROR
@ RPDDECODINGERROR
Definition: ZdcEventInfo.h:19
ZDC::RPDAnalysisTool::recoZdcModules
StatusCode recoZdcModules(xAOD::ZdcModuleContainer const &moduleContainer, xAOD::ZdcModuleContainer const &moduleSumContainer) override
Definition: RPDAnalysisTool.cxx:255
mapkey::key
key
Definition: TElectronEfficiencyCorrectionTool.cxx:37