ATLAS Offline Software
MMT_Diamond.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3  */
4 
5 #ifndef MMT_DIAMOND_H
6 #define MMT_DIAMOND_H
7 
9 #include "MMT_Road.h"
10 #include <cmath>
11 #include <vector>
12 
13 struct slope_t {
14  uint64_t event{0};
15  int BC{-1};
16  unsigned int totalCount{999};
17  unsigned int realCount{999};
18  int iRoad{-1};
19  int iRoadu{-1};
20  int iRoadv{-1};
21  unsigned int uvbkg{999};
22  unsigned int xbkg{999};
23  unsigned int uvmuon{999};
24  unsigned int xmuon{999};
25  int age{-1};
26  double mxl{999};
27  double my{999};
28  double uavg{999};
29  double vavg{999};
30  double mx{999};
31  double theta{999};
32  double eta{999};
33  double dtheta{999};
34  double phi{999};
35  double phiShf{999};
36  char side{'-'};
37  bool lowRes{false};
38 };
39 
40 class MMT_Diamond : public AthMessaging {
41  public:
42  MMT_Diamond(const int diamXthreshold, const bool uv, const int diamUVthreshold, const int roadSize,
43  const int olapEtaUp, const int olapEtaDown, const int olapStereoUp, const int olapStereoDown);
44  ~MMT_Diamond() = default;
45 
46  void createRoads(std::vector<std::shared_ptr<MMT_Road> >& roads, const bool isLarge) const;
47  void findDiamonds(std::vector<std::shared_ptr<MMT_Hit> >& hits, const std::vector<std::shared_ptr<MMT_Road> >& roads, std::vector<slope_t>& diamondSlopes, const int sectorPhi) const;
48  double phiShift(const int n, const double phi, const char side) const;
49 
50  int getRoadSize() const { return m_roadSize; }
51  unsigned int getXthreshold() const { return m_xthr; }
52  unsigned int getUVthreshold() const { return m_uvthr; }
53 
54  private:
55  bool m_uvflag{};
57  int m_xthr{}, m_uvthr{};
58 };
59 #endif
slope_t::eta
double eta
Definition: MMT_Diamond.h:32
MMT_Diamond::findDiamonds
void findDiamonds(std::vector< std::shared_ptr< MMT_Hit > > &hits, const std::vector< std::shared_ptr< MMT_Road > > &roads, std::vector< slope_t > &diamondSlopes, const int sectorPhi) const
Definition: MMT_Diamond.cxx:65
TRTCalib_Extractor.hits
hits
Definition: TRTCalib_Extractor.py:35
slope_t::BC
int BC
Definition: MMT_Diamond.h:15
MMT_Diamond::getRoadSize
int getRoadSize() const
Definition: MMT_Diamond.h:50
phi
Scalar phi() const
phi method
Definition: AmgMatrixBasePlugin.h:67
slope_t::uavg
double uavg
Definition: MMT_Diamond.h:28
slope_t::my
double my
Definition: MMT_Diamond.h:27
slope_t::xmuon
unsigned int xmuon
Definition: MMT_Diamond.h:24
slope_t::iRoadu
int iRoadu
Definition: MMT_Diamond.h:19
MMT_Diamond::m_uvthr
int m_uvthr
Definition: MMT_Diamond.h:57
slope_t::totalCount
unsigned int totalCount
Definition: MMT_Diamond.h:16
MMT_Diamond
Definition: MMT_Diamond.h:40
slope_t::vavg
double vavg
Definition: MMT_Diamond.h:29
MMT_Diamond::phiShift
double phiShift(const int n, const double phi, const char side) const
Definition: MMT_Diamond.cxx:207
TRT::Hit::side
@ side
Definition: HitInfo.h:83
MMT_Diamond::~MMT_Diamond
~MMT_Diamond()=default
slope_t::side
char side
Definition: MMT_Diamond.h:36
MMT_Diamond::m_roadSizeDownX
int m_roadSizeDownX
Definition: MMT_Diamond.h:56
slope_t::dtheta
double dtheta
Definition: MMT_Diamond.h:33
MMT_Diamond::m_roadSizeUpUV
int m_roadSizeUpUV
Definition: MMT_Diamond.h:56
beamspotman.n
n
Definition: beamspotman.py:729
slope_t::phiShf
double phiShf
Definition: MMT_Diamond.h:35
slope_t::theta
double theta
Definition: MMT_Diamond.h:31
MMT_Road.h
MMT_Diamond::MMT_Diamond
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)
Definition: MMT_Diamond.cxx:18
slope_t::mx
double mx
Definition: MMT_Diamond.h:30
AthMessaging
Class to provide easy MsgStream access and capabilities.
Definition: AthMessaging.h:55
xAOD::uint64_t
uint64_t
Definition: EventInfo_v1.cxx:123
MMT_Diamond::getXthreshold
unsigned int getXthreshold() const
Definition: MMT_Diamond.h:51
MMT_Diamond::m_roadSize
int m_roadSize
Definition: MMT_Diamond.h:56
slope_t::iRoad
int iRoad
Definition: MMT_Diamond.h:18
slope_t::iRoadv
int iRoadv
Definition: MMT_Diamond.h:20
MMT_Diamond::m_roadSizeUpX
int m_roadSizeUpX
Definition: MMT_Diamond.h:56
MMT_Diamond::m_uvflag
bool m_uvflag
Definition: MMT_Diamond.h:55
MMT_Diamond::m_xthr
int m_xthr
Definition: MMT_Diamond.h:57
slope_t::age
int age
Definition: MMT_Diamond.h:25
slope_t::realCount
unsigned int realCount
Definition: MMT_Diamond.h:17
MMT_Diamond::getUVthreshold
unsigned int getUVthreshold() const
Definition: MMT_Diamond.h:52
MMT_Diamond::m_roadSizeDownUV
int m_roadSizeDownUV
Definition: MMT_Diamond.h:56
slope_t::lowRes
bool lowRes
Definition: MMT_Diamond.h:37
AthMessaging.h
slope_t::phi
double phi
Definition: MMT_Diamond.h:34
slope_t::mxl
double mxl
Definition: MMT_Diamond.h:26
MMT_Diamond::createRoads
void createRoads(std::vector< std::shared_ptr< MMT_Road > > &roads, const bool isLarge) const
Definition: MMT_Diamond.cxx:30
slope_t::xbkg
unsigned int xbkg
Definition: MMT_Diamond.h:22
slope_t
Definition: MMT_Diamond.h:13
slope_t::uvbkg
unsigned int uvbkg
Definition: MMT_Diamond.h:21
slope_t::uvmuon
unsigned int uvmuon
Definition: MMT_Diamond.h:23