ATLAS Offline Software
MuonTrackPerformanceAlg.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 MUONTRACKPERFORMANCEALG_H
6 #define MUONTRACKPERFORMANCEALG_H
7 
8 #include <fstream>
9 #include <iostream>
10 #include <set>
11 #include <string>
12 #include <vector>
13 
15 #include "GaudiKernel/ServiceHandle.h"
16 #include "GaudiKernel/ToolHandle.h"
33 #include "xAODMuon/MuonContainer.h"
34 
35 class TFile;
36 class TruthTrajectory;
37 
39 
40 namespace Trk {
41  class Track;
42  class TrackSummary;
43 } // namespace Trk
44 
45 namespace Muon {
46  class MuonSegmentCombination;
47  class MuonSegment;
48 } // namespace Muon
49 
51 public:
52  struct ChamberData {
54  std::set<Identifier> hits;
55  };
56 
57  struct TrackData {
59  truthTrack(nullptr),
60  motherPdg(-1),
61  chi2Ndof(0.),
62  productionVertex(nullptr),
63  momentumAtProduction(nullptr),
64  truthTrajectory(nullptr),
65  trackPars(nullptr),
66  trackSummary(nullptr) {}
67 
69  delete trackPars;
70  delete trackSummary;
71  delete truthTrack;
72  delete truthTrajectory;
73  delete productionVertex;
74  delete momentumAtProduction;
75  }
76 
78  motherPdg = data.motherPdg;
79  chi2Ndof = data.chi2Ndof;
80  trackPars = data.trackPars ? new Trk::Perigee(*data.trackPars) : 0;
81  trackSummary = data.trackSummary ? new Trk::TrackSummary(*data.trackSummary) : 0;
82  truthTrack = data.truthTrack ? new TrackRecord(*data.truthTrack) : 0;
83  productionVertex = data.productionVertex ? new Amg::Vector3D(*data.productionVertex) : 0;
84  momentumAtProduction = data.momentumAtProduction ? new Amg::Vector3D(*data.momentumAtProduction) : 0;
85  }
86  // no copying
87  TrackData& operator=(const TrackData&) = delete;
88 
90  int motherPdg{};
91  double chi2Ndof{};
97 
98  std::vector<ChamberData> missingChambers;
99  std::vector<ChamberData> wrongChambers;
100 
101  std::set<Muon::MuonStationIndex::StIndex> layers;
102  std::set<Muon::MuonStationIndex::StIndex> missingLayers;
103  std::set<Muon::MuonStationIndex::StIndex> missingCscLayers;
104  std::set<Muon::MuonStationIndex::StIndex> wrongLayers;
105 
106  std::set<Muon::MuonStationIndex::StIndex> layersTrigger;
107  std::set<Muon::MuonStationIndex::StIndex> missingLayersTrigger;
108  std::set<Muon::MuonStationIndex::StIndex> wrongLayersTrigger;
109 
110  bool isEndcapSLTrack() const {
111  if (layers.size() == 1 && layers.count(Muon::MuonStationIndex::StIndex::EM)) return true;
112  if (layers.size() == 2 && layers.count(Muon::MuonStationIndex::StIndex::EM) &&
113  layers.count(Muon::MuonStationIndex::StIndex::EO)) return true;
114  return false;
115  }
116 
117  bool hasMissingChambers() const { return !missingChambers.empty(); }
118 
119  bool hasWrongChambers() const { return !wrongChambers.empty(); }
120 
121  bool hasMissingLayers() const { return !missingLayers.empty(); }
122 
123  bool hasWrongLayers() const { return !wrongLayers.empty(); }
124 
125  bool hasMissingLayersTrigger() const { return !missingLayersTrigger.empty(); }
126 
127  bool hasWrongLayersTrigger() const { return !wrongLayersTrigger.empty(); }
128 
129  bool isMissingInner() const {
132  return false;
133  }
134 
135  bool hasWrongInner() const {
138  return false;
139  }
140 
141  bool allOk() const {
142  if (!missingChambers.empty() || !wrongChambers.empty()) return false;
143  if (!missingLayers.empty() || !wrongLayers.empty()) return false;
144  if (!missingLayersTrigger.empty() || !wrongLayersTrigger.empty()) return false;
145  return true;
146  }
147 
148  private:
149 
150  };
151 
152  struct EventData {
153  unsigned int eventNumber{};
154  unsigned int eventPosition{};
155  std::vector<TrackData*> missingTruthTracks;
156  std::vector<TrackData*> missingTruthTracksOneStation;
157 
158  std::vector<TrackData*> missingStationMomLoss;
159 
160  std::vector<TrackData*> missingStationLayer;
161  std::vector<TrackData*> missingCscStationLayer;
162  std::vector<TrackData*> missingStation;
163 
164  std::vector<TrackData*> wrongStationLayer;
165  std::vector<TrackData*> wrongStation;
166 
167  std::vector<TrackData*> missingStationLayerTrigger;
168  std::vector<TrackData*> wrongStationLayerTrigger;
169 
170  std::vector<TrackData*> fakeTracks;
171  std::vector<TrackData*> fakeTracksLowPt;
172  std::vector<TrackData*> fakeTracksSL;
173 
174  bool goodEvent() const {
175  return missingTruthTracks.empty() && missingTruthTracksOneStation.empty() && missingStationMomLoss.empty() &&
176  missingStationLayer.empty() && missingStation.empty() && wrongStationLayer.empty() && wrongStation.empty() &&
177  fakeTracks.empty() && fakeTracksLowPt.empty() && fakeTracksSL.empty();
178  }
179  };
180 
181  MuonTrackPerformanceAlg(const std::string& name, ISvcLocator* pSvcLocator);
182 
183 public:
184  virtual ~MuonTrackPerformanceAlg();
185 
186  virtual StatusCode initialize() override;
187  virtual StatusCode execute() override;
188  virtual StatusCode finalize() override;
189 
190  virtual unsigned int cardinality() const override final { return 1;}
191 
192 private:
193  void extractEtaPhiCounts(const std::set<Identifier>& ids, int& neta, int& nphi, int& netaCh, int& nphiCh) const;
194 
195  bool handleTracks();
196  bool handleTrackTruth(const TrackCollection& trackCollection);
197 
199 
200  void doSummary(const TrackCollection& tracks) const;
201  void doSummary(const Muon::IMuonTrackTruthTool::TruthTree& truthTracks) const;
202 
203  std::string print(const Muon::IMuonTrackTruthTool::TruthTreeEntry& trackTruth) const;
204 
205  std::string eventInfo() const;
206  int eventNumber() const;
207 
208  void printMissingChambers() const;
209  void printMissingTracks() const;
210  void printFakeTracks() const;
211 
213  std::pair<int, int> countHitsInChamber(const Identifier& chId, const std::set<Identifier>& hitIds) const;
214 
216  bool insertChamber(const Identifier& chId, const std::set<Identifier>& hits, int minEtaHits, int minPhiHits,
217  ChamberData& chamberData) const;
218 
220  bool insertTechnology(const std::set<Identifier>& chIds, const std::set<Identifier>& hits, int minEtaHits, int minPhiHits,
221  std::vector<ChamberData>& chamberData) const;
222 
224  bool insertStationLayers(const std::set<Identifier>& chIds, const std::set<Muon::MuonStationIndex::StIndex>& exclusionList,
225  std::set<Muon::MuonStationIndex::StIndex>& layers) const;
226 
228  bool insertStationLayers(const std::vector<ChamberData>& chambers, const std::set<Muon::MuonStationIndex::StIndex>& exclusionList,
229  std::set<Muon::MuonStationIndex::StIndex>& layers, bool usePrecision) const;
230 
232  TrackData* evaluateTrackTruthOverlap(const Muon::MuonTrackTruth& truthTrack) const;
233 
236 
237  void addTrackToTrackData(const Trk::Track& track, TrackData& trackData) const;
238 
240  std::string print(const TrackData& trackData) const;
241 
242  std::string print(const EventData& event, const std::vector<TrackData*>& tracks, const std::string& message) const;
243  std::string print(const EventData& event, const std::vector<const Trk::Track*>& tracks, const std::string& message) const;
244 
246  std::string printTrackCounters(bool doSecondaries = true) const;
247 
248  void clearTracks(std::vector<const Trk::Track*> tracks);
249  void clearTracks(std::vector<TrackData*> tracks);
250  void clearEvent(EventData& event);
251 
254 
256  bool isSecondary(const Muon::MuonTrackTruth& truthTrack) const;
258  bool isSecondary(const TruthTrajectory& truthTrajectory) const;
259 
260  bool selectPdg(int pdg) const { return m_selectedPdgs.count(pdg); }
261 
262  SG::ReadHandleKey<TrackCollection> m_trackKey{this, "TrackInputLocation", "MuonSpectrometerTracks",
263  "input tracks"};
264  SG::ReadHandleKey<xAOD::MuonContainer> m_muons{this, "MuonLocation", "Muons", "input muons"}; // muons for cases other than MS tracks
265  SG::ReadHandleKey<xAOD::EventInfo> m_eventInfoKey{this, "EventInfoKey", "EventInfo", "EventInfo key"};
267 
268  // truth readHandles
269  SG::ReadHandleKey<McEventCollection> m_mcEventColl{this, "McEventCollectionKey", "TruthEvent", "McEventCollection"};
271  this, "MuonSimDataNames", {"MDT_SDO", "RPC_SDO", "TGC_SDO", "sTGC_SDO", "MM_SDO"}, "Muon SDO maps"};
272  SG::ReadHandleKey<CscSimDataCollection> m_cscSimData{this, "CSC_SDO_Container", "CSC_SDO", "CSC SDO"};
273  SG::ReadHandleKey<TrackRecordCollection> m_trackRecord{this, "TrackRecord", "MuonEntryLayerFilter", "Track Record Collection"};
274 
275  // member set by Joboptions
276  int m_doSummary{};
279  bool m_doTruth{};
280  bool m_doHistos{};
282  double m_momentumCut{};
283  bool m_usePtCut{};
284  bool m_isCombined{};
285  bool m_doSegments{};
287  bool m_doStau{};
288 
289  ServiceHandle<Muon::IMuonIdHelperSvc> m_idHelperSvc{this, "MuonIdHelperSvc", "Muon::MuonIdHelperSvc/MuonIdHelperSvc"};
290 
291  PublicToolHandle<Muon::MuonEDMPrinterTool> m_printer{this, "Printer", "Muon::MuonEDMPrinterTool/MuonEDMPrinterTool"};
292 
293  ServiceHandle<Muon::IMuonEDMHelperSvc> m_edmHelperSvc{this, "edmHelper", "Muon::MuonEDMHelperSvc/MuonEDMHelperSvc",
294  "Handle to the service providing the IMuonEDMHelperSvc interface"};
295 
296 
297  ToolHandle<Muon::IMuonTrackTruthTool> m_truthTool{this, "TrackTruthTool",""};
298  ToolHandle<Trk::ITrackSummaryHelperTool> m_summaryHelperTool{this, "SummaryHelperTool", ""};
302 
313 
314  unsigned int m_nevents{};
315  unsigned int m_ntracks{};
316 
317  unsigned int m_nmatchedTracks{};
319  unsigned int m_nmatchedFakeTracks{};
320 
321  unsigned int m_nfakeTracks{};
322  unsigned int m_nfakeTracksHighPt{};
323  unsigned int m_nfakeTracksLowPt{};
324  unsigned int m_nfakeTracksSL{};
325 
326  unsigned int m_nmissedTracks{};
328 
329  unsigned int m_nmissedTracksSecondary{};
331 
332  unsigned int m_nmissingStationMomLoss{};
333  unsigned int m_nmissingStationLayer{};
336  unsigned int m_nmissingStation{};
337 
338  unsigned int m_nwrongStationLayer{};
340  unsigned int m_nwrongStation{};
341 
342  unsigned int m_ntruthTracks{};
343  unsigned int m_ntruthTracksSecondary{};
344 
345  struct TrackSummary {
346  std::string trackPars;
347  std::string chambers;
348  std::vector<std::string> missingChambers;
349  };
350 
351  struct EventSummary {
352  std::string eventNumber;
353  std::vector<TrackSummary> trackSummary;
354  };
355 
356  void printSummary(const std::vector<EventSummary>& summary, std::string typeName) const;
357 
358  std::vector<EventData> m_badEvents;
359 
361  std::string m_fileName;
362 
364  std::ofstream m_fileOutput;
365 
366  IntegerArrayProperty m_pdgsToBeConsidered;
367  std::set<int> m_selectedPdgs; // set storing particle PDG's considered for matching
368 
369  // type of track (based on enum defined in Muon_v1.h)
370  int m_trackType{};
371  std::string m_trackTypeString;
372 };
373 
374 #endif // MUONTRACKPERFORMANCEALG_H
MuonTrackPerformanceAlg::TrackData::hasWrongLayers
bool hasWrongLayers() const
Definition: MuonTrackPerformanceAlg.h:123
MuonTrackPerformanceAlg::TrackData::hasWrongInner
bool hasWrongInner() const
Definition: MuonTrackPerformanceAlg.h:135
MuonTrackPerformanceAlg::EventData::eventNumber
unsigned int eventNumber
Definition: MuonTrackPerformanceAlg.h:153
ReadHandleKey.h
Property holding a SG store/key/clid from which a ReadHandle is made.
MuonTrackPerformanceAlg::EventData::fakeTracksSL
std::vector< TrackData * > fakeTracksSL
Definition: MuonTrackPerformanceAlg.h:172
MuonTrackPerformanceAlg::m_mcEventColl
SG::ReadHandleKey< McEventCollection > m_mcEventColl
Definition: MuonTrackPerformanceAlg.h:269
MuonTrackPerformanceAlg::m_nmissedTracksOneStation
unsigned int m_nmissedTracksOneStation
Definition: MuonTrackPerformanceAlg.h:327
MuonTrackPerformanceAlg::EventData::missingStationLayer
std::vector< TrackData * > missingStationLayer
Definition: MuonTrackPerformanceAlg.h:160
MuonTrackPerformanceAlg::m_nwrongStationLayer
unsigned int m_nwrongStationLayer
Definition: MuonTrackPerformanceAlg.h:338
MuonTrackPerformanceAlg::m_doEventListMissed
int m_doEventListMissed
Definition: MuonTrackPerformanceAlg.h:299
MuonTrackPerformanceAlg::m_momentumCut
double m_momentumCut
Definition: MuonTrackPerformanceAlg.h:282
data
char data[hepevt_bytes_allocation_ATLAS]
Definition: HepEvt.cxx:11
MuonTrackPerformanceAlg::m_minMdtHits
int m_minMdtHits
Definition: MuonTrackPerformanceAlg.h:303
Muon::MuonSegmentCombination
Definition: MuonSegmentCombination.h:30
MuonTrackPerformanceAlg::EventData::missingStationMomLoss
std::vector< TrackData * > missingStationMomLoss
Definition: MuonTrackPerformanceAlg.h:158
MuonTrackPerformanceAlg::TrackData::~TrackData
~TrackData()
Definition: MuonTrackPerformanceAlg.h:68
TRTCalib_Extractor.hits
hits
Definition: TRTCalib_Extractor.py:35
MuonTrackPerformanceAlg::evaluateTrackTruthOverlap
TrackData * evaluateTrackTruthOverlap(const Muon::MuonTrackTruth &truthTrack) const
evaluate track/truth overlap and create the corresponding overlap description object
Definition: MuonTrackPerformanceAlg.cxx:1082
MuonTrackPerformanceAlg::m_nmissedTracksSecondary
unsigned int m_nmissedTracksSecondary
Definition: MuonTrackPerformanceAlg.h:329
MuonTrackPerformanceAlg::m_doEventListFake
int m_doEventListFake
Definition: MuonTrackPerformanceAlg.h:301
MuonTrackPerformanceAlg::m_momentumCutSim
double m_momentumCutSim
Definition: MuonTrackPerformanceAlg.h:281
TrackParameters.h
MuonTrackPerformanceAlg::TrackData::isEndcapSLTrack
bool isEndcapSLTrack() const
Definition: MuonTrackPerformanceAlg.h:110
MuonTrackSummary.h
Trk::Track
The ATLAS Track class.
Definition: Tracking/TrkEvent/TrkTrack/TrkTrack/Track.h:73
MuonEDMPrinterTool.h
MuonTrackPerformanceAlg::m_usePtCut
bool m_usePtCut
Definition: MuonTrackPerformanceAlg.h:283
MuonTrackPerformanceAlg::printTrackCounters
std::string printTrackCounters(bool doSecondaries=true) const
print all the track counters to a string to provide a summary
Definition: MuonTrackPerformanceAlg.cxx:924
MuonTrackPerformanceAlg::eventNumber
int eventNumber() const
Definition: MuonTrackPerformanceAlg.cxx:591
MuonTrackPerformanceAlg::m_isCombined
bool m_isCombined
Definition: MuonTrackPerformanceAlg.h:284
Muon::MuonStationIndex::StIndex::EM
@ EM
MuonTrackPerformanceAlg::TrackData::missingLayers
std::set< Muon::MuonStationIndex::StIndex > missingLayers
Definition: MuonTrackPerformanceAlg.h:102
MuonTrackPerformanceAlg::TrackData::operator=
TrackData & operator=(const TrackData &)=delete
Trk::ParametersT
Dummy class used to allow special convertors to be called for surfaces owned by a detector element.
Definition: EMErrorDetail.h:25
MuonTrackPerformanceAlg::TrackData::missingCscLayers
std::set< Muon::MuonStationIndex::StIndex > missingCscLayers
Definition: MuonTrackPerformanceAlg.h:103
MuonTrackPerformanceAlg::TrackData::truthTrajectory
TruthTrajectory * truthTrajectory
Definition: MuonTrackPerformanceAlg.h:94
CscSimDataCollection.h
MuonTrackPerformanceAlg::m_nmissingCscStationLayer
unsigned int m_nmissingCscStationLayer
Definition: MuonTrackPerformanceAlg.h:334
MuonTrackPerformanceAlg::TrackData::truthTrack
TrackRecord * truthTrack
Definition: MuonTrackPerformanceAlg.h:89
MuonTrackPerformanceAlg::printMissingTracks
void printMissingTracks() const
Definition: MuonTrackPerformanceAlg.cxx:856
MuonTrackPerformanceAlg::TrackData::momentumAtProduction
Amg::Vector3D * momentumAtProduction
Definition: MuonTrackPerformanceAlg.h:93
MuonTrackPerformanceAlg::handleTrackTruth
bool handleTrackTruth(const TrackCollection &trackCollection)
Definition: MuonTrackPerformanceAlg.cxx:252
MuonTrackPerformanceAlg::TrackData::layersTrigger
std::set< Muon::MuonStationIndex::StIndex > layersTrigger
Definition: MuonTrackPerformanceAlg.h:106
MuonTrackPerformanceAlg::m_doTrackDebug
int m_doTrackDebug
Definition: MuonTrackPerformanceAlg.h:278
MuonTrackPerformanceAlg::m_minTgcPhiHits
int m_minTgcPhiHits
Definition: MuonTrackPerformanceAlg.h:309
MuonTrackPerformanceAlg::m_fileOutput
std::ofstream m_fileOutput
output file
Definition: MuonTrackPerformanceAlg.h:364
module_driven_slicing.layers
layers
Definition: module_driven_slicing.py:113
MuonTrackPerformanceAlg::m_ntruthTracks
unsigned int m_ntruthTracks
Definition: MuonTrackPerformanceAlg.h:342
MuonTrackPerformanceAlg::EventData::goodEvent
bool goodEvent() const
Definition: MuonTrackPerformanceAlg.h:174
MuonTrackPerformanceAlg::m_truthTool
ToolHandle< Muon::IMuonTrackTruthTool > m_truthTool
Definition: MuonTrackPerformanceAlg.h:297
MuonTrackPerformanceAlg::insertTechnology
bool insertTechnology(const std::set< Identifier > &chIds, const std::set< Identifier > &hits, int minEtaHits, int minPhiHits, std::vector< ChamberData > &chamberData) const
insert set of chambers into chamber data if hits counts pass cuts, returns true if anything was inser...
Definition: MuonTrackPerformanceAlg.cxx:1041
Muon::MuonTrackTruth
Definition: IMuonTrackTruthTool.h:40
MuonTrackPerformanceAlg::EventData::fakeTracksLowPt
std::vector< TrackData * > fakeTracksLowPt
Definition: MuonTrackPerformanceAlg.h:171
MuonTrackPerformanceAlg::m_idHelperSvc
ServiceHandle< Muon::IMuonIdHelperSvc > m_idHelperSvc
Definition: MuonTrackPerformanceAlg.h:289
MuonTrackPerformanceAlg::m_badEvents
std::vector< EventData > m_badEvents
Definition: MuonTrackPerformanceAlg.h:358
SG::HandleKeyArray
Definition: StoreGate/StoreGate/HandleKeyArray.h:38
GenParticle_fwd.h
MuonTrackPerformanceAlg::m_edmHelperSvc
ServiceHandle< Muon::IMuonEDMHelperSvc > m_edmHelperSvc
Definition: MuonTrackPerformanceAlg.h:293
MuonTrackPerformanceAlg::m_writeToFile
bool m_writeToFile
Definition: MuonTrackPerformanceAlg.h:286
MuonTrackPerformanceAlg::m_minCscEtaHits
int m_minCscEtaHits
Definition: MuonTrackPerformanceAlg.h:304
MuonTrackPerformanceAlg::TrackData::hasMissingLayersTrigger
bool hasMissingLayersTrigger() const
Definition: MuonTrackPerformanceAlg.h:125
MuonTrackPerformanceAlg::cardinality
virtual unsigned int cardinality() const override final
Definition: MuonTrackPerformanceAlg.h:190
const
bool const RAWDATA *ch2 const
Definition: LArRodBlockPhysicsV0.cxx:560
MuonTrackPerformanceAlg::m_minRpcPhiHits
int m_minRpcPhiHits
Definition: MuonTrackPerformanceAlg.h:307
SG::ReadHandleKey
Property holding a SG store/key/clid from which a ReadHandle is made.
Definition: StoreGate/StoreGate/ReadHandleKey.h:39
Muon
NRpcCablingAlg reads raw condition data and writes derived condition data to the condition store.
Definition: TrackSystemController.h:45
MuonTrackPerformanceAlg::m_fileName
std::string m_fileName
name of external file to write statistics
Definition: MuonTrackPerformanceAlg.h:361
Trk::Perigee
ParametersT< TrackParametersDim, Charged, PerigeeSurface > Perigee
Definition: Tracking/TrkEvent/TrkParameters/TrkParameters/TrackParameters.h:33
xAOD::MuonSegment
MuonSegment_v1 MuonSegment
Reference the current persistent version:
Definition: Event/xAOD/xAODMuon/xAODMuon/MuonSegment.h:13
ReweightUtils.message
message
Definition: ReweightUtils.py:15
MuonTrackPerformanceAlg::m_trackKey
SG::ReadHandleKey< TrackCollection > m_trackKey
Location of the input tracks.
Definition: MuonTrackPerformanceAlg.h:262
MuonTrackPerformanceAlg::EventData::missingTruthTracksOneStation
std::vector< TrackData * > missingTruthTracksOneStation
Definition: MuonTrackPerformanceAlg.h:156
MuonTrackPerformanceAlg::TrackData::hasWrongLayersTrigger
bool hasWrongLayersTrigger() const
Definition: MuonTrackPerformanceAlg.h:127
MuonTrackPerformanceAlg::EventData::wrongStationLayer
std::vector< TrackData * > wrongStationLayer
Definition: MuonTrackPerformanceAlg.h:164
MuonTrackPerformanceAlg::addTrackToTrackData
void addTrackToTrackData(const Trk::Track &track, TrackData &trackData) const
Definition: MuonTrackPerformanceAlg.cxx:1244
MuonTrackPerformanceAlg::TrackData::trackSummary
Trk::TrackSummary * trackSummary
Definition: MuonTrackPerformanceAlg.h:96
MuonTrackPerformanceAlg::execute
virtual StatusCode execute() override
Definition: MuonTrackPerformanceAlg.cxx:112
MuonTrackPerformanceAlg::isSecondary
bool isSecondary(const Muon::MuonTrackTruth &truthTrack) const
Definition: MuonTrackPerformanceAlg.cxx:1406
MuonTrackPerformanceAlg::m_minMMEtaHits
int m_minMMEtaHits
Definition: MuonTrackPerformanceAlg.h:312
MuonTrackPerformanceAlg::m_muonSimData
SG::ReadHandleKeyArray< MuonSimDataCollection > m_muonSimData
Definition: MuonTrackPerformanceAlg.h:270
MuonTrackPerformanceAlg::clearTracks
void clearTracks(std::vector< const Trk::Track * > tracks)
Definition: MuonTrackPerformanceAlg.cxx:1352
AthAlgorithm.h
MuonTrackPerformanceAlg::TrackSummary::chambers
std::string chambers
Definition: MuonTrackPerformanceAlg.h:347
MuonTrackPerformanceAlg::EventData::missingStation
std::vector< TrackData * > missingStation
Definition: MuonTrackPerformanceAlg.h:162
MuonTrackPerformanceAlg::m_ntracks
unsigned int m_ntracks
Definition: MuonTrackPerformanceAlg.h:315
MuonTrackPerformanceAlg::m_nmatchedFakeTracks
unsigned int m_nmatchedFakeTracks
Definition: MuonTrackPerformanceAlg.h:319
MuonTrackPerformanceAlg::doSummary
void doSummary(const TrackCollection &tracks) const
Definition: MuonTrackPerformanceAlg.cxx:598
MuonTrackPerformanceAlg::m_doSegments
bool m_doSegments
Definition: MuonTrackPerformanceAlg.h:285
MuonTrackPerformanceAlg::extractEtaPhiCounts
void extractEtaPhiCounts(const std::set< Identifier > &ids, int &neta, int &nphi, int &netaCh, int &nphiCh) const
MuonTrackPerformanceAlg::printSummary
void printSummary(const std::vector< EventSummary > &summary, std::string typeName) const
MuonTrackPerformanceAlg::createTrackData
TrackData * createTrackData(const Muon::IMuonTrackTruthTool::TruthTreeEntry &trackTruth) const
create track data object for truth track
Definition: MuonTrackPerformanceAlg.cxx:1257
MuonTrackPerformanceAlg::m_pdgsToBeConsidered
IntegerArrayProperty m_pdgsToBeConsidered
Definition: MuonTrackPerformanceAlg.h:366
MuonTrackPerformanceAlg::EventData::wrongStation
std::vector< TrackData * > wrongStation
Definition: MuonTrackPerformanceAlg.h:165
MuonTrackPerformanceAlg::TrackData::motherPdg
int motherPdg
Definition: MuonTrackPerformanceAlg.h:90
MuonTrackPerformanceAlg::ChamberData
Definition: MuonTrackPerformanceAlg.h:52
event
POOL::TEvent event(POOL::TEvent::kClassAccess)
McEventCollection.h
MuonTrackPerformanceAlg::TrackData::layers
std::set< Muon::MuonStationIndex::StIndex > layers
Definition: MuonTrackPerformanceAlg.h:101
MuonTrackPerformanceAlg::TrackData::wrongChambers
std::vector< ChamberData > wrongChambers
Definition: MuonTrackPerformanceAlg.h:99
MuonTrackPerformanceAlg::m_nmissingStationLayerTrigger
unsigned int m_nmissingStationLayerTrigger
Definition: MuonTrackPerformanceAlg.h:335
MuonTrackPerformanceAlg::EventSummary
Definition: MuonTrackPerformanceAlg.h:351
MuonTrackPerformanceAlg::m_nwrongStationLayerTrigger
unsigned int m_nwrongStationLayerTrigger
Definition: MuonTrackPerformanceAlg.h:339
MuonTrackPerformanceAlg::TrackData::TrackData
TrackData()
Definition: MuonTrackPerformanceAlg.h:58
MuonTrackPerformanceAlg::clearEvent
void clearEvent(EventData &event)
Definition: MuonTrackPerformanceAlg.cxx:1366
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
MuonTrackPerformanceAlg::m_nwrongStation
unsigned int m_nwrongStation
Definition: MuonTrackPerformanceAlg.h:340
MuonTrackPerformanceAlg::m_summaryHelperTool
ToolHandle< Trk::ITrackSummaryHelperTool > m_summaryHelperTool
Definition: MuonTrackPerformanceAlg.h:298
MuonTrackPerformanceAlg::m_nmissingStation
unsigned int m_nmissingStation
Definition: MuonTrackPerformanceAlg.h:336
MuonTrackPerformanceAlg::TrackData::missingChambers
std::vector< ChamberData > missingChambers
Definition: MuonTrackPerformanceAlg.h:98
MuonTrackPerformanceAlg::m_minTgcEtaHits
int m_minTgcEtaHits
Definition: MuonTrackPerformanceAlg.h:308
TrackCollection.h
MuonTrackPerformanceAlg::m_eventInfo
const xAOD::EventInfo * m_eventInfo
pointer to the event info
Definition: MuonTrackPerformanceAlg.h:266
MuonTrackPerformanceAlg::m_selectedPdgs
std::set< int > m_selectedPdgs
Definition: MuonTrackPerformanceAlg.h:367
MuonTrackPerformanceAlg::m_trackType
int m_trackType
Definition: MuonTrackPerformanceAlg.h:370
MuonTrackPerformanceAlg::EventData
Definition: MuonTrackPerformanceAlg.h:152
MuonTrackPerformanceAlg::printFakeTracks
void printFakeTracks() const
Definition: MuonTrackPerformanceAlg.cxx:885
TrackSummary.h
MuonTrackPerformanceAlg::TrackSummary::trackPars
std::string trackPars
Definition: MuonTrackPerformanceAlg.h:346
MuonTrackPerformanceAlg::m_nmissingStationMomLoss
unsigned int m_nmissingStationMomLoss
Definition: MuonTrackPerformanceAlg.h:332
IMuonTrackTruthTool.h
MuonTrackPerformanceAlg::m_doHitResiduals
int m_doHitResiduals
Definition: MuonTrackPerformanceAlg.h:277
MuonTrackPerformanceAlg::TrackData
Definition: MuonTrackPerformanceAlg.h:57
MuonTrackPerformanceAlg::TrackData::chi2Ndof
double chi2Ndof
Definition: MuonTrackPerformanceAlg.h:91
DataVector< Trk::Track >
MuonTrackPerformanceAlg::handleTracks
bool handleTracks()
Definition: MuonTrackPerformanceAlg.cxx:155
MuonTrackPerformanceAlg::EventData::eventPosition
unsigned int eventPosition
Definition: MuonTrackPerformanceAlg.h:154
columnar::final
CM final
Definition: ColumnAccessor.h:106
AthAlgorithm
Definition: AthAlgorithm.h:47
MuonTrackPerformanceAlg::m_nfakeTracksHighPt
unsigned int m_nfakeTracksHighPt
Definition: MuonTrackPerformanceAlg.h:322
MuonTrackPerformanceAlg::EventData::fakeTracks
std::vector< TrackData * > fakeTracks
Definition: MuonTrackPerformanceAlg.h:170
MuonTrackPerformanceAlg::TrackData::trackPars
Trk::Perigee * trackPars
Definition: MuonTrackPerformanceAlg.h:95
GetAllXsec.entry
list entry
Definition: GetAllXsec.py:132
MuonTrackPerformanceAlg::m_nmissedTracksOneStationSecondary
unsigned int m_nmissedTracksOneStationSecondary
Definition: MuonTrackPerformanceAlg.h:330
MuonTrackPerformanceAlg::TrackData::allOk
bool allOk() const
Definition: MuonTrackPerformanceAlg.h:141
HepMC::ConstGenParticlePtr
const GenParticle * ConstGenParticlePtr
Definition: GenParticle.h:38
IMuonEDMHelperSvc.h
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition: FakeTrackBuilder.h:9
MuonTrackPerformanceAlg::m_doHistos
bool m_doHistos
Definition: MuonTrackPerformanceAlg.h:280
MuonTrackPerformanceAlg::m_muons
SG::ReadHandleKey< xAOD::MuonContainer > m_muons
Definition: MuonTrackPerformanceAlg.h:264
TruthTrajectory
Definition: TruthTrajectory.h:26
MuonTrackPerformanceAlg::EventData::missingStationLayerTrigger
std::vector< TrackData * > missingStationLayerTrigger
Definition: MuonTrackPerformanceAlg.h:167
Trk::TrackSummary
A summary of the information contained by a track.
Definition: Tracking/TrkEvent/TrkTrackSummary/TrkTrackSummary/TrackSummary.h:287
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:240
python.subdetectors.mmg.ids
ids
Definition: mmg.py:8
TrackRecordCollection.h
MuonTrackPerformanceAlg::EventData::missingCscStationLayer
std::vector< TrackData * > missingCscStationLayer
Definition: MuonTrackPerformanceAlg.h:161
MuonTrackPerformanceAlg::TrackSummary::missingChambers
std::vector< std::string > missingChambers
Definition: MuonTrackPerformanceAlg.h:348
MuonTrackPerformanceAlg::m_nfakeTracksLowPt
unsigned int m_nfakeTracksLowPt
Definition: MuonTrackPerformanceAlg.h:323
MuonTrackPerformanceAlg::m_nmissingStationLayer
unsigned int m_nmissingStationLayer
Definition: MuonTrackPerformanceAlg.h:333
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition: GeoPrimitives.h:47
MuonTrackPerformanceAlg::m_minsTgcPhiHits
int m_minsTgcPhiHits
Definition: MuonTrackPerformanceAlg.h:311
MuonTrackPerformanceAlg::TrackData::hasMissingLayers
bool hasMissingLayers() const
Definition: MuonTrackPerformanceAlg.h:121
MuonTrackPerformanceAlg::m_nmatchedTracks
unsigned int m_nmatchedTracks
Definition: MuonTrackPerformanceAlg.h:317
TrackRecord
Definition: TrackRecord.h:12
EventInfo.h
MuonTrackPerformanceAlg::EventSummary::trackSummary
std::vector< TrackSummary > trackSummary
Definition: MuonTrackPerformanceAlg.h:353
xAOD::EventInfo_v1
Class describing the basic event information.
Definition: EventInfo_v1.h:43
MuonTrackPerformanceAlg::m_minCscPhiHits
int m_minCscPhiHits
Definition: MuonTrackPerformanceAlg.h:305
MuonContainer.h
MuonTrackPerformanceAlg::finalize
virtual StatusCode finalize() override
Definition: MuonTrackPerformanceAlg.cxx:563
MuonTrackPerformanceAlg::m_nmissedTracks
unsigned int m_nmissedTracks
Definition: MuonTrackPerformanceAlg.h:326
MuonTrackPerformanceAlg::TrackData::productionVertex
Amg::Vector3D * productionVertex
Definition: MuonTrackPerformanceAlg.h:92
ITrackSummaryHelperTool.h
MuonTrackPerformanceAlg::ChamberData::hits
std::set< Identifier > hits
Definition: MuonTrackPerformanceAlg.h:54
Muon::IMuonTrackTruthTool::TruthTreeEntry
Definition: IMuonTrackTruthTool.h:75
MuonTrackPerformanceAlg::selectPdg
bool selectPdg(int pdg) const
Definition: MuonTrackPerformanceAlg.h:260
MuonTrackPerformanceAlg::TrackData::TrackData
TrackData(const TrackData &data)
Definition: MuonTrackPerformanceAlg.h:77
MuonTrackPerformanceAlg::m_minsTgcEtaHits
int m_minsTgcEtaHits
Definition: MuonTrackPerformanceAlg.h:310
Muon::IMuonTrackTruthTool::TruthTree
std::map< int, TruthTreeEntry > TruthTree
Definition: IMuonTrackTruthTool.h:93
MuonTrackPerformanceAlg::m_ntruthTracksSecondary
unsigned int m_ntruthTracksSecondary
Definition: MuonTrackPerformanceAlg.h:343
MuonTrackPerformanceAlg::initialize
virtual StatusCode initialize() override
Definition: MuonTrackPerformanceAlg.cxx:77
MuonTrackPerformanceAlg::MuonTrackPerformanceAlg
MuonTrackPerformanceAlg(const std::string &name, ISvcLocator *pSvcLocator)
Definition: MuonTrackPerformanceAlg.cxx:18
MuonTrackPerformanceAlg::m_nevents
unsigned int m_nevents
Definition: MuonTrackPerformanceAlg.h:314
MuonTrackPerformanceAlg::ChamberData::chId
Identifier chId
Definition: MuonTrackPerformanceAlg.h:53
MuonTrackPerformanceAlg::TrackSummary
Definition: MuonTrackPerformanceAlg.h:345
MuonTrackPerformanceAlg::~MuonTrackPerformanceAlg
virtual ~MuonTrackPerformanceAlg()
Definition: MuonTrackPerformanceAlg.cxx:75
MuonTrackPerformanceAlg::m_trackRecord
SG::ReadHandleKey< TrackRecordCollection > m_trackRecord
Definition: MuonTrackPerformanceAlg.h:273
MuonTrackPerformanceAlg::printMissingChambers
void printMissingChambers() const
Definition: MuonTrackPerformanceAlg.cxx:776
MuonTrackPerformanceAlg::TrackData::hasWrongChambers
bool hasWrongChambers() const
Definition: MuonTrackPerformanceAlg.h:119
MuonTrackPerformanceAlg::insertStationLayers
bool insertStationLayers(const std::set< Identifier > &chIds, const std::set< Muon::MuonStationIndex::StIndex > &exclusionList, std::set< Muon::MuonStationIndex::StIndex > &layers) const
insert station layers into layer set if they are not in exclusion list
Definition: MuonTrackPerformanceAlg.cxx:1053
MuonTrackPerformanceAlg::countHitsInChamber
std::pair< int, int > countHitsInChamber(const Identifier &chId, const std::set< Identifier > &hitIds) const
counts number of eta (first number) and phi (second number in pair) hits in the set of hit IDs in the...
Definition: MuonTrackPerformanceAlg.cxx:997
Muon::MuonStationIndex::StIndex::EO
@ EO
ReadCalibFromCool.typeName
typeName
Definition: ReadCalibFromCool.py:477
MuonTrackPerformanceAlg::m_eventInfoKey
SG::ReadHandleKey< xAOD::EventInfo > m_eventInfoKey
Definition: MuonTrackPerformanceAlg.h:265
MuonTrackPerformanceAlg::TrackData::wrongLayersTrigger
std::set< Muon::MuonStationIndex::StIndex > wrongLayersTrigger
Definition: MuonTrackPerformanceAlg.h:108
MuonTrackPerformanceAlg::m_nfakeTracksSL
unsigned int m_nfakeTracksSL
Definition: MuonTrackPerformanceAlg.h:324
MuonTrackPerformanceAlg::insertChamber
bool insertChamber(const Identifier &chId, const std::set< Identifier > &hits, int minEtaHits, int minPhiHits, ChamberData &chamberData) const
insert chamber information into ChamberData if hits counts pass cuts, returns true if anything was in...
Definition: MuonTrackPerformanceAlg.cxx:1015
Track
Definition: TriggerChamberClusterOnTrackCreator.h:21
MuonTrackPerformanceAlg::m_doStau
bool m_doStau
Definition: MuonTrackPerformanceAlg.h:287
TruthTrajectory.h
xAOD::track
@ track
Definition: TrackingPrimitives.h:513
MuonTrackPerformanceAlg::m_doTruth
bool m_doTruth
Definition: MuonTrackPerformanceAlg.h:279
MuonTrackPerformanceAlg::m_doEventListIncomplete
int m_doEventListIncomplete
Definition: MuonTrackPerformanceAlg.h:300
MuonTrackPerformanceAlg::EventData::missingTruthTracks
std::vector< TrackData * > missingTruthTracks
Definition: MuonTrackPerformanceAlg.h:155
MuonTrackPerformanceAlg::m_nmatchedTracksSecondary
unsigned int m_nmatchedTracksSecondary
Definition: MuonTrackPerformanceAlg.h:318
Muon::MuonStationIndex::StIndex::BI
@ BI
MuonTrackPerformanceAlg
Definition: MuonTrackPerformanceAlg.h:50
MuonSimDataCollection.h
MuonTrackPerformanceAlg::eventInfo
std::string eventInfo() const
Definition: MuonTrackPerformanceAlg.cxx:596
MuonTrackPerformanceAlg::m_nfakeTracks
unsigned int m_nfakeTracks
Definition: MuonTrackPerformanceAlg.h:321
MuonTrackPerformanceAlg::EventSummary::eventNumber
std::string eventNumber
Definition: MuonTrackPerformanceAlg.h:352
MuonTrackPerformanceAlg::handleSegmentCombi
bool handleSegmentCombi(const Muon::MuonSegmentCombination &combi)
Definition: MuonTrackPerformanceAlg.cxx:127
MuonTrackPerformanceAlg::TrackData::wrongLayers
std::set< Muon::MuonStationIndex::StIndex > wrongLayers
Definition: MuonTrackPerformanceAlg.h:104
MuonTrackPerformanceAlg::getMother
HepMC::ConstGenParticlePtr getMother(const TruthTrajectory &traj) const
Definition: MuonTrackPerformanceAlg.cxx:1382
MuonTrackPerformanceAlg::m_doSummary
int m_doSummary
Definition: MuonTrackPerformanceAlg.h:276
MuonTrackPerformanceAlg::TrackData::missingLayersTrigger
std::set< Muon::MuonStationIndex::StIndex > missingLayersTrigger
Definition: MuonTrackPerformanceAlg.h:107
Muon::MuonStationIndex::StIndex::EI
@ EI
xAOD::TrackSummary
TrackSummary_v1 TrackSummary
Definition: Event/xAOD/xAODTracking/xAODTracking/TrackSummary.h:10
IMuonIdHelperSvc.h
MuonTrackPerformanceAlg::goodTruthTrack
bool goodTruthTrack(const Muon::IMuonTrackTruthTool::TruthTreeEntry &entry) const
Definition: MuonTrackPerformanceAlg.cxx:235
MuonTrackPerformanceAlg::EventData::wrongStationLayerTrigger
std::vector< TrackData * > wrongStationLayerTrigger
Definition: MuonTrackPerformanceAlg.h:168
MuonTrackPerformanceAlg::TrackData::hasMissingChambers
bool hasMissingChambers() const
Definition: MuonTrackPerformanceAlg.h:117
MuonTrackPerformanceAlg::getInitialState
HepMC::ConstGenParticlePtr getInitialState(const TruthTrajectory &traj) const
Definition: MuonTrackPerformanceAlg.cxx:1391
MuonTrackPerformanceAlg::m_minRpcEtaHits
int m_minRpcEtaHits
Definition: MuonTrackPerformanceAlg.h:306
MuonTrackPerformanceAlg::m_trackTypeString
std::string m_trackTypeString
Definition: MuonTrackPerformanceAlg.h:371
MuonTrackPerformanceAlg::m_cscSimData
SG::ReadHandleKey< CscSimDataCollection > m_cscSimData
Definition: MuonTrackPerformanceAlg.h:272
MuonTrackPerformanceAlg::print
std::string print(const Muon::IMuonTrackTruthTool::TruthTreeEntry &trackTruth) const
Definition: MuonTrackPerformanceAlg.cxx:642
ServiceHandle< Muon::IMuonIdHelperSvc >
MuonTrackPerformanceAlg::m_printer
PublicToolHandle< Muon::MuonEDMPrinterTool > m_printer
Definition: MuonTrackPerformanceAlg.h:291
Identifier
Definition: IdentifierFieldParser.cxx:14
SCT_Monitoring::summary
@ summary
Definition: SCT_MonitoringNumbers.h:65
MuonTrackPerformanceAlg::TrackData::isMissingInner
bool isMissingInner() const
Definition: MuonTrackPerformanceAlg.h:129