ATLAS Offline Software
Loading...
Searching...
No Matches
MetTOB.h
Go to the documentation of this file.
1// Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
2
3#ifndef L1TopoEvent_MetTOB
4#define L1TopoEvent_MetTOB
5
6#include <iostream>
7
9#include "L1TopoEvent/Heap.h"
10
11namespace TCS {
12
13 class MetTOB : public BaseTOB {
14 public:
15
16 static unsigned int nBitsEx() { return g_nBitsEx; }
17 static unsigned int nBitsEy() { return g_nBitsEy; }
18 static unsigned int nBitsEt() { return g_nBitsEt; }
19
20
21 // default constructor
22 MetTOB();
23
24 // constructor with individual values
25 MetTOB(int ex, int ey, unsigned int et);
26
27 // constructor with initial values
28 MetTOB(const MetTOB & met);
29
30 // destructor
31 virtual ~MetTOB();
32
33 // accessors
34 int Ex() const { return m_Ex; }
35 int Ey() const { return m_Ey; }
36 unsigned int Et() const { return m_Et; }
37
38 double ExDouble() const { return m_ExDouble; }
39 double EyDouble() const { return m_EyDouble; }
40 double EtDouble() const { return m_EtDouble; }
41
42 // setters
43 void setEx(int ex) { m_Ex = sizeCheckM(ex, nBitsEx()); }
44 void setEy(int ey) { m_Ey = sizeCheckM(ey, nBitsEy()); }
45 void setEt(unsigned int et) { m_Et = sizeCheck(et, nBitsEt()); }
46
47 void setExDouble(double ex) { m_ExDouble = ex; }
48 void setEyDouble(double ey) { m_EyDouble = ey; }
49 void setEtDouble(double et) { m_EtDouble = et; }
50
51 inputTOBType_t tobType() const { return MET; }
52
53 // memory management
54 static MetTOB* createOnHeap(const MetTOB& cl);
55 static void clearHeap();
56 static const Heap<TCS::MetTOB>& heap() { return fg_heap; }
57
58 virtual void print(std::ostream &o) const;
59
60 private:
61 static const unsigned int g_nBitsEx;
62 static const unsigned int g_nBitsEy;
63 static const unsigned int g_nBitsEt;
64
65 int m_Ex {0};
66 int m_Ey {0};
67 unsigned int m_Et {0};
68
69 double m_ExDouble {0};
70 double m_EyDouble {0};
71 double m_EtDouble {0};
72
73 static thread_local Heap<TCS::MetTOB> fg_heap;
74 };
75}
76
77#endif
int sizeCheck(int value, unsigned int size) const
Definition BaseTOB.cxx:32
int sizeCheckM(int value, unsigned int size) const
Definition BaseTOB.cxx:19
BaseTOB(uint32_t roiWord, const std::string &tobType)
Definition BaseTOB.cxx:11
static thread_local Heap< TCS::MetTOB > fg_heap
Definition MetTOB.h:73
static const unsigned int g_nBitsEt
Definition MetTOB.h:63
virtual void print(std::ostream &o) const
Definition MetTOB.cxx:42
static const unsigned int g_nBitsEx
Definition MetTOB.h:61
void setEyDouble(double ey)
Definition MetTOB.h:48
double m_EtDouble
Definition MetTOB.h:71
double EyDouble() const
Definition MetTOB.h:39
int m_Ex
Definition MetTOB.h:65
void setEx(int ex)
Definition MetTOB.h:43
unsigned int Et() const
Definition MetTOB.h:36
int Ex() const
Definition MetTOB.h:34
static unsigned int nBitsEy()
Definition MetTOB.h:17
unsigned int m_Et
Definition MetTOB.h:67
int Ey() const
Definition MetTOB.h:35
static void clearHeap()
Definition MetTOB.cxx:38
static const unsigned int g_nBitsEy
Definition MetTOB.h:62
void setExDouble(double ex)
Definition MetTOB.h:47
double m_EyDouble
Definition MetTOB.h:70
void setEt(unsigned int et)
Definition MetTOB.h:45
inputTOBType_t tobType() const
Definition MetTOB.h:51
static unsigned int nBitsEt()
Definition MetTOB.h:18
static MetTOB * createOnHeap(const MetTOB &cl)
Definition MetTOB.cxx:33
static const Heap< TCS::MetTOB > & heap()
Definition MetTOB.h:56
double EtDouble() const
Definition MetTOB.h:40
double ExDouble() const
Definition MetTOB.h:38
static unsigned int nBitsEx()
Definition MetTOB.h:16
void setEtDouble(double et)
Definition MetTOB.h:49
virtual ~MetTOB()
void setEy(int ey)
Definition MetTOB.h:44
double m_ExDouble
Definition MetTOB.h:69
int m_Ey
Definition MetTOB.h:66
Definition MET.py:1
Extra patterns decribing particle interation process.