ATLAS Offline Software
Loading...
Searching...
No Matches
Muon/L1MuonNSW/src/MMT_Road.h
Go to the documentation of this file.
1/*
2 * Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
3 */
4
5#ifndef L1MUONNSW_MMT_ROAD_H
6#define L1MUONNSW_MMT_ROAD_H
7
8#include "MMT_Hit.h"
9#include "L1MMDefinitions.h"
10#include <cmath>
11#include <numeric>
12#include <vector>
13
14namespace L1Muon::L1MM {
15
20 class MMT_Road {
21 public:
22 MMT_Road(const char sector, const int roadSize, const int UpX, const int DownX, const int UpUV, const int DownUV, const int xthr, const int uvthr,
23 const int iroadx, const int iroadu = -1, const int iroadv = -1);
24 ~MMT_Road()=default;
25
27 void addHits(const std::vector<const MMT_Hit*>& hits);
29 double avgSofXUV(const LayerType type) const;
30 bool checkCoincidences(const int bcwind) const {
31 return horizontalCheck() && stereoCheck() && matureCheck(bcwind);
32 }
33 unsigned int countHits() const { return m_road_hits.size(); }
34 unsigned int countUHits() const;
35 unsigned int countXHits() const;
36 bool evaluateLowRes() const;
37 bool horizontalCheck() const;
38 void incrementAge(const int bcwind);
39 const std::vector<MMT_Hit>& getHitVector() const { return m_road_hits; }
40 char getSector() const { return m_sector; }
41 int getXthreshold() const { return m_xthr; }
42 int getUVthreshold() const { return m_uvthr; }
43 int iRoadx() const { return m_iroadx; }
44 int iRoadu() const { return m_iroadu; }
45 int iRoadv() const { return m_iroadv; }
46 bool matureCheck(const int bcwind) const;
47 double mxl() const;
48 bool stereoCheck() const;
49
50 private:
51 std::vector<MMT_Hit> m_road_hits;
52 double m_slopeXlow{0.};
53 double m_slopeXhigh{0.};
54 double m_slopeUlow{0.};
55 double m_slopeUhigh{0.};
56 double m_slopeVlow{0.};
57 double m_slopeVhigh{0.};
58 int m_iroadx{-1};
59 int m_iroadu{-1};
60 int m_iroadv{-1};
61 int m_xthr{0};
62 int m_uvthr{0};
63 char m_sector{'-'};
64 };
65
66} // namespace L1Muon::L1MM
67
68#endif // L1MUONNSW_MMT_ROAD_H
bool checkCoincidences(const int bcwind) const
std::vector< MMT_Hit > m_road_hits
double avgSofXUV(const LayerType type) const
Average R/Z slope of the hits of one layer type.
const std::vector< MMT_Hit > & getHitVector() const
bool matureCheck(const int bcwind) const
void addHits(const std::vector< const MMT_Hit * > &hits)
Offer the hits of the current bunch crossing to the road (accepted hits are copied).
MMT_Road(const char sector, const int roadSize, const int UpX, const int DownX, const int UpUV, const int DownUV, const int xthr, const int uvthr, const int iroadx, const int iroadu=-1, const int iroadv=-1)
Definitions shared by the classes of the MM trigger processor emulation.
LayerType
Type of an MM layer: X (eta strips), U (stereo +1.5 deg) or V (stereo -1.5 deg).