ATLAS Offline Software
Loading...
Searching...
No Matches
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
13struct 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
40class 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<MMT_Road>& roads, const bool isLarge) const;
47 void findDiamonds(std::vector<std::shared_ptr<MMT_Hit> >& hits, std::vector<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
Scalar phi() const
phi method
AthMessaging(IMessageSvc *msgSvc, const std::string &name)
Constructor.
unsigned int getXthreshold() const
Definition MMT_Diamond.h:51
~MMT_Diamond()=default
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)
int getRoadSize() const
Definition MMT_Diamond.h:50
unsigned int getUVthreshold() const
Definition MMT_Diamond.h:52
double phiShift(const int n, const double phi, const char side) const
int m_roadSizeDownUV
Definition MMT_Diamond.h:56
void createRoads(std::vector< MMT_Road > &roads, const bool isLarge) const
int m_roadSizeUpUV
Definition MMT_Diamond.h:56
int m_roadSizeDownX
Definition MMT_Diamond.h:56
int m_roadSizeUpX
Definition MMT_Diamond.h:56
void findDiamonds(std::vector< std::shared_ptr< MMT_Hit > > &hits, std::vector< MMT_Road > &roads, std::vector< slope_t > &diamondSlopes, const int sectorPhi) const
double my
Definition MMT_Diamond.h:27
double phi
Definition MMT_Diamond.h:34
double phiShf
Definition MMT_Diamond.h:35
unsigned int uvmuon
Definition MMT_Diamond.h:23
double eta
Definition MMT_Diamond.h:32
int iRoadu
Definition MMT_Diamond.h:19
unsigned int realCount
Definition MMT_Diamond.h:17
double mx
Definition MMT_Diamond.h:30
int iRoadv
Definition MMT_Diamond.h:20
double mxl
Definition MMT_Diamond.h:26
unsigned int totalCount
Definition MMT_Diamond.h:16
double theta
Definition MMT_Diamond.h:31
double vavg
Definition MMT_Diamond.h:29
double dtheta
Definition MMT_Diamond.h:33
char side
Definition MMT_Diamond.h:36
bool lowRes
Definition MMT_Diamond.h:37
unsigned int xbkg
Definition MMT_Diamond.h:22
unsigned int uvbkg
Definition MMT_Diamond.h:21
unsigned int xmuon
Definition MMT_Diamond.h:24
double uavg
Definition MMT_Diamond.h:28
int iRoad
Definition MMT_Diamond.h:18