ATLAS Offline Software
RpdSubtractCentroidTool.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef ZDCANALYSIS_RPDSUBTRACTCENTROIDTOOL_H
6 #define ZDCANALYSIS_RPDSUBTRACTCENTROIDTOOL_H
7 
8 
12 #include "ZdcUtils/RPDUtils.h"
13 
14 #include "AsgTools/AsgTool.h"
20 
21 #include <vector>
22 #include <array>
23 #include <bitset>
24 #include <optional>
25 
26 namespace ZDC {
27 
28 class RpdSubtractCentroidTool : public virtual IZdcAnalysisTool, public asg::AsgTool {
30  public:
31  enum {
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  };
57 
58  explicit RpdSubtractCentroidTool(const std::string& name);
59  ~RpdSubtractCentroidTool() override = default;
60 
61  // this tool should never be copied or moved
66 
67  // interface from AsgTool and IZdcAnalysisTool
68  StatusCode initialize() override;
69  StatusCode recoZdcModules(const xAOD::ZdcModuleContainer& moduleContainer, const xAOD::ZdcModuleContainer& moduleSumContainer) override;
70  StatusCode reprocessZdc() override;
71 
72  private:
73  // tool properties to be configured in Python
74  std::string m_configuration;
76  std::string m_ZDCSumContainerName;
77  bool m_writeAux{};
78  std::string m_auxSuffix;
79  // these are optional and null by default; if their values are set, they will overwrite the bulk configuration from config string
88 
89  // these are the final reconstruction parameters
90  std::vector<float> m_minZDCEnergy;
91  std::vector<float> m_maxZDCEnergy;
92  std::vector<float> m_minEMEnergy;
93  std::vector<float> m_maxEMEnergy;
94  std::vector<float> m_pileupMaxFrac;
95  std::vector<float> m_maximumNegativeSubtrAmpFrac;
98 
99  StatusCode initializeKey(std::string const& containerName, SG::ReadDecorHandleKey<xAOD::ZdcModuleContainer> & readHandleKey, std::string const& key);
100  StatusCode initializeKey(std::string const& containerName, SG::WriteDecorHandleKey<xAOD::ZdcModuleContainer> & writeHandleKey, std::string const& key);
101  static bool nonNegative(float const x) { return x >= 0; }
102  static bool anyNonNegative(std::vector<float> const& v) { return std::any_of(v.begin(), v.end(), nonNegative); }
103 
104  // internal properties
105  //
106  bool m_initialized = false;
107  bool m_readZDCDecorations = false;
108 
109  // results from RPD analysis needed for centroid calculation (read from AOD)
110  //
111  struct RPDChannelData {
112  unsigned int channel;
113  float xposRel{};
114  float yposRel{};
115  unsigned short row{};
116  unsigned short col{};
117  float amp{};
118  float subtrAmp{};
119  float pileupFrac{};
120  unsigned int status{};
121  };
122  std::array<std::bitset<RPDDataAnalyzer::N_STATUS_BITS>, 2> m_RPDSideStatus {};
123  std::optional<std::array<unsigned int, 2>> m_ZDCSideStatus;
124  std::optional<std::array<float, 2>> m_ZDCFinalEnergy;
125  std::optional<std::array<float, 2>> m_EMCalibEnergy;
126  std::optional<std::array<std::bitset<ZDCPulseAnalyzer::N_STATUS_BITS>, 2>> m_EMStatus;
127  std::array<std::array<std::array<RPDChannelData, RPDUtils::nCols>, RPDUtils::nRows>, 2> m_RPDChannelData {};
129  // alignment (geometry) and crossing angle correction, to be read from ZdcConditions
130  //
131  std::array<float, 2> m_alignmentXOffset {};
132  std::array<float, 2> m_alignmentYOffset {};
135  // average centroids, to be read from monitoring histograms
136  //
137  std::array<float, 2> m_avgXCentroid {};
138  std::array<float, 2> m_avgYCentroid {};
140  // centroid calculation results (reset each event)
141  //
142  bool m_eventValid = false;
143  std::array<std::bitset<N_STATUS_BITS>, 2> m_centroidStatus {1 << ValidBit, 1 << ValidBit};
144  std::array<std::vector<float>, 2> m_subtrAmp = {
145  std::vector<float>(RPDUtils::nChannels, 0.0),
146  std::vector<float>(RPDUtils::nChannels, 0.0)
147  };
148  std::array<std::array<float, RPDUtils::nRows>, 2> m_subtrAmpRowSum {};
149  std::array<std::array<float, RPDUtils::nCols>, 2> m_subtrAmpColSum {};
150  std::array<float, 2> m_subtrAmpSum {};
151  std::array<float, 2> m_xCentroidPreGeomCorPreAvgSubtr {};
152  std::array<float, 2> m_yCentroidPreGeomCorPreAvgSubtr {};
153  std::array<float, 2> m_xCentroidPreAvgSubtr {};
154  std::array<float, 2> m_yCentroidPreAvgSubtr {};
155  std::array<float, 2> m_xCentroid {};
156  std::array<float, 2> m_yCentroid {};
157  std::array<std::vector<float>, 2> m_xRowCentroid = {
158  std::vector<float>(RPDUtils::nRows, 0.0),
159  std::vector<float>(RPDUtils::nRows, 0.0)
160  };
161  std::array<std::vector<float>, 2> m_yColCentroid = {
162  std::vector<float>(RPDUtils::nCols, 0.0),
163  std::vector<float>(RPDUtils::nCols, 0.0)
164  };
165  std::array<float, 2> m_reactionPlaneAngle {};
168  // methods used for centroid calculation
169  //
170  enum class SubstepStatus {
171  Success, // continue to next step
172  Failure, // stop (do not proceed to next step) and propagate error to Athena
173  SkipEvent, // stop (do not proceed to next step) and tell Athena the event was a success
174  };
175  void reset();
176  SubstepStatus readAOD(xAOD::ZdcModuleContainer const& moduleContainer, xAOD::ZdcModuleContainer const& moduleSumContainer);
177  bool checkZdcRpdValidity(unsigned int side);
178  bool subtractRpdAmplitudes(unsigned int side);
179  void calculateDetectorCentroid(unsigned int side);
180  void geometryCorrection(unsigned int side);
181  void subtractAverageCentroid(unsigned int side);
182  void calculateReactionPlaneAngle(unsigned int side);
183  void writeAOD(xAOD::ZdcModuleContainer const& moduleSumContainer) const;
184 
185  // note that we leave the keys of read/write decor handle keys unset here since they will be set
186  // by this tool's initialize(); this is because container names (and suffix) are taken as tool properties
187  // and cannot be used in an in-class initializer (before constructor, where properties are declared)
188 
189  // read handle keys
190  //
192  this, "EventInfoKey", "EventInfo",
193  "Location of the event info"
194  };
196  this, "xposRelKey", "",
197  "X position of RPD tile center relative to center of RPD active area"
198  };
200  this, "yposRelKey", "",
201  "Y position of RPD tile center relative to center of RPD active area"
202  };
204  this, "rowKey", "",
205  "Row index of RPD channel"
206  };
208  this, "colKey", "",
209  "Column index of RPD channel"
210  };
212  this, "CalibEnergyKey", "",
213  "ZDC module amplitude"
214  };
216  this, "ZDCModuleStatusKey", "",
217  "ZDC module status word"
218  };
220  this, "RPDChannelAmplitudeKey", "",
221  "RPD channel amplitude"
222  };
224  this, "RPDChannelAmplitudeCalibKey", "",
225  "Calibrated RPD channel amplitude"
226  };
228  this, "RPDChannelMaxADCKey", "",
229  "RPD channel max ADC"
230  };
232  this, "RPDChannelMaxADCCalibKey", "",
233  "Calibrated RPD channel max ADC"
234  };
236  this, "RPDChannelPileupFracKey", "",
237  "RPD channel (out of time) pileup as a fraction of non-pileup sum"
238  };
240  this, "RPDChannelStatusKey", "",
241  "RPD channel status word"
242  };
244  this, "RPDStatusKey", "",
245  "RPD side status word"
246  };
248  this, "FinalEnergyKey", "",
249  "ZDC final energy"
250  };
252  this, "ZDCStatusKey", "",
253  "ZDC sum status word"
254  };
255 
256  // write handle keys
258  this, "centroidEventValidKey", "",
259  "Event status: true if both centroids are valid, else false"
260  };
262  this, "centroidStatusKey", "",
263  "Centroid status word"
264  };
266  this, "RPDChannelSubtrAmpKey", "",
267  "RPD channel subtracted amplitudes (tile mass) used in centroid calculation"
268  };
270  this, "RPDSubtrAmpSumKey", "",
271  "Sum of RPD channel subtracted amplitudes (total mass) used in centroid calculation"
272  };
274  this, "xCentroidPreGeomCorPreAvgSubtrKey", "",
275  "X centroid before geometry corrections and before average centroid subtraction (RPD detector coordinates)"
276  };
278  this, "yCentroidPreGeomCorPreAvgSubtrKey", "",
279  "Y centroid before geometry corrections and before average centroid subtraction (RPD detector coordinates)"
280  };
282  this, "xCentroidPreAvgSubtrKey", "",
283  "X centroid after geometry corrections and before average centroid subtraction"
284  };
286  this, "yCentroidPreAvgSubtrKey", "",
287  "Y centroid after geometry corrections and before average centroid subtraction"
288  };
290  this, "xCentroidKey", "",
291  "X centroid after geometry corrections and after average centroid subtraction"
292  };
294  this, "yCentroidKey", "",
295  "Y centroid after geometry corrections and after average centroid subtraction"
296  };
298  this, "xRowCentroidKey", "",
299  "Row X centroids before geometry corrections and before average centroid subtraction (RPD detector coordinates)"
300  };
302  this, "yColCentroidKey", "",
303  "Column Y centroids before geometry corrections and before average centroid subtraction (RPD detector coordinates)"
304  };
306  this, "reactionPlaneAngleKey", "",
307  "Reaction plane angle in [-pi, pi) from the positive x axis"
308  };
310  this, "cosDeltaReactionPlaneAngleKey", "",
311  "Cosine of the difference between the reaction plane angles of the two sides"
312  };
313 
314 };
315 } // namespace ZDC
316 
317 #endif
ZDC::RpdSubtractCentroidTool::RpdSubtractCentroidTool
RpdSubtractCentroidTool(RpdSubtractCentroidTool &&)=delete
ZDC::RpdSubtractCentroidTool::operator=
RpdSubtractCentroidTool & operator=(RpdSubtractCentroidTool &&)=delete
ZDC::RpdSubtractCentroidTool::PileupBit
@ PileupBit
Definition: RpdSubtractCentroidTool.h:41
SG::WriteDecorHandleKey
Property holding a SG store/key/clid/attr name from which a WriteDecorHandle is made.
Definition: StoreGate/StoreGate/WriteDecorHandleKey.h:89
ZDC::RpdSubtractCentroidTool::m_RPDChannelMaxADCCalibKey
SG::ReadDecorHandleKey< xAOD::ZdcModuleContainer > m_RPDChannelMaxADCCalibKey
Definition: RpdSubtractCentroidTool.h:231
ZDC::RpdSubtractCentroidTool::checkZdcRpdValidity
bool checkZdcRpdValidity(unsigned int side)
Definition: RpdSubtractCentroidTool.cxx:282
ZDC::RpdSubtractCentroidTool::m_ZDCFinalEnergyKey
SG::ReadDecorHandleKey< xAOD::ZdcModuleContainer > m_ZDCFinalEnergyKey
Definition: RpdSubtractCentroidTool.h:247
ZDC::RpdSubtractCentroidTool::m_centroidStatus
std::array< std::bitset< N_STATUS_BITS >, 2 > m_centroidStatus
event status
Definition: RpdSubtractCentroidTool.h:143
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:126
ZDC::RpdSubtractCentroidTool::ExcessiveSubtrUnderflowBit
@ ExcessiveSubtrUnderflowBit
Definition: RpdSubtractCentroidTool.h:44
ZDC::RpdSubtractCentroidTool::m_reactionPlaneAngle
std::array< float, 2 > m_reactionPlaneAngle
the y centroid for each column on each side
Definition: RpdSubtractCentroidTool.h:165
ZDC::RpdSubtractCentroidTool::m_forceUseCalibDecorations
RPDUtils::OptionalToolProperty< bool > m_forceUseCalibDecorations
Definition: RpdSubtractCentroidTool.h:87
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:149
ZDC::RpdSubtractCentroidTool::m_RPDChannelMaxADCKey
SG::ReadDecorHandleKey< xAOD::ZdcModuleContainer > m_RPDChannelMaxADCKey
Definition: RpdSubtractCentroidTool.h:227
ZDC::RpdSubtractCentroidTool::~RpdSubtractCentroidTool
~RpdSubtractCentroidTool() override=default
ZDC::RpdSubtractCentroidTool::m_ZDCFinalEnergy
std::optional< std::array< float, 2 > > m_ZDCFinalEnergy
ZDC analysis status on each side.
Definition: RpdSubtractCentroidTool.h:124
ZDC::RpdSubtractCentroidTool::m_readZDCDecorations
bool m_readZDCDecorations
Definition: RpdSubtractCentroidTool.h:107
ZDC::RpdSubtractCentroidTool::Row0ValidBit
@ Row0ValidBit
Definition: RpdSubtractCentroidTool.h:46
ZDC::RpdSubtractCentroidTool::m_forceMaxEMEnergy
RPDUtils::OptionalToolProperty< std::vector< float > > m_forceMaxEMEnergy
Definition: RpdSubtractCentroidTool.h:83
ZDC::RpdSubtractCentroidTool::m_centroidStatusKey
SG::WriteDecorHandleKey< xAOD::ZdcModuleContainer > m_centroidStatusKey
Definition: RpdSubtractCentroidTool.h:261
ZDC::RpdSubtractCentroidTool::m_RPDSideStatus
std::array< std::bitset< RPDDataAnalyzer::N_STATUS_BITS >, 2 > m_RPDSideStatus
Definition: RpdSubtractCentroidTool.h:122
ZDC::RpdSubtractCentroidTool::m_forcePileupMaxFrac
RPDUtils::OptionalToolProperty< std::vector< float > > m_forcePileupMaxFrac
Definition: RpdSubtractCentroidTool.h:84
ZDC::RpdSubtractCentroidTool::m_RPDChannelSubtrAmpKey
SG::WriteDecorHandleKey< xAOD::ZdcModuleContainer > m_RPDChannelSubtrAmpKey
Definition: RpdSubtractCentroidTool.h:265
ZDC::RpdSubtractCentroidTool::m_forceMinZDCEnergy
RPDUtils::OptionalToolProperty< std::vector< float > > m_forceMinZDCEnergy
Definition: RpdSubtractCentroidTool.h:80
ZDC::RpdSubtractCentroidTool::m_RPDChannelPileupFracKey
SG::ReadDecorHandleKey< xAOD::ZdcModuleContainer > m_RPDChannelPileupFracKey
Definition: RpdSubtractCentroidTool.h:235
ZDC::RpdSubtractCentroidTool::m_reactionPlaneAngleKey
SG::WriteDecorHandleKey< xAOD::ZdcModuleContainer > m_reactionPlaneAngleKey
Definition: RpdSubtractCentroidTool.h:305
ZDCPulseAnalyzer.h
ZDC::RpdSubtractCentroidTool::m_RPDSubtrAmpSumKey
SG::WriteDecorHandleKey< xAOD::ZdcModuleContainer > m_RPDSubtrAmpSumKey
Definition: RpdSubtractCentroidTool.h:269
ZDC::RpdSubtractCentroidTool::m_cosDeltaReactionPlaneAngleKey
SG::WriteDecorHandleKey< xAOD::ZdcModuleContainer > m_cosDeltaReactionPlaneAngleKey
Definition: RpdSubtractCentroidTool.h:309
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:185
ZDC::RpdSubtractCentroidTool::subtractAverageCentroid
void subtractAverageCentroid(unsigned int side)
Definition: RpdSubtractCentroidTool.cxx:409
ZDC::RpdSubtractCentroidTool::m_subtrAmp
std::array< std::vector< float >, 2 > m_subtrAmp
centroid status (valid by default) on each side
Definition: RpdSubtractCentroidTool.h:144
ZDC::RpdSubtractCentroidTool::m_RPDSideStatusKey
SG::ReadDecorHandleKey< xAOD::ZdcModuleContainer > m_RPDSideStatusKey
Definition: RpdSubtractCentroidTool.h:243
ZDC::RpdSubtractCentroidTool::recoZdcModules
StatusCode recoZdcModules(const xAOD::ZdcModuleContainer &moduleContainer, const xAOD::ZdcModuleContainer &moduleSumContainer) override
Definition: RpdSubtractCentroidTool.cxx:471
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:156
ZDC::RpdSubtractCentroidTool::RpdSubtractCentroidTool
RpdSubtractCentroidTool(const std::string &name)
Definition: RpdSubtractCentroidTool.cxx:18
ZDC::RpdSubtractCentroidTool::m_minEMEnergy
std::vector< float > m_minEMEnergy
Definition: RpdSubtractCentroidTool.h:92
ZDC::RpdSubtractCentroidTool::SubstepStatus
SubstepStatus
cosine of difference between reaction plane angles of the two sides
Definition: RpdSubtractCentroidTool.h:170
ZDC::RpdSubtractCentroidTool::RPDChannelData::channel
unsigned int channel
Definition: RpdSubtractCentroidTool.h:112
ZDC::RpdSubtractCentroidTool::anyNonNegative
static bool anyNonNegative(std::vector< float > const &v)
Definition: RpdSubtractCentroidTool.h:102
ZDC::RpdSubtractCentroidTool::m_subtrAmpSum
std::array< float, 2 > m_subtrAmpSum
subtracted amplitude for each column on each side
Definition: RpdSubtractCentroidTool.h:150
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:127
ZDC::RpdSubtractCentroidTool::m_useCalibDecorations
bool m_useCalibDecorations
Definition: RpdSubtractCentroidTool.h:97
IZdcAnalysisTool.h
ZDC::RpdSubtractCentroidTool::m_yColCentroid
std::array< std::vector< float >, 2 > m_yColCentroid
the x centroid for each row on each side
Definition: RpdSubtractCentroidTool.h:161
ZDC::RpdSubtractCentroidTool::RPDChannelData::xposRel
float xposRel
Definition: RpdSubtractCentroidTool.h:113
SG::ReadHandleKey< xAOD::EventInfo >
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:153
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
RPDUtils::OptionalToolProperty
Definition: RPDUtils.h:44
ZDC::IZdcAnalysisTool
Definition: IZdcAnalysisTool.h:15
ZDC::RpdSubtractCentroidTool::Row1ValidBit
@ Row1ValidBit
Definition: RpdSubtractCentroidTool.h:47
ZDC::RpdSubtractCentroidTool::m_colKey
SG::ReadDecorHandleKey< xAOD::ZdcModuleContainer > m_colKey
Definition: RpdSubtractCentroidTool.h:207
ZDC::RpdSubtractCentroidTool::Col3ValidBit
@ Col3ValidBit
Definition: RpdSubtractCentroidTool.h:53
ZDC::RpdSubtractCentroidTool::m_xRowCentroidKey
SG::WriteDecorHandleKey< xAOD::ZdcModuleContainer > m_xRowCentroidKey
Definition: RpdSubtractCentroidTool.h:297
ZDC::RpdSubtractCentroidTool::m_ZDCStatusKey
SG::ReadDecorHandleKey< xAOD::ZdcModuleContainer > m_ZDCStatusKey
Definition: RpdSubtractCentroidTool.h:251
ZDC::RpdSubtractCentroidTool::initialize
StatusCode initialize() override
Dummy implementation of the initialisation function.
Definition: RpdSubtractCentroidTool.cxx:46
ZDC::RpdSubtractCentroidTool::m_cosDeltaReactionPlaneAngle
float m_cosDeltaReactionPlaneAngle
reaction plane angle on each side
Definition: RpdSubtractCentroidTool.h:166
TRT::Hit::side
@ side
Definition: HitInfo.h:83
ReadDecorHandleKey.h
Property holding a SG store/key/clid/attr name from which a ReadDecorHandle is made.
ZDC::RpdSubtractCentroidTool::subtractRpdAmplitudes
bool subtractRpdAmplitudes(unsigned int side)
Definition: RpdSubtractCentroidTool.cxx:339
ZDC::RpdSubtractCentroidTool::ExcessiveZDCEnergyBit
@ ExcessiveZDCEnergyBit
Definition: RpdSubtractCentroidTool.h:36
ZDC::RpdSubtractCentroidTool::RPDChannelData
Definition: RpdSubtractCentroidTool.h:111
ZDC::RpdSubtractCentroidTool::m_ZDCSideStatus
std::optional< std::array< unsigned int, 2 > > m_ZDCSideStatus
RPD analysis status word on each side.
Definition: RpdSubtractCentroidTool.h:123
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:154
ZDC::RpdSubtractCentroidTool::ExcessivePileupBit
@ ExcessivePileupBit
Definition: RpdSubtractCentroidTool.h:42
ZDC::RpdSubtractCentroidTool::m_alignmentYOffset
std::array< float, 2 > m_alignmentYOffset
geometry + crossing angle correction in x (ATLAS coordinates)
Definition: RpdSubtractCentroidTool.h:132
ZDC::RpdSubtractCentroidTool::Col1ValidBit
@ Col1ValidBit
Definition: RpdSubtractCentroidTool.h:51
ZDC::RpdSubtractCentroidTool::RPDChannelData::amp
float amp
Definition: RpdSubtractCentroidTool.h:117
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:131
ZDC::RpdSubtractCentroidTool::m_RPDChannelAmplitudeCalibKey
SG::ReadDecorHandleKey< xAOD::ZdcModuleContainer > m_RPDChannelAmplitudeCalibKey
Definition: RpdSubtractCentroidTool.h:223
ZDC::RpdSubtractCentroidTool::m_xposRelKey
SG::ReadDecorHandleKey< xAOD::ZdcModuleContainer > m_xposRelKey
Definition: RpdSubtractCentroidTool.h:195
ZDC::RpdSubtractCentroidTool::SubstepStatus::SkipEvent
@ SkipEvent
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
ReadHandleKey.h
Property holding a SG store/key/clid from which a ReadHandle is made.
ZDC::RpdSubtractCentroidTool::m_yCentroidPreAvgSubtrKey
SG::WriteDecorHandleKey< xAOD::ZdcModuleContainer > m_yCentroidPreAvgSubtrKey
Definition: RpdSubtractCentroidTool.h:285
ZDC::RpdSubtractCentroidTool::m_eventInfoKey
SG::ReadHandleKey< xAOD::EventInfo > m_eventInfoKey
Definition: RpdSubtractCentroidTool.h:191
ZDC::RpdSubtractCentroidTool
Definition: RpdSubtractCentroidTool.h:28
ZDC::RpdSubtractCentroidTool::ValidBit
@ ValidBit
Definition: RpdSubtractCentroidTool.h:32
ZDC::RpdSubtractCentroidTool::RPDChannelData::yposRel
float yposRel
Definition: RpdSubtractCentroidTool.h:114
ZDC::RpdSubtractCentroidTool::m_ZDCModuleCalibEnergyKey
SG::ReadDecorHandleKey< xAOD::ZdcModuleContainer > m_ZDCModuleCalibEnergyKey
Definition: RpdSubtractCentroidTool.h:211
ZDC::RpdSubtractCentroidTool::RPDChannelData::status
unsigned int status
Definition: RpdSubtractCentroidTool.h:120
ZDC::RpdSubtractCentroidTool::m_RPDChannelAmplitudeKey
SG::ReadDecorHandleKey< xAOD::ZdcModuleContainer > m_RPDChannelAmplitudeKey
Definition: RpdSubtractCentroidTool.h:219
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:142
ZDC::RpdSubtractCentroidTool::m_rowKey
SG::ReadDecorHandleKey< xAOD::ZdcModuleContainer > m_rowKey
Definition: RpdSubtractCentroidTool.h:203
ZDC::RpdSubtractCentroidTool::m_EMCalibEnergy
std::optional< std::array< float, 2 > > m_EMCalibEnergy
ZDC final (calibrated) energy on each side.
Definition: RpdSubtractCentroidTool.h:125
ZDC::RpdSubtractCentroidTool::Col0ValidBit
@ Col0ValidBit
Definition: RpdSubtractCentroidTool.h:50
DataVector
Derived DataVector<T>.
Definition: DataVector.h:794
ZDC::RpdSubtractCentroidTool::m_ZDCModuleContainerName
std::string m_ZDCModuleContainerName
Definition: RpdSubtractCentroidTool.h:75
ZDC::RpdSubtractCentroidTool::reset
void reset()
Definition: RpdSubtractCentroidTool.cxx:163
ZDC::RpdSubtractCentroidTool::m_ZDCModuleStatusKey
SG::ReadDecorHandleKey< xAOD::ZdcModuleContainer > m_ZDCModuleStatusKey
Definition: RpdSubtractCentroidTool.h:215
ZDC::RpdSubtractCentroidTool::m_writeAux
bool m_writeAux
Definition: RpdSubtractCentroidTool.h:77
ZDC::RpdSubtractCentroidTool::m_RPDChannelStatusKey
SG::ReadDecorHandleKey< xAOD::ZdcModuleContainer > m_RPDChannelStatusKey
Definition: RpdSubtractCentroidTool.h:239
ZDC::RpdSubtractCentroidTool::m_initialized
bool m_initialized
Definition: RpdSubtractCentroidTool.h:106
ZDC::RpdSubtractCentroidTool::RPDChannelData::col
unsigned short col
Definition: RpdSubtractCentroidTool.h:116
ZDC::RpdSubtractCentroidTool::InsufficientZDCEnergyBit
@ InsufficientZDCEnergyBit
Definition: RpdSubtractCentroidTool.h:35
ZDC::RpdSubtractCentroidTool::m_yCentroidPreGeomCorPreAvgSubtrKey
SG::WriteDecorHandleKey< xAOD::ZdcModuleContainer > m_yCentroidPreGeomCorPreAvgSubtrKey
Definition: RpdSubtractCentroidTool.h:277
RPDUtils::nCols
unsigned constexpr int nCols
Definition: RPDUtils.h:25
RPDUtils.h
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:152
ZDC::RpdSubtractCentroidTool::ZeroSumBit
@ ZeroSumBit
Definition: RpdSubtractCentroidTool.h:43
ZDC::RpdSubtractCentroidTool::m_xCentroidPreGeomCorPreAvgSubtr
std::array< float, 2 > m_xCentroidPreGeomCorPreAvgSubtr
subtracted amplitude sum on each side
Definition: RpdSubtractCentroidTool.h:151
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:228
ZDC::RpdSubtractCentroidTool::m_yposRelKey
SG::ReadDecorHandleKey< xAOD::ZdcModuleContainer > m_yposRelKey
Definition: RpdSubtractCentroidTool.h:199
ZDC::RpdSubtractCentroidTool::RPDChannelData::subtrAmp
float subtrAmp
Definition: RpdSubtractCentroidTool.h:118
ZDC::RpdSubtractCentroidTool::m_ZDCSumContainerName
std::string m_ZDCSumContainerName
Definition: RpdSubtractCentroidTool.h:76
ZDC::RpdSubtractCentroidTool::initializeKey
StatusCode initializeKey(std::string const &containerName, SG::ReadDecorHandleKey< xAOD::ZdcModuleContainer > &readHandleKey, std::string const &key)
Definition: RpdSubtractCentroidTool.cxx:36
ZDC::RpdSubtractCentroidTool::RPDInvalidBit
@ RPDInvalidBit
Definition: RpdSubtractCentroidTool.h:40
RPDDataAnalyzer.h
ZDC::RpdSubtractCentroidTool::m_centroidEventValidKey
SG::WriteDecorHandleKey< xAOD::ZdcModuleContainer > m_centroidEventValidKey
Definition: RpdSubtractCentroidTool.h:257
ZDC::RpdSubtractCentroidTool::EMInvalidBit
@ EMInvalidBit
Definition: RpdSubtractCentroidTool.h:37
ZDC::RpdSubtractCentroidTool::m_maxZDCEnergy
std::vector< float > m_maxZDCEnergy
Definition: RpdSubtractCentroidTool.h:91
ZDC::RpdSubtractCentroidTool::Col2ValidBit
@ Col2ValidBit
Definition: RpdSubtractCentroidTool.h:52
EventInfo.h
ZDC::RpdSubtractCentroidTool::calculateDetectorCentroid
void calculateDetectorCentroid(unsigned int side)
Definition: RpdSubtractCentroidTool.cxx:377
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:157
ZDC::RpdSubtractCentroidTool::m_pileupMaxFrac
std::vector< float > m_pileupMaxFrac
Definition: RpdSubtractCentroidTool.h:94
ZDC::RpdSubtractCentroidTool::RPDChannelData::row
unsigned short row
Definition: RpdSubtractCentroidTool.h:115
ZDC::RpdSubtractCentroidTool::InsufficientEMEnergyBit
@ InsufficientEMEnergyBit
Definition: RpdSubtractCentroidTool.h:38
python.PyAthena.v
v
Definition: PyAthena.py:154
WriteDecorHandleKey.h
ZDC::RpdSubtractCentroidTool::m_xCentroidKey
SG::WriteDecorHandleKey< xAOD::ZdcModuleContainer > m_xCentroidKey
Definition: RpdSubtractCentroidTool.h:289
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:148
ZDC::RpdSubtractCentroidTool::Row3ValidBit
@ Row3ValidBit
Definition: RpdSubtractCentroidTool.h:49
ZDC::RpdSubtractCentroidTool::m_yColCentroidKey
SG::WriteDecorHandleKey< xAOD::ZdcModuleContainer > m_yColCentroidKey
Definition: RpdSubtractCentroidTool.h:301
ZDC::RpdSubtractCentroidTool::m_xCentroidPreGeomCorPreAvgSubtrKey
SG::WriteDecorHandleKey< xAOD::ZdcModuleContainer > m_xCentroidPreGeomCorPreAvgSubtrKey
Definition: RpdSubtractCentroidTool.h:273
ZDC::RpdSubtractCentroidTool::operator=
RpdSubtractCentroidTool & operator=(RpdSubtractCentroidTool const &)=delete
ZDC::RpdSubtractCentroidTool::m_maximumNegativeSubtrAmpFrac
std::vector< float > m_maximumNegativeSubtrAmpFrac
Definition: RpdSubtractCentroidTool.h:95
ASG_TOOL_CLASS
#define ASG_TOOL_CLASS(CLASSNAME, INT1)
Definition: AsgToolMacros.h:68
ZDC
Definition: RPDAnalysisTool.cxx:12
ZDC::RpdSubtractCentroidTool::writeAOD
void writeAOD(xAOD::ZdcModuleContainer const &moduleSumContainer) const
Definition: RpdSubtractCentroidTool.cxx:427
ZDC::RpdSubtractCentroidTool::RPDChannelData::pileupFrac
float pileupFrac
Definition: RpdSubtractCentroidTool.h:119
ZDC::RpdSubtractCentroidTool::reprocessZdc
StatusCode reprocessZdc() override
Definition: RpdSubtractCentroidTool.cxx:508
RPDUtils::nRows
unsigned constexpr int nRows
Definition: RPDUtils.h:24
ZDC::RpdSubtractCentroidTool::geometryCorrection
void geometryCorrection(unsigned int side)
Definition: RpdSubtractCentroidTool.cxx:403
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:101
SG::ReadDecorHandleKey
Property holding a SG store/key/clid/attr name from which a ReadDecorHandle is made.
Definition: StoreGate/StoreGate/ReadDecorHandleKey.h:85
ZDC::RpdSubtractCentroidTool::calculateReactionPlaneAngle
void calculateReactionPlaneAngle(unsigned int side)
Definition: RpdSubtractCentroidTool.cxx:414
AsgTool.h
ZDC::RpdSubtractCentroidTool::m_xCentroidPreAvgSubtrKey
SG::WriteDecorHandleKey< xAOD::ZdcModuleContainer > m_xCentroidPreAvgSubtrKey
Definition: RpdSubtractCentroidTool.h:281
ZDC::RpdSubtractCentroidTool::Row2ValidBit
@ Row2ValidBit
Definition: RpdSubtractCentroidTool.h:48
ZDC::RpdSubtractCentroidTool::HasCentroidBit
@ HasCentroidBit
Definition: RpdSubtractCentroidTool.h:33
ZDC::RpdSubtractCentroidTool::ZDCInvalidBit
@ ZDCInvalidBit
Definition: RpdSubtractCentroidTool.h:34
ZdcModuleContainer.h
ZDC::RpdSubtractCentroidTool::RpdSubtractCentroidTool
RpdSubtractCentroidTool(RpdSubtractCentroidTool const &)=delete
ZDC::RpdSubtractCentroidTool::N_STATUS_BITS
@ N_STATUS_BITS
Definition: RpdSubtractCentroidTool.h:55
ZDC::RpdSubtractCentroidTool::SubstepStatus::Success
@ Success
ZDC::RpdSubtractCentroidTool::m_avgYCentroid
std::array< float, 2 > m_avgYCentroid
average x centroid
Definition: RpdSubtractCentroidTool.h:138
ZDC::RpdSubtractCentroidTool::ExcessiveEMEnergyBit
@ ExcessiveEMEnergyBit
Definition: RpdSubtractCentroidTool.h:39
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:155
ZDC::RpdSubtractCentroidTool::m_avgXCentroid
std::array< float, 2 > m_avgXCentroid
geometry + crossing angle correction in y (ATLAS coordinates)
Definition: RpdSubtractCentroidTool.h:137
ZDC::RpdSubtractCentroidTool::m_yCentroidKey
SG::WriteDecorHandleKey< xAOD::ZdcModuleContainer > m_yCentroidKey
Definition: RpdSubtractCentroidTool.h:293
mapkey::key
key
Definition: TElectronEfficiencyCorrectionTool.cxx:37