ATLAS Offline Software
Loading...
Searching...
No Matches
MuonCalib::MuonCalibExtendedTrack Class Reference

A track plus everything one can dream of knowing about a track. More...

#include <MuonCalibExtendedTrack.h>

Inheritance diagram for MuonCalib::MuonCalibExtendedTrack:

Public Types

using CalibHitPtr = std::shared_ptr<const MuonCalibHit_E>
using CalibHolePtr = std::shared_ptr<MuonCalibHole_E>
using CalibSegPtr = std::shared_ptr<MuonCalibSegment>
using HitVector = std::vector<CalibHitPtr>
 typedef of a set of MuonCalib::MuonCalibHit_E s
using HoleVector = std::vector<CalibHolePtr>
 typedef of a set of MuonCalib::MuonCalibHole_E s
using SegmentVector = std::vector<CalibSegPtr>

Public Member Functions

 MuonCalibExtendedTrack (const MuonCalibTrack_E &track, int pdgCode=0, int barCode=0) ATLAS_CTORDTOR_NOT_THREAD_SAFE
 Constructor taking input track.
virtual ~MuonCalibExtendedTrack ()
int pdgCode () const
 returns trackparameter d0 at IP
int barCode () const
 returns barCode
const MuonCalibTrackSummarysummary () const
 access to hit counts
const StationIndexHitsMapmdtStationIndexHitsMap () const
 access to hits per station layer index (mdt)
const StationIndexHitsMaprpcStationIndexHitsMap () const
 access to hits per station layer index (rpc)
const StationIndexHitsMaptgcStationIndexHitsMap () const
 access to hits per station layer index (tgc)
const StationIndexHitsMapcscStationIndexHitsMap () const
 access to hits per station layer index (csc)
std::string dump () const
 dump all information to string
std::string dumpPars () const
 dump track parameters to string
std::string dumpSummary () const
 dump track summary to string
std::string dumpIntersects () const
 dump track intersects to string
const StationIntersectedLayerMapintersectedStationLayer () const
 access to the list of intersected station layers
const StationIndexSetintersectedLayersWithoutHits () const
 access station layers intersected by track without hits
const StationIndexSetintersectedRpcLayersWithoutHits () const
 access rpc chambers intersected by track without hits
const StationIndexSetintersectedTgcLayersWithoutHits () const
 access tgc chamber layers intersected by track without hits
