ATLAS Offline Software
RpdSubtractCentroidTool.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef ZDCANALYSIS_RPDSUBTRACTCENTROIDTOOL_H
6 #define ZDCANALYSIS_RPDSUBTRACTCENTROIDTOOL_H
7 
8 #include <array>
9 #include <bitset>
10 
11 #include "AsgTools/AsgTool.h"
14 
18 
20 
21 namespace ZDC
22 {
23 
25 {
27 
28  public:
29  enum {
30  ValidBit = 0, // analysis and output are valid
31  HasCentroidBit = 1, // centroid was calculated but analysis is invalid
32  ZDCInvalidBit = 2, // ZDC analysis on this side failed => analysis is invalid
33  InsufficientZDCEnergyBit = 3, // ZDC energy on this side is below minimum => analysis is invalid
34  ExcessiveZDCEnergyBit = 4, // ZDC energy on this side is above maximum => analysis is invalid
35  EMInvalidBit = 5, // EM analysis on this side failed => analysis is invalid
36  InsufficientEMEnergyBit = 6, // EM energy on this side is below minimum => analysis is invalid
37  ExcessiveEMEnergyBit = 7, // EM energy on this side is above maximum => analysis is invalid
38  RPDInvalidBit = 8, // RPD analysis on this side was invalid => calculation stopped and analysis is invalid
39  PileupBit = 9, // pileup was detected in RPD on this side
40  ExcessivePileupBit = 10, // pileup was detected in RPD on this side and a channel exceeded the fractional limit => analysis is invalid
41  ZeroSumBit = 11, // sum of subtracted RPD amplitudes on this side was not positive => calculation stopped and analysis is invalid
42  ExcessiveSubtrUnderflowBit = 12, // a subtracted RPD amplitude on this side was negative and exceeded the fractional limit => analysis is invalid
43 
44  Row0ValidBit = 13, // row 0 x centroid is valid
45  Row1ValidBit = 14, // row 1 x centroid is valid
46  Row2ValidBit = 15, // row 2 x centroid is valid
47  Row3ValidBit = 16, // row 3 x centroid is valid
48  Col0ValidBit = 17, // column 0 y centroid is valid
49  Col1ValidBit = 18, // column 1 y centroid is valid
50  Col2ValidBit = 19, // column 2 y centroid is valid
51  Col3ValidBit = 20, // column 3 y centroid is valid
52  };
53 
54  RpdSubtractCentroidTool(const std::string& name);
55  virtual ~RpdSubtractCentroidTool() override;
56 
57  // interface from AsgTool and IZdcAnalysisTool
58  StatusCode initialize() override;
59  StatusCode recoZdcModules(const xAOD::ZdcModuleContainer& moduleContainer, const xAOD::ZdcModuleContainer& moduleSumContainer) override;
60  StatusCode reprocessZdc() override;
61 
62  private:
63  // job properties
64  //
66  std::string m_zdcSumContainerName;
67  bool m_writeAux;
68  std::string m_auxSuffix;
69 
70  std::vector<float> m_minZdcEnergy;
71  std::vector<float> m_maxZdcEnergy;
72  std::vector<float> m_minEmEnergy;
73  std::vector<float> m_maxEmEnergy;
74  std::vector<float> m_pileupMaxFrac;
75  std::vector<float> m_maximumNegativeSubtrAmpFrac;
78 
79 
80  // As in the ZDC analysis, we use side C = 0, side A = 1 for indexing
81  // note that ZDC side from AOD containers is C = -1, A = 1, but
82  // side C is mapped -1 -> 0 for indexing
83 
84  // constants
85  //
86  unsigned int const m_nRows = 4;
87  unsigned int const m_nCols = 4;
88  unsigned int const m_nChannels = m_nRows*m_nCols;
89 
90  // internal properties
91  //
92  std::string m_name;
93  bool m_init;
94 
95  // results from RPD analysis needed for centroid calculation (read from AOD)
96  //
97  struct RpdChannelData {
98  int channel;
99  float xposRel;
100  float yposRel;
101  unsigned short row;
102  unsigned short col;
103  float amp;
104  float subtrAmp;
105  float pileupFrac;
106  unsigned int status;
107  };
108  std::array<std::bitset<32>, 2> m_rpdSideStatus = {0, 0};
109  std::array<unsigned int, 2> m_zdcSideStatus = {0, 0};
110  std::array<float, 2> m_zdcFinalEnergy = {0, 0};
111  std::array<float, 2> m_emCalibEnergy = {0, 0};
112  std::array<std::bitset<32>, 2> m_emStatus = {0, 0};
113  std::array<std::vector<std::vector<RpdChannelData>>, 2> m_rpdChannelData = {
114  std::vector<std::vector<RpdChannelData>>(m_nRows, std::vector<RpdChannelData>(m_nCols)),
115  std::vector<std::vector<RpdChannelData>>(m_nRows, std::vector<RpdChannelData>(m_nCols))
116  };
118  // alignment (geometry) and crossing angle correction, to be read from ZdcConditions
119  //
120  std::array<float, 2> m_alignmentXOffset = {0.0, 0.0};
121  std::array<float, 2> m_alignmentYOffset = {0.0, 0.0};
124  // average centroids, to be read from monitoring histograms
125  //
126  std::array<float, 2> m_avgXCentroid = {0.0, 0.0};
127  std::array<float, 2> m_avgYCentroid = {0.0, 0.0};
129  // centroid calculation results (reset each event)
130  //
132  std::array<std::bitset<32>, 2> m_centroidStatus = {1 << ValidBit, 1 << ValidBit};
133  std::array<std::vector<float>, 2> m_subtrAmp = {
134  std::vector<float>(m_nChannels, 0.0),
135  std::vector<float>(m_nChannels, 0.0)
136  };
137  std::array<std::vector<float>, 2> m_subtrAmpRowSum = {
138  std::vector<float>(m_nRows, 0.0),
139  std::vector<float>(m_nRows, 0.0)
140  };
141  std::array<std::vector<float>, 2> m_subtrAmpColSum = {
142  std::vector<float>(m_nCols, 0.0),
143  std::vector<float>(m_nCols, 0.0)
144  };
145  std::array<float, 2> m_subtrAmpSum = {0.0, 0.0};
146  std::array<float, 2> m_xCentroidPreGeomCorPreAvgSubtr = {0.0, 0.0};
147  std::array<float, 2> m_yCentroidPreGeomCorPreAvgSubtr = {0.0, 0.0};
148  std::array<float, 2> m_xCentroidPreAvgSubtr = {0.0, 0.0};
149  std::array<float, 2> m_yCentroidPreAvgSubtr = {0.0, 0.0};
150  std::array<float, 2> m_xCentroid = {0.0, 0.0};
151  std::array<float, 2> m_yCentroid = {0.0, 0.0};
152  std::array<std::vector<float>, 2> m_xRowCentroid = {
153  std::vector<float>(m_nRows, 0.0),
154  std::vector<float>(m_nRows, 0.0)
155  };
156  std::array<std::vector<float>, 2> m_yColCentroid = {
157  std::vector<float>(m_nCols, 0.0),
158  std::vector<float>(m_nCols, 0.0)
159  };
160  std::array<float, 2> m_reactionPlaneAngle = {0.0, 0.0};
163  // methods used for centroid calculation
164  //
165  void reset();
166  bool readAOD(xAOD::ZdcModuleContainer const& moduleContainer, xAOD::ZdcModuleContainer const& moduleSumContainer);
167  bool checkZdcRpdValidity(unsigned int side);
168  bool subtractRpdAmplitudes(unsigned int side);
169  void calculateDetectorCentroid(unsigned int side);
170  void geometryCorrection(unsigned int side);
171  void subtractAverageCentroid(unsigned int side);
172  void calculateReactionPlaneAngle(unsigned int side);
173  void writeAOD(xAOD::ZdcModuleContainer const& moduleSumContainer) const;
174 
175  // note that we leave the keys of read/write decor handle keys unset here since they will be set
176  // by this tool's initialize(); this is because container names (and suffix) are taken as tool properties
177  // and cannot be used in an in-class initializer (before constructor, where properties are declared)
178 
179  // read handle keys
180  //
182  this, "EventInfoKey", "EventInfo",
183  "Location of the event info"
184  };
186  this, "xposRelKey", "",
187  "X position of RPD tile center relative to center of RPD active area"
188  };
190  this, "yposRelKey", "",
191  "Y position of RPD tile center relative to center of RPD active area"
192  };
194  this, "rowKey", "",
195  "Row index of RPD channel"
196  };
198  this, "colKey", "",
199  "Column index of RPD channel"
200  };
202  this, "CalibEnergyKey", "",
203  "ZDC module amplitude"
204  };
206  this, "ZDCModuleStatusKey", "",
207  "ZDC module status word"
208  };
210  this, "RPDChannelAmplitudeKey", "",
211  "RPD channel amplitude"
212  };
214  this, "RPDChannelAmplitudeCalibKey", "",
215  "Calibrated RPD channel amplitude"
216  };
218  this, "RPDChannelMaxADCKey", "",
219  "RPD channel max ADC"
220  };
222  this, "RPDChannelMaxADCCalibKey", "",
223  "Calibrated RPD channel max ADC"
224  };
226  this, "RPDChannelPileupFracKey", "",
227  "RPD channel (out of time) pileup as a fraction of non-pileup sum"
228  };
230  this, "RPDChannelStatusKey", "",
231  "RPD channel status word"
232  };
234  this, "RPDStatusKey", "",
235  "RPD side status word"
236  };
238  this, "FinalEnergyKey", "",
239  "ZDC final energy"
240  };
242  this, "ZDCStatusKey", "",
243  "ZDC sum status word"
244  };
245 
246  // write handle keys
248  this, "centroidEventValidKey", "",
249  "Event status: true if both centroids are valid, else false"
250  };
252  this, "centroidStatusKey", "",
253  "Centroid status word"
254  };
256  this, "RPDChannelSubtrAmpKey", "",
257  "RPD channel subtracted amplitudes (tile mass) used in centroid calculation"
258  };
260  this, "RPDSubtrAmpSumKey", "",
261  "Sum of RPD channel subtracted amplitudes (total mass) used in centroid calculation"
262  };
264  this, "xCentroidPreGeomCorPreAvgSubtrKey", "",
265  "X centroid before geometry corrections and before average centroid subtraction (RPD detector coordinates)"
266  };
268  this, "yCentroidPreGeomCorPreAvgSubtrKey", "",
269  "Y centroid before geometry corrections and before average centroid subtraction (RPD detector coordinates)"
270  };
272  this, "xCentroidPreAvgSubtrKey", "",
273  "X centroid after geometry corrections and before average centroid subtraction"
274  };
276  this, "yCentroidPreAvgSubtrKey", "",
277  "Y centroid after geometry corrections and before average centroid subtraction"
278  };
280  this, "xCentroidKey", "",
281  "X centroid after geometry corrections and after average centroid subtraction"
282  };
284  this, "yCentroidKey", "",
285  "Y centroid after geometry corrections and after average centroid subtraction"
286  };
288  this, "xRowCentroidKey", "",
289  "Row X centroids before geometry corrections and before average centroid subtraction (RPD detector coordinates)"
290  };
292  this, "yColCentroidKey", "",
293  "Column Y centroids before geometry corrections and before average centroid subtraction (RPD detector coordinates)"
294  };
296  this, "reactionPlaneAngleKey", "",
297  "Reaction plane angle in [-pi, pi) from the positive x axis"
298  };
300  this, "cosDeltaReactionPlaneAngleKey", "",
301  "Cosine of the difference between the reaction plane angles of the two sides"
302  };
303 
304 };
305 } // namespace ZDC
306 
307 #endif
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:221
ZDC::RpdSubtractCentroidTool::checkZdcRpdValidity
bool checkZdcRpdValidity(unsigned int side)
Definition: RpdSubtractCentroidTool.cxx:253
ZDC::RpdSubtractCentroidTool::m_zdcSumContainerName
std::string m_zdcSumContainerName
Definition: RpdSubtractCentroidTool.h:66
ZDC::RpdSubtractCentroidTool::m_init
bool m_init
Definition: RpdSubtractCentroidTool.h:93
ZDC::RpdSubtractCentroidTool::m_ZDCFinalEnergyKey
SG::ReadDecorHandleKey< xAOD::ZdcModuleContainer > m_ZDCFinalEnergyKey
Definition: RpdSubtractCentroidTool.h:237
ZDC::RpdSubtractCentroidTool::m_reactionPlaneAngle
std::array< float, 2 > m_reactionPlaneAngle
the y centroid for each column on each side
Definition: RpdSubtractCentroidTool.h:160
ZDC::RpdSubtractCentroidTool::m_maxEmEnergy
std::vector< float > m_maxEmEnergy
Definition: RpdSubtractCentroidTool.h:73
ZDC::RpdSubtractCentroidTool::Col2ValidBit
@ Col2ValidBit
Definition: RpdSubtractCentroidTool.h:50
asg::AsgTool
Base class for the dual-use tool implementation classes.
Definition: AsgTool.h:47
ZDC::RpdSubtractCentroidTool::m_RPDChannelMaxADCKey
SG::ReadDecorHandleKey< xAOD::ZdcModuleContainer > m_RPDChannelMaxADCKey
Definition: RpdSubtractCentroidTool.h:217
ZDC::RpdSubtractCentroidTool::m_subtrAmpColSum
std::array< std::vector< float >, 2 > m_subtrAmpColSum
subtracted amplitude for each row on each side
Definition: RpdSubtractCentroidTool.h:141
ZDC::RpdSubtractCentroidTool::RPDInvalidBit
@ RPDInvalidBit
Definition: RpdSubtractCentroidTool.h:38
ZDC::RpdSubtractCentroidTool::m_centroidStatusKey
SG::WriteDecorHandleKey< xAOD::ZdcModuleContainer > m_centroidStatusKey
Definition: RpdSubtractCentroidTool.h:251
ZDC::RpdSubtractCentroidTool::m_centroidStatus
std::array< std::bitset< 32 >, 2 > m_centroidStatus
event status
Definition: RpdSubtractCentroidTool.h:132
ZDC::RpdSubtractCentroidTool::m_RPDChannelSubtrAmpKey
SG::WriteDecorHandleKey< xAOD::ZdcModuleContainer > m_RPDChannelSubtrAmpKey
Definition: RpdSubtractCentroidTool.h:255
ZDC::RpdSubtractCentroidTool::m_RPDChannelPileupFracKey
SG::ReadDecorHandleKey< xAOD::ZdcModuleContainer > m_RPDChannelPileupFracKey
Definition: RpdSubtractCentroidTool.h:225
ZDC::RpdSubtractCentroidTool::m_reactionPlaneAngleKey
SG::WriteDecorHandleKey< xAOD::ZdcModuleContainer > m_reactionPlaneAngleKey
Definition: RpdSubtractCentroidTool.h:295
ZDC::RpdSubtractCentroidTool::ExcessiveZDCEnergyBit
@ ExcessiveZDCEnergyBit
Definition: RpdSubtractCentroidTool.h:34
ZDC::RpdSubtractCentroidTool::m_RPDSubtrAmpSumKey
SG::WriteDecorHandleKey< xAOD::ZdcModuleContainer > m_RPDSubtrAmpSumKey
Definition: RpdSubtractCentroidTool.h:259
ZDC::RpdSubtractCentroidTool::m_cosDeltaReactionPlaneAngleKey
SG::WriteDecorHandleKey< xAOD::ZdcModuleContainer > m_cosDeltaReactionPlaneAngleKey
Definition: RpdSubtractCentroidTool.h:299
ZDC::RpdSubtractCentroidTool::m_auxSuffix
std::string m_auxSuffix
Definition: RpdSubtractCentroidTool.h:68
ZDC::RpdSubtractCentroidTool::subtractAverageCentroid
void subtractAverageCentroid(unsigned int side)
Definition: RpdSubtractCentroidTool.cxx:382
ZDC::RpdSubtractCentroidTool::RpdChannelData::subtrAmp
float subtrAmp
Definition: RpdSubtractCentroidTool.h:104
ZDC::RpdSubtractCentroidTool::PileupBit
@ PileupBit
Definition: RpdSubtractCentroidTool.h:39
ZDC::RpdSubtractCentroidTool::m_subtrAmp
std::array< std::vector< float >, 2 > m_subtrAmp
centroid status (valid by default) on each side
Definition: RpdSubtractCentroidTool.h:133
ZDC::RpdSubtractCentroidTool::m_emCalibEnergy
std::array< float, 2 > m_emCalibEnergy
ZDC final (calibrated) energy on each side.
Definition: RpdSubtractCentroidTool.h:111
ZDC::RpdSubtractCentroidTool::m_RPDSideStatusKey
SG::ReadDecorHandleKey< xAOD::ZdcModuleContainer > m_RPDSideStatusKey
Definition: RpdSubtractCentroidTool.h:233
ZDC::RpdSubtractCentroidTool::Col0ValidBit
@ Col0ValidBit
Definition: RpdSubtractCentroidTool.h:48
ZDC::RpdSubtractCentroidTool::Row1ValidBit
@ Row1ValidBit
Definition: RpdSubtractCentroidTool.h:45
ZDC::RpdSubtractCentroidTool::recoZdcModules
StatusCode recoZdcModules(const xAOD::ZdcModuleContainer &moduleContainer, const xAOD::ZdcModuleContainer &moduleSumContainer) override
Definition: RpdSubtractCentroidTool.cxx:452
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:151
ZDC::RpdSubtractCentroidTool::RpdChannelData::row
unsigned short row
Definition: RpdSubtractCentroidTool.h:101
ZDC::RpdSubtractCentroidTool::RpdSubtractCentroidTool
RpdSubtractCentroidTool(const std::string &name)
Definition: RpdSubtractCentroidTool.cxx:15
ZDC::RpdSubtractCentroidTool::m_useRpdSumAdc
bool m_useRpdSumAdc
Definition: RpdSubtractCentroidTool.h:76
ZDC::RpdSubtractCentroidTool::ZDCInvalidBit
@ ZDCInvalidBit
Definition: RpdSubtractCentroidTool.h:32
ZDC::RpdSubtractCentroidTool::ExcessiveEMEnergyBit
@ ExcessiveEMEnergyBit
Definition: RpdSubtractCentroidTool.h:37
ZDC::RpdSubtractCentroidTool::m_subtrAmpSum
std::array< float, 2 > m_subtrAmpSum
subtracted amplitude for each column on each side
Definition: RpdSubtractCentroidTool.h:145
ZDC::RpdSubtractCentroidTool::m_useCalibDecorations
bool m_useCalibDecorations
Definition: RpdSubtractCentroidTool.h:77
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:156
SG::ReadHandleKey< xAOD::EventInfo >
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:148
ZDC::RpdSubtractCentroidTool::Col1ValidBit
@ Col1ValidBit
Definition: RpdSubtractCentroidTool.h:49
ZDC::RpdSubtractCentroidTool::m_nCols
unsigned int const m_nCols
Definition: RpdSubtractCentroidTool.h:87
ZDC::IZdcAnalysisTool
Definition: IZdcAnalysisTool.h:15
ZDC::RpdSubtractCentroidTool::HasCentroidBit
@ HasCentroidBit
Definition: RpdSubtractCentroidTool.h:31
ZDC::RpdSubtractCentroidTool::m_colKey
SG::ReadDecorHandleKey< xAOD::ZdcModuleContainer > m_colKey
Definition: RpdSubtractCentroidTool.h:197
ZDC::RpdSubtractCentroidTool::ZeroSumBit
@ ZeroSumBit
Definition: RpdSubtractCentroidTool.h:41
ZDC::RpdSubtractCentroidTool::~RpdSubtractCentroidTool
virtual ~RpdSubtractCentroidTool() override
Definition: RpdSubtractCentroidTool.cxx:38
ZDC::RpdSubtractCentroidTool::m_xRowCentroidKey
SG::WriteDecorHandleKey< xAOD::ZdcModuleContainer > m_xRowCentroidKey
Definition: RpdSubtractCentroidTool.h:287
ZDC::RpdSubtractCentroidTool::m_ZDCStatusKey
SG::ReadDecorHandleKey< xAOD::ZdcModuleContainer > m_ZDCStatusKey
Definition: RpdSubtractCentroidTool.h:241
ZDC::RpdSubtractCentroidTool::m_emStatus
std::array< std::bitset< 32 >, 2 > m_emStatus
EM calibrated energy on each side.
Definition: RpdSubtractCentroidTool.h:112
ZDC::RpdSubtractCentroidTool::initialize
StatusCode initialize() override
Dummy implementation of the initialisation function.
Definition: RpdSubtractCentroidTool.cxx:43
ZDC::RpdSubtractCentroidTool::m_cosDeltaReactionPlaneAngle
float m_cosDeltaReactionPlaneAngle
reaction plane angle on each side
Definition: RpdSubtractCentroidTool.h:161
TRT::Hit::side
@ side
Definition: HitInfo.h:83
ZDC::RpdSubtractCentroidTool::RpdChannelData::col
unsigned short col
Definition: RpdSubtractCentroidTool.h:102
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:309
ZDC::RpdSubtractCentroidTool::ValidBit
@ ValidBit
Definition: RpdSubtractCentroidTool.h:30
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:149
ZDC::RpdSubtractCentroidTool::Col3ValidBit
@ Col3ValidBit
Definition: RpdSubtractCentroidTool.h:51
ZDC::RpdSubtractCentroidTool::m_alignmentYOffset
std::array< float, 2 > m_alignmentYOffset
geometry + crossing angle correction in x (ATLAS coordinates)
Definition: RpdSubtractCentroidTool.h:121
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:120
ZDC::RpdSubtractCentroidTool::m_RPDChannelAmplitudeCalibKey
SG::ReadDecorHandleKey< xAOD::ZdcModuleContainer > m_RPDChannelAmplitudeCalibKey
Definition: RpdSubtractCentroidTool.h:213
ZDC::RpdSubtractCentroidTool::m_xposRelKey
SG::ReadDecorHandleKey< xAOD::ZdcModuleContainer > m_xposRelKey
Definition: RpdSubtractCentroidTool.h:185
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:275
ZDC::RpdSubtractCentroidTool::m_eventInfoKey
SG::ReadHandleKey< xAOD::EventInfo > m_eventInfoKey
Definition: RpdSubtractCentroidTool.h:181
ZDC::RpdSubtractCentroidTool
Definition: RpdSubtractCentroidTool.h:25
ZDC::RpdSubtractCentroidTool::m_rpdChannelData
std::array< std::vector< std::vector< RpdChannelData > >, 2 > m_rpdChannelData
EM modlue status word on each side.
Definition: RpdSubtractCentroidTool.h:113
ZDC::RpdSubtractCentroidTool::m_ZDCModuleCalibEnergyKey
SG::ReadDecorHandleKey< xAOD::ZdcModuleContainer > m_ZDCModuleCalibEnergyKey
Definition: RpdSubtractCentroidTool.h:201
ZDC::RpdSubtractCentroidTool::m_RPDChannelAmplitudeKey
SG::ReadDecorHandleKey< xAOD::ZdcModuleContainer > m_RPDChannelAmplitudeKey
Definition: RpdSubtractCentroidTool.h:209
ZDC::RpdSubtractCentroidTool::m_rpdSideStatus
std::array< std::bitset< 32 >, 2 > m_rpdSideStatus
Definition: RpdSubtractCentroidTool.h:108
ZDC::RpdSubtractCentroidTool::m_rowKey
SG::ReadDecorHandleKey< xAOD::ZdcModuleContainer > m_rowKey
Definition: RpdSubtractCentroidTool.h:193
ZDC::RpdSubtractCentroidTool::ExcessivePileupBit
@ ExcessivePileupBit
Definition: RpdSubtractCentroidTool.h:40
ZDC::RpdSubtractCentroidTool::RpdChannelData::channel
int channel
Definition: RpdSubtractCentroidTool.h:98
DataVector
Derived DataVector<T>.
Definition: DataVector.h:581
ZDC::RpdSubtractCentroidTool::reset
void reset()
cosine of difference between reaction plane angles of the two sides
Definition: RpdSubtractCentroidTool.cxx:127
ZDC::RpdSubtractCentroidTool::m_ZDCModuleStatusKey
SG::ReadDecorHandleKey< xAOD::ZdcModuleContainer > m_ZDCModuleStatusKey
Definition: RpdSubtractCentroidTool.h:205
ZDC::RpdSubtractCentroidTool::m_writeAux
bool m_writeAux
Definition: RpdSubtractCentroidTool.h:67
ZDC::RpdSubtractCentroidTool::Row3ValidBit
@ Row3ValidBit
Definition: RpdSubtractCentroidTool.h:47
ZDC::RpdSubtractCentroidTool::m_RPDChannelStatusKey
SG::ReadDecorHandleKey< xAOD::ZdcModuleContainer > m_RPDChannelStatusKey
Definition: RpdSubtractCentroidTool.h:229
ZDC::RpdSubtractCentroidTool::m_yCentroidPreGeomCorPreAvgSubtrKey
SG::WriteDecorHandleKey< xAOD::ZdcModuleContainer > m_yCentroidPreGeomCorPreAvgSubtrKey
Definition: RpdSubtractCentroidTool.h:267
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:147
ZDC::RpdSubtractCentroidTool::m_eventStatus
bool m_eventStatus
average y centroid
Definition: RpdSubtractCentroidTool.h:131
ZDC::RpdSubtractCentroidTool::RpdChannelData::status
unsigned int status
Definition: RpdSubtractCentroidTool.h:106
ZDC::RpdSubtractCentroidTool::m_nRows
unsigned int const m_nRows
Definition: RpdSubtractCentroidTool.h:86
ZDC::RpdSubtractCentroidTool::m_nChannels
unsigned int const m_nChannels
Definition: RpdSubtractCentroidTool.h:88
ZDC::RpdSubtractCentroidTool::m_maxZdcEnergy
std::vector< float > m_maxZdcEnergy
Definition: RpdSubtractCentroidTool.h:71
ZDC::RpdSubtractCentroidTool::m_xCentroidPreGeomCorPreAvgSubtr
std::array< float, 2 > m_xCentroidPreGeomCorPreAvgSubtr
subtracted amplitude sum on each side
Definition: RpdSubtractCentroidTool.h:146
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
ZDC::RpdSubtractCentroidTool::m_yposRelKey
SG::ReadDecorHandleKey< xAOD::ZdcModuleContainer > m_yposRelKey
Definition: RpdSubtractCentroidTool.h:189
ZDC::RpdSubtractCentroidTool::RpdChannelData::pileupFrac
float pileupFrac
Definition: RpdSubtractCentroidTool.h:105
ZDC::RpdSubtractCentroidTool::m_centroidEventValidKey
SG::WriteDecorHandleKey< xAOD::ZdcModuleContainer > m_centroidEventValidKey
Definition: RpdSubtractCentroidTool.h:247
ZDC::RpdSubtractCentroidTool::readAOD
bool readAOD(xAOD::ZdcModuleContainer const &moduleContainer, xAOD::ZdcModuleContainer const &moduleSumContainer)
Definition: RpdSubtractCentroidTool.cxx:160
EventInfo.h
ZDC::RpdSubtractCentroidTool::calculateDetectorCentroid
void calculateDetectorCentroid(unsigned int side)
Definition: RpdSubtractCentroidTool.cxx:348
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:152
ZDC::RpdSubtractCentroidTool::m_pileupMaxFrac
std::vector< float > m_pileupMaxFrac
Definition: RpdSubtractCentroidTool.h:74
WriteDecorHandleKey.h
ZDC::RpdSubtractCentroidTool::m_xCentroidKey
SG::WriteDecorHandleKey< xAOD::ZdcModuleContainer > m_xCentroidKey
Definition: RpdSubtractCentroidTool.h:279
ZDC::RpdSubtractCentroidTool::m_zdcModuleContainerName
std::string m_zdcModuleContainerName
Definition: RpdSubtractCentroidTool.h:65
ZDC::RpdSubtractCentroidTool::InsufficientZDCEnergyBit
@ InsufficientZDCEnergyBit
Definition: RpdSubtractCentroidTool.h:33
ZDC::RpdSubtractCentroidTool::m_yColCentroidKey
SG::WriteDecorHandleKey< xAOD::ZdcModuleContainer > m_yColCentroidKey
Definition: RpdSubtractCentroidTool.h:291
ZDC::RpdSubtractCentroidTool::m_xCentroidPreGeomCorPreAvgSubtrKey
SG::WriteDecorHandleKey< xAOD::ZdcModuleContainer > m_xCentroidPreGeomCorPreAvgSubtrKey
Definition: RpdSubtractCentroidTool.h:263
ZDC::RpdSubtractCentroidTool::RpdChannelData::xposRel
float xposRel
Definition: RpdSubtractCentroidTool.h:99
ZDC::RpdSubtractCentroidTool::m_maximumNegativeSubtrAmpFrac
std::vector< float > m_maximumNegativeSubtrAmpFrac
Definition: RpdSubtractCentroidTool.h:75
ASG_TOOL_CLASS
#define ASG_TOOL_CLASS(CLASSNAME, INT1)
Definition: AsgToolMacros.h:68
ZDC::RpdSubtractCentroidTool::m_zdcSideStatus
std::array< unsigned int, 2 > m_zdcSideStatus
RPD analysis status word on each side.
Definition: RpdSubtractCentroidTool.h:109
ZDC
Definition: RpdSubtractCentroidTool.cxx:13
ZDC::RpdSubtractCentroidTool::Row0ValidBit
@ Row0ValidBit
Definition: RpdSubtractCentroidTool.h:44
ZDC::RpdSubtractCentroidTool::writeAOD
void writeAOD(xAOD::ZdcModuleContainer const &moduleSumContainer) const
Definition: RpdSubtractCentroidTool.cxx:402
ZDC::RpdSubtractCentroidTool::m_name
std::string m_name
Definition: RpdSubtractCentroidTool.h:92
ZDC::RpdSubtractCentroidTool::EMInvalidBit
@ EMInvalidBit
Definition: RpdSubtractCentroidTool.h:35
ZDC::RpdSubtractCentroidTool::Row2ValidBit
@ Row2ValidBit
Definition: RpdSubtractCentroidTool.h:46
ZDC::RpdSubtractCentroidTool::reprocessZdc
StatusCode reprocessZdc() override
Definition: RpdSubtractCentroidTool.cxx:480
ZDC::RpdSubtractCentroidTool::geometryCorrection
void geometryCorrection(unsigned int side)
Definition: RpdSubtractCentroidTool.cxx:375
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:388
AsgTool.h
ZDC::RpdSubtractCentroidTool::m_xCentroidPreAvgSubtrKey
SG::WriteDecorHandleKey< xAOD::ZdcModuleContainer > m_xCentroidPreAvgSubtrKey
Definition: RpdSubtractCentroidTool.h:271
ZDC::RpdSubtractCentroidTool::RpdChannelData
Definition: RpdSubtractCentroidTool.h:97
ZDC::RpdSubtractCentroidTool::m_minZdcEnergy
std::vector< float > m_minZdcEnergy
Definition: RpdSubtractCentroidTool.h:70
ZDC::RpdSubtractCentroidTool::ExcessiveSubtrUnderflowBit
@ ExcessiveSubtrUnderflowBit
Definition: RpdSubtractCentroidTool.h:42
ZdcModuleContainer.h
ZDC::RpdSubtractCentroidTool::m_minEmEnergy
std::vector< float > m_minEmEnergy
Definition: RpdSubtractCentroidTool.h:72
ZDC::RpdSubtractCentroidTool::m_avgYCentroid
std::array< float, 2 > m_avgYCentroid
average x centroid
Definition: RpdSubtractCentroidTool.h:127
ZDC::RpdSubtractCentroidTool::m_zdcFinalEnergy
std::array< float, 2 > m_zdcFinalEnergy
ZDC analysis status on each side.
Definition: RpdSubtractCentroidTool.h:110
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:150
ZDC::RpdSubtractCentroidTool::m_avgXCentroid
std::array< float, 2 > m_avgXCentroid
geometry + crossing angle correction in y (ATLAS coordinates)
Definition: RpdSubtractCentroidTool.h:126
ZDC::RpdSubtractCentroidTool::RpdChannelData::amp
float amp
Definition: RpdSubtractCentroidTool.h:103
ZDC::RpdSubtractCentroidTool::RpdChannelData::yposRel
float yposRel
Definition: RpdSubtractCentroidTool.h:100
ZDC::RpdSubtractCentroidTool::m_yCentroidKey
SG::WriteDecorHandleKey< xAOD::ZdcModuleContainer > m_yCentroidKey
Definition: RpdSubtractCentroidTool.h:283
ZDC::RpdSubtractCentroidTool::InsufficientEMEnergyBit
@ InsufficientEMEnergyBit
Definition: RpdSubtractCentroidTool.h:36
ZDC::RpdSubtractCentroidTool::m_subtrAmpRowSum
std::array< std::vector< float >, 2 > m_subtrAmpRowSum
subtracted amplitude for each channel on each side
Definition: RpdSubtractCentroidTool.h:137