ATLAS Offline Software
MDT_RDOAnalysis.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 
6 #include "MDT_RDOAnalysis.h"
7 #include "StoreGate/ReadHandle.h"
8 
9 #include "TTree.h"
10 #include "TString.h"
11 
12 #include <algorithm>
13 #include <math.h>
14 #include <functional>
15 #include <iostream>
16 
17 MDT_RDOAnalysis::MDT_RDOAnalysis(const std::string& name, ISvcLocator *pSvcLocator)
18  : AthAlgorithm(name, pSvcLocator)
19  , m_inputKey("MDTCSM")
20  , m_inputTruthKey("MDT_SDO")
21  , m_mdtID(0)
22  , m_mdtIDhash(0)
23  , m_subID(0)
24  , m_mrodID(0)
25  , m_csmID(0)
26  , m_tdcID(0)
27  , m_chanID(0)
28  , m_coarse(0)
29  , m_fine(0)
30  , m_width(0)
31  , m_leading(0)
32  , m_isMasked(0)
33  , m_dataWords(0)
34  , m_sdoID(0)
35  , m_sdoWord(0)
36  , m_xPos(0)
37  , m_yPos(0)
38  , m_zPos(0)
39  , m_barcode(0)
40  , m_eventIndex(0)
41  , m_radius(0)
42  , m_localZ(0)
43  , m_barcode_vec(0)
44  , m_eventIndex_vec(0)
45  , m_radius_vec(0)
46  , m_localZ_vec(0)
47 
48  , m_h_mdtID(0)
49  , m_h_subID(0)
50  , m_h_mrodID(0)
51  , m_h_csmID(0)
52  , m_h_tdcID(0)
53  , m_h_chanID(0)
54  , m_h_coarse(0)
55  , m_h_fine(0)
56  , m_h_width(0)
57  , m_h_sdoID(0)
58  , m_h_sdoWord(0)
59  , m_h_xPos(0)
60  , m_h_yPos(0)
61  , m_h_zPos(0)
62  , m_h_barcode(0)
63  , m_h_eventIndex(0)
64  , m_h_radius(0)
65  , m_h_localZ(0)
66 
67  , m_tree(0)
68  , m_ntupleFileName("/ntuples/file1")
69  , m_ntupleDirName("/MDT_RDOAnalysis/")
70  //, m_ntupleDirName("MDT_RDOAnalysis")
71  , m_ntupleTreeName("MDT_RDOAna")
72  , m_path("/MDT_RDOAnalysis/")
73  , m_thistSvc("THistSvc", name)
74 {
75  declareProperty("InputKey", m_inputKey);
76  declareProperty("InputTruthKey", m_inputTruthKey);
77  declareProperty("NtupleFileName", m_ntupleFileName);
78  declareProperty("NtupleDirectoryName", m_ntupleDirName);
79  declareProperty("NtupleTreeName", m_ntupleTreeName);
80  declareProperty("HistPath", m_path);
81 }
82 
84  ATH_MSG_DEBUG( "Initializing MDT_RDOAnalysis" );
85 
86  // This will check that the properties were initialized
87  // properly by job configuration.
90 
91  ATH_CHECK(m_thistSvc.retrieve());
92 
93  m_tree = new TTree(TString(m_ntupleTreeName), "MDT_RDOAna");
94  std::string fullNtupleName = m_ntupleFileName + m_ntupleDirName + m_ntupleTreeName;
95  //std::string fullNtupleName = "/" + m_ntupleFileName + "/" + m_ntupleDirName + "/" + m_ntupleTreeName;
96  ATH_CHECK(m_thistSvc->regTree(fullNtupleName, m_tree));
97  if (m_tree) {
98  m_tree->Branch("mdtID", &m_mdtID);
99  m_tree->Branch("mdtIDhash", &m_mdtIDhash);
100  m_tree->Branch("subID", &m_subID);
101  m_tree->Branch("mrodID", &m_mrodID);
102  m_tree->Branch("csmID", &m_csmID);
103  m_tree->Branch("tdcID", &m_tdcID);
104  m_tree->Branch("chanID", &m_chanID);
105  m_tree->Branch("coarse", &m_coarse);
106  m_tree->Branch("fine", &m_fine);
107  m_tree->Branch("width", &m_width);
108  m_tree->Branch("leading", &m_leading);
109  m_tree->Branch("isMasked", &m_isMasked);
110  m_tree->Branch("dataWords", &m_dataWords);
111  m_tree->Branch("sdoID", &m_sdoID);
112  m_tree->Branch("sdoWord", &m_sdoWord);
113  m_tree->Branch("xPos", &m_xPos);
114  m_tree->Branch("yPos", &m_yPos);
115  m_tree->Branch("zPos", &m_zPos);
116  m_tree->Branch("barcode", &m_barcode);
117  m_tree->Branch("eventIndex", &m_eventIndex);
118  m_tree->Branch("radius", &m_radius);
119  m_tree->Branch("localZ", &m_localZ);
120  m_tree->Branch("barcode_vec", &m_barcode_vec);
121  m_tree->Branch("eventIndex_vec", &m_eventIndex_vec);
122  m_tree->Branch("radius_vec", &m_radius_vec);
123  m_tree->Branch("localZ_vec", &m_localZ_vec);
124  }
125  else {
126  ATH_MSG_ERROR("No tree found!");
127  }
128 
129  m_h_mdtID = new TH1F("h_mdtID", "MDT ID", 100, 0, 1e19);
130  m_h_mdtID->StatOverflows();
131  ATH_CHECK(m_thistSvc->regHist(m_path + m_h_mdtID->GetName(), m_h_mdtID));
132 
133  m_h_subID = new TH1F("h_subID", "Sub-detector ID", 100, 0, 150);
134  m_h_subID->StatOverflows();
135  ATH_CHECK(m_thistSvc->regHist(m_path + m_h_subID->GetName(), m_h_subID));
136 
137  m_h_mrodID = new TH1F("h_mrodID", "MROD ID", 100, 0, 150);
138  m_h_mrodID->StatOverflows();
139  ATH_CHECK(m_thistSvc->regHist(m_path + m_h_mrodID->GetName(), m_h_mrodID));
140 
141  m_h_csmID = new TH1F("h_csmID", "CSM ID", 100, 0, 10);
142  m_h_csmID->StatOverflows();
143  ATH_CHECK(m_thistSvc->regHist(m_path + m_h_csmID->GetName(), m_h_csmID));
144 
145  m_h_tdcID = new TH1F("h_tdcID", "TDC ID", 100, 0, 50);
146  m_h_tdcID->StatOverflows();
147  ATH_CHECK(m_thistSvc->regHist(m_path + m_h_tdcID->GetName(), m_h_tdcID));
148 
149  m_h_chanID = new TH1F("h_chanID", "Channel ID", 100, 0, 50);
150  m_h_chanID->StatOverflows();
151  ATH_CHECK(m_thistSvc->regHist(m_path + m_h_chanID->GetName(), m_h_chanID));
152 
153  m_h_coarse = new TH1F("h_coarse", "Drift time (coarse)", 100, 0, 100);
154  m_h_coarse->StatOverflows();
155  ATH_CHECK(m_thistSvc->regHist(m_path + m_h_coarse->GetName(), m_h_coarse));
156 
157  m_h_fine = new TH1F("h_fine", "Drift time (fine)", 100, 0, 50);
158  m_h_fine->StatOverflows();
159  ATH_CHECK(m_thistSvc->regHist(m_path + m_h_fine->GetName(), m_h_fine));
160 
161  m_h_width = new TH1F("h_width", "Width", 100, 0, 500);
162  m_h_width->StatOverflows();
163  ATH_CHECK(m_thistSvc->regHist(m_path + m_h_width->GetName(), m_h_width));
164 
165  m_h_sdoID = new TH1F("h_sdoID", "sdoID", 100, 0, 1e19);
166  m_h_sdoID->StatOverflows();
167  ATH_CHECK(m_thistSvc->regHist(m_path + m_h_sdoID->GetName(), m_h_sdoID));
168 
169  m_h_sdoWord = new TH1F("h_sdoWord", "sdoWord", 100, 0, 10);
170  m_h_sdoWord->StatOverflows();
171  ATH_CHECK(m_thistSvc->regHist(m_path + m_h_sdoWord->GetName(), m_h_sdoWord));
172 
173  m_h_xPos = new TH1F("h_xPos", "Global x-position (SDO)", 100, -13000, 13000);
174  m_h_xPos->StatOverflows();
175  ATH_CHECK(m_thistSvc->regHist(m_path + m_h_xPos->GetName(), m_h_xPos));
176 
177  m_h_yPos = new TH1F("h_yPos", "Global y-position (SDO)", 100, -15000, 15000);
178  m_h_yPos->StatOverflows();
179  ATH_CHECK(m_thistSvc->regHist(m_path + m_h_yPos->GetName(), m_h_yPos));
180 
181  m_h_zPos = new TH1F("h_zPos", "Global z-position (SDO)", 100, -22000, 22000);
182  m_h_zPos->StatOverflows();
183  ATH_CHECK(m_thistSvc->regHist(m_path + m_h_zPos->GetName(), m_h_zPos));
184 
185  m_h_barcode = new TH1F("h_barcode", "Barcode (SDO)", 100, 0, 2.2e9);
186  m_h_barcode->StatOverflows();
187  ATH_CHECK(m_thistSvc->regHist(m_path + m_h_barcode->GetName(), m_h_barcode));
188 
189  m_h_eventIndex = new TH1F("h_eventIndex", "Event index (SDO)", 100, 0, 1000);
190  m_h_eventIndex->StatOverflows();
191  ATH_CHECK(m_thistSvc->regHist(m_path + m_h_eventIndex->GetName(), m_h_eventIndex));
192 
193  m_h_radius = new TH1F("h_radius", "Radius (SDO)", 100, -15, 15);
194  m_h_radius->StatOverflows();
195  ATH_CHECK(m_thistSvc->regHist(m_path + m_h_radius->GetName(), m_h_radius));
196 
197  m_h_localZ = new TH1F("h_localZ", "Local z-position (SDO)", 100, -3200, 3200);
198  m_h_localZ->StatOverflows();
199  ATH_CHECK(m_thistSvc->regHist(m_path + m_h_localZ->GetName(), m_h_localZ));
200 
201  return StatusCode::SUCCESS;
202 }
203 
205  ATH_MSG_DEBUG( "In MDT_RDOAnalysis::execute()" );
206 
207  m_mdtID->clear();
208  m_mdtIDhash->clear();
209  m_subID->clear();
210  m_mrodID->clear();
211  m_csmID->clear();
212  m_tdcID->clear();
213  m_chanID->clear();
214  m_coarse->clear();
215  m_fine->clear();
216  m_width->clear();
217  m_leading->clear();
218  m_isMasked->clear();
219  m_dataWords->clear();
220  m_sdoID->clear();
221  m_sdoWord->clear();
222  m_xPos->clear();
223  m_yPos->clear();
224  m_zPos->clear();
225  m_barcode->clear();
226  m_eventIndex->clear();
227  m_radius->clear();
228  m_localZ->clear();
229  m_barcode_vec->clear();
230  m_eventIndex_vec->clear();
231  m_radius_vec->clear();
232  m_localZ_vec->clear();
233 
235  if(p_MDTcont.isValid()) {
236  MdtCsmContainer::const_iterator mdtCont_itr(p_MDTcont->begin());
237  const MdtCsmContainer::const_iterator mdtCont_end(p_MDTcont->end());
238 
239  for ( ; mdtCont_itr != mdtCont_end; ++mdtCont_itr ) {
240  const Identifier mdtID((*mdtCont_itr)->identify());
241  const IdentifierHash mdtIDhash((*mdtCont_itr)->identifyHash());
242  const uint16_t subID((*mdtCont_itr)->SubDetId());
243  const uint16_t mrodID((*mdtCont_itr)->MrodId());
244  const uint16_t csmID((*mdtCont_itr)->CsmId());
245 
246  unsigned long long mdtID_int = mdtID.get_compact();
247  unsigned int mdtIDhash_int = mdtIDhash.value();
248  m_mdtID->push_back(mdtID_int);
249  m_mdtIDhash->push_back(mdtIDhash_int);
250  m_subID->push_back(subID);
251  m_mrodID->push_back(mrodID);
252  m_csmID->push_back(csmID);
253 
254  m_h_mdtID->Fill(mdtID_int);
255  m_h_subID->Fill(subID);
256  m_h_mrodID->Fill(mrodID);
257  m_h_csmID->Fill(csmID);
258 
259  const MdtCsm* p_mdtAmt(*mdtCont_itr);
260  MdtCsm::const_iterator mdt_itr(p_mdtAmt->begin());
261  const MdtCsm::const_iterator mdt_end(p_mdtAmt->end());
262  for ( ; mdt_itr != mdt_end; ++mdt_itr ) {
263 
264  const uint16_t tdcID((*mdt_itr)->tdcId());
265  const uint16_t chanID((*mdt_itr)->channelId());
266  const uint16_t coarseTime((*mdt_itr)->coarse());
267  const uint16_t fineTime((*mdt_itr)->fine());
268  const uint16_t widthComb((*mdt_itr)->width());
269  const bool lead((*mdt_itr)->leading());
270  const bool masked((*mdt_itr)->isMasked());
271  const std::vector<uint32_t>* dataWords_vec = (*mdt_itr)->dataWords();
272 
273  m_tdcID->push_back(tdcID);
274  m_chanID->push_back(chanID);
275  m_coarse->push_back(coarseTime);
276  m_fine->push_back(fineTime);
277  m_width->push_back(widthComb);
278  m_leading->push_back(lead);
279  m_isMasked->push_back(masked);
280  for (std::vector<uint32_t>::size_type i = 0; i != dataWords_vec->size(); ++i) {
281  m_dataWords->push_back(dataWords_vec->at(i));
282  }
283 
284  m_h_tdcID->Fill(tdcID);
285  m_h_chanID->Fill(chanID);
286  m_h_coarse->Fill(coarseTime);
287  m_h_fine->Fill(fineTime);
288  m_h_width->Fill(widthComb);
289 
290  }
291  }
292  }
293 
294  // SimData
296  if(simDataMapMDT.isValid()) {
297  MuonSimDataCollection::const_iterator sdo_itr(simDataMapMDT->begin());
298  const MuonSimDataCollection::const_iterator sdo_end(simDataMapMDT->end());
299 
300  std::vector<int> barcode_vec;
301  std::vector<int> eventIndex_vec;
302  std::vector<double> radius_vec;
303  std::vector<float> localZ_vec;
304  for ( ; sdo_itr != sdo_end; ++sdo_itr ) {
305  const Identifier sdoID((*sdo_itr).first);
306  const MuonSimData& sdo((*sdo_itr).second);
307  const unsigned long long sdoID_int = sdoID.get_compact();
308  const int sdoWord(sdo.word());
309  const Amg::Vector3D gPos(sdo.globalPosition());
310  const float xPos(gPos.x());
311  const float yPos(gPos.y());
312  const float zPos(gPos.z());
313 
314  m_sdoID->push_back(sdoID_int);
315  m_sdoWord->push_back(sdoWord);
316  m_xPos->push_back(xPos);
317  m_yPos->push_back(yPos);
318  m_zPos->push_back(zPos);
319 
320  m_h_sdoID->Fill(sdoID_int);
321  m_h_sdoWord->Fill(sdoWord);
322  m_h_xPos->Fill(xPos);
323  m_h_yPos->Fill(yPos);
324  m_h_zPos->Fill(zPos);
325 
326  // loop over deposits
327  const std::vector<MuonSimData::Deposit>& deposits = sdo.getdeposits();
328  std::vector<MuonSimData::Deposit>::const_iterator dep_itr(deposits.begin());
329  const std::vector<MuonSimData::Deposit>::const_iterator dep_end(deposits.end());
330  for ( ; dep_itr != dep_end; ++dep_itr ) {
331  const HepMcParticleLink& particleLink = (*dep_itr).first;
332  const int bar(HepMC::barcode(particleLink)); // FIXME barcode-based
333  const int eventIx(particleLink.eventIndex());
334  const MuonMCData& data = (*dep_itr).second;
335  const double radius(data.firstEntry());
336  const float localZ(data.secondEntry());
337 
338  m_barcode->push_back(bar);
339  m_eventIndex->push_back(eventIx);
340  m_radius->push_back(radius); // radius?
341  m_localZ->push_back(localZ); // local z-pos?
342 
343  m_h_barcode->Fill(bar);
344  m_h_eventIndex->Fill(eventIx);
345  m_h_radius->Fill(radius);
346  m_h_localZ->Fill(localZ);
347 
348  barcode_vec.push_back(bar);
349  eventIndex_vec.push_back(eventIx);
350  radius_vec.push_back(radius);
351  localZ_vec.push_back(localZ);
352  }
353  m_barcode_vec->push_back(barcode_vec);
354  m_eventIndex_vec->push_back(eventIndex_vec);
355  m_radius_vec->push_back(radius_vec);
356  m_localZ_vec->push_back(localZ_vec);
357  barcode_vec.clear();
358  eventIndex_vec.clear();
359  radius_vec.clear();
360  localZ_vec.clear();
361  }
362  }
363 
364  if (m_tree) {
365  m_tree->Fill();
366  }
367 
368  return StatusCode::SUCCESS;
369 }
370 
372  return StatusCode::SUCCESS;
373 }
MDT_RDOAnalysis::execute
virtual StatusCode execute() override final
Definition: MDT_RDOAnalysis.cxx:204
MDT_RDOAnalysis::m_h_xPos
TH1 * m_h_xPos
Definition: MDT_RDOAnalysis.h:83
MDT_RDOAnalysis::m_inputKey
SG::ReadHandleKey< MdtCsmContainer > m_inputKey
Definition: MDT_RDOAnalysis.h:35
data
char data[hepevt_bytes_allocation_ATLAS]
Definition: HepEvt.cxx:11
MuonSimData::word
int word() const
Definition: MuonSimData.h:89
DataModel_detail::const_iterator
Const iterator class for DataVector/DataList.
Definition: DVLIterator.h:82
MDT_RDOAnalysis::MDT_RDOAnalysis
MDT_RDOAnalysis(const std::string &name, ISvcLocator *pSvcLocator)
Definition: MDT_RDOAnalysis.cxx:17
MDT_RDOAnalysis::m_inputTruthKey
SG::ReadHandleKey< MuonSimDataCollection > m_inputTruthKey
Definition: MDT_RDOAnalysis.h:36
MDT_RDOAnalysis::m_barcode
std::vector< int > * m_barcode
Definition: MDT_RDOAnalysis.h:61
MDT_RDOAnalysis::m_h_subID
TH1 * m_h_subID
Definition: MDT_RDOAnalysis.h:72
MDT_RDOAnalysis::m_mdtID
std::vector< unsigned long long > * m_mdtID
Definition: MDT_RDOAnalysis.h:39
MDT_RDOAnalysis::m_h_yPos
TH1 * m_h_yPos
Definition: MDT_RDOAnalysis.h:84
IdentifierHash::value
unsigned int value() const
MDT_RDOAnalysis::m_h_barcode
TH1 * m_h_barcode
Definition: MDT_RDOAnalysis.h:86
SG::ReadHandle
Definition: StoreGate/StoreGate/ReadHandle.h:70
MDT_RDOAnalysis::m_ntupleTreeName
std::string m_ntupleTreeName
Definition: MDT_RDOAnalysis.h:94
AthCommonDataStore< AthCommonMsg< Algorithm > >::declareProperty
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
Definition: AthCommonDataStore.h:145
MDT_RDOAnalysis::m_radius
std::vector< double > * m_radius
Definition: MDT_RDOAnalysis.h:63
MDT_RDOAnalysis::m_h_tdcID
TH1 * m_h_tdcID
Definition: MDT_RDOAnalysis.h:75
MDT_RDOAnalysis::m_h_sdoWord
TH1 * m_h_sdoWord
Definition: MDT_RDOAnalysis.h:82
MDT_RDOAnalysis::m_h_eventIndex
TH1 * m_h_eventIndex
Definition: MDT_RDOAnalysis.h:87
Identifier::get_compact
value_type get_compact() const
Get the compact id.
MDT_RDOAnalysis::m_h_chanID
TH1 * m_h_chanID
Definition: MDT_RDOAnalysis.h:76
MuonSimData::getdeposits
const std::vector< Deposit > & getdeposits() const
Definition: MuonSimData.h:94
MDT_RDOAnalysis::m_eventIndex
std::vector< int > * m_eventIndex
Definition: MDT_RDOAnalysis.h:62
MDT_RDOAnalysis::m_barcode_vec
std::vector< std::vector< int > > * m_barcode_vec
Definition: MDT_RDOAnalysis.h:65
MDT_RDOAnalysis::m_fine
std::vector< uint16_t > * m_fine
Definition: MDT_RDOAnalysis.h:48
MdtCsm
MDT RDOs : Chamber Service Module, container of AmtHits of a single Mdt chamber.
Definition: MdtCsm.h:19
MDT_RDOAnalysis::m_h_mrodID
TH1 * m_h_mrodID
Definition: MDT_RDOAnalysis.h:73
MDT_RDOAnalysis::m_sdoWord
std::vector< int > * m_sdoWord
Definition: MDT_RDOAnalysis.h:56
MDT_RDOAnalysis::m_sdoID
std::vector< unsigned long long > * m_sdoID
Definition: MDT_RDOAnalysis.h:55
MDT_RDOAnalysis::m_h_width
TH1 * m_h_width
Definition: MDT_RDOAnalysis.h:79
MDT_RDOAnalysis::finalize
virtual StatusCode finalize() override final
Definition: MDT_RDOAnalysis.cxx:371
MDT_RDOAnalysis::m_localZ_vec
std::vector< std::vector< float > > * m_localZ_vec
Definition: MDT_RDOAnalysis.h:68
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
xAOD::uint16_t
setWord1 uint16_t
Definition: eFexEMRoI_v1.cxx:93
MDT_RDOAnalysis::m_ntupleDirName
std::string m_ntupleDirName
Definition: MDT_RDOAnalysis.h:93
lumiFormat.i
int i
Definition: lumiFormat.py:85
MDT_RDOAnalysis::m_h_sdoID
TH1 * m_h_sdoID
Definition: MDT_RDOAnalysis.h:81
MDT_RDOAnalysis::m_h_localZ
TH1 * m_h_localZ
Definition: MDT_RDOAnalysis.h:89
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
HepMC::barcode
int barcode(const T *p)
Definition: Barcode.h:16
MDT_RDOAnalysis::m_zPos
std::vector< float > * m_zPos
Definition: MDT_RDOAnalysis.h:59
m_path
std::string m_path
the path being used
Definition: OutputStreamData.cxx:88
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
IdentifiableContainerMT::end
const_iterator end() const
return const_iterator for end of container
Definition: IdentifiableContainerMT.h:239
IdentifiableContainerMT::const_iterator
Definition: IdentifiableContainerMT.h:79
IdentifiableContainerMT::begin
const_iterator begin() const
return const_iterator for first entry
Definition: IdentifiableContainerMT.h:233
MDT_RDOAnalysis::m_mrodID
std::vector< uint16_t > * m_mrodID
Definition: MDT_RDOAnalysis.h:42
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
AthAlgorithm
Definition: AthAlgorithm.h:47
SG::ReadHandle::isValid
virtual bool isValid() override final
Can the handle be successfully dereferenced?
MDT_RDOAnalysis::m_coarse
std::vector< uint16_t > * m_coarse
Definition: MDT_RDOAnalysis.h:47
MDT_RDOAnalysis::m_width
std::vector< uint16_t > * m_width
Definition: MDT_RDOAnalysis.h:49
MDT_RDOAnalysis::m_tree
TTree * m_tree
Definition: MDT_RDOAnalysis.h:91
MDT_RDOAnalysis::m_eventIndex_vec
std::vector< std::vector< int > > * m_eventIndex_vec
Definition: MDT_RDOAnalysis.h:66
python.SystemOfUnits.bar
int bar
Definition: SystemOfUnits.py:188
MDT_RDOAnalysis::m_mdtIDhash
std::vector< unsigned int > * m_mdtIDhash
Definition: MDT_RDOAnalysis.h:40
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:228
MDT_RDOAnalysis::m_h_zPos
TH1 * m_h_zPos
Definition: MDT_RDOAnalysis.h:85
MDT_RDOAnalysis::m_csmID
std::vector< uint16_t > * m_csmID
Definition: MDT_RDOAnalysis.h:43
MuonSimData
Definition: MuonSimData.h:62
MDT_RDOAnalysis::m_radius_vec
std::vector< std::vector< double > > * m_radius_vec
Definition: MDT_RDOAnalysis.h:67
MDT_RDOAnalysis::m_leading
std::vector< bool > * m_leading
Definition: MDT_RDOAnalysis.h:50
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition: GeoPrimitives.h:47
ParticleGun_SamplingFraction.radius
radius
Definition: ParticleGun_SamplingFraction.py:96
DataVector::end
const_iterator end() const noexcept
Return a const_iterator pointing past the end of the collection.
MDT_RDOAnalysis::m_isMasked
std::vector< bool > * m_isMasked
Definition: MDT_RDOAnalysis.h:51
MDT_RDOAnalysis::m_chanID
std::vector< uint16_t > * m_chanID
Definition: MDT_RDOAnalysis.h:46
MDT_RDOAnalysis.h
MDT_RDOAnalysis::m_path
std::string m_path
Definition: MDT_RDOAnalysis.h:95
MDT_RDOAnalysis::initialize
virtual StatusCode initialize() override final
Definition: MDT_RDOAnalysis.cxx:83
MDT_RDOAnalysis::m_dataWords
std::vector< uint32_t > * m_dataWords
Definition: MDT_RDOAnalysis.h:52
MDT_RDOAnalysis::m_ntupleFileName
std::string m_ntupleFileName
Definition: MDT_RDOAnalysis.h:92
MDT_RDOAnalysis::m_tdcID
std::vector< uint16_t > * m_tdcID
Definition: MDT_RDOAnalysis.h:45
LVL1::gFEXPos
Definition: gFexPos.h:11
MDT_RDOAnalysis::m_thistSvc
ServiceHandle< ITHistSvc > m_thistSvc
Definition: MDT_RDOAnalysis.h:96
MDT_RDOAnalysis::m_localZ
std::vector< float > * m_localZ
Definition: MDT_RDOAnalysis.h:64
python.TrigEgammaMonitorHelper.TH1F
def TH1F(name, title, nxbins, bins_par2, bins_par3=None, path='', **kwargs)
Definition: TrigEgammaMonitorHelper.py:24
ReadHandle.h
Handle class for reading from StoreGate.
MDT_RDOAnalysis::m_h_fine
TH1 * m_h_fine
Definition: MDT_RDOAnalysis.h:78
IdentifierHash
This is a "hash" representation of an Identifier. This encodes a 32 bit index which can be used to lo...
Definition: IdentifierHash.h:25
MDT_RDOAnalysis::m_h_mdtID
TH1 * m_h_mdtID
Definition: MDT_RDOAnalysis.h:71
MDT_RDOAnalysis::m_h_coarse
TH1 * m_h_coarse
Definition: MDT_RDOAnalysis.h:77
MDT_RDOAnalysis::m_xPos
std::vector< float > * m_xPos
Definition: MDT_RDOAnalysis.h:57
MDT_RDOAnalysis::m_h_csmID
TH1 * m_h_csmID
Definition: MDT_RDOAnalysis.h:74
MDT_RDOAnalysis::m_h_radius
TH1 * m_h_radius
Definition: MDT_RDOAnalysis.h:88
MDT_RDOAnalysis::m_subID
std::vector< uint16_t > * m_subID
Definition: MDT_RDOAnalysis.h:41
DataVector::begin
const_iterator begin() const noexcept
Return a const_iterator pointing at the beginning of the collection.
MuonMCData
Definition: MuonSimData.h:42
MDT_RDOAnalysis::m_yPos
std::vector< float > * m_yPos
Definition: MDT_RDOAnalysis.h:58
MuonSimData::globalPosition
const Amg::Vector3D globalPosition() const
Definition: MuonSimData.h:113
Identifier
Definition: IdentifierFieldParser.cxx:14