ATLAS Offline Software
Loading...
Searching...
No Matches
EventHandler.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef MuonCalibExtrTreeEvent_EventHandler_h
6#define MuonCalibExtrTreeEvent_EventHandler_h
7
8#include <map>
9#include <memory>
10#include <string>
11#include <vector>
12
17
18namespace MuonCalib {
19
22
24 public:
26 AuthorIndices(int s, int t) : segment{s}, track{t} {}
28 int track;
29 };
30
31 public:
34
40
41 using TrackVec = std::vector<ExtendedTrackPtr>;
42 using AuthorTrackVecMap = std::map<int, TrackVec>;
43
44 using SegmentVec = std::vector<ExtendedSegmentPtr>;
45 using AuthorSegmentVecMap = std::map<int, SegmentVec>;
46 using AuthorSegmentVecIt = AuthorSegmentVecMap::iterator;
47 using AuthorSegmentVecCit = AuthorSegmentVecMap::const_iterator;
48
49 public:
52
55
57 void clear();
58
60 void setEvent(std::shared_ptr<const MuonCalibEvent_E> event);
61
63 const TrackVec& extendedTracks(int author) const;
64
66 const SegmentVec& extendedSegments(int author) const;
67
70
72 const MuonCalibEvent_E& event() const;
73
75 const AuthorIndices& mooreIndices() const;
76
78 const AuthorIndices& muonboyIndices() const;
79
81 std::string dumpRawHits() const;
82 std::string dumpTracks() const;
83 std::string dumpTracks(const TrackVec& tracks) const;
84 std::string dumpSegments(const SegmentVec& segments) const;
85 std::string dumpSegments() const;
86 std::string dumpEvent() const;
87 void setdbg(const bool dbg_on);
88
89 private:
92
95
98
101
103 void associateSegmentsWithTracks(SegmentVec& segments, TrackVec& tracks);
104
107
109 int segmentOverlap(const MuonCalibExtendedSegment& segment1, const MuonCalibExtendedSegment& segment2);
110
112 void linkTracks(int referenceIndex);
113
115 void match(const MuonCalibExtendedTrack& reference, TrackVec& tracks);
116
117 // data members
118 std::shared_ptr<const MuonCalibEvent_E> m_event;
122
123 // author indices of segment and tracks in ntuple
127
129 template <typename T> void split_along_barcode(const std::vector<T>& container, std::map<int, std::set<T>>& barcode_map);
130
131 std::shared_ptr<MuonCalibTrack_E> transform_to_trk(const TruthPtr& truth_part, const std::map<int, std::set<TruthMdtPtr>>& mdt_hits,
132 const std::map<int, std::set<TruthCscPtr>>& csc_hits,
133 const std::map<int, std::set<TruthRpcPtr>>& rpc_hits,
134 const std::map<int, std::set<TruthTgcPtr>>& tgc_hits);
135 };
136
137} // namespace MuonCalib
138#endif
Define macros for attributes used to control the static checker.
void createExtendedTracks()
create extended tracks for event
int segmentOverlap(const MuonCalibExtendedSegment &segment1, const MuonCalibExtendedSegment &segment2)
check whether segments share the same hits
AuthorIndices m_mooreIndices
void createExtendedTruthTracks()
create extended tracks for event
const AuthorIndices & mooreIndices() const
get author indices for Moore
std::shared_ptr< MuonCalibTrack_E > transform_to_trk(const TruthPtr &truth_part, const std::map< int, std::set< TruthMdtPtr > > &mdt_hits, const std::map< int, std::set< TruthCscPtr > > &csc_hits, const std::map< int, std::set< TruthRpcPtr > > &rpc_hits, const std::map< int, std::set< TruthTgcPtr > > &tgc_hits)
const MuonCalibEvent_E & event() const
get event
std::map< int, TrackVec > AuthorTrackVecMap
const AuthorIndices & muonboyIndices() const
get author indices for Muonboy
void match(const MuonCalibExtendedTrack &reference, TrackVec &tracks)
find best match of tracks with reference
void createExtendedRawHits()
create extend raw hits
std::string dumpEvent() const
const MuonCalibExtendedRawHits & extendedRawHits() const
get extended raw hits
MuonCalibTruthCollection::TruthMdtPtr TruthMdtPtr
MuonCalibExtendedRawHits::ExtendedSegPtr ExtendedSegmentPtr
void createExtendedSegments()
create extended segments for event
AuthorTrackVecMap m_extendedTracks
EventHandler()
default constructor
MuonCalibTruthCollection::TruthTgcPtr TruthTgcPtr
std::string dumpSegments() const
void setdbg(const bool dbg_on)
AuthorSegmentVecMap::iterator AuthorSegmentVecIt
const SegmentVec & extendedSegments(int author) const
get extended tracks
void setEvent(std::shared_ptr< const MuonCalibEvent_E > event)
set a new event (will call clear on the previous)
MuonCalibTruthCollection::TruthCscPtr TruthCscPtr
AuthorSegmentVecMap::const_iterator AuthorSegmentVecCit
AuthorIndices m_muonboyIndices
~EventHandler()
default destructor
void linkTracks(int referenceIndex)
link tracks to the reference track using the hits on the track
void split_along_barcode(const std::vector< T > &container, std::map< int, std::set< T > > &barcode_map)
Spltis the truth hit container into a map having the barcode of the particle as key.
const TrackVec & extendedTracks(int author) const
get extended tracks
MuonCalibExtendedRawHits::ExtendedTrkPtr ExtendedTrackPtr
std::string dumpRawHits() const
dump routines
MuonCalibTruthCollection::TruthRpcPtr TruthRpcPtr
int associateSegmentWithTrack(const MuonCalibExtendedSegment &segment, const MuonCalibExtendedTrack &track)
check whether segment and track share the same hits
std::shared_ptr< const MuonCalibEvent_E > m_event
void associateSegmentsWithTracks(SegmentVec &segments, TrackVec &tracks)
create association between tracks and segments
MuonCalibTruthCollection::TruthPtr TruthPtr
std::vector< ExtendedTrackPtr > TrackVec
MuonCalibExtendedRawHits m_extendedRawHits
std::string dumpTracks() const
AuthorSegmentVecMap m_extendedSegments
std::vector< ExtendedSegmentPtr > SegmentVec
void clear()
clear all buffers
std::map< int, SegmentVec > AuthorSegmentVecMap
Extension to the 'original' MuonCalib::MuonCalibEvent class.
Access to all raw hits with layer/station granularity.
std::shared_ptr< MuonCalibExtendedSegment > ExtendedSegPtr
std::shared_ptr< MuonCalibExtendedTrack > ExtendedTrkPtr
A segment plus everything one can dream of knowing about it.
A track plus everything one can dream of knowing about a track.
std::shared_ptr< const MuonCalibCscTruthHit > TruthCscPtr
typedef of set of MuonCalibCscTruthHit* s
std::shared_ptr< const MuonCalibTruth > TruthPtr
typedef of a set of MuonCalibTruth* s
std::shared_ptr< const MuonCalibTgcTruthHit > TruthTgcPtr
typedef of set of MuonCalibTgcTruthHit* s
std::shared_ptr< const MuonCalibRpcTruthHit > TruthRpcPtr
typedef of set of MuonCalibRpcTruthHit* s
std::shared_ptr< const MuonCalibMdtTruthHit > TruthMdtPtr
typedef of set of MuonCalibMdtTruthHit* s
CscCalcPed - algorithm that finds the Cathode Strip Chamber pedestals from an RDO.