ATLAS Offline Software
Loading...
Searching...
No Matches
MuonTOB.h
Go to the documentation of this file.
1// Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
2
3#ifndef L1TopoEvent_MuonTOB
4#define L1TopoEvent_MuonTOB
5
6#include <iostream>
7#include <string>
8
10#include "L1TopoEvent/Heap.h"
11
12namespace TCS {
13
14 class MuonTOB : public BaseTOB {
15 public:
16
17 // default constructor
18 MuonTOB(uint32_t roiWord = 0, const std::string& tobName = "MuonTOB");
19
20 // constructor with individual values
21 MuonTOB(unsigned int et, unsigned int isolation, int eta, unsigned int phi, uint32_t roiWord = 0, const std::string& tobName = "MuonTOB");
22
23 // constructor with initial values
24 MuonTOB(const MuonTOB & muon);
25
26 // destructor
27 virtual ~MuonTOB();
28
29 // accessors
30 unsigned int nBitsEt() const { return m_nBitsEt; }
31 unsigned int nBitsIsolation() const { return m_nBitsIsolation; }
32 unsigned int nBitsEta() const { return m_nBitsEta; }
33 unsigned int nBitsPhi() const { return m_nBitsPhi; }
34
35 unsigned int Et() const { return m_Et; } // Et threshold in units of 100 MeV
36 unsigned int isolation() const { return m_isolation; }
37 int eta() const { return m_eta; } // Int eta for L1Topo, granularity = 0.025
38 unsigned int phi() const { return m_phi; } // Int phi for L1Topo, granularity = 0.05
39
40 int bw2or3() const { return m_bw2or3; }
41 int innerCoin() const { return m_innerCoin; }
42 int goodMF() const { return m_goodMF; }
43 int charge() const { return m_charge; }
44 int is2cand() const { return m_is2cand; }
45
46 double EtDouble() const { return m_EtDouble; } // Et threshold in units of GeV
47 double EtaDouble() const { return m_etaDouble; } // Real muon eta
48 double PhiDouble() const { return m_phiDouble; } // Real muon phi
49
50 inline bool isTGC() const {return m_isTGC;} // Additonal flag that identifies muons from TGC
51
52 // setters
53 void setEt(unsigned int et) { m_Et = sizeCheck(et, nBitsEt()); }
54 void setIsolation(unsigned int iso) { m_isolation = sizeCheck(iso, nBitsIsolation()); }
55 void setEta(int eta) { m_eta = sizeCheck(eta, nBitsEta()); }
56 void setPhi(unsigned int phi) { m_phi = sizeCheck(phi, nBitsPhi()); }
57
63 void setIsTGC(int isTGC) { m_isTGC = isTGC; }
64
65 void setEtDouble(double et) { m_EtDouble = et; }
66 void setEtaDouble(double eta) { m_etaDouble = eta; }
67 void setPhiDouble(double phi) { m_phiDouble = phi; }
68
69 void setBitsEt(unsigned int nBitsEt) { m_nBitsEt = nBitsEt; }
71 void setBitsEta(unsigned int nBitsEta) { m_nBitsEta = nBitsEta; }
72 void setBitsPhi(unsigned int nBitsPhi) { m_nBitsPhi = nBitsPhi; }
73
74 inputTOBType_t tobType() const { return MUON; }
75
76 // memory management
77 static MuonTOB* createOnHeap(const MuonTOB& cl);
78 static void clearHeap();
79 static const Heap<TCS::MuonTOB>& heap() { return fg_heap; }
80
81 virtual void print(std::ostream &o) const;
82
83 private:
84 unsigned int m_nBitsEt{13};
85 unsigned int m_nBitsIsolation{5};
86 unsigned int m_nBitsEta{9};
87 unsigned int m_nBitsPhi{7};
88
89 unsigned int m_Et{0};
90 unsigned int m_isolation{0};
91 int m_eta{0};
92 unsigned int m_phi{0};
93
94 int m_bw2or3{0};
96 int m_goodMF{0};
97 int m_charge{0};
98 int m_is2cand{0};
99 int m_isTGC{0};
100
101 double m_EtDouble{0};
102 double m_etaDouble{0};
103 double m_phiDouble{0};
104
105 static thread_local Heap<TCS::MuonTOB> fg_heap;
106 };
107}
108
109#endif
const std::string & tobName() const
Definition BaseTOB.h:23
int sizeCheck(int value, unsigned int size) const
Definition BaseTOB.cxx:32
uint32_t roiWord() const
Definition BaseTOB.h:21
BaseTOB(uint32_t roiWord, const std::string &tobType)
Definition BaseTOB.cxx:11
static const Heap< TCS::MuonTOB > & heap()
Definition MuonTOB.h:79
int bw2or3() const
Definition MuonTOB.h:40
virtual ~MuonTOB()
int m_bw2or3
Definition MuonTOB.h:94
unsigned int phi() const
Definition MuonTOB.h:38
int m_isTGC
Definition MuonTOB.h:99
static MuonTOB * createOnHeap(const MuonTOB &cl)
Definition MuonTOB.cxx:28
void setIs2cand(int is2cand)
Definition MuonTOB.h:62
static thread_local Heap< TCS::MuonTOB > fg_heap
Definition MuonTOB.h:105
unsigned int nBitsEta() const
Definition MuonTOB.h:32
void setEtaDouble(double eta)
Definition MuonTOB.h:66
void setPhi(unsigned int phi)
Definition MuonTOB.h:56
unsigned int m_nBitsIsolation
Definition MuonTOB.h:85
double m_etaDouble
Definition MuonTOB.h:102
unsigned int m_Et
Definition MuonTOB.h:89
bool isTGC() const
Definition MuonTOB.h:50
unsigned int m_nBitsEt
Definition MuonTOB.h:84
virtual void print(std::ostream &o) const
Definition MuonTOB.cxx:37
int m_innerCoin
Definition MuonTOB.h:95
double EtDouble() const
Definition MuonTOB.h:46
void setBitsPhi(unsigned int nBitsPhi)
Definition MuonTOB.h:72
void setEt(unsigned int et)
Definition MuonTOB.h:53
void setBitsEta(unsigned int nBitsEta)
Definition MuonTOB.h:71
void setBitsEt(unsigned int nBitsEt)
Definition MuonTOB.h:69
static void clearHeap()
Definition MuonTOB.cxx:33
void setPhiDouble(double phi)
Definition MuonTOB.h:67
void setEtDouble(double et)
Definition MuonTOB.h:65
unsigned int nBitsPhi() const
Definition MuonTOB.h:33
MuonTOB(const MuonTOB &muon)
int is2cand() const
Definition MuonTOB.h:44
unsigned int m_phi
Definition MuonTOB.h:92
int eta() const
Definition MuonTOB.h:37
int goodMF() const
Definition MuonTOB.h:42
unsigned int isolation() const
Definition MuonTOB.h:36
void setBW2or3(int bw2or3)
Definition MuonTOB.h:58
int m_is2cand
Definition MuonTOB.h:98
int charge() const
Definition MuonTOB.h:43
double PhiDouble() const
Definition MuonTOB.h:48
double m_EtDouble
Definition MuonTOB.h:101
void setEta(int eta)
Definition MuonTOB.h:55
void setInnerCoin(int innerCoin)
Definition MuonTOB.h:59
void setIsTGC(int isTGC)
Definition MuonTOB.h:63
void setIsolation(unsigned int iso)
Definition MuonTOB.h:54
int innerCoin() const
Definition MuonTOB.h:41
void setBitsIsolation(unsigned int nBitsIsolation)
Definition MuonTOB.h:70
inputTOBType_t tobType() const
Definition MuonTOB.h:74
int m_charge
Definition MuonTOB.h:97
void setCharge(int charge)
Definition MuonTOB.h:61
unsigned int Et() const
Definition MuonTOB.h:35
double m_phiDouble
Definition MuonTOB.h:103
MuonTOB(uint32_t roiWord=0, const std::string &tobName="MuonTOB")
Definition MuonTOB.cxx:7
void setGoodMF(int goodMF)
Definition MuonTOB.h:60
double EtaDouble() const
Definition MuonTOB.h:47
unsigned int m_nBitsPhi
Definition MuonTOB.h:87
unsigned int m_nBitsEta
Definition MuonTOB.h:86
unsigned int m_isolation
Definition MuonTOB.h:90
int m_goodMF
Definition MuonTOB.h:96
unsigned int nBitsEt() const
Definition MuonTOB.h:30
unsigned int nBitsIsolation() const
Definition MuonTOB.h:31
Extra patterns decribing particle interation process.