const IdHitMapidHitMap () const
 access hit identifier map (hits give the MuonFixedId
const IdHitsMaphitsPerChamberMap () const
 hit information per station
const std::vector< std::shared_ptr< MuonCalibExtendedSegment > > & associatedSegments () const
 access to list of the segment that are associated to this track
void addSegment (MuonCalibExtendedSegment *seg)
 access to list of the tracks that are associated to this track *‍/ const std::vector<std::shared_ptr<MuonCalibExtendedTrack>>& associatedTracks() const { return m_associatedTracks; }
bool isAssociated (const MuonCalibExtendedSegment *segment) const
 add associated track
const MuonCalibRawHitAssociationMaprawHitAssociationMap () const
 check whether the given track is associated to this one (pointer based)
MuonCalibRawHitAssociationMaprawHitAssociationMap ()
MuonCalibExtendedTrackOverlap calculateHitOverlap (const MuonCalibExtendedTrack &track) const
 calculate hit overlap between two tracks
bool isIDConfirmed () const
 get associated track for the give author, returns zero if not found
const HitVectorhits () const
HitVectorhits ()
const HoleVectorholes () const
HoleVectorholes ()
const SegmentVectorsegmetnsOnTrack () const
SegmentVectorsegmetnsOnTrack ()
unsigned int nrHits () const
 returns number of MuonCalib::MuonCalibHit_E s on track
unsigned int nrHoles () const
 returns number of MuonCalib::MuonCalibHole_E s on track
virtual float d0 () const
 returns trackparameter d0
virtual float z0ip () const
 returns trackparameter z0 at IP
float x0 () const
 returns trackparameter x0
float y0 () const
 returns trackparameter y0
float z0 () const
 returns trackparameter z0
float phi () const
 returns trackparameter phi
float theta () const
 returns trackparameter theta
float qOverP () const
 returns trackparameter q/p
float p () const
 returns momentum
float pt () const
 returns pt
float errInvP () const
 returns the error**2 on trackparameter q/p
int author () const
 returns the author
float chi2 () const
 returns track chi2
int ndof () const
 returns the number of degrees of freedom
float cov00 () const
 returns the covariance matrix elements
float cov01 () const
 returns the covariance matrix elements
float cov02 () const
 returns the covariance matrix elements
float cov03 () const
 returns the covariance matrix elements
float cov04 () const
 returns the covariance matrix elements
float cov11 () const
 returns the covariance matrix elements
float cov12 () const
 returns the covariance matrix elements
float cov13 () const
 returns the covariance matrix elements
float cov14 () const
 returns the covariance matrix elements
float cov22 () const
 returns the covariance matrix elements
float cov23 () const
 returns the covariance matrix elements
float cov24 () const
 returns the covariance matrix elements
float cov33 () const
 returns the covariance matrix elements
float cov34 () const
 returns the covariance matrix elements
float cov44 () const
 returns the covariance matrix elements
void setX0 (float x0)
 sets trackparameter x0
void setY0 (float y0)
 sets trackparameter y0
void setZ0 (float z0)
 sets trackparameter z0
void setPhi (float phi)
 sets trackparameter phi
void setTheta (float theta)
 sets trackparameter theta
void setQOverP (float qOverP)
 sets trackparameter q/p
void setAuthor (int author)
 sets author
void setChi2 (float chi2)
 sets track chi2
void setNdof (int ndof)
 sets ndof
const Amg::Vector3Dposition () const
 position of perigee of track
const Amg::Vector3Ddirection () const
 direction of perigee of track
void setCov00 (float cov00)
 sets covariance matrix
void setCov01 (float cov01)
 sets covariance matrix
void setCov02 (float cov02)
 sets covariance matrix
void setCov03 (float cov03)
 sets covariance matrix
void setCov04 (float cov04)
 sets covariance matrix
void setCov11 (float cov11)
 sets covariance matrix
void setCov12 (float cov12)
 sets covariance matrix
void setCov13 (float cov13)
 sets covariance matrix
void setCov14 (float cov14)
 sets covariance matrix
void setCov22 (float cov22)
 sets covariance matrix
void setCov23 (float cov23)
 sets covariance matrix
void setCov24 (float cov24)
 sets covariance matrix
void setCov33 (float cov33)
 sets covariance matrix
void setCov34 (float cov34)
 sets covariance matrix
void setCov44 (float cov44)
 sets covariance matrix
void addHit (const CalibHitPtr &hit)
 Add a MuonCalib::MuonCalibHit_E to the track.
void addHole (const CalibHolePtr &hole)
 Add a MuonCalib::MuonCalibHole_E to the track.
void addSegmentOnTrack (const CalibSegPtr &s)

Static Public Attributes

static constexpr float dummy_chi2 {9999.}

Private Member Functions

void clear ()
 Add a Segment on Track.

Private Attributes

int m_pdgCode {0}
int m_barCode {0}
Amg::Vector3D m_pos {0., 0., 0.}
 position of perigee parameters
Amg::Vector3D m_dir {0., 0., 0.}
 direction of perigee parameters
MuonCalibTrackSummary m_summary {}
 track summary
StationIndexHitsMap m_mdtHitsPerStationIndex {}
 hit information per station layer index
StationIndexHitsMap m_rpcHitsPerStationIndex {}
StationIndexHitsMap m_tgcHitsPerStationIndex {}
StationIndexHitsMap m_cscHitsPerStationIndex {}
IdHitsMap m_hitsPerChamber {}
 hit information per station
IdHitMap m_hitIdMap {}
 hit information per station
StationIntersectedLayerMap m_intersectedLayers {}
 map with all station layers intersected by track
StationIndexSet m_intersectedLayersWithoutHits {}
 set with all station layers intersected by the track without hits
StationIndexSet m_intersectedRpcLayerWithoutHits {}
 set with all rpc chamber identifiers of layers intersected by the track without hits
StationIndexSet m_intersectedTgcLayerWithoutHits {}
 set with all tgc chamber identifiers of layers intersected by the track without hits
std::vector< std::shared_ptr< MuonCalibExtendedSegment > > m_associatedSegments
 list of segments associated with this track
std::vector< std::shared_ptr< MuonCalibExtendedTrack > > m_associatedTracks
 list of tracks associated with this track
MuonCalibRawHitAssociationMap m_rawHitAssociationMap
 raw hit association map
HitVector m_hits
 set of MuonCalib::MuonCalibHit_E s on track
HoleVector m_holes
 set of MuonCalib::MuonCalibHole_E s on track
SegmentVector m_segments_on_track
defineParams m_params {}

Detailed Description

A track plus everything one can dream of knowing about a track.

Definition at line 32 of file MuonCalibExtendedTrack.h.

Member Typedef Documentation

◆ CalibHitPtr

using MuonCalib::MuonCalibTrack_E::CalibHitPtr = std::shared_ptr<const MuonCalibHit_E>
inherited

Definition at line 26 of file MuonCalibTrack_E.h.

◆ CalibHolePtr

using MuonCalib::MuonCalibTrack_E::CalibHolePtr = std::shared_ptr<MuonCalibHole_E>
inherited

Definition at line 27 of file MuonCalibTrack_E.h.

◆ CalibSegPtr

using MuonCalib::MuonCalibTrack_E::CalibSegPtr = std::shared_ptr<MuonCalibSegment>
inherited

Definition at line 28 of file MuonCalibTrack_E.h.

◆ HitVector

using MuonCalib::MuonCalibTrack_E::HitVector = std::vector<CalibHitPtr>
inherited

typedef of a set of MuonCalib::MuonCalibHit_E s

Definition at line 29 of file MuonCalibTrack_E.h.

◆ HoleVector

using MuonCalib::MuonCalibTrack_E::HoleVector = std::vector<CalibHolePtr>
inherited

typedef of a set of MuonCalib::MuonCalibHole_E s

Definition at line 30 of file MuonCalibTrack_E.h.

◆ SegmentVector

Definition at line 31 of file MuonCalibTrack_E.h.

Constructor & Destructor Documentation

◆ MuonCalibExtendedTrack()

MuonCalib::MuonCalibExtendedTrack::MuonCalibExtendedTrack ( const MuonCalibTrack_E & track,
int pdgCode = 0,
int barCode = 0 )

Constructor taking input track.

Definition at line 24 of file MuonCalibExtendedTrack.cxx.

24 :
26 m_summary.isTrack = true;
27 MuonFixedIdManipulator idManip;
28
29 MuonCalibTrackSummary::ChamberHitSummary* currentChamberSummary = nullptr;
30
31 for (const MuonCalibTrack_E::CalibHitPtr& hit : track.hits()) {
32 int type = hit->type();
33 // count scatters
34 if (type > 10) {
35 ++m_summary.nscatters;
36 continue;
37 }
38
39 const MuonFixedId& id = hit->identify();
40 if (!id.isValid()) {
41 if (type == 3)
42 ++m_summary.npseudo;
43 else {
44 // these are the ID hits
45 if (hit->position().perp() < 200.) {
46 ++m_summary.npixel;
47 } else if (hit->position().perp() < 540.) {
48 ++m_summary.nsct;
49 } else if (hit->position().perp() < 1100.) {
50 if (std::abs(hit->position().z()) < 750.)
51 ++m_summary.ntrtBarrel;
52 else
53 ++m_summary.ntrtEndcap;
54 }
55 }
56 continue;
57 }
58
59 MuonFixedId chId = idManip.chamberIdentifier(id);
60
61 bool measuresPhi = idManip.measuresPhi(id);
62 bool isMdt = id.is_mdt();
63 bool isFirst = isMdt ? id.mdtMultilayer() == 1 : !measuresPhi;
64
65 // check whether first chamber or new chamber
66 if (!currentChamberSummary || currentChamberSummary->chId != chId) {
67 m_summary.chamberHitSummary.push_back(MuonCalibTrackSummary::ChamberHitSummary(chId));
68 currentChamberSummary = &m_summary.chamberHitSummary.back();
69 }
70
71 MuonCalibTrackSummary::ChamberHitSummary::Projection& proj =
72 isFirst ? currentChamberSummary->etaProjection() : currentChamberSummary->phiProjection();
73
74 MuonFixedIdManipulator::StationIndex stationIndex = idManip.stationLayerIndex(id);
75 MuonFixedId chamberId = idManip.chamberIdentifier(id);
76
77 if (type == 6) {
78 ++m_summary.nholes;
79 ++proj.nholes;
80 } else if (type == 4) {
81 ++m_summary.noutliers;
82 ++proj.noutliers;
83 } else if (type == 5) {
84 ++m_summary.noutliers;
85 ++proj.ndeltas;
86 } else {
87 IdHitMap::iterator hitPos = m_hitIdMap.find(id);
88 if (hitPos == m_hitIdMap.end()) m_hitIdMap[id] = hit;
89 m_hitsPerChamber[chamberId].emplace_back(hit);
90
91 ++proj.nhits;
92 // hits counts
93 ++m_summary.nhits;
94 if ((*hit).position().y() < 0.)
95 ++m_summary.nhitsLowerHemisphere;
96 else
97 ++m_summary.nhitsUpperHemisphere;
98
99 if (id.is_mdt()) {
100 ++m_summary.nmdtHits;
101 m_mdtHitsPerStationIndex[stationIndex].emplace_back(hit);
102 if (idManip.isEndcap(id)) {
103 if (id.eta() < 0.)
104 m_summary.hasEndcapA = true;
105 else
106 m_summary.hasEndcapC = true;
107 if (stationIndex == MuonFixedIdManipulator::EIA || stationIndex == MuonFixedIdManipulator::EIC ||
108 stationIndex == MuonFixedIdManipulator::EMA || stationIndex == MuonFixedIdManipulator::EMC)
109 m_summary.hasEndcapLayersWithTGC = true;
110 } else {
111 m_summary.hasBarrel = true;
112 if (stationIndex == MuonFixedIdManipulator::BM || stationIndex == MuonFixedIdManipulator::BO)
113 m_summary.hasBarrelLayersWithRPC = true;
114 }
115
116 m_summary.precisionStationLayers.insert(stationIndex);
117 if (currentChamberSummary->nMdtHitsMl1() > 0 && currentChamberSummary->nMdtHitsMl2() &&
118 currentChamberSummary->nhits() > 3) {
119 m_summary.goodPrecisionStationLayers.insert(stationIndex);
120 }
121 } else if (id.is_rpc()) {
122 if (id.rpcMeasuresPhi()) {
123 ++m_summary.nrpcPhiHits;
124 } else {
125 ++m_summary.nrpcEtaHits;
126 }
127 m_rpcHitsPerStationIndex[stationIndex].emplace_back(hit);
128 m_summary.hasBarrel = true;
129
130 MuonFixedIdManipulator::PhiStationIndex phiStationIndex = idManip.phiStationLayerIndex(id);
131 if (measuresPhi) m_summary.phiStationLayers.insert(phiStationIndex);
132 if (currentChamberSummary->netaHits() > 0 && currentChamberSummary->nphiHits() > 0) {
133 m_summary.phiEtaStationLayers.insert(phiStationIndex);
134 }
135 } else if (id.is_tgc()) {
136 if (id.tgcIsStrip())
137 ++m_summary.ntgcPhiHits;
138 else
139 ++m_summary.ntgcEtaHits;
140 m_tgcHitsPerStationIndex[stationIndex].emplace_back(hit);
141
142 if (id.eta() < 0.)
143 m_summary.hasEndcapA = true;
144 else
145 m_summary.hasEndcapC = true;
146 m_summary.hasEndcapLayersWithTGC = true;
147
148 MuonFixedIdManipulator::PhiStationIndex phiStationIndex = idManip.phiStationLayerIndex(id);
149 if (measuresPhi) m_summary.phiStationLayers.insert(phiStationIndex);
150 if (currentChamberSummary->netaHits() > 0 && currentChamberSummary->nphiHits() > 0) {
151 m_summary.phiEtaStationLayers.insert(phiStationIndex);
152 }
153 } else if (id.is_csc()) {
154 if (id.cscMeasuresPhi())
155 ++m_summary.ncscPhiHits;
156 else
157 ++m_summary.ncscEtaHits;
158 m_cscHitsPerStationIndex[stationIndex].emplace_back(hit);
159 if (id.eta() < 0.)
160 m_summary.hasEndcapA = true;
161 else
162 m_summary.hasEndcapC = true;
163
164 MuonFixedIdManipulator::PhiStationIndex phiStationIndex = idManip.phiStationLayerIndex(id);
165 if (measuresPhi) { m_summary.phiStationLayers.insert(phiStationIndex); }
166 m_summary.precisionStationLayers.insert(stationIndex);
167 if (currentChamberSummary->netaHits() > 2 && currentChamberSummary->nphiHits() > 2) {
168 m_summary.goodPrecisionStationLayers.insert(stationIndex);
169 m_summary.phiEtaStationLayers.insert(phiStationIndex);
170 }
171 }
172 }
173 }
174
175 const StationIndexHitsMap& mdtStHitMap = mdtStationIndexHitsMap();
176 const StationIndexHitsMap& rpcStHitMap = rpcStationIndexHitsMap();
177 const StationIndexHitsMap& tgcStHitMap = tgcStationIndexHitsMap();
178 const StationIndexHitsMap& cscStHitMap = cscStationIndexHitsMap();
179
180 MuonCalibSimpleHoleSearch holeSearch;
181 double tolerance = 100.;
182 MuonCalibSimpleHoleSearch::ResultVec intersectedLayers = holeSearch.intersectsWithGeometry(position(), direction(), tolerance);
183 MuonCalibSimpleHoleSearch::ResultIt rit = intersectedLayers.begin();
184 MuonCalibSimpleHoleSearch::ResultIt rit_end = intersectedLayers.end();
185 for (; rit != rit_end; ++rit) {
186 m_intersectedLayers[rit->stationLayerId] = *rit;
187 const MuonFixedId& stId = rit->stationLayerId;
188 MuonFixedIdManipulator::StationIndex stIndex = idManip.stationLayerIndex(stId);
189 bool isEndcap = idManip.isEndcap(stId);
190
191 StationIndexHitsMap::const_iterator mdtIt = mdtStHitMap.find(stIndex);
192 unsigned int nmdtHits = mdtIt != mdtStHitMap.end() ? mdtIt->second.size() : 0;
193
194 StationIndexHitsMap::const_iterator rpcIt = rpcStHitMap.find(stIndex);
195 unsigned int nrpcHits = rpcIt != rpcStHitMap.end() ? rpcIt->second.size() : 0;
196
197 StationIndexHitsMap::const_iterator tgcIt = tgcStHitMap.find(stIndex);
198 unsigned int ntgcHits = tgcIt != tgcStHitMap.end() ? tgcIt->second.size() : 0;
199
200 StationIndexHitsMap::const_iterator cscIt = cscStHitMap.find(stIndex);
201 unsigned int ncscHits = cscIt != cscStHitMap.end() ? cscIt->second.size() : 0;
202
203 // flag intersected layers without any hits
204 unsigned int ntrig = isEndcap ? ntgcHits : nrpcHits;
205 unsigned int nprec = nmdtHits + ncscHits;
206 if (nprec + ntrig == 0) m_intersectedLayersWithoutHits.insert(stIndex);
207
208 // flag layers where we would expect RPC hits but they are not on the track
209 if (!isEndcap && stIndex != MuonFixedIdManipulator::BI && stIndex != MuonFixedIdManipulator::BE && nrpcHits == 0)
210 m_intersectedRpcLayerWithoutHits.insert(stIndex);
211
212 // flag layers where we would expect TGC hits but they are not on the track
213 if (isEndcap && stIndex != MuonFixedIdManipulator::EIA && stIndex != MuonFixedIdManipulator::EIC && ntgcHits == 0)
214 m_intersectedTgcLayerWithoutHits.insert(stIndex);
215 }
216 }
Scalar eta() const
pseudorapidity method
bool isValid(const T &p)
Av: we implement here an ATLAS-sepcific convention: all particles which are 99xxxxx are fine.
Definition AtlasPID.h:878
int pdgCode() const
returns trackparameter d0 at IP
StationIndexHitsMap m_mdtHitsPerStationIndex
hit information per station layer index
IdHitMap m_hitIdMap
hit information per station
MuonCalibTrackSummary m_summary
track summary
IdHitsMap m_hitsPerChamber
hit information per station
const StationIndexHitsMap & tgcStationIndexHitsMap() const
access to hits per station layer index (tgc)
const StationIndexHitsMap & cscStationIndexHitsMap() const
access to hits per station layer index (csc)
StationIntersectedLayerMap m_intersectedLayers
map with all station layers intersected by track
StationIndexSet m_intersectedTgcLayerWithoutHits
set with all tgc chamber identifiers of layers intersected by the track without hits
const StationIndexHitsMap & mdtStationIndexHitsMap() const
access to hits per station layer index (mdt)
const StationIndexHitsMap & rpcStationIndexHitsMap() const
access to hits per station layer index (rpc)
StationIndexSet m_intersectedRpcLayerWithoutHits
set with all rpc chamber identifiers of layers intersected by the track without hits
StationIndexSet m_intersectedLayersWithoutHits
set with all station layers intersected by the track without hits
const Amg::Vector3D & position() const
position of perigee of track
MuonCalibTrack_E()=default
default constructor
std::shared_ptr< const MuonCalibHit_E > CalibHitPtr
const Amg::Vector3D & direction() const
direction of perigee of track
StationIndex
enum defining station layers
PhiStationIndex
enum defining trigger phi layers
std::map< MuonFixedIdManipulator::StationIndex, std::vector< CalibHitE_Ptr > > StationIndexHitsMap
constexpr double tolerance

◆ ~MuonCalibExtendedTrack()

MuonCalib::MuonCalibExtendedTrack::~MuonCalibExtendedTrack ( )
virtualdefault

Member Function Documentation

◆ addHit()

void MuonCalib::MuonCalibTrack_E::addHit ( const CalibHitPtr & hit)
inherited

Add a MuonCalib::MuonCalibHit_E to the track.

Definition at line 63 of file MuonCalibTrack_E.cxx.

63 {
64 if (hit) m_hits.emplace_back(hit);
65 }
HitVector m_hits
set of MuonCalib::MuonCalibHit_E s on track

◆ addHole()

void MuonCalib::MuonCalibTrack_E::addHole ( const CalibHolePtr & hole)
inherited

Add a MuonCalib::MuonCalibHole_E to the track.

Definition at line 67 of file MuonCalibTrack_E.cxx.

67 {
68 if (hole) m_holes.emplace_back(hole);
69 }
HoleVector m_holes
set of MuonCalib::MuonCalibHole_E s on track

◆ addSegment()

void MuonCalib::MuonCalibExtendedTrack::addSegment ( MuonCalibExtendedSegment * seg)

access to list of the tracks that are associated to this track *‍/ const std::vector<std::shared_ptr<MuonCalibExtendedTrack>>& associatedTracks() const { return m_associatedTracks; }

    /** add associated segment 

Definition at line 22 of file MuonCalibExtendedTrack.cxx.

22{ m_associatedSegments.emplace_back(seg); }
std::vector< std::shared_ptr< MuonCalibExtendedSegment > > m_associatedSegments
list of segments associated with this track

◆ addSegmentOnTrack()

void MuonCalib::MuonCalibTrack_E::addSegmentOnTrack ( const CalibSegPtr & s)
inherited

Definition at line 30 of file MuonCalibTrack_E.cxx.

30{ m_segments_on_track.emplace_back(s); }

◆ associatedSegments()

const std::vector< std::shared_ptr< MuonCalibExtendedSegment > > & MuonCalib::MuonCalibExtendedTrack::associatedSegments ( ) const

access to list of the segment that are associated to this track

Definition at line 18 of file MuonCalibExtendedTrack.cxx.

18 {
20 }

◆ author()

int MuonCalib::MuonCalibTrack_E::author ( ) const
inherited

returns the author

Definition at line 47 of file MuonCalibTrack_E.cxx.

47{ return m_params.author; }

◆ barCode()

int MuonCalib::MuonCalibExtendedTrack::barCode ( ) const

returns barCode

Definition at line 446 of file MuonCalibExtendedTrack.cxx.

446{ return m_barCode; }

◆ calculateHitOverlap()

MuonCalibExtendedTrackOverlap MuonCalib::MuonCalibExtendedTrack::calculateHitOverlap ( const MuonCalibExtendedTrack & track) const

calculate hit overlap between two tracks

Why is it important to be 2 mm apart from the wire in order to swap sign?

The current hit is not part of the overlap

Definition at line 292 of file MuonCalibExtendedTrack.cxx.

292 {
293 const IdHitsMap& chHitMap = track.hitsPerChamberMap();
294 MuonFixedIdManipulator manip;
295
296 MuonCalibExtendedTrackOverlap overlap;
297
298 std::set<MuonFixedId> sharedChambers;
299
300 // loop over stations and check whether they are also present in other list
301 for (const auto& rit : m_hitsPerChamber) {
302 IdHitsMap::const_iterator pos = chHitMap.find(rit.first);
303 if (pos != chHitMap.end()) {
304 // shared chamber add to list
305 sharedChambers.insert(rit.first);
306
307 std::set<MuonFixedId> foundIds, sharedEtaLayers, sharedPhiLayers, firstEtaLayers, firstPhiLayers, secondEtaLayers,
308 secondPhiLayers;
309 for (const CalibHitE_Ptr& calib_hit : rit.second) {
310 const MuonFixedId& id = calib_hit->identify();
311 bool measuresPhi = manip.measuresPhi(id);
312 MuonFixedId layerId = manip.moduleIdentifier(id, true);
313
314 MuonCalibTrack_E::HitVector::const_iterator hit =
315 std::find_if(pos->second.begin(), pos->second.end(),
316 [&id](const MuonCalibTrack_E::CalibHitPtr& hit) { return id == hit->identify(); });
317 if (hit != pos->second.end()) {
318 const MuonCalibTrack_E::CalibHitPtr test_hit = (*hit);
319 foundIds.insert(id);
320
321 if (id.is_mdt()) {
323 if (!(std::abs(calib_hit->driftRadius()) > 2. && std::abs(test_hit->driftRadius()) > 2. &&
324 calib_hit->driftRadius() * test_hit->driftRadius() < 0.))
325 sharedEtaLayers.insert(id);
326 } else {
327 if (measuresPhi)
328 sharedPhiLayers.insert(layerId);
329 else
330 sharedEtaLayers.insert(layerId);
331 }
332 } else {
333 if (!id.is_mdt() && foundIds.count(layerId)) continue;
334 if (measuresPhi)
335 firstPhiLayers.insert(layerId);
336 else
337 firstEtaLayers.insert(layerId);
338 }
339 }
340
341 for (const MuonCalibTrack_E::CalibHitPtr& it2 : pos->second) {
342 MuonFixedId id = it2->identify().is_mdt() ? it2->identify() : manip.moduleIdentifier(it2->identify(), true);
343 if (!foundIds.count(id)) {
344 bool measuresPhi = manip.measuresPhi(id);
345 if (measuresPhi)
346 secondPhiLayers.insert(id);
347 else
348 secondEtaLayers.insert(id);
349 }
350 }
351 MuonCalib::MuonCalibExtendedTrackOverlap::TechnologyOverlap *phi_or{nullptr}, *eta_or{nullptr};
352 if (rit.first.is_mdt()) {
353 eta_or = &overlap.mdt;
354 } else if (rit.first.is_rpc()) {
355 phi_or = &overlap.rpcPhi;
356 eta_or = &overlap.rpcEta;
357 } else if (rit.first.is_tgc()) {
358 phi_or = &overlap.tgcPhi;
359 eta_or = &overlap.tgcEta;
360 } else if (rit.first.is_csc()) {
361 phi_or = &overlap.cscPhi;
362 eta_or = &overlap.cscEta;
363 }
364 if (eta_or) {
365 (*eta_or).shared += sharedEtaLayers.size();
366 ;
367 (*eta_or).first += firstEtaLayers.size();
368 (*eta_or).second += secondEtaLayers.size();
369 }
370 if (phi_or) {
371 (*phi_or).shared += sharedPhiLayers.size();
372 (*phi_or).first += firstPhiLayers.size();
373 (*phi_or).second += secondPhiLayers.size();
374 }
375 }
377 else {
378 std::set<MuonFixedId> foundIds;
379 for (const MuonCalibTrack_E::CalibHitPtr& it1 : rit.second) {
380 if (rit.first.is_mdt()) {
381 ++overlap.mdt.first;
382 } else {
383 MuonFixedId id = manip.moduleIdentifier(it1->identify(), true);
384 if (foundIds.count(id)) continue;
385 foundIds.insert(id);
386 bool measuresPhi = manip.measuresPhi(it1->identify());
387
388 if (rit.first.is_rpc()) {
389 if (!measuresPhi)
390 ++overlap.rpcEta.first;
391 else
392 ++overlap.rpcPhi.first;
393 } else if (rit.first.is_tgc()) {
394 if (!measuresPhi)
395 ++overlap.tgcEta.first;
396 else
397 ++overlap.tgcPhi.first;
398 } else if (rit.first.is_csc()) {
399 if (!measuresPhi)
400 ++overlap.cscEta.first;
401 else
402 ++overlap.cscPhi.first;
403 }
404 }
405 }
406 }
407 }
408
409 // loop over stations and check whether they are also present in other list
410 for (const auto& rit : chHitMap) {
411 // skip already handled chambers
412 if (sharedChambers.count(rit.first)) continue;
413 std::set<MuonFixedId> foundIds;
414 for (const MuonCalibTrack_E::CalibHitPtr& it1 : rit.second) {
415 if (rit.first.is_mdt()) {
416 ++overlap.mdt.second;
417 } else {
418 MuonFixedId id = manip.moduleIdentifier(it1->identify(), true);
419 if (foundIds.count(id)) continue;
420 foundIds.insert(id);
421 bool measuresPhi = manip.measuresPhi(it1->identify());
422 if (rit.first.is_rpc()) {
423 if (!measuresPhi)
424 ++overlap.rpcEta.second;
425 else
426 ++overlap.rpcPhi.second;
427 } else if (rit.first.is_tgc()) {
428 if (!measuresPhi)
429 ++overlap.tgcEta.second;
430 else
431 ++overlap.tgcPhi.second;
432 } else if (rit.first.is_csc()) {
433 if (!measuresPhi)
434 ++overlap.cscEta.second;
435 else
436 ++overlap.cscPhi.second;
437 }
438 }
439 }
440 }
441 return overlap;
442 }
std::shared_ptr< const MuonCalibHit_E > CalibHitE_Ptr
hit information per station layer index
std::map< MuonFixedId, std::vector< CalibHitE_Ptr > > IdHitsMap
hit information per station

◆ chi2()

float MuonCalib::MuonCalibTrack_E::chi2 ( ) const
inherited

returns track chi2

Definition at line 48 of file MuonCalibTrack_E.cxx.

48{ return m_params.chi2; }

◆ clear()

void MuonCalib::MuonCalibTrack_E::clear ( )
privateinherited

Add a Segment on Track.

frees memory of current object

◆ cov00()

float MuonCalib::MuonCalibTrack_E::cov00 ( ) const
inlineinherited

returns the covariance matrix elements

Definition at line 85 of file MuonCalibTrack_E.h.

◆ cov01()

float MuonCalib::MuonCalibTrack_E::cov01 ( ) const
inlineinherited

returns the covariance matrix elements

Definition at line 86 of file MuonCalibTrack_E.h.

◆ cov02()

float MuonCalib::MuonCalibTrack_E::cov02 ( ) const
inlineinherited

returns the covariance matrix elements

Definition at line 87 of file MuonCalibTrack_E.h.

◆ cov03()

float MuonCalib::MuonCalibTrack_E::cov03 ( ) const
inlineinherited

returns the covariance matrix elements

Definition at line 88 of file MuonCalibTrack_E.h.

◆ cov04()

float MuonCalib::MuonCalibTrack_E::cov04 ( ) const
inlineinherited

returns the covariance matrix elements

Definition at line 89 of file MuonCalibTrack_E.h.

◆ cov11()

float MuonCalib::MuonCalibTrack_E::cov11 ( ) const
inlineinherited

returns the covariance matrix elements

Definition at line 90 of file MuonCalibTrack_E.h.

◆ cov12()

float MuonCalib::MuonCalibTrack_E::cov12 ( ) const
inlineinherited

returns the covariance matrix elements

Definition at line 91 of file MuonCalibTrack_E.h.

◆ cov13()

float MuonCalib::MuonCalibTrack_E::cov13 ( ) const
inlineinherited

returns the covariance matrix elements

Definition at line 92 of file MuonCalibTrack_E.h.

◆ cov14()

float MuonCalib::MuonCalibTrack_E::cov14 ( ) const
inlineinherited

returns the covariance matrix elements

Definition at line 93 of file MuonCalibTrack_E.h.

◆ cov22()

float MuonCalib::MuonCalibTrack_E::cov22 ( ) const
inlineinherited

returns the covariance matrix elements

Definition at line 94 of file MuonCalibTrack_E.h.

◆ cov23()

float MuonCalib::MuonCalibTrack_E::cov23 ( ) const
inlineinherited

returns the covariance matrix elements

Definition at line 95 of file MuonCalibTrack_E.h.

◆ cov24()

float MuonCalib::MuonCalibTrack_E::cov24 ( ) const
inlineinherited

returns the covariance matrix elements

Definition at line 96 of file MuonCalibTrack_E.h.

◆ cov33()

float MuonCalib::MuonCalibTrack_E::cov33 ( ) const
inlineinherited

returns the covariance matrix elements

Definition at line 97 of file MuonCalibTrack_E.h.

◆ cov34()

float MuonCalib::MuonCalibTrack_E::cov34 ( ) const
inlineinherited

returns the covariance matrix elements

Definition at line 98 of file MuonCalibTrack_E.h.

◆ cov44()

float MuonCalib::MuonCalibTrack_E::cov44 ( ) const
inlineinherited

returns the covariance matrix elements

Definition at line 99 of file MuonCalibTrack_E.h.

◆ cscStationIndexHitsMap()

const StationIndexHitsMap & MuonCalib::MuonCalibExtendedTrack::cscStationIndexHitsMap ( ) const
inline

access to hits per station layer index (csc)

Definition at line 66 of file MuonCalibExtendedTrack.h.

◆ d0()

float MuonCalib::MuonCalibTrack_E::d0 ( ) const
virtualinherited

returns trackparameter d0

Definition at line 77 of file MuonCalibTrack_E.cxx.

77{ return -x0() * std::sin(phi()) + y0() * std::cos(phi()); }
float phi() const
returns trackparameter phi
float y0() const
returns trackparameter y0
float x0() const
returns trackparameter x0

◆ direction()

const Amg::Vector3D & MuonCalib::MuonCalibTrack_E::direction ( ) const
inherited

direction of perigee of track

Definition at line 33 of file MuonCalibTrack_E.cxx.

33{ return m_dir; }

◆ dump()

std::string MuonCalib::MuonCalibExtendedTrack::dump ( ) const

dump all information to string

Definition at line 218 of file MuonCalibExtendedTrack.cxx.

218 {
219 std::ostringstream sout;
220 sout << dumpPars() << std::endl << dumpSummary() << dumpIntersects() << std::endl;
221 return sout.str();
222 }
std::string dumpIntersects() const
dump track intersects to string
std::string dumpPars() const
dump track parameters to string
std::string dumpSummary() const
dump track summary to string

◆ dumpIntersects()

std::string MuonCalib::MuonCalibExtendedTrack::dumpIntersects ( ) const

dump track intersects to string

Definition at line 240 of file MuonCalibExtendedTrack.cxx.

240 {
241 MuonFixedIdPrinter printer{};
242 MuonFixedIdManipulator idManip;
243
244 const StationIndexHitsMap& mdtStHitMap = mdtStationIndexHitsMap();
245 const StationIndexHitsMap& rpcStHitMap = rpcStationIndexHitsMap();
246 const StationIndexHitsMap& tgcStHitMap = tgcStationIndexHitsMap();
247 const StationIndexHitsMap& cscStHitMap = cscStationIndexHitsMap();
248
249 std::ostringstream sout;
250 sout << " Intersected layers: " << m_intersectedLayers.size() << " without: any hits " << m_intersectedLayersWithoutHits.size()
251 << " rpc hits " << m_intersectedRpcLayerWithoutHits.size() << " tgc hits " << m_intersectedTgcLayerWithoutHits.size()
252 << std::endl;
253 unsigned int nentries = m_intersectedLayers.size();
254 unsigned int currentEntry = 0;
255 StationIntersectedLayerMap::const_iterator it = m_intersectedLayers.begin();
256 StationIntersectedLayerMap::const_iterator it_end = m_intersectedLayers.end();
257 sout.setf(std::ios::left);
258 for (; it != it_end; ++it) {
259 const MuonFixedId& stId = it->first;
260 MuonFixedIdManipulator::StationIndex stIndex = idManip.stationLayerIndex(stId);
261 bool isEndcap = idManip.isEndcap(stId);
262
263 StationIndexHitsMap::const_iterator mdtIt = mdtStHitMap.find(stIndex);
264 unsigned int nmdtHits = mdtIt != mdtStHitMap.end() ? mdtIt->second.size() : 0;
265
266 StationIndexHitsMap::const_iterator rpcIt = rpcStHitMap.find(stIndex);
267 unsigned int nrpcHits = rpcIt != rpcStHitMap.end() ? rpcIt->second.size() : 0;
268
269 StationIndexHitsMap::const_iterator tgcIt = tgcStHitMap.find(stIndex);
270 unsigned int ntgcHits = tgcIt != tgcStHitMap.end() ? tgcIt->second.size() : 0;
271
272 StationIndexHitsMap::const_iterator cscIt = cscStHitMap.find(stIndex);
273 unsigned int ncscHits = cscIt != cscStHitMap.end() ? cscIt->second.size() : 0;
274
275 unsigned int ntrig = isEndcap ? ntgcHits : nrpcHits;
276 unsigned int nprec = nmdtHits + ncscHits;
277
278 sout << " " << std::setw(5) << printer.stationLayerIdentifier(stId);
279 if (nprec + ntrig != 0)
280 sout << " presicion hits " << std::setw(3) << nprec << " trigger hits " << std::setw(3) << ntrig;
281 else
282 sout << std::setw(36) << " no hits in layer";
283 sout << " intersect position " << it->second.intersectPosition;
284
285 // increase count before check to allow equals check
286 ++currentEntry;
287 if (currentEntry != nentries) sout << std::endl;
288 }
289 return sout.str();
290 }

◆ dumpPars()

std::string MuonCalib::MuonCalibExtendedTrack::dumpPars ( ) const

dump track parameters to string

Definition at line 224 of file MuonCalibExtendedTrack.cxx.

224 {
225 std::ostringstream sout;
226 double sign = qOverP() < 0. ? -1 : 1;
227 sout << "Author " << std::setw(4) << author() << std::setprecision(4) << " chi2 " << chi2() << " ndof " << ndof() << " r "
228 << (int)position().perp() << " z " << (int)z0() << std::setprecision(5) << " phi " << phi() << " theta " << theta()
229 << std::setw(6) << " q*mom " << (int)p() * sign << " pt " << std::setw(5) << (int)pt() << " association: segments "
230 << m_associatedSegments.size() << " tracks " << m_associatedTracks.size();
231 return sout.str();
232 }
int sign(int a)
std::vector< std::shared_ptr< MuonCalibExtendedTrack > > m_associatedTracks
list of tracks associated with this track
int author() const
returns the author
int ndof() const
returns the number of degrees of freedom
float pt() const
returns pt
float theta() const
returns trackparameter theta
float qOverP() const
returns trackparameter q/p
float z0() const
returns trackparameter z0
float p() const
returns momentum
float chi2() const
returns track chi2

◆ dumpSummary()

std::string MuonCalib::MuonCalibExtendedTrack::dumpSummary ( ) const

dump track summary to string

Definition at line 234 of file MuonCalibExtendedTrack.cxx.

234 {
235 std::ostringstream sout;
236 sout << " " << m_summary.dump();
237 return sout.str();
238 }

◆ errInvP()

float MuonCalib::MuonCalibTrack_E::errInvP ( ) const
inherited

returns the error**2 on trackparameter q/p

Definition at line 46 of file MuonCalibTrack_E.cxx.

46{ return m_params.cov(4, 4); }

◆ hits() [1/2]

MuonCalibTrack_E::HitVector & MuonCalib::MuonCalibTrack_E::hits ( )
inherited

Definition at line 22 of file MuonCalibTrack_E.cxx.

22{ return m_hits; }

◆ hits() [2/2]

const MuonCalibTrack_E::HitVector & MuonCalib::MuonCalibTrack_E::hits ( ) const
inherited

Definition at line 21 of file MuonCalibTrack_E.cxx.

21{ return m_hits; }

◆ hitsPerChamberMap()

const IdHitsMap & MuonCalib::MuonCalibExtendedTrack::hitsPerChamberMap ( ) const
inline

hit information per station

Definition at line 96 of file MuonCalibExtendedTrack.h.

96{ return m_hitsPerChamber; }

◆ holes() [1/2]

MuonCalibTrack_E::HoleVector & MuonCalib::MuonCalibTrack_E::holes ( )
inherited

Definition at line 25 of file MuonCalibTrack_E.cxx.

25{ return m_holes; }

◆ holes() [2/2]

const MuonCalibTrack_E::HoleVector & MuonCalib::MuonCalibTrack_E::holes ( ) const
inherited

Definition at line 24 of file MuonCalibTrack_E.cxx.

24{ return m_holes; }

◆ idHitMap()

const IdHitMap & MuonCalib::MuonCalibExtendedTrack::idHitMap ( ) const
inline

access hit identifier map (hits give the MuonFixedId

Definition at line 93 of file MuonCalibExtendedTrack.h.

93{ return m_hitIdMap; }

◆ intersectedLayersWithoutHits()

const StationIndexSet & MuonCalib::MuonCalibExtendedTrack::intersectedLayersWithoutHits ( ) const
inline

access station layers intersected by track without hits

Definition at line 84 of file MuonCalibExtendedTrack.h.

◆ intersectedRpcLayersWithoutHits()

const StationIndexSet & MuonCalib::MuonCalibExtendedTrack::intersectedRpcLayersWithoutHits ( ) const
inline

access rpc chambers intersected by track without hits

Definition at line 87 of file MuonCalibExtendedTrack.h.

◆ intersectedStationLayer()

const StationIntersectedLayerMap & MuonCalib::MuonCalibExtendedTrack::intersectedStationLayer ( ) const

access to the list of intersected station layers

◆ intersectedTgcLayersWithoutHits()

const StationIndexSet & MuonCalib::MuonCalibExtendedTrack::intersectedTgcLayersWithoutHits ( ) const
inline

access tgc chamber layers intersected by track without hits

Definition at line 90 of file MuonCalibExtendedTrack.h.

◆ isAssociated()

bool MuonCalib::MuonCalibExtendedTrack::isAssociated ( const MuonCalibExtendedSegment * segment) const

add associated track

check whether the given segment is associated to this one (pointer based)

◆ isIDConfirmed()

bool MuonCalib::MuonCalibExtendedTrack::isIDConfirmed ( ) const

get associated track for the give author, returns zero if not found

Documentation needed.

check whether the track is confirmed by an ID track

Definition at line 449 of file MuonCalibExtendedTrack.cxx.

449 {
450 return false;
451 }

◆ mdtStationIndexHitsMap()

const StationIndexHitsMap & MuonCalib::MuonCalibExtendedTrack::mdtStationIndexHitsMap ( ) const
inline

access to hits per station layer index (mdt)

Definition at line 57 of file MuonCalibExtendedTrack.h.

◆ ndof()

int MuonCalib::MuonCalibTrack_E::ndof ( ) const
inherited

returns the number of degrees of freedom

Definition at line 49 of file MuonCalibTrack_E.cxx.

49{ return m_params.ndof; }

◆ nrHits()

unsigned int MuonCalib::MuonCalibTrack_E::nrHits ( ) const
inlineinherited

returns number of MuonCalib::MuonCalibHit_E s on track

Definition at line 67 of file MuonCalibTrack_E.h.

◆ nrHoles()

unsigned int MuonCalib::MuonCalibTrack_E::nrHoles ( ) const
inlineinherited

returns number of MuonCalib::MuonCalibHole_E s on track

Definition at line 68 of file MuonCalibTrack_E.h.

◆ p()

float MuonCalib::MuonCalibTrack_E::p ( ) const
inherited

returns momentum

Definition at line 44 of file MuonCalibTrack_E.cxx.

44{ return 1. / std::max(qOverP_cutOff, std::abs(qOverP())); }

◆ pdgCode()

int MuonCalib::MuonCalibExtendedTrack::pdgCode ( ) const

returns trackparameter d0 at IP

returns trackparameter z0 at IP returns momentum at IP returns pdgCode

Definition at line 444 of file MuonCalibExtendedTrack.cxx.

444{ return m_pdgCode; }

◆ phi()

float MuonCalib::MuonCalibTrack_E::phi ( ) const
inherited

returns trackparameter phi

Definition at line 41 of file MuonCalibTrack_E.cxx.

41{ return m_params.phi; }

◆ position()

const Amg::Vector3D & MuonCalib::MuonCalibTrack_E::position ( ) const
inherited

position of perigee of track

Definition at line 32 of file MuonCalibTrack_E.cxx.

32{ return m_pos; }

◆ pt()

float MuonCalib::MuonCalibTrack_E::pt ( ) const
inherited

returns pt

Definition at line 45 of file MuonCalibTrack_E.cxx.

45{ return std::sin(theta()) * p(); }

◆ qOverP()

float MuonCalib::MuonCalibTrack_E::qOverP ( ) const
inherited

returns trackparameter q/p

Definition at line 43 of file MuonCalibTrack_E.cxx.

43{ return m_params.qOverP; }

◆ rawHitAssociationMap() [1/2]

MuonCalibRawHitAssociationMap & MuonCalib::MuonCalibExtendedTrack::rawHitAssociationMap ( )
inline

Definition at line 116 of file MuonCalibExtendedTrack.h.

116{ return m_rawHitAssociationMap; }
MuonCalibRawHitAssociationMap m_rawHitAssociationMap
raw hit association map

◆ rawHitAssociationMap() [2/2]

const MuonCalibRawHitAssociationMap & MuonCalib::MuonCalibExtendedTrack::rawHitAssociationMap ( ) const
inline

check whether the given track is associated to this one (pointer based)

access raw hit assocation map

Definition at line 115 of file MuonCalibExtendedTrack.h.

115{ return m_rawHitAssociationMap; }

◆ rpcStationIndexHitsMap()

const StationIndexHitsMap & MuonCalib::MuonCalibExtendedTrack::rpcStationIndexHitsMap ( ) const
inline

access to hits per station layer index (rpc)

Definition at line 60 of file MuonCalibExtendedTrack.h.

◆ segmetnsOnTrack() [1/2]

MuonCalibTrack_E::SegmentVector & MuonCalib::MuonCalibTrack_E::segmetnsOnTrack ( )
inherited

Definition at line 28 of file MuonCalibTrack_E.cxx.

28{ return m_segments_on_track; }

◆ segmetnsOnTrack() [2/2]

const MuonCalibTrack_E::SegmentVector & MuonCalib::MuonCalibTrack_E::segmetnsOnTrack ( ) const
inherited

Definition at line 27 of file MuonCalibTrack_E.cxx.

27{ return m_segments_on_track; }

◆ setAuthor()

void MuonCalib::MuonCalibTrack_E::setAuthor ( int author)
inherited

sets author

Definition at line 57 of file MuonCalibTrack_E.cxx.

57{ m_params.author = author; }

◆ setChi2()

void MuonCalib::MuonCalibTrack_E::setChi2 ( float chi2)
inherited

sets track chi2

Definition at line 35 of file MuonCalibTrack_E.cxx.

35{ m_params.chi2 = chi2; }

◆ setCov00()

void MuonCalib::MuonCalibTrack_E::setCov00 ( float cov00)
inlineinherited

sets covariance matrix

Definition at line 117 of file MuonCalibTrack_E.h.

◆ setCov01()

void MuonCalib::MuonCalibTrack_E::setCov01 ( float cov01)
inlineinherited

sets covariance matrix

Definition at line 118 of file MuonCalibTrack_E.h.

◆ setCov02()

void MuonCalib::MuonCalibTrack_E::setCov02 ( float cov02)
inlineinherited

sets covariance matrix

Definition at line 119 of file MuonCalibTrack_E.h.

◆ setCov03()

void MuonCalib::MuonCalibTrack_E::setCov03 ( float cov03)
inlineinherited

sets covariance matrix

Definition at line 120 of file MuonCalibTrack_E.h.

◆ setCov04()

void MuonCalib::MuonCalibTrack_E::setCov04 ( float cov04)
inlineinherited

sets covariance matrix

Definition at line 121 of file MuonCalibTrack_E.h.

◆ setCov11()

void MuonCalib::MuonCalibTrack_E::setCov11 ( float cov11)
inlineinherited

sets covariance matrix

Definition at line 122 of file MuonCalibTrack_E.h.

◆ setCov12()

void MuonCalib::MuonCalibTrack_E::setCov12 ( float cov12)
inlineinherited

sets covariance matrix

Definition at line 123 of file MuonCalibTrack_E.h.

◆ setCov13()

void MuonCalib::MuonCalibTrack_E::setCov13 ( float cov13)
inlineinherited

sets covariance matrix

Definition at line 124 of file MuonCalibTrack_E.h.

◆ setCov14()

void MuonCalib::MuonCalibTrack_E::setCov14 ( float cov14)
inlineinherited

sets covariance matrix

Definition at line 125 of file MuonCalibTrack_E.h.

◆ setCov22()

void MuonCalib::MuonCalibTrack_E::setCov22 ( float cov22)
inlineinherited

sets covariance matrix

Definition at line 126 of file MuonCalibTrack_E.h.

◆ setCov23()

void MuonCalib::MuonCalibTrack_E::setCov23 ( float cov23)
inlineinherited

sets covariance matrix

Definition at line 127 of file MuonCalibTrack_E.h.

◆ setCov24()

void MuonCalib::MuonCalibTrack_E::setCov24 ( float cov24)
inlineinherited

sets covariance matrix

Definition at line 128 of file MuonCalibTrack_E.h.

◆ setCov33()

void MuonCalib::MuonCalibTrack_E::setCov33 ( float cov33)
inlineinherited

sets covariance matrix

Definition at line 129 of file MuonCalibTrack_E.h.

◆ setCov34()

void MuonCalib::MuonCalibTrack_E::setCov34 ( float cov34)
inlineinherited

sets covariance matrix

Definition at line 130 of file MuonCalibTrack_E.h.

◆ setCov44()

void MuonCalib::MuonCalibTrack_E::setCov44 ( float cov44)
inlineinherited

sets covariance matrix

Definition at line 131 of file MuonCalibTrack_E.h.

◆ setNdof()

void MuonCalib::MuonCalibTrack_E::setNdof ( int ndof)
inherited

sets ndof

Definition at line 36 of file MuonCalibTrack_E.cxx.

36{ m_params.ndof = ndof; }

◆ setPhi()

void MuonCalib::MuonCalibTrack_E::setPhi ( float phi)
inherited

sets trackparameter phi

Definition at line 54 of file MuonCalibTrack_E.cxx.

54{ m_params.phi = phi; }

◆ setQOverP()

void MuonCalib::MuonCalibTrack_E::setQOverP ( float qOverP)
inherited

sets trackparameter q/p

Definition at line 56 of file MuonCalibTrack_E.cxx.

56{ m_params.qOverP = qOverP; }

◆ setTheta()

void MuonCalib::MuonCalibTrack_E::setTheta ( float theta)
inherited

sets trackparameter theta

Definition at line 55 of file MuonCalibTrack_E.cxx.

55{ m_params.theta = theta; }

◆ setX0()

void MuonCalib::MuonCalibTrack_E::setX0 ( float x0)
inherited

sets trackparameter x0

Definition at line 51 of file MuonCalibTrack_E.cxx.

51{ m_params.x0 = x0; }

◆ setY0()

void MuonCalib::MuonCalibTrack_E::setY0 ( float y0)
inherited

sets trackparameter y0

Definition at line 52 of file MuonCalibTrack_E.cxx.

52{ m_params.y0 = y0; }

◆ setZ0()

void MuonCalib::MuonCalibTrack_E::setZ0 ( float z0)
inherited

sets trackparameter z0

Definition at line 53 of file MuonCalibTrack_E.cxx.

53{ m_params.z0 = z0; }

◆ summary()

const MuonCalibTrackSummary & MuonCalib::MuonCalibExtendedTrack::summary ( ) const
inline

access to hit counts

Definition at line 54 of file MuonCalibExtendedTrack.h.

54{ return m_summary; }

◆ tgcStationIndexHitsMap()

const StationIndexHitsMap & MuonCalib::MuonCalibExtendedTrack::tgcStationIndexHitsMap ( ) const
inline

access to hits per station layer index (tgc)

Definition at line 63 of file MuonCalibExtendedTrack.h.

◆ theta()

float MuonCalib::MuonCalibTrack_E::theta ( ) const
inherited

returns trackparameter theta

Definition at line 42 of file MuonCalibTrack_E.cxx.

42{ return m_params.theta; }

◆ x0()

float MuonCalib::MuonCalibTrack_E::x0 ( ) const
inherited

returns trackparameter x0

Definition at line 38 of file MuonCalibTrack_E.cxx.

38{ return m_params.x0; }

◆ y0()

float MuonCalib::MuonCalibTrack_E::y0 ( ) const
inherited

returns trackparameter y0

Definition at line 39 of file MuonCalibTrack_E.cxx.

39{ return m_params.y0; }

◆ z0()

float MuonCalib::MuonCalibTrack_E::z0 ( ) const
inherited

returns trackparameter z0

Definition at line 40 of file MuonCalibTrack_E.cxx.

40{ return m_params.z0; }

◆ z0ip()

float MuonCalib::MuonCalibTrack_E::z0ip ( ) const
virtualinherited

returns trackparameter z0 at IP

Definition at line 71 of file MuonCalibTrack_E.cxx.

71 {
72 // extrapolate z to IP
73 MuonCalib::MuonCalibSLPropagator slProp;
75 return posAtIp.z();
76 }
Amg::Vector3D propagateToPerigee(const Amg::Vector3D &pos, const Amg::Vector3D &dir) const
Propagator track parameters to the perigee.
Eigen::Matrix< double, 3, 1 > Vector3D

Member Data Documentation

◆ dummy_chi2

float MuonCalib::MuonCalibTrack_E::dummy_chi2 {9999.}
staticconstexprinherited

Definition at line 34 of file MuonCalibTrack_E.h.

34{9999.};

◆ m_associatedSegments

std::vector<std::shared_ptr<MuonCalibExtendedSegment> > MuonCalib::MuonCalibExtendedTrack::m_associatedSegments
private

list of segments associated with this track

Definition at line 164 of file MuonCalibExtendedTrack.h.

◆ m_associatedTracks

std::vector<std::shared_ptr<MuonCalibExtendedTrack> > MuonCalib::MuonCalibExtendedTrack::m_associatedTracks
private

list of tracks associated with this track

Definition at line 167 of file MuonCalibExtendedTrack.h.

◆ m_barCode

int MuonCalib::MuonCalibExtendedTrack::m_barCode {0}
private

Definition at line 129 of file MuonCalibExtendedTrack.h.

129{0};

◆ m_cscHitsPerStationIndex

StationIndexHitsMap MuonCalib::MuonCalibExtendedTrack::m_cscHitsPerStationIndex {}
private

Definition at line 143 of file MuonCalibExtendedTrack.h.

143{};

◆ m_dir

Amg::Vector3D MuonCalib::MuonCalibExtendedTrack::m_dir {0., 0., 0.}
private

direction of perigee parameters

Definition at line 134 of file MuonCalibExtendedTrack.h.

134{0., 0., 0.};

◆ m_hitIdMap

IdHitMap MuonCalib::MuonCalibExtendedTrack::m_hitIdMap {}
private

hit information per station

Definition at line 149 of file MuonCalibExtendedTrack.h.

149{};

◆ m_hits

HitVector MuonCalib::MuonCalibTrack_E::m_hits
privateinherited

set of MuonCalib::MuonCalibHit_E s on track

Definition at line 141 of file MuonCalibTrack_E.h.

◆ m_hitsPerChamber

IdHitsMap MuonCalib::MuonCalibExtendedTrack::m_hitsPerChamber {}
private

hit information per station

Definition at line 146 of file MuonCalibExtendedTrack.h.

146{};

◆ m_holes

HoleVector MuonCalib::MuonCalibTrack_E::m_holes
privateinherited

set of MuonCalib::MuonCalibHole_E s on track

Definition at line 142 of file MuonCalibTrack_E.h.

◆ m_intersectedLayers

StationIntersectedLayerMap MuonCalib::MuonCalibExtendedTrack::m_intersectedLayers {}
private

map with all station layers intersected by track

Definition at line 152 of file MuonCalibExtendedTrack.h.

152{};

◆ m_intersectedLayersWithoutHits

StationIndexSet MuonCalib::MuonCalibExtendedTrack::m_intersectedLayersWithoutHits {}
private

set with all station layers intersected by the track without hits

Definition at line 155 of file MuonCalibExtendedTrack.h.

155{};

◆ m_intersectedRpcLayerWithoutHits

StationIndexSet MuonCalib::MuonCalibExtendedTrack::m_intersectedRpcLayerWithoutHits {}
private

set with all rpc chamber identifiers of layers intersected by the track without hits

Definition at line 158 of file MuonCalibExtendedTrack.h.

158{};

◆ m_intersectedTgcLayerWithoutHits

StationIndexSet MuonCalib::MuonCalibExtendedTrack::m_intersectedTgcLayerWithoutHits {}
private

set with all tgc chamber identifiers of layers intersected by the track without hits

Definition at line 161 of file MuonCalibExtendedTrack.h.

161{};

◆ m_mdtHitsPerStationIndex

StationIndexHitsMap MuonCalib::MuonCalibExtendedTrack::m_mdtHitsPerStationIndex {}
private

hit information per station layer index

Definition at line 140 of file MuonCalibExtendedTrack.h.

140{};

◆ m_params

defineParams MuonCalib::MuonCalibTrack_E::m_params {}
privateinherited

Definition at line 145 of file MuonCalibTrack_E.h.

145{};

◆ m_pdgCode

int MuonCalib::MuonCalibExtendedTrack::m_pdgCode {0}
private

Definition at line 128 of file MuonCalibExtendedTrack.h.

128{0};

◆ m_pos

Amg::Vector3D MuonCalib::MuonCalibExtendedTrack::m_pos {0., 0., 0.}
private

position of perigee parameters

Definition at line 131 of file MuonCalibExtendedTrack.h.

131{0., 0., 0.};

◆ m_rawHitAssociationMap

MuonCalibRawHitAssociationMap MuonCalib::MuonCalibExtendedTrack::m_rawHitAssociationMap
private

raw hit association map

Definition at line 170 of file MuonCalibExtendedTrack.h.

◆ m_rpcHitsPerStationIndex

StationIndexHitsMap MuonCalib::MuonCalibExtendedTrack::m_rpcHitsPerStationIndex {}
private

Definition at line 141 of file MuonCalibExtendedTrack.h.

141{};

◆ m_segments_on_track

SegmentVector MuonCalib::MuonCalibTrack_E::m_segments_on_track
privateinherited

Definition at line 143 of file MuonCalibTrack_E.h.

◆ m_summary

MuonCalibTrackSummary MuonCalib::MuonCalibExtendedTrack::m_summary {}
private

track summary

Definition at line 137 of file MuonCalibExtendedTrack.h.

137{};

◆ m_tgcHitsPerStationIndex

StationIndexHitsMap MuonCalib::MuonCalibExtendedTrack::m_tgcHitsPerStationIndex {}
private

Definition at line 142 of file MuonCalibExtendedTrack.h.

142{};

The documentation for this class was generated from the following files: