ATLAS Offline Software
Loading...
Searching...
No Matches
Muon/L1MuonNSW/src/MMT_Diamond.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_DIAMOND_H
6#define L1MUONNSW_MMT_DIAMOND_H
7
9#include "MMT_Road.h"
10#include "L1MMDefinitions.h"
11#include <cmath>
12#include <cstdint>
13#include <vector>
14
15namespace L1Muon::L1MM {
16
21 struct slope_t {
22 uint64_t event{0};
23 int BC{-1};
24 unsigned int totalCount{999};
25 int iRoad{-1};
26 int iRoadu{-1};
27 int iRoadv{-1};
28 unsigned int xCount{999};
29 unsigned int uCount{999};
30 int age{-1};
31 double mxl{999};
32 double my{999};
33 double uavg{999};
34 double vavg{999};
35 double mx{999};
36 double theta{999};
37 double eta{999};
38 double dtheta{999};
39 double phi{999};
40 double phiShf{999};
42 bool lowRes{false};
43 };
44
51 class MMT_Diamond : public AthMessaging {
52 public:
53 MMT_Diamond(const int diamXthreshold, const bool uv, const int diamUVthreshold, const int roadSize,
54 const int olapEtaUp, const int olapEtaDown, const int olapStereoUp, const int olapStereoDown);
55 ~MMT_Diamond() = default;
56
57 void createRoads(std::vector<MMT_Road>& roads, const bool isLarge, const bool isEta1) const;
58 void findDiamonds(std::vector<MMT_Hit>& hits, std::vector<MMT_Road>& roads, std::vector<slope_t>& diamondSlopes,
59 const int sectorPhi, const double tanStereoAngle) const;
60 double phiShift(const int n, const double phi, const SideType side) const;
61
62 int getRoadSize() const { return m_roadSize; }
63 unsigned int getXthreshold() const { return m_xthr; }
64 unsigned int getUVthreshold() const { return m_uvthr; }
65
66 private:
67 bool m_uvflag{};
73 int m_xthr{};
74 int m_uvthr{};
75 };
76
77} // namespace L1Muon::L1MM
78
79#endif // L1MUONNSW_MMT_DIAMOND_H
Scalar phi() const
phi method
AthMessaging(IMessageSvc *msgSvc, const std::string &name)
Constructor.
MMT_Diamond(const int diamXthreshold, const bool uv, const int diamUVthreshold, const int roadSize, const int olapEtaUp, const int olapEtaDown, const int olapStereoUp, const int olapStereoDown)
void findDiamonds(std::vector< MMT_Hit > &hits, std::vector< MMT_Road > &roads, std::vector< slope_t > &diamondSlopes, const int sectorPhi, const double tanStereoAngle) const
double phiShift(const int n, const double phi, const SideType side) const
void createRoads(std::vector< MMT_Road > &roads, const bool isLarge, const bool isEta1) const
Definitions shared by the classes of the MM trigger processor emulation.
SideType
Detector side. The value is the sign of z, so that it can be used as a sign (e.g. Acts::copySign).
One MM trigger candidate as found by MMT_Diamond::findDiamonds: road indices, hit counts,...