ATLAS Offline Software
Loading...
Searching...
No Matches
MuonCalibTrackSummary.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef MUONCALIBTRACKSUMMARY_H
6#define MUONCALIBTRACKSUMMARY_H
7
8#include <set>
9#include <string>
10#include <vector>
11
14
15namespace MuonCalib {
16
18 public:
20 struct Projection {
21 int nhits{0};
22 int nholes{0};
23 int noutliers{0};
24 int ndeltas{0};
25 };
26
28
30 bool isMdt() const { return chId.is_mdt(); }
31
32 int nhits() const { return m_first.nhits + m_second.nhits; }
33 int nholes() const { return m_first.nholes + m_second.nholes; }
34 int noutliers() const { return m_first.noutliers + m_second.noutliers; }
35 int ndeltas() const { return m_first.ndeltas + m_second.ndeltas; }
36
37 int netaHits() const { return isMdt() ? nhits() : m_first.nhits; }
38 int nphiHits() const { return isMdt() ? 0 : m_second.nhits; }
39
40 int nMdtHitsMl1() const { return isMdt() ? m_first.nhits : 0; }
41 int nMdtHitsMl2() const { return isMdt() ? m_second.nhits : 0; }
42
43 // before using make sure isMdt == false!
46 const Projection& etaProjection() const { return m_first; }
47 const Projection& phiProjection() const { return m_second; }
48
49 private:
50 Projection m_first; //<! eta projections for cluster chambers, first multi layer for mdt chambers
51 Projection m_second; //<! phi projections for cluster chambers, first multi layer for mdt chambers
52 };
53
54 unsigned int nhits{0};
55 unsigned int npixel{0};
56 unsigned int nsct{0};
57 unsigned int ntrtBarrel{0};
58 unsigned int ntrtEndcap{0};
59 unsigned int nhitsUpperHemisphere{0};
60 unsigned int nhitsLowerHemisphere{0};
61 unsigned int nscatters{0};
62 unsigned int nholes{0};
63 unsigned int noutliers{0};
64 unsigned int npseudo{0};
65 unsigned int ntubeHits{0};
66 unsigned int nmdtHits{0};
67 unsigned int nmdtHitsBelowADCCut{0};
68 unsigned int nrpcPhiHits{0};
69 unsigned int nrpcEtaHits{0};
70 unsigned int ntgcPhiHits{0};
71 unsigned int ntgcEtaHits{0};
72 unsigned int ncscPhiHits{0};
73 unsigned int ncscEtaHits{0};
74
75 bool hasEndcapA{false};
76 bool hasEndcapC{false};
77 bool hasBarrel{false};
78
81
82 bool isTrack{false};
83
85 unsigned int nmdtCh() const;
86 unsigned int nrpcCh(bool phi) const;
87 unsigned int ntgcCh(bool phi) const;
88 unsigned int ncscCh(bool phi) const;
89
90 unsigned int nrpcEtaPhiCh() const;
91 unsigned int ntgcEtaPhiCh() const;
92 unsigned int ncscEtaPhiCh() const;
93
94 unsigned int ntrt() const { return ntrtBarrel + ntrtEndcap; }
95
97 unsigned int nphiTrigHits() const { return nrpcPhiHits + ntgcPhiHits; }
98 unsigned int netaTrigHits() const { return nrpcEtaHits + ntgcEtaHits; }
99
101 unsigned int nmdtHitsPerMl(int ml) const;
102
103 bool hasEndcap() const { return hasEndcapA || hasEndcapC; }
105 bool hasId() const { return npixel + nsct + ntrt() > 0; }
106
107 std::vector<ChamberHitSummary> chamberHitSummary;
108
110 std::set<MuonFixedIdManipulator::PhiStationIndex> phiStationLayers;
111
113 std::set<MuonFixedIdManipulator::StationIndex> precisionStationLayers;
114
116 std::set<MuonFixedIdManipulator::PhiStationIndex> phiEtaStationLayers;
117
119 std::set<MuonFixedIdManipulator::StationIndex> goodPrecisionStationLayers;
120
122 std::string dump() const;
123 };
124} // namespace MuonCalib
125
126#endif
Scalar phi() const
phi method
unsigned int nmdtCh() const
access to number of chambers per technology on the track
unsigned int nmdtHitsPerMl(int ml) const
access to number of MDT hits per ml (ml=1,2)
std::set< MuonFixedIdManipulator::PhiStationIndex > phiStationLayers
set of phi layers on the track
unsigned int ncscCh(bool phi) const
unsigned int nphiTrigHits() const
access to number of eta/phi trigger hits
std::set< MuonFixedIdManipulator::StationIndex > precisionStationLayers
set of precision layers on the track
std::set< MuonFixedIdManipulator::StationIndex > goodPrecisionStationLayers
set of precision layers with (MDT: two multi layers, CSC: at least 2 eta and phi hits) on the track
std::string dump() const
dump counts to string
std::vector< ChamberHitSummary > chamberHitSummary
unsigned int ntgcCh(bool phi) const
std::set< MuonFixedIdManipulator::PhiStationIndex > phiEtaStationLayers
set of phi layers which also have eta hits on the track
unsigned int nrpcCh(bool phi) const
Implements fixed identifiers not dependent upon Athena Identifier for internal use in the calibration...
Definition MuonFixedId.h:50
CscCalcPed - algorithm that finds the Cathode Strip Chamber pedestals from an RDO.