ATLAS Offline Software
RPC_SimHitToPrdCBNTAlgo.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
3 */
4 
6 
7 #include "GaudiKernel/INTupleSvc.h"
8 #include "GaudiKernel/NTuple.h"
10 #include "MuonRDO/RpcCoinMatrix.h"
12 #include "MuonRDO/RpcPad.h"
16 #include "StoreGate/ReadHandle.h"
17 
18 namespace {
20  constexpr int MAX_PART = 100;
21  constexpr int MAX_SIMHRPC = 10000;
22  constexpr int MAX_DIGITRPC = 10000;
23  constexpr int MAX_PADRPC = 1000;
24  constexpr int MAX_RDOCHRPC = 10000;
25  constexpr int MAX_PRDRPC = 10000;
26 } // namespace
28 public:
29  // Constructor:
30  Clockwork() = default;
31 
32  // Destructor:
33  ~Clockwork() = default;
34 
35  // Point to NTuple:
36  NTuple::Tuple* nt{nullptr};
37 
38  NTuple::Item<long> run;
39  NTuple::Item<long> event;
40 
41  NTuple::Item<int> m_npartStored;
42  NTuple::Array<float> m_partVertX;
43  NTuple::Array<float> m_partVertY;
44  NTuple::Array<float> m_partVertZ;
45  NTuple::Array<float> m_partVertT;
46  NTuple::Array<int> m_partPdgId;
47  NTuple::Array<float> m_partMomX;
48  NTuple::Array<float> m_partMomY;
49  NTuple::Array<float> m_partMomZ;
50  NTuple::Array<int> m_partStatus;
51  NTuple::Array<int> m_partBarcode;
52  NTuple::Array<float> m_partMass;
53 
54  NTuple::Item<int> m_SimHit_nRpc; // number of SimHits in the collection
55 
56  NTuple::Array<int> m_SimHit_station; // Return the station
57  NTuple::Array<int> m_SimHit_eta; // Return the station eta
58  NTuple::Array<int> m_SimHit_phi; // Return the station phi
59  NTuple::Array<int> m_SimHit_doubletR; // Return doubletR
60  NTuple::Array<int> m_SimHit_doubletZ; // Return doubletZ
61  NTuple::Array<int> m_SimHit_doubletPhi; // Return doubletPhi
62  NTuple::Array<int> m_SimHit_gasGap; // Return gasGap
63  NTuple::Array<int> m_SimHit_measuresPhi; // Return measuresPhi
64  NTuple::Array<float> m_SimHit_time; // Return the time
65  NTuple::Array<float> m_SimHit_localx; // Return the strip pos x SD local frame
66  NTuple::Array<float> m_SimHit_localy; // Return the strip pos y
67  NTuple::Array<float> m_SimHit_localz; // Return the strip pos z
68  NTuple::Array<float> m_SimHit_globalx; // Return the strip pos x global frame
69  NTuple::Array<float> m_SimHit_globaly; // Return the strip pos y
70  NTuple::Array<float> m_SimHit_globalz; // Return the strip pos z
71  NTuple::Array<float> m_SimHit_truthBarcode; // Return the truthBarcode of associated track
72  NTuple::Array<float> m_SimHit_stepLen; // length of the G4 step
73  NTuple::Array<float> m_SimHit_energyDep; // G4 energy loss along step
74  NTuple::Array<float> m_SimHit_kinEnergy; // initial kin energy of particle producing the hit
75  NTuple::Array<int> m_SimHit_pdgId; // pdgId of particle producing the hit
76 
77  NTuple::Item<int> m_nPads; // number of pads in the container
78  NTuple::Array<int> m_rpc_pad_id; // pad id
79  NTuple::Array<int> m_rpc_pad_bcid; // pad bcid
80  NTuple::Array<int> m_rpc_pad_lvl1id; // pad lvl1 id
81  NTuple::Array<int> m_rpc_pad_sectorid; // pad sector id
82  NTuple::Array<int> m_rpc_pad_error; // pad error code
83  NTuple::Array<int> m_rpc_pad_status; // pad status
84 
85  NTuple::Item<int> m_nCMA; // number of coincidence matrices
86  NTuple::Item<int> m_nFiredChannels; // number of fired channel
87  NTuple::Array<int> m_hashId; // hash id for pad == offline id
88  NTuple::Array<int> m_sector; // pad sector Id
89  NTuple::Array<int> m_padId; // pad Id
90  NTuple::Array<int> m_status; // status
91  NTuple::Array<int> m_errorCode; // error code
92  NTuple::Array<int> m_cmaId; // CMA Id
93  NTuple::Array<int> m_fel1Id; // fel1Id
94  NTuple::Array<int> m_febcId; // febcId
95  NTuple::Array<int> m_crc; // crc
96  NTuple::Array<int> m_bcId; // bc Id
97  NTuple::Array<int> m_time; // time
98  NTuple::Array<int> m_ijk; // ijk code
99  NTuple::Array<int> m_channel; // fired channel
100  NTuple::Array<int> m_overlap; // overlap
101  NTuple::Array<int> m_threshold; // threshold
102 
103  NTuple::Item<int> m_digit_nRpcColl; // number of collection in the container
104  NTuple::Item<int> m_digit_nRpc; // number of digit in the collection
105 
106  NTuple::Array<float> m_digit_time; // Return the time
107  NTuple::Array<int> m_digit_station; // Return the station
108  NTuple::Array<int> m_digit_eta; // Return the station eta
109  NTuple::Array<int> m_digit_phi; // Return the station phi
110  NTuple::Array<int> m_digit_doubletR; // Return doubletR
111  NTuple::Array<int> m_digit_doubletZ; // Return doubletZ
112  NTuple::Array<int> m_digit_doubletPhi; // Return doubletPhi
113  NTuple::Array<int> m_digit_gasGap; // Return gasGap
114  NTuple::Array<int> m_digit_measuresPhi; // Return measuresPhi
115  NTuple::Array<int> m_digit_strip; // Return the strip #
116  NTuple::Array<float> m_digit_stripx; // Return the strip pos x
117  NTuple::Array<float> m_digit_stripy; // Return the strip pos y
118  NTuple::Array<float> m_digit_stripz; // Return the strip pos z
119 
120  NTuple::Item<int> m_nRpcColl; // number of collection in the container
121  NTuple::Item<int> m_nRpcPrd; // number of digit in the collection
122 
123  NTuple::Array<float> m_prd_time; // Return the time
124  NTuple::Array<int> m_prd_station; // Return the station
125  NTuple::Array<int> m_prd_eta; // Return the station eta
126  NTuple::Array<int> m_prd_phi; // Return the station phi
127  NTuple::Array<int> m_prd_doubletR; // Return doubletR
128  NTuple::Array<int> m_prd_doubletZ; // Return doubletZ
129  NTuple::Array<int> m_prd_doubletPhi; // Return doubletPhi
130  NTuple::Array<int> m_prd_gasGap; // Return gasGap
131  NTuple::Array<int> m_prd_measuresPhi; // Return measuresPhi
132  NTuple::Array<int> m_prd_strip; // Return the strip #
133  NTuple::Array<float> m_prd_stripx; // Return the strip pos x
134  NTuple::Array<float> m_prd_stripy; // Return the strip pos y
135  NTuple::Array<float> m_prd_stripz; // Return the strip pos z
136  NTuple::Array<float> m_prd_triggerInfo; // Return trigger info
137  NTuple::Array<float> m_prd_ambigFlag; // Return ambiguity flag
138 };
139 
141 // Algorithm constructor
142 RPC_SimHitToPrdCBNTAlgo::RPC_SimHitToPrdCBNTAlgo(const std::string& name, ISvcLocator* pSvcLocator) :
143  AthAlgorithm(name, pSvcLocator),
144  m_c (std::make_unique<Clockwork>())
145 {
146 }
147 
148 // Initialize method
149 
151  ATH_MSG_DEBUG("in initialize()");
152 
153  ATH_CHECK(detStore()->retrieve(m_muonMgr, "Muon"));
154  ATH_CHECK(m_idHelperSvc.retrieve());
155 
156  // book ntuple
157  NTupleFilePtr file(ntupleSvc(), "/NTUPLES/FILE");
158 
159  if (!file) return StatusCode::FAILURE;
160 
161  NTuple::Directory* col = ntupleSvc()->createDirectory("/NTUPLES/FILE/RPCvalidNT");
162 
163  NTuplePtr nt(ntupleSvc(), "/NTUPLES/FILE/RPCvalidNT/RPC");
164  if (!nt)
165  nt = ntupleSvc()->book(col, 1, CLID_ColumnWiseTuple, "RPC");
166  else {
167  ATH_MSG_ERROR("Cannot book the ntuple");
168  return StatusCode::FAILURE;
169  }
170 
171  // event info
172  ATH_CHECK(nt->addItem("Run", m_c->run));
173  ATH_CHECK(nt->addItem("Event", m_c->event));
174 
175  if (m_doMCtruth) {
177  ATH_CHECK(nt->addItem("NpartStored", m_c->m_npartStored, 0, MAX_PART));
178  ATH_CHECK(nt->addIndexedItem("partVertX", m_c->m_npartStored, m_c->m_partVertX));
179  ATH_CHECK(nt->addIndexedItem("partVertY", m_c->m_npartStored, m_c->m_partVertY));
180  ATH_CHECK(nt->addIndexedItem("partVertZ", m_c->m_npartStored, m_c->m_partVertZ));
181  ATH_CHECK(nt->addIndexedItem("partVertT", m_c->m_npartStored, m_c->m_partVertT));
182  ATH_CHECK(nt->addIndexedItem("partPdgId", m_c->m_npartStored, m_c->m_partPdgId));
183  ATH_CHECK(nt->addIndexedItem("partMomX", m_c->m_npartStored, m_c->m_partMomX));
184  ATH_CHECK(nt->addIndexedItem("partMomY", m_c->m_npartStored, m_c->m_partMomY));
185  ATH_CHECK(nt->addIndexedItem("partMomZ", m_c->m_npartStored, m_c->m_partMomZ));
186  ATH_CHECK(nt->addIndexedItem("partStatus", m_c->m_npartStored, m_c->m_partStatus));
187  ATH_CHECK(nt->addIndexedItem("partBarcode", m_c->m_npartStored, m_c->m_partBarcode));
188  ATH_CHECK(nt->addIndexedItem("partMass", m_c->m_npartStored, m_c->m_partMass));
189  }
190 
191  if (m_doRPCSimHit) {
192  ATH_CHECK(m_HitCollKey.initialize());
193  ATH_CHECK(nt->addItem("rpc_Nsimhit", m_c->m_SimHit_nRpc, 0, MAX_SIMHRPC));
194  ATH_CHECK(nt->addIndexedItem("rpc_simhit_station", m_c->m_SimHit_nRpc, m_c->m_SimHit_station));
195  ATH_CHECK(nt->addIndexedItem("rpc_simhit_eta", m_c->m_SimHit_nRpc, m_c->m_SimHit_eta));
196  ATH_CHECK(nt->addIndexedItem("rpc_simhit_phi", m_c->m_SimHit_nRpc, m_c->m_SimHit_phi));
197  ATH_CHECK(nt->addIndexedItem("rpc_simhit_doublr", m_c->m_SimHit_nRpc, m_c->m_SimHit_doubletR));
198  ATH_CHECK(nt->addIndexedItem("rpc_simhit_doublz", m_c->m_SimHit_nRpc, m_c->m_SimHit_doubletZ));
199  ATH_CHECK(nt->addIndexedItem("rpc_simhit_doublphi", m_c->m_SimHit_nRpc, m_c->m_SimHit_doubletPhi));
200  ATH_CHECK(nt->addIndexedItem("rpc_simhit_gasgap", m_c->m_SimHit_nRpc, m_c->m_SimHit_gasGap));
201  ATH_CHECK(nt->addIndexedItem("rpc_simhit_measphi", m_c->m_SimHit_nRpc, m_c->m_SimHit_measuresPhi));
202  ATH_CHECK(nt->addIndexedItem("rpc_simhit_time", m_c->m_SimHit_nRpc, m_c->m_SimHit_time));
203  ATH_CHECK(nt->addIndexedItem("rpc_simhit_localx", m_c->m_SimHit_nRpc, m_c->m_SimHit_localx));
204  ATH_CHECK(nt->addIndexedItem("rpc_simhit_localy", m_c->m_SimHit_nRpc, m_c->m_SimHit_localy));
205  ATH_CHECK(nt->addIndexedItem("rpc_simhit_localz", m_c->m_SimHit_nRpc, m_c->m_SimHit_localz));
206  ATH_CHECK(nt->addIndexedItem("rpc_simhit_globalx", m_c->m_SimHit_nRpc, m_c->m_SimHit_globalx));
207  ATH_CHECK(nt->addIndexedItem("rpc_simhit_globaly", m_c->m_SimHit_nRpc, m_c->m_SimHit_globaly));
208  ATH_CHECK(nt->addIndexedItem("rpc_simhit_globalz", m_c->m_SimHit_nRpc, m_c->m_SimHit_globalz));
209  ATH_CHECK(nt->addIndexedItem("rpc_simhit_truthBarcode", m_c->m_SimHit_nRpc, m_c->m_SimHit_truthBarcode));
210  ATH_CHECK(nt->addIndexedItem("rpc_simhit_stepLen", m_c->m_SimHit_nRpc, m_c->m_SimHit_stepLen));
211  ATH_CHECK(nt->addIndexedItem("rpc_simhit_energyDep", m_c->m_SimHit_nRpc, m_c->m_SimHit_energyDep));
212  ATH_CHECK(nt->addIndexedItem("rpc_simhit_kinEnergy", m_c->m_SimHit_nRpc, m_c->m_SimHit_kinEnergy));
213  ATH_CHECK(nt->addIndexedItem("rpc_simhit_pdgId", m_c->m_SimHit_nRpc, m_c->m_SimHit_pdgId));
214  }
215  // Digits block
216  if (m_doRPCDigit) {
218  ATH_CHECK(nt->addItem("rpc_NdigitColl", m_c->m_digit_nRpcColl));
219  ATH_CHECK(nt->addItem("rpc_Ndigit", m_c->m_digit_nRpc, 0, MAX_DIGITRPC));
220  ATH_CHECK(nt->addIndexedItem("rpc_digit_station", m_c->m_digit_nRpc, m_c->m_digit_station));
221  ATH_CHECK(nt->addIndexedItem("rpc_digit_eta", m_c->m_digit_nRpc, m_c->m_digit_eta));
222  ATH_CHECK(nt->addIndexedItem("rpc_digit_phi", m_c->m_digit_nRpc, m_c->m_digit_phi));
223  ATH_CHECK(nt->addIndexedItem("rpc_digit_doublr", m_c->m_digit_nRpc, m_c->m_digit_doubletR));
224  ATH_CHECK(nt->addIndexedItem("rpc_digit_doublz", m_c->m_digit_nRpc, m_c->m_digit_doubletZ));
225  ATH_CHECK(nt->addIndexedItem("rpc_digit_doublphi", m_c->m_digit_nRpc, m_c->m_digit_doubletPhi));
226  ATH_CHECK(nt->addIndexedItem("rpc_digit_gasgap", m_c->m_digit_nRpc, m_c->m_digit_gasGap));
227  ATH_CHECK(nt->addIndexedItem("rpc_digit_measphi", m_c->m_digit_nRpc, m_c->m_digit_measuresPhi));
228  ATH_CHECK(nt->addIndexedItem("rpc_digit_strip", m_c->m_digit_nRpc, m_c->m_digit_strip));
229  ATH_CHECK(nt->addIndexedItem("rpc_digit_time", m_c->m_digit_nRpc, m_c->m_digit_time));
230  ATH_CHECK(nt->addIndexedItem("rpc_digit_stripx", m_c->m_digit_nRpc, m_c->m_digit_stripx));
231  ATH_CHECK(nt->addIndexedItem("rpc_digit_stripy", m_c->m_digit_nRpc, m_c->m_digit_stripy));
232  ATH_CHECK(nt->addIndexedItem("rpc_digit_stripz", m_c->m_digit_nRpc, m_c->m_digit_stripz));
233  }
234 
235  // RDO block
236  if (m_doRPCRDO) {
238  ATH_CHECK(nt->addItem("rpc_Npad", m_c->m_nPads, 0, MAX_PADRPC));
239  ATH_CHECK(nt->addIndexedItem("rpc_pad_id", m_c->m_nPads, m_c->m_rpc_pad_id));
240  ATH_CHECK(nt->addIndexedItem("rpc_pad_bcid", m_c->m_nPads, m_c->m_rpc_pad_bcid));
241  ATH_CHECK(nt->addIndexedItem("rpc_pad_lvl1id", m_c->m_nPads, m_c->m_rpc_pad_lvl1id));
242  ATH_CHECK(nt->addIndexedItem("rpc_pad_sectorid", m_c->m_nPads, m_c->m_rpc_pad_sectorid));
243  ATH_CHECK(nt->addIndexedItem("rpc_pad_error", m_c->m_nPads, m_c->m_rpc_pad_error));
244  ATH_CHECK(nt->addIndexedItem("rpc_pad_status", m_c->m_nPads, m_c->m_rpc_pad_status));
245 
246  ATH_CHECK(nt->addItem("rpc_Ncm", m_c->m_nCMA));
247  ATH_CHECK(nt->addItem("rpc_Nrdo", m_c->m_nFiredChannels, 0, MAX_RDOCHRPC));
248  ATH_CHECK(nt->addIndexedItem("rpc_rdo_sector", m_c->m_nFiredChannels, m_c->m_sector));
249  ATH_CHECK(nt->addIndexedItem("rpc_rdo_padId", m_c->m_nFiredChannels, m_c->m_padId));
250  ATH_CHECK(nt->addIndexedItem("rpc_rdo_status", m_c->m_nFiredChannels, m_c->m_status));
251  ATH_CHECK(nt->addIndexedItem("rpc_rdo_errcode", m_c->m_nFiredChannels, m_c->m_errorCode));
252  ATH_CHECK(nt->addIndexedItem("rpc_rdo_cmaId", m_c->m_nFiredChannels, m_c->m_cmaId));
253  ATH_CHECK(nt->addIndexedItem("rpc_rdo_fel1Id", m_c->m_nFiredChannels, m_c->m_fel1Id));
254  ATH_CHECK(nt->addIndexedItem("rpc_rdo_febcId", m_c->m_nFiredChannels, m_c->m_febcId));
255  ATH_CHECK(nt->addIndexedItem("rpc_rdo_crc", m_c->m_nFiredChannels, m_c->m_crc));
256  ATH_CHECK(nt->addIndexedItem("rpc_rdo_bcId", m_c->m_nFiredChannels, m_c->m_bcId));
257  ATH_CHECK(nt->addIndexedItem("rpc_rdo_ticks", m_c->m_nFiredChannels, m_c->m_time));
258  ATH_CHECK(nt->addIndexedItem("rpc_rdo_ijk", m_c->m_nFiredChannels, m_c->m_ijk));
259  ATH_CHECK(nt->addIndexedItem("rpc_rdo_cmachan", m_c->m_nFiredChannels, m_c->m_channel));
260  ATH_CHECK(nt->addIndexedItem("rpc_rdo_overlap", m_c->m_nFiredChannels, m_c->m_overlap));
261  ATH_CHECK(nt->addIndexedItem("rpc_rdo_threshold", m_c->m_nFiredChannels, m_c->m_threshold));
262  }
263 
264  // Prep block
265  if (m_doRPCPrep) {
266  ATH_CHECK(m_PrepKey.initialize());
267  ATH_CHECK(nt->addItem("rpc_NprdColl", m_c->m_nRpcColl));
268  ATH_CHECK(nt->addItem("rpc_Nprd", m_c->m_nRpcPrd, 0, MAX_PRDRPC));
269  ATH_CHECK(nt->addIndexedItem("rpc_prd_station", m_c->m_nRpcPrd, m_c->m_prd_station));
270  ATH_CHECK(nt->addIndexedItem("rpc_prd_eta", m_c->m_nRpcPrd, m_c->m_prd_eta));
271  ATH_CHECK(nt->addIndexedItem("rpc_prd_phi", m_c->m_nRpcPrd, m_c->m_prd_phi));
272  ATH_CHECK(nt->addIndexedItem("rpc_prd_doublr", m_c->m_nRpcPrd, m_c->m_prd_doubletR));
273  ATH_CHECK(nt->addIndexedItem("rpc_prd_doublz", m_c->m_nRpcPrd, m_c->m_prd_doubletZ));
274  ATH_CHECK(nt->addIndexedItem("rpc_prd_doublphi", m_c->m_nRpcPrd, m_c->m_prd_doubletPhi));
275  ATH_CHECK(nt->addIndexedItem("rpc_prd_gasgap", m_c->m_nRpcPrd, m_c->m_prd_gasGap));
276  ATH_CHECK(nt->addIndexedItem("rpc_prd_measphi", m_c->m_nRpcPrd, m_c->m_prd_measuresPhi));
277  ATH_CHECK(nt->addIndexedItem("rpc_prd_strip", m_c->m_nRpcPrd, m_c->m_prd_strip));
278  ATH_CHECK(nt->addIndexedItem("rpc_prd_time", m_c->m_nRpcPrd, m_c->m_prd_time));
279  ATH_CHECK(nt->addIndexedItem("rpc_prd_stripx", m_c->m_nRpcPrd, m_c->m_prd_stripx));
280  ATH_CHECK(nt->addIndexedItem("rpc_prd_stripy", m_c->m_nRpcPrd, m_c->m_prd_stripy));
281  ATH_CHECK(nt->addIndexedItem("rpc_prd_stripz", m_c->m_nRpcPrd, m_c->m_prd_stripz));
282  ATH_CHECK(nt->addIndexedItem("rpc_prd_triggerInfo", m_c->m_nRpcPrd, m_c->m_prd_triggerInfo));
283  ATH_CHECK(nt->addIndexedItem("rpc_prd_ambigFlag", m_c->m_nRpcPrd, m_c->m_prd_ambigFlag));
284  }
285  m_c->nt = nt;
286 
287  return StatusCode::SUCCESS;
288 }
289 
291  if (m_doMCtruth) {
292  m_c->m_npartStored = 0;
293  m_c->run = 0;
294  m_c->event = 0;
295  }
296 
297  if (m_doRPCSimHit) { m_c->m_SimHit_nRpc = 0; }
298 
299  if (m_doRPCDigit) {
300  m_c->m_digit_nRpcColl = 0;
301  m_c->m_digit_nRpc = 0;
302  }
303 
304  if (m_doRPCRDO) {
305  m_c->m_nPads = 0;
306 
307  m_c->m_nCMA = 0;
308  m_c->m_nFiredChannels = 0;
309  }
310 
311  if (m_doRPCPrep) {
312  m_c->m_nRpcColl = 0;
313  m_c->m_nRpcPrd = 0;
314  }
315 }
316 
317 // Execute method
319  ATH_MSG_DEBUG("in execute()");
320 
321  clearNTuple();
322 
323  const EventContext& ctx = Gaudi::Hive::currentContext();
324  m_c->event = ctx.eventID().event_number();
325  m_c->run = ctx.eventID().run_number();
326 
327  if (m_doMCtruth) {
328  if (doMCtruth(ctx).isFailure()) {
329  ATH_MSG_WARNING("MC truth fill failed");
330  return StatusCode::RECOVERABLE;
331  }
332  }
333 
334  if (m_doRPCSimHit) { ATH_CHECK(doRPCSimHit(ctx)); }
335  if (m_doRPCDigit) { ATH_CHECK(doRPCDigit(ctx)); }
336  if (m_doRPCRDO) { ATH_CHECK(doRPCRDO(ctx)); }
337  if (m_doRPCPrep) { ATH_CHECK(doRPCPrep(ctx)); }
338 
339  ATH_CHECK(ntupleSvc()->writeRecord(m_c->nt));
340  return StatusCode::SUCCESS;
341 }
342 
343 // Execute method
345  ATH_MSG_DEBUG("in doMCtruth");
346  ATH_MSG_DEBUG("RpcSimHitToPrdCBNT::doMCtruth begin.");
347 
348  // Retrieve test container of all hits in input to the digitization
350  if (!mcEvent.isValid()) {
351  ATH_MSG_FATAL(" Cannot retrieve McEventCollection");
352  return StatusCode::FAILURE;
353  }
354 
355  long eventCounter = 0;
356  Amg::Vector3D direction(0., 0., 0.);
357  int ipart = 0;
358  for (const HepMC::GenEvent* e : (*mcEvent)) {
359  ++eventCounter;
360 
361  ATH_MSG_DEBUG("McEvent n. " << eventCounter);
362  int particleCounter = 0;
363  for (auto p : (*e)) {
364  ++particleCounter;
365  ATH_MSG_DEBUG("McEvent n. " << eventCounter << " particle # " << particleCounter);
366  if (ipart >= MAX_PART) {
367  ATH_MSG_WARNING(__FILE__ << ":" << __LINE__ << " Number of particles exceeded. Please consider to increase MAX_PART:"
368  << MAX_PART << " at compile time");
369  break;
370  }
371  if (!p) {
372  ATH_MSG_DEBUG("Captain nullptr ahead");
373  continue;
374  }
375 
376  float xv{-FLT_MAX}, yv{-FLT_MAX}, zv{-FLT_MAX}, tv{-FLT_MAX};
377  // the following lines give troubles - protect them
378  if (p->production_vertex()) {
379  xv = p->production_vertex()->position().x();
380  yv = p->production_vertex()->position().y();
381  zv = p->production_vertex()->position().z();
382  tv = p->production_vertex()->position().t();
383  }
384  float xd = p->momentum().px();
385  float yd = p->momentum().py();
386  float zd = p->momentum().pz();
387  float mag = std::hypot(xd, yd, zd);
388  if (std::abs(mag) > 0.001) {
389  direction[0] = (xd / mag);
390  direction[1] = (yd / mag);
391  direction[2] = (zd / mag);
392  }
393  int status = p->status();
394  int barcode = HepMC::barcode(p);
395  float generatedMass = p->generated_mass();
396  int pdgId = p->pdg_id();
397 
398  m_c->m_partVertX[ipart] = xv;
399  m_c->m_partVertY[ipart] = yv;
400  m_c->m_partVertZ[ipart] = zv;
401  m_c->m_partVertT[ipart] = tv;
402  m_c->m_partPdgId[ipart] = pdgId;
403  m_c->m_partMomX[ipart] = xd;
404  m_c->m_partMomY[ipart] = yd;
405  m_c->m_partMomZ[ipart] = zd;
406  m_c->m_partStatus[ipart] = status;
407  m_c->m_partBarcode[ipart] = barcode;
408  m_c->m_partMass[ipart] = generatedMass;
409  ++ipart;
410  ATH_MSG_DEBUG("Event # " << eventCounter << " vertex at " << xv << " " << yv << " " << zv << " produced at time = " << tv
411  << " direction theta/eta/phi = " << direction.theta() << " " << direction.phi()
412  << " p = " << sqrt(xd * xd + yd * yd + zd * zd) << " pdgId = " << pdgId << " Status " << status);
413  }
414  }
415  m_c->m_npartStored = ipart;
416  ATH_MSG_DEBUG("out of doMCtruth");
417  return StatusCode::SUCCESS;
418 }
419 
420 // Execute method
422  ATH_MSG_DEBUG("in doRPCSimHit");
423  ATH_MSG_DEBUG("RpcSimHitToPrdCBNT::doRPCSimHit begin.");
424 
425  // Retrieve test container of all hits in input to the digitization
427  if (!inputSimHitColl.isValid()) {
428  ATH_MSG_FATAL("Failed to retrieve " << m_HitCollKey.fullKey());
429  return StatusCode::FAILURE;
430  }
431 
432  ATH_MSG_DEBUG("RPCSimHitCollection->size() : " << inputSimHitColl->size());
433 
434  int myCounter = 0;
435  for (RPCSimHitCollection::const_iterator rpcsimhit = inputSimHitColl.cptr()->begin(); rpcsimhit != inputSimHitColl.cptr()->end();
436  ++rpcsimhit) {
437  if (myCounter >= MAX_SIMHRPC) {
438  ATH_MSG_WARNING(__FILE__ << ":" << __LINE__
439  << "Maximum allowed number of simulated hits exceeded... Please consider to increase MAX_SIMHRPC="
440  << MAX_SIMHRPC << " at compile time");
441  break;
442  }
443  const int idHit = rpcsimhit->RPCid();
444 
445  int StationName = -1;
446 
447  if (!m_muonHelper) m_muonHelper = RpcHitIdHelper::GetHelper(m_idHelperSvc->rpcIdHelper().gasGapMax());
448  std::string stationName_str = m_muonHelper->GetStationName(idHit);
449  int stationEta = m_muonHelper->GetZSector(idHit);
450  int stationPhi = m_muonHelper->GetPhiSector(idHit);
451  int doubletR = m_muonHelper->GetDoubletR(idHit);
452  int doubletZ = m_muonHelper->GetDoubletZ(idHit);
453  int doubletPhi = m_muonHelper->GetDoubletPhi(idHit);
454  int gasGap = m_muonHelper->GetGasGapLayer(idHit);
455  int measphi = m_muonHelper->GetMeasuresPhi(idHit);
456 
457  if (stationName_str == "BIL") {
458  StationName = 0;
459  } else if (stationName_str == "BIS") {
460  StationName = 1;
461  } else if (stationName_str == "BML") {
462  StationName = 2;
463  } else if (stationName_str == "BMS") {
464  StationName = 3;
465  } else if (stationName_str == "BOL") {
466  StationName = 4;
467  } else if (stationName_str == "BOS") {
468  StationName = 5;
469  } else if (stationName_str == "BIR") {
470  StationName = 7;
471  } else if (stationName_str == "BMF") {
472  StationName = 8;
473  } else if (stationName_str == "BOF") {
474  StationName = 9;
475  } else if (stationName_str == "BOG") {
476  StationName = 10;
477  } else if (stationName_str == "BIM") {
478  StationName = 52;
479  } else if (stationName_str == "BME") {
480  StationName = 53;
481  } else if (stationName_str == "BOE") {
482  StationName = 54;
483  }
484 
485  // construct Atlas identifier from components
486  ATH_MSG_DEBUG("creating id for hit in element:"
487  << " stationName_str " << stationName_str << " stationEta " << stationEta << " stationPhi " << stationPhi
488  << " doubletR " << doubletR << " doubletZ " << doubletZ << " doubletPhi " << doubletPhi << " gasGap " << gasGap
489  << " measphi " << measphi); //
490 
491  // use GeoAdaptors to retrieve global positions of a simhit
492  GeoRPCHit ghit(*rpcsimhit);
494 
495  m_c->m_SimHit_time[myCounter] = rpcsimhit->globalTime();
496  m_c->m_SimHit_localx[myCounter] = rpcsimhit->localPosition().x();
497  m_c->m_SimHit_localy[myCounter] = rpcsimhit->localPosition().y();
498  m_c->m_SimHit_localz[myCounter] = rpcsimhit->localPosition().z();
499  m_c->m_SimHit_globalx[myCounter] = gPos.x();
500  m_c->m_SimHit_globaly[myCounter] = gPos.y();
501  m_c->m_SimHit_globalz[myCounter] = gPos.z();
502 
503  m_c->m_SimHit_station[myCounter] = StationName;
504  m_c->m_SimHit_eta[myCounter] = stationEta;
505  m_c->m_SimHit_phi[myCounter] = stationPhi;
506  m_c->m_SimHit_doubletR[myCounter] = doubletR;
507  m_c->m_SimHit_doubletZ[myCounter] = doubletZ;
508  m_c->m_SimHit_doubletPhi[myCounter] = doubletPhi;
509  m_c->m_SimHit_gasGap[myCounter] = gasGap;
510  m_c->m_SimHit_measuresPhi[myCounter] = measphi;
511 
512  m_c->m_SimHit_truthBarcode[myCounter] = rpcsimhit->truthBarcode();
513  m_c->m_SimHit_stepLen[myCounter] = rpcsimhit->stepLength();
514  m_c->m_SimHit_energyDep[myCounter] = rpcsimhit->energyDeposit();
515  m_c->m_SimHit_kinEnergy[myCounter] = rpcsimhit->kineticEnergy();
516  m_c->m_SimHit_pdgId[myCounter] = rpcsimhit->particleEncoding();
517 
518  ++myCounter;
519  }
520 
521  m_c->m_SimHit_nRpc = myCounter;
522  ATH_MSG_DEBUG("out of doRPCSimHit");
523  return StatusCode::SUCCESS;
524 }
525 
526 // Execute method
528  ATH_MSG_DEBUG("in doRPCDigit");
529  // Retrieve Digit container in StoreGate
531  ATH_MSG_DEBUG("RpcDigitContainer size: " << digitContainer->size());
532  if (!digitContainer.isValid()) {
533  ATH_MSG_FATAL("Failed to retrieve " << m_DigiCollKey.fullKey());
534  return StatusCode::FAILURE;
535  }
536  int myCounter = 0;
537  for (RpcDigitContainer::const_iterator containerit = digitContainer.cptr()->begin(); containerit != digitContainer.cptr()->end();
538  ++containerit) {
539  for (RpcDigitCollection::const_iterator rpcdigit = (*containerit)->begin(); rpcdigit != (*containerit)->end(); ++rpcdigit) {
540  if (myCounter >= MAX_DIGITRPC) {
541  ATH_MSG_WARNING(__FILE__ << ":" << __LINE__ << " Cannot store more digits. Please consider to increase MAX_DIGITRPC:"
542  << MAX_DIGITRPC << " at compile time");
543  break;
544  }
545  Identifier digit_id = (*rpcdigit)->identify();
546 
547  m_c->m_digit_time[myCounter] = (*rpcdigit)->time();
548 
549  m_c->m_digit_station[myCounter] = m_idHelperSvc->rpcIdHelper().stationName(digit_id);
550  m_c->m_digit_eta[myCounter] = m_idHelperSvc->rpcIdHelper().stationEta(digit_id);
551  m_c->m_digit_phi[myCounter] = m_idHelperSvc->rpcIdHelper().stationPhi(digit_id);
552  m_c->m_digit_doubletR[myCounter] = m_idHelperSvc->rpcIdHelper().doubletR(digit_id);
553  m_c->m_digit_doubletZ[myCounter] = m_idHelperSvc->rpcIdHelper().doubletZ(digit_id);
554  m_c->m_digit_doubletPhi[myCounter] = m_idHelperSvc->rpcIdHelper().doubletPhi(digit_id);
555  m_c->m_digit_gasGap[myCounter] = m_idHelperSvc->rpcIdHelper().gasGap(digit_id);
556  m_c->m_digit_measuresPhi[myCounter] = m_idHelperSvc->rpcIdHelper().measuresPhi(digit_id);
557  m_c->m_digit_strip[myCounter] = m_idHelperSvc->rpcIdHelper().strip(digit_id);
558 
559  // get the digit position
560  const MuonGM::RpcReadoutElement* descriptor = m_muonMgr->getRpcReadoutElement(digit_id);
561 
562  const Amg::Vector3D stripPos = descriptor->stripPos(digit_id);
563 
564  m_c->m_digit_stripx[myCounter] = stripPos.x();
565  m_c->m_digit_stripy[myCounter] = stripPos.y();
566  m_c->m_digit_stripz[myCounter] = stripPos.z();
567 
568  ATH_MSG_DEBUG("DIG Station/eta/phi/dbR/dbZ/dbP/measPhi/strip: "
569  << m_c->m_digit_station[myCounter] << " " << m_c->m_digit_eta[myCounter] << " " << m_c->m_digit_phi[myCounter]
570  << " " << m_c->m_digit_doubletR[myCounter] << " " << m_c->m_digit_doubletZ[myCounter] << " "
571  << m_c->m_digit_doubletPhi[myCounter] << " " << m_c->m_digit_gasGap[myCounter] << " "
572  << m_c->m_digit_measuresPhi[myCounter] << " " << m_c->m_digit_strip[myCounter]);
573  ++myCounter;
574  } // end of rpcdigit container loop
575  } // end of container iteration loop
576 
577  m_c->m_digit_nRpcColl = digitContainer.cptr()->size();
578  m_c->m_digit_nRpc = myCounter;
579  ATH_MSG_DEBUG("Total n. of DIG / DIG collections " << myCounter << " " << digitContainer.cptr()->size());
580  ATH_MSG_DEBUG("out of doRPCDigit");
581 
582  return StatusCode::SUCCESS;
583 }
584 
585 // Execute method
587  ATH_MSG_DEBUG("in doRPCRDO");
588  // Retrieve RDO container in StoreGate
590 
591  ATH_MSG_DEBUG("m_rpcRDO size: " << rpcRDO->size());
592 
593  // Access by Collection
594 
595  m_c->m_nPads = 0;
596  m_c->m_nCMA = 0;
597  m_c->m_nFiredChannels = 0;
598 
600 
601  int myCounter{0}, myPadCounter{0}, myCMACounter{0};
602  for (const RpcPad* rdoColl : *rpcRDO) {
603  // Now loop on the RDO
604  if (myPadCounter >= MAX_PADRPC || myCounter >= MAX_RDOCHRPC) {
605  ATH_MSG_WARNING(__FILE__ << ":" << __LINE__ << " Maximum pad is exceeded. Please consider to increase MAX_PADRPC=" << MAX_PADRPC
606  << " or MAX_RDOCHRPC=" << MAX_RDOCHRPC);
607  break;
608  }
609  if (rdoColl->size()) {
610  ATH_MSG_DEBUG(" Number of CMA in this pad " << (rdoColl)->size());
611 
612  // pad ntuple variables
613  m_c->m_rpc_pad_id[myPadCounter] = (int)(rdoColl)->onlineId();
614  m_c->m_rpc_pad_sectorid[myPadCounter] = (int)(rdoColl)->sector();
615  m_c->m_rpc_pad_error[myPadCounter] = (int)(rdoColl)->errorCode();
616  m_c->m_rpc_pad_status[myPadCounter] = (int)(rdoColl)->status();
617 
618  m_c->m_rpc_pad_lvl1id[myPadCounter] = (int)(rdoColl)->lvl1Id();
619  m_c->m_rpc_pad_bcid[myPadCounter] = (int)(rdoColl)->bcId();
620 
621  // for each pad, loop over cma
622  RpcPad::const_iterator it3 = (rdoColl)->begin();
623  RpcPad::const_iterator it4 = (rdoColl)->end();
624  for (; it3 != it4; ++it3) {
625  ATH_MSG_DEBUG(" Number of fired channels in this cma " << (*it3)->size());
626  const RpcCoinMatrix* cma = (*it3);
627 
628  // for each cma for over fired channels
629  RpcCoinMatrix::const_iterator it5 = (*it3)->begin();
630  RpcCoinMatrix::const_iterator it6 = (*it3)->end();
631  for (; it5 != it6; ++it5) {
632  if (myCounter < MAX_RDOCHRPC) {
633  const RpcFiredChannel* fChannel = (*it5);
634 
635  m_c->m_sector[myCounter] = (rdoColl)->sector();
636  m_c->m_padId[myCounter] = (rdoColl)->onlineId();
637  m_c->m_status[myCounter] = (rdoColl)->status();
638  m_c->m_errorCode[myCounter] = (rdoColl)->errorCode();
639  m_c->m_cmaId[myCounter] = cma->onlineId();
640  m_c->m_fel1Id[myCounter] = cma->fel1Id();
641  m_c->m_febcId[myCounter] = cma->febcId();
642  m_c->m_crc[myCounter] = cma->crc();
643 
644  m_c->m_bcId[myCounter] = fChannel->bcid();
645  m_c->m_time[myCounter] = fChannel->time();
646  m_c->m_ijk[myCounter] = fChannel->ijk();
647  m_c->m_channel[myCounter] = fChannel->channel();
648 
649  ATH_MSG_DEBUG("RDO sector/pad/cma/ijk/channel " << m_c->m_sector[myCounter] << " " << m_c->m_padId[myCounter] << " "
650  << m_c->m_cmaId[myCounter] << " " << m_c->m_ijk[myCounter] << " "
651  << m_c->m_channel[myCounter]);
652  if (fChannel->ijk() == 7) {
653  m_c->m_overlap[myCounter] = fChannel->ovl();
654  m_c->m_threshold[myCounter] = fChannel->thr();
655  } else {
656  m_c->m_overlap[myCounter] = -1;
657  m_c->m_threshold[myCounter] = -1;
658  }
659  ++myCounter;
660  } else {
661  ATH_MSG_WARNING("More than " << MAX_RDOCHRPC << " channels ");
662  break;
663  }
664  } // end of loop over channels in a CM
665  ++myCMACounter;
666  } // end of loop pver CMAs in a pad
667  ++myPadCounter;
668  } // end of if non empty collection
669  } // end of loop over collections
670 
671  m_c->m_nFiredChannels = myCounter;
672  m_c->m_nCMA = myCMACounter;
673  m_c->m_nPads = myPadCounter;
674 
675  ATH_MSG_DEBUG("out of doRPCRDO");
676 
677  return StatusCode::SUCCESS;
678 }
679 
680 // Execute method
682  ATH_MSG_DEBUG("in doRPCPrep");
683  // Retrieve RDO container in StoreGate
685  if (!rpc_container.isValid()) {
686  ATH_MSG_FATAL("Failed to retrieve " << m_PrepKey.fullKey());
687  return StatusCode::FAILURE;
688  }
689  int myCounter{0}, myCollCounter{0};
690  for (Muon::RpcPrepDataContainer::const_iterator containerit = rpc_container.cptr()->begin(); containerit != rpc_container.cptr()->end();
691  ++containerit) {
692  for (Muon::RpcPrepDataCollection::const_iterator rpcPrd = (*containerit)->begin(); rpcPrd != (*containerit)->end(); ++rpcPrd) {
693  if (myCounter >= MAX_PRDRPC) {
694  ATH_MSG_WARNING(__FILE__ << ":" << __LINE__ << " maximum prepdata exceeded. Please consider to retune MAX_PRDRPC="
695  << MAX_PRDRPC << " at compile time");
696  break;
697  }
698  Identifier prd_id = (*rpcPrd)->identify();
699 
700  m_c->m_prd_time[myCounter] = (*rpcPrd)->time();
701  m_c->m_prd_station[myCounter] = m_idHelperSvc->rpcIdHelper().stationName(prd_id);
702  m_c->m_prd_eta[myCounter] = m_idHelperSvc->rpcIdHelper().stationEta(prd_id);
703  m_c->m_prd_phi[myCounter] = m_idHelperSvc->rpcIdHelper().stationPhi(prd_id);
704  m_c->m_prd_doubletR[myCounter] = m_idHelperSvc->rpcIdHelper().doubletR(prd_id);
705  m_c->m_prd_doubletZ[myCounter] = m_idHelperSvc->rpcIdHelper().doubletZ(prd_id);
706  m_c->m_prd_doubletPhi[myCounter] = m_idHelperSvc->rpcIdHelper().doubletPhi(prd_id);
707  m_c->m_prd_gasGap[myCounter] = m_idHelperSvc->rpcIdHelper().gasGap(prd_id);
708  m_c->m_prd_measuresPhi[myCounter] = m_idHelperSvc->rpcIdHelper().measuresPhi(prd_id);
709  m_c->m_prd_strip[myCounter] = m_idHelperSvc->rpcIdHelper().strip(prd_id);
710  m_c->m_prd_triggerInfo[myCounter] = (*rpcPrd)->triggerInfo();
711  m_c->m_prd_ambigFlag[myCounter] = (*rpcPrd)->ambiguityFlag();
712 
713  ATH_MSG_DEBUG("PRD Station/eta/phi/dbR/dbZ/dbP/measPhi/strip: "
714  << m_c->m_prd_station[myCounter] << " " << m_c->m_prd_eta[myCounter] << " " << m_c->m_prd_phi[myCounter] << " "
715  << m_c->m_prd_doubletR[myCounter] << " " << m_c->m_prd_doubletZ[myCounter] << " "
716  << m_c->m_prd_doubletPhi[myCounter] << " " << m_c->m_prd_gasGap[myCounter] << " "
717  << m_c->m_prd_measuresPhi[myCounter] << " " << m_c->m_prd_strip[myCounter]);
718 
719  // get the digit position
720  const MuonGM::RpcReadoutElement* descriptor = m_muonMgr->getRpcReadoutElement(prd_id);
721 
722  const Amg::Vector3D stripPos = descriptor->stripPos(prd_id);
723 
724  m_c->m_prd_stripx[myCounter] = stripPos.x();
725  m_c->m_prd_stripy[myCounter] = stripPos.y();
726  m_c->m_prd_stripz[myCounter] = stripPos.z();
727 
728  ++myCounter;
729  // ATH_MSG_DEBUG ( " PRD number " << myCounter );
730  } // end of rpcPrd container loop
731  ++myCollCounter;
732  } // end of container iteration loop
733  m_c->m_nRpcPrd = myCounter;
734  m_c->m_nRpcColl = myCollCounter;
735  ATH_MSG_DEBUG("Total n. of PRD / PRD collections " << myCounter << " " << myCollCounter);
736  ATH_MSG_DEBUG("out of doRPCPrep");
737  return StatusCode::SUCCESS;
738 }
python.PyKernel.retrieve
def retrieve(aClass, aKey=None)
Definition: PyKernel.py:110
RPC_SimHitToPrdCBNTAlgo::Clockwork::m_SimHit_globalx
NTuple::Array< float > m_SimHit_globalx
Definition: RPC_SimHitToPrdCBNTAlgo.cxx:68
MuonGM::MuonDetectorManager::getRpcReadoutElement
const RpcReadoutElement * getRpcReadoutElement(const Identifier &id) const
access via extended identifier (requires unpacking)
Definition: MuonDetDescr/MuonReadoutGeometry/src/MuonDetectorManager.cxx:168
RPC_SimHitToPrdCBNTAlgo::Clockwork::m_prd_station
NTuple::Array< int > m_prd_station
Definition: RPC_SimHitToPrdCBNTAlgo.cxx:124
RPC_SimHitToPrdCBNTAlgo::Clockwork::m_SimHit_gasGap
NTuple::Array< int > m_SimHit_gasGap
Definition: RPC_SimHitToPrdCBNTAlgo.cxx:62
RPC_SimHitToPrdCBNTAlgo::Clockwork::m_threshold
NTuple::Array< int > m_threshold
Definition: RPC_SimHitToPrdCBNTAlgo.cxx:101
RpcFiredChannel::ijk
ubit16 ijk() const
Definition: RpcFiredChannel.h:56
RpcHitIdHelper::GetStationName
std::string GetStationName(const int &hid) const
Definition: RpcHitIdHelper.cxx:58
RPC_SimHitToPrdCBNTAlgo::execute
virtual StatusCode execute() override
Definition: RPC_SimHitToPrdCBNTAlgo.cxx:318
RPC_SimHitToPrdCBNTAlgo::Clockwork::m_partMomZ
NTuple::Array< float > m_partMomZ
Definition: RPC_SimHitToPrdCBNTAlgo.cxx:49
RpcFiredChannel::time
ubit16 time() const
Definition: RpcFiredChannel.h:54
RPC_SimHitToPrdCBNTAlgo::m_muonMgr
const MuonGM::MuonDetectorManager * m_muonMgr
Definition: RPC_SimHitToPrdCBNTAlgo.h:55
Muon::nsw::STGTPSegments::moduleIDBits::stationPhi
constexpr uint8_t stationPhi
station Phi 1 to 8
Definition: NSWSTGTPDecodeBitmaps.h:129
RPC_SimHitToPrdCBNTAlgo::Clockwork::m_SimHit_globalz
NTuple::Array< float > m_SimHit_globalz
Definition: RPC_SimHitToPrdCBNTAlgo.cxx:70
RpcHitIdHelper::GetHelper
static const RpcHitIdHelper * GetHelper(unsigned int nGasGaps=2)
Definition: RpcHitIdHelper.cxx:23
dumpTgcDigiDeadChambers.gasGap
list gasGap
Definition: dumpTgcDigiDeadChambers.py:33
RPC_SimHitToPrdCBNTAlgo::Clockwork::m_digit_nRpcColl
NTuple::Item< int > m_digit_nRpcColl
Definition: RPC_SimHitToPrdCBNTAlgo.cxx:103
RPC_SimHitToPrdCBNTAlgo::Clockwork::m_digit_stripy
NTuple::Array< float > m_digit_stripy
Definition: RPC_SimHitToPrdCBNTAlgo.cxx:117
ATH_MSG_FATAL
#define ATH_MSG_FATAL(x)
Definition: AthMsgStreamMacros.h:34
DataModel_detail::const_iterator
Const iterator class for DataVector/DataList.
Definition: DVLIterator.h:82
RPC_SimHitToPrdCBNTAlgo.h
RpcFiredChannel::ovl
ubit16 ovl() const
Definition: RpcFiredChannel.h:61
RpcFiredChannel::thr
ubit16 thr() const
Definition: RpcFiredChannel.h:65
RPC_SimHitToPrdCBNTAlgo::Clockwork::m_bcId
NTuple::Array< int > m_bcId
Definition: RPC_SimHitToPrdCBNTAlgo.cxx:96
python.PerfMonSerializer.p
def p
Definition: PerfMonSerializer.py:743
RPC_SimHitToPrdCBNTAlgo::Clockwork::m_SimHit_localx
NTuple::Array< float > m_SimHit_localx
Definition: RPC_SimHitToPrdCBNTAlgo.cxx:65
RPC_SimHitToPrdCBNTAlgo::Clockwork::m_SimHit_truthBarcode
NTuple::Array< float > m_SimHit_truthBarcode
Definition: RPC_SimHitToPrdCBNTAlgo.cxx:71
RpcHitIdHelper::GetDoubletPhi
int GetDoubletPhi(const int &hid) const
Definition: RpcHitIdHelper.cxx:88
RPC_SimHitToPrdCBNTAlgo::Clockwork::m_digit_stripx
NTuple::Array< float > m_digit_stripx
Definition: RPC_SimHitToPrdCBNTAlgo.cxx:116
RPC_SimHitToPrdCBNTAlgo::Clockwork::m_digit_time
NTuple::Array< float > m_digit_time
Definition: RPC_SimHitToPrdCBNTAlgo.cxx:106
RpcCoinMatrix::crc
ubit16 crc() const
Definition: RpcCoinMatrix.h:69
RPC_SimHitToPrdCBNTAlgo::clearNTuple
void clearNTuple()
Definition: RPC_SimHitToPrdCBNTAlgo.cxx:290
RPC_SimHitToPrdCBNTAlgo::Clockwork::m_nRpcPrd
NTuple::Item< int > m_nRpcPrd
Definition: RPC_SimHitToPrdCBNTAlgo.cxx:121
RPC_SimHitToPrdCBNTAlgo::Clockwork::m_time
NTuple::Array< int > m_time
Definition: RPC_SimHitToPrdCBNTAlgo.cxx:97
RPC_SimHitToPrdCBNTAlgo::m_idHelperSvc
ServiceHandle< Muon::IMuonIdHelperSvc > m_idHelperSvc
Definition: RPC_SimHitToPrdCBNTAlgo.h:56
CaloCellPos2Ntuple.int
int
Definition: CaloCellPos2Ntuple.py:24
RPC_SimHitToPrdCBNTAlgo::Clockwork::m_digit_eta
NTuple::Array< int > m_digit_eta
Definition: RPC_SimHitToPrdCBNTAlgo.cxx:108
RPC_SimHitToPrdCBNTAlgo::Clockwork::m_SimHit_eta
NTuple::Array< int > m_SimHit_eta
Definition: RPC_SimHitToPrdCBNTAlgo.cxx:57
RpcFiredChannel::channel
ubit16 channel() const
Definition: RpcFiredChannel.h:58
RPC_SimHitToPrdCBNTAlgo::Clockwork::m_prd_doubletZ
NTuple::Array< int > m_prd_doubletZ
Definition: RPC_SimHitToPrdCBNTAlgo.cxx:128
RPC_SimHitToPrdCBNTAlgo::m_doRPCRDO
Gaudi::Property< bool > m_doRPCRDO
Definition: RPC_SimHitToPrdCBNTAlgo.h:62
make_unique
std::unique_ptr< T > make_unique(Args &&... args)
Definition: SkimmingToolEXOT5.cxx:23
RpcHitIdHelper::GetMeasuresPhi
int GetMeasuresPhi(const int &hid) const
Definition: RpcHitIdHelper.cxx:96
SG::ReadHandle< McEventCollection >
RPC_SimHitToPrdCBNTAlgo::Clockwork::m_partPdgId
NTuple::Array< int > m_partPdgId
Definition: RPC_SimHitToPrdCBNTAlgo.cxx:46
GeoRPCHit::getGlobalPosition
Amg::Vector3D getGlobalPosition() const
RPC_SimHitToPrdCBNTAlgo::Clockwork::m_prd_strip
NTuple::Array< int > m_prd_strip
Definition: RPC_SimHitToPrdCBNTAlgo.cxx:132
RPC_SimHitToPrdCBNTAlgo::Clockwork::m_digit_gasGap
NTuple::Array< int > m_digit_gasGap
Definition: RPC_SimHitToPrdCBNTAlgo.cxx:113
RPC_SimHitToPrdCBNTAlgo::Clockwork::m_rpc_pad_sectorid
NTuple::Array< int > m_rpc_pad_sectorid
Definition: RPC_SimHitToPrdCBNTAlgo.cxx:81
RPC_SimHitToPrdCBNTAlgo::Clockwork::m_digit_nRpc
NTuple::Item< int > m_digit_nRpc
Definition: RPC_SimHitToPrdCBNTAlgo.cxx:104
PlotCalibFromCool.begin
begin
Definition: PlotCalibFromCool.py:94
RPC_SimHitToPrdCBNTAlgo::doRPCSimHit
StatusCode doRPCSimHit(const EventContext &ctx)
Definition: RPC_SimHitToPrdCBNTAlgo.cxx:421
RPC_SimHitToPrdCBNTAlgo::Clockwork::m_sector
NTuple::Array< int > m_sector
Definition: RPC_SimHitToPrdCBNTAlgo.cxx:88
createCablingJSON.doubletR
int doubletR
Definition: createCablingJSON.py:10
GeoMuonHits.h
RPC_SimHitToPrdCBNTAlgo::m_mcEvtKey
SG::ReadHandleKey< McEventCollection > m_mcEvtKey
Definition: RPC_SimHitToPrdCBNTAlgo.h:41
RPC_SimHitToPrdCBNTAlgo::Clockwork::m_digit_measuresPhi
NTuple::Array< int > m_digit_measuresPhi
Definition: RPC_SimHitToPrdCBNTAlgo.cxx:114
RPC_SimHitToPrdCBNTAlgo::Clockwork::m_crc
NTuple::Array< int > m_crc
Definition: RPC_SimHitToPrdCBNTAlgo.cxx:95
RpcHitIdHelper::GetDoubletZ
int GetDoubletZ(const int &hid) const
Definition: RpcHitIdHelper.cxx:92
RPC_SimHitToPrdCBNTAlgo::~RPC_SimHitToPrdCBNTAlgo
~RPC_SimHitToPrdCBNTAlgo()
RPC_SimHitToPrdCBNTAlgo::m_doRPCDigit
Gaudi::Property< bool > m_doRPCDigit
Definition: RPC_SimHitToPrdCBNTAlgo.h:61
MuonGM::RpcReadoutElement
An RpcReadoutElement corresponds to a single RPC module; therefore typicaly a barrel muon station con...
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/RpcReadoutElement.h:54
RPC_SimHitToPrdCBNTAlgo::Clockwork
Definition: RPC_SimHitToPrdCBNTAlgo.cxx:27
RPC_SimHitToPrdCBNTAlgo::Clockwork::run
NTuple::Item< long > run
Definition: RPC_SimHitToPrdCBNTAlgo.cxx:38
RPC_SimHitToPrdCBNTAlgo::doRPCRDO
StatusCode doRPCRDO(const EventContext &ctx)
Definition: RPC_SimHitToPrdCBNTAlgo.cxx:586
RPC_SimHitToPrdCBNTAlgo::m_doRPCSimHit
Gaudi::Property< bool > m_doRPCSimHit
Definition: RPC_SimHitToPrdCBNTAlgo.h:60
RPC_SimHitToPrdCBNTAlgo::Clockwork::m_padId
NTuple::Array< int > m_padId
Definition: RPC_SimHitToPrdCBNTAlgo.cxx:89
RpcFiredChannel.h
RPC_SimHitToPrdCBNTAlgo::Clockwork::m_ijk
NTuple::Array< int > m_ijk
Definition: RPC_SimHitToPrdCBNTAlgo.cxx:98
RPC_SimHitToPrdCBNTAlgo::Clockwork::m_nRpcColl
NTuple::Item< int > m_nRpcColl
Definition: RPC_SimHitToPrdCBNTAlgo.cxx:120
RpcHitIdHelper.h
RpcCoinMatrix
Definition: RpcCoinMatrix.h:20
PowhegPy8EG_H2a.pdgId
dictionary pdgId
Definition: PowhegPy8EG_H2a.py:128
AtlasHitsVector::const_iterator
CONT::const_iterator const_iterator
Definition: AtlasHitsVector.h:43
RpcFiredChannel
Definition: RpcFiredChannel.h:20
mergePhysValFiles.end
end
Definition: DataQuality/DataQualityUtils/scripts/mergePhysValFiles.py:93
AthCommonDataStore< AthCommonMsg< Algorithm > >::detStore
const ServiceHandle< StoreGateSvc > & detStore() const
The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.
Definition: AthCommonDataStore.h:95
RpcPad.h
RPC_SimHitToPrdCBNTAlgo::Clockwork::m_hashId
NTuple::Array< int > m_hashId
Definition: RPC_SimHitToPrdCBNTAlgo.cxx:87
RPC_SimHitToPrdCBNTAlgo::Clockwork::m_SimHit_station
NTuple::Array< int > m_SimHit_station
Definition: RPC_SimHitToPrdCBNTAlgo.cxx:56
RPC_SimHitToPrdCBNTAlgo::m_DigiCollKey
SG::ReadHandleKey< RpcDigitContainer > m_DigiCollKey
Definition: RPC_SimHitToPrdCBNTAlgo.h:43
RPC_SimHitToPrdCBNTAlgo::Clockwork::m_partMomX
NTuple::Array< float > m_partMomX
Definition: RPC_SimHitToPrdCBNTAlgo.cxx:47
RPC_SimHitToPrdCBNTAlgo::doRPCDigit
StatusCode doRPCDigit(const EventContext &ctx)
Definition: RPC_SimHitToPrdCBNTAlgo.cxx:527
RPC_SimHitToPrdCBNTAlgo::Clockwork::m_npartStored
NTuple::Item< int > m_npartStored
Definition: RPC_SimHitToPrdCBNTAlgo.cxx:41
RPC_SimHitToPrdCBNTAlgo::Clockwork::m_SimHit_kinEnergy
NTuple::Array< float > m_SimHit_kinEnergy
Definition: RPC_SimHitToPrdCBNTAlgo.cxx:74
python.setupRTTAlg.size
int size
Definition: setupRTTAlg.py:39
RPC_SimHitToPrdCBNTAlgo::Clockwork::m_SimHit_measuresPhi
NTuple::Array< int > m_SimHit_measuresPhi
Definition: RPC_SimHitToPrdCBNTAlgo.cxx:63
RPC_SimHitToPrdCBNTAlgo::Clockwork::m_prd_doubletR
NTuple::Array< int > m_prd_doubletR
Definition: RPC_SimHitToPrdCBNTAlgo.cxx:127
RPC_SimHitToPrdCBNTAlgo::Clockwork::m_prd_doubletPhi
NTuple::Array< int > m_prd_doubletPhi
Definition: RPC_SimHitToPrdCBNTAlgo.cxx:129
RPC_SimHitToPrdCBNTAlgo::Clockwork::m_partBarcode
NTuple::Array< int > m_partBarcode
Definition: RPC_SimHitToPrdCBNTAlgo.cxx:51
RpcHitIdHelper::GetPhiSector
int GetPhiSector(const int &hid) const
Definition: RpcHitIdHelper.cxx:69
RPC_SimHitToPrdCBNTAlgo::Clockwork::m_SimHit_doubletZ
NTuple::Array< int > m_SimHit_doubletZ
Definition: RPC_SimHitToPrdCBNTAlgo.cxx:60
RPC_SimHitToPrdCBNTAlgo::m_doMCtruth
Gaudi::Property< bool > m_doMCtruth
Definition: RPC_SimHitToPrdCBNTAlgo.h:59
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
RPC_SimHitToPrdCBNTAlgo::Clockwork::event
NTuple::Item< long > event
Definition: RPC_SimHitToPrdCBNTAlgo.cxx:39
RPC_SimHitToPrdCBNTAlgo::Clockwork::m_SimHit_energyDep
NTuple::Array< float > m_SimHit_energyDep
Definition: RPC_SimHitToPrdCBNTAlgo.cxx:73
RPC_SimHitToPrdCBNTAlgo::Clockwork::m_SimHit_time
NTuple::Array< float > m_SimHit_time
Definition: RPC_SimHitToPrdCBNTAlgo.cxx:64
RPC_SimHitToPrdCBNTAlgo::Clockwork::m_partVertX
NTuple::Array< float > m_partVertX
Definition: RPC_SimHitToPrdCBNTAlgo.cxx:42
Identifier
Definition: DetectorDescription/Identifier/Identifier/Identifier.h:32
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
RPC_SimHitToPrdCBNTAlgo::Clockwork::m_rpc_pad_status
NTuple::Array< int > m_rpc_pad_status
Definition: RPC_SimHitToPrdCBNTAlgo.cxx:83
HepMC::barcode
int barcode(const T *p)
Definition: Barcode.h:16
RPC_SimHitToPrdCBNTAlgo::Clockwork::m_prd_phi
NTuple::Array< int > m_prd_phi
Definition: RPC_SimHitToPrdCBNTAlgo.cxx:126
RPC_SimHitToPrdCBNTAlgo::Clockwork::m_prd_eta
NTuple::Array< int > m_prd_eta
Definition: RPC_SimHitToPrdCBNTAlgo.cxx:125
RPC_SimHitToPrdCBNTAlgo::Clockwork::m_febcId
NTuple::Array< int > m_febcId
Definition: RPC_SimHitToPrdCBNTAlgo.cxx:94
RPC_SimHitToPrdCBNTAlgo::m_muonHelper
const RpcHitIdHelper * m_muonHelper
Definition: RPC_SimHitToPrdCBNTAlgo.h:57
RPC_SimHitToPrdCBNTAlgo::Clockwork::m_channel
NTuple::Array< int > m_channel
Definition: RPC_SimHitToPrdCBNTAlgo.cxx:99
file
TFile * file
Definition: tile_monitor.h:29
RPC_SimHitToPrdCBNTAlgo::Clockwork::m_prd_time
NTuple::Array< float > m_prd_time
Definition: RPC_SimHitToPrdCBNTAlgo.cxx:123
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
RPC_SimHitToPrdCBNTAlgo::Clockwork::m_rpc_pad_error
NTuple::Array< int > m_rpc_pad_error
Definition: RPC_SimHitToPrdCBNTAlgo.cxx:82
RpcCoinMatrix::onlineId
ubit16 onlineId() const
Definition: RpcCoinMatrix.h:67
IdentifiableContainerMT::const_iterator
Definition: IdentifiableContainerMT.h:82
RPC_SimHitToPrdCBNTAlgo::Clockwork::m_cmaId
NTuple::Array< int > m_cmaId
Definition: RPC_SimHitToPrdCBNTAlgo.cxx:92
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
RPC_SimHitToPrdCBNTAlgo::Clockwork::m_SimHit_pdgId
NTuple::Array< int > m_SimHit_pdgId
Definition: RPC_SimHitToPrdCBNTAlgo.cxx:75
RPC_SimHitToPrdCBNTAlgo::Clockwork::nt
NTuple::Tuple * nt
Definition: RPC_SimHitToPrdCBNTAlgo.cxx:36
RPC_SimHitToPrdCBNTAlgo::m_RDOKey
SG::ReadHandleKey< RpcPadContainer > m_RDOKey
Definition: RPC_SimHitToPrdCBNTAlgo.h:44
RPC_SimHitToPrdCBNTAlgo::Clockwork::m_SimHit_stepLen
NTuple::Array< float > m_SimHit_stepLen
Definition: RPC_SimHitToPrdCBNTAlgo.cxx:72
RPC_SimHitToPrdCBNTAlgo::Clockwork::m_prd_ambigFlag
NTuple::Array< float > m_prd_ambigFlag
Definition: RPC_SimHitToPrdCBNTAlgo.cxx:137
plotBeamSpotCompare.xd
xd
Definition: plotBeamSpotCompare.py:220
AthAlgorithm
Definition: AthAlgorithm.h:47
RPC_SimHitToPrdCBNTAlgo::doRPCPrep
StatusCode doRPCPrep(const EventContext &ctx)
Definition: RPC_SimHitToPrdCBNTAlgo.cxx:681
RpcHitIdHelper::GetGasGapLayer
int GetGasGapLayer(const int &hid) const
Definition: RpcHitIdHelper.cxx:84
RPC_SimHitToPrdCBNTAlgo::Clockwork::m_SimHit_localz
NTuple::Array< float > m_SimHit_localz
Definition: RPC_SimHitToPrdCBNTAlgo.cxx:67
RPC_SimHitToPrdCBNTAlgo::Clockwork::m_errorCode
NTuple::Array< int > m_errorCode
Definition: RPC_SimHitToPrdCBNTAlgo.cxx:91
RPC_SimHitToPrdCBNTAlgo::Clockwork::m_SimHit_localy
NTuple::Array< float > m_SimHit_localy
Definition: RPC_SimHitToPrdCBNTAlgo.cxx:66
RPC_SimHitToPrdCBNTAlgo::Clockwork::m_prd_measuresPhi
NTuple::Array< int > m_prd_measuresPhi
Definition: RPC_SimHitToPrdCBNTAlgo.cxx:131
RPC_SimHitToPrdCBNTAlgo::Clockwork::m_digit_phi
NTuple::Array< int > m_digit_phi
Definition: RPC_SimHitToPrdCBNTAlgo.cxx:109
RPC_SimHitToPrdCBNTAlgo::doMCtruth
StatusCode doMCtruth(const EventContext &ctx)
Definition: RPC_SimHitToPrdCBNTAlgo.cxx:344
RPC_SimHitToPrdCBNTAlgo::Clockwork::m_rpc_pad_id
NTuple::Array< int > m_rpc_pad_id
Definition: RPC_SimHitToPrdCBNTAlgo.cxx:78
RPC_SimHitToPrdCBNTAlgo::Clockwork::m_overlap
NTuple::Array< int > m_overlap
Definition: RPC_SimHitToPrdCBNTAlgo.cxx:100
RPC_SimHitToPrdCBNTAlgo::Clockwork::m_partMomY
NTuple::Array< float > m_partMomY
Definition: RPC_SimHitToPrdCBNTAlgo.cxx:48
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
RPC_SimHitToPrdCBNTAlgo::Clockwork::m_SimHit_nRpc
NTuple::Item< int > m_SimHit_nRpc
Definition: RPC_SimHitToPrdCBNTAlgo.cxx:54
MuonGM::RpcReadoutElement::stripPos
Amg::Vector3D stripPos(const Identifier &id) const
Definition: MuonDetDescr/MuonReadoutGeometry/src/RpcReadoutElement.cxx:177
RPC_SimHitToPrdCBNTAlgo::RPC_SimHitToPrdCBNTAlgo
RPC_SimHitToPrdCBNTAlgo(const std::string &name, ISvcLocator *pSvcLocator)
Definition: RPC_SimHitToPrdCBNTAlgo.cxx:142
RPC_SimHitToPrdCBNTAlgo::Clockwork::m_partVertT
NTuple::Array< float > m_partVertT
Definition: RPC_SimHitToPrdCBNTAlgo.cxx:45
RPC_SimHitToPrdCBNTAlgo::Clockwork::m_digit_strip
NTuple::Array< int > m_digit_strip
Definition: RPC_SimHitToPrdCBNTAlgo.cxx:115
IdentifiableContainerMT::const_iterator::cptr
const T * cptr() const
Definition: IdentifiableContainerMT.h:108
RPC_SimHitToPrdCBNTAlgo::Clockwork::m_partVertY
NTuple::Array< float > m_partVertY
Definition: RPC_SimHitToPrdCBNTAlgo.cxx:43
RPC_SimHitToPrdCBNTAlgo::Clockwork::m_prd_stripx
NTuple::Array< float > m_prd_stripx
Definition: RPC_SimHitToPrdCBNTAlgo.cxx:133
RPC_SimHitToPrdCBNTAlgo::m_PrepKey
SG::ReadHandleKey< Muon::RpcPrepDataContainer > m_PrepKey
Definition: RPC_SimHitToPrdCBNTAlgo.h:45
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition: GeoPrimitives.h:47
RPC_SimHitToPrdCBNTAlgo::Clockwork::m_rpc_pad_lvl1id
NTuple::Array< int > m_rpc_pad_lvl1id
Definition: RPC_SimHitToPrdCBNTAlgo.cxx:80
query_example.col
col
Definition: query_example.py:7
RpcPad
Definition: RpcPad.h:21
MuonDetectorManager.h
RPC_SimHitToPrdCBNTAlgo::Clockwork::m_nFiredChannels
NTuple::Item< int > m_nFiredChannels
Definition: RPC_SimHitToPrdCBNTAlgo.cxx:86
RpcFiredChannel::bcid
ubit16 bcid() const
Definition: RpcFiredChannel.h:52
RPC_SimHitToPrdCBNTAlgo::Clockwork::m_rpc_pad_bcid
NTuple::Array< int > m_rpc_pad_bcid
Definition: RPC_SimHitToPrdCBNTAlgo.cxx:79
DiTauMassTools::MaxHistStrategyV2::e
e
Definition: PhysicsAnalysis/TauID/DiTauMassTools/DiTauMassTools/HelperFunctions.h:26
RpcHitIdHelper::GetDoubletR
int GetDoubletR(const int &hid) const
Definition: RpcHitIdHelper.cxx:80
RPC_SimHitToPrdCBNTAlgo::Clockwork::m_partStatus
NTuple::Array< int > m_partStatus
Definition: RPC_SimHitToPrdCBNTAlgo.cxx:50
RpcCoinMatrix::fel1Id
ubit16 fel1Id() const
Definition: RpcCoinMatrix.h:71
RPC_SimHitToPrdCBNTAlgo::Clockwork::m_status
NTuple::Array< int > m_status
Definition: RPC_SimHitToPrdCBNTAlgo.cxx:90
RPC_SimHitToPrdCBNTAlgo::m_c
std::unique_ptr< Clockwork > m_c
Definition: RPC_SimHitToPrdCBNTAlgo.h:65
RPC_SimHitToPrdCBNTAlgo::Clockwork::m_digit_doubletR
NTuple::Array< int > m_digit_doubletR
Definition: RPC_SimHitToPrdCBNTAlgo.cxx:110
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition: AthMsgStreamMacros.h:32
RPC_SimHitToPrdCBNTAlgo::Clockwork::m_SimHit_globaly
NTuple::Array< float > m_SimHit_globaly
Definition: RPC_SimHitToPrdCBNTAlgo.cxx:69
RPC_SimHitToPrdCBNTAlgo::Clockwork::Clockwork
Clockwork()=default
RPC_SimHitToPrdCBNTAlgo::Clockwork::m_prd_triggerInfo
NTuple::Array< float > m_prd_triggerInfo
Definition: RPC_SimHitToPrdCBNTAlgo.cxx:136
RPC_SimHitToPrdCBNTAlgo::Clockwork::~Clockwork
~Clockwork()=default
RPC_SimHitToPrdCBNTAlgo::Clockwork::m_SimHit_phi
NTuple::Array< int > m_SimHit_phi
Definition: RPC_SimHitToPrdCBNTAlgo.cxx:58
RPC_SimHitToPrdCBNTAlgo::Clockwork::m_SimHit_doubletR
NTuple::Array< int > m_SimHit_doubletR
Definition: RPC_SimHitToPrdCBNTAlgo.cxx:59
RpcCoinMatrix::febcId
ubit16 febcId() const
Definition: RpcCoinMatrix.h:73
RPC_SimHitToPrdCBNTAlgo::m_HitCollKey
SG::ReadHandleKey< RPCSimHitCollection > m_HitCollKey
Definition: RPC_SimHitToPrdCBNTAlgo.h:42
createCablingJSON.doubletPhi
int doubletPhi
Definition: createCablingJSON.py:11
LVL1::gFEXPos
Definition: gFexPos.h:11
RPC_SimHitToPrdCBNTAlgo::Clockwork::m_SimHit_doubletPhi
NTuple::Array< int > m_SimHit_doubletPhi
Definition: RPC_SimHitToPrdCBNTAlgo.cxx:61
merge.status
status
Definition: merge.py:17
RPC_SimHitToPrdCBNTAlgo::Clockwork::m_partMass
NTuple::Array< float > m_partMass
Definition: RPC_SimHitToPrdCBNTAlgo.cxx:52
RPC_SimHitToPrdCBNTAlgo::Clockwork::m_prd_gasGap
NTuple::Array< int > m_prd_gasGap
Definition: RPC_SimHitToPrdCBNTAlgo.cxx:130
RPC_SimHitToPrdCBNTAlgo::initialize
virtual StatusCode initialize() override
Definition: RPC_SimHitToPrdCBNTAlgo.cxx:150
RPC_SimHitToPrdCBNTAlgo::Clockwork::m_partVertZ
NTuple::Array< float > m_partVertZ
Definition: RPC_SimHitToPrdCBNTAlgo.cxx:44
GeoRPCHit
Definition: GeoMuonHits.h:85
beamspotnt.nt
def nt
Definition: bin/beamspotnt.py:1063
ReadHandle.h
Handle class for reading from StoreGate.
RPC_SimHitToPrdCBNTAlgo::Clockwork::m_nCMA
NTuple::Item< int > m_nCMA
Definition: RPC_SimHitToPrdCBNTAlgo.cxx:85
Muon::nsw::STGTPSegments::moduleIDBits::stationEta
constexpr uint8_t stationEta
1 to 3
Definition: NSWSTGTPDecodeBitmaps.h:127
RPC_SimHitToPrdCBNTAlgo::Clockwork::m_nPads
NTuple::Item< int > m_nPads
Definition: RPC_SimHitToPrdCBNTAlgo.cxx:77
RPC_SimHitToPrdCBNTAlgo::Clockwork::m_digit_stripz
NTuple::Array< float > m_digit_stripz
Definition: RPC_SimHitToPrdCBNTAlgo.cxx:118
ntupleSvc
INTupleSvc * ntupleSvc()
Definition: ServiceAccessor.h:14
RPC_SimHitToPrdCBNTAlgo::Clockwork::m_digit_doubletPhi
NTuple::Array< int > m_digit_doubletPhi
Definition: RPC_SimHitToPrdCBNTAlgo.cxx:112
RPC_SimHitToPrdCBNTAlgo::m_doRPCPrep
Gaudi::Property< bool > m_doRPCPrep
Definition: RPC_SimHitToPrdCBNTAlgo.h:63
RPC_SimHitToPrdCBNTAlgo::Clockwork::m_digit_station
NTuple::Array< int > m_digit_station
Definition: RPC_SimHitToPrdCBNTAlgo.cxx:107
RPC_SimHitToPrdCBNTAlgo::Clockwork::m_digit_doubletZ
NTuple::Array< int > m_digit_doubletZ
Definition: RPC_SimHitToPrdCBNTAlgo.cxx:111
RPC_SimHitToPrdCBNTAlgo::Clockwork::m_fel1Id
NTuple::Array< int > m_fel1Id
Definition: RPC_SimHitToPrdCBNTAlgo.cxx:93
mag
Scalar mag() const
mag method
Definition: AmgMatrixBasePlugin.h:25
RpcCoinMatrix.h
RpcHitIdHelper::GetZSector
int GetZSector(const int &hid) const
Definition: RpcHitIdHelper.cxx:74
RPC_SimHitToPrdCBNTAlgo::Clockwork::m_prd_stripy
NTuple::Array< float > m_prd_stripy
Definition: RPC_SimHitToPrdCBNTAlgo.cxx:134
Tuple
PerfMon::Tuple Tuple
Definition: PerfMonSvc.cxx:91
RPC_SimHitToPrdCBNTAlgo::Clockwork::m_prd_stripz
NTuple::Array< float > m_prd_stripz
Definition: RPC_SimHitToPrdCBNTAlgo.cxx:135
RpcReadoutElement.h