ATLAS Offline Software
Loading...
Searching...
No Matches
ClusterTOB.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_ClusterTOB
4#define L1TopoEvent_ClusterTOB
5
6#include "L1TopoEvent/Heap.h"
8
9#include <iostream>
10
11namespace TCS {
12
13 class ClusterTOB : public BaseTOB {
14 public:
15
16 static unsigned int nBitsEt() { return g_nBitsEt; }
17 static unsigned int nBitsIsolation() { return g_nBitsIsolation; }
18 static unsigned int nBitsEta() { return g_nBitsEta; }
19 static unsigned int nBitsPhi() { return g_nBitsPhi; }
20
21 // default constructor
22 ClusterTOB(uint32_t roiWord = 0, const std::string& tobName = "ClusterTOB");
23
24 // constructor with individual values
25 ClusterTOB(unsigned int et, unsigned int isolation, int eta, int phi, inputTOBType_t tobType = NONE, uint32_t roiWord = 0, const std::string& tobName = "ClusterTOB");
26
27 // constructor with initial values
28 ClusterTOB(const ClusterTOB & cluster);
29
30 // destructor
31 virtual ~ClusterTOB();
32
33 // accessors
34 unsigned int Et() const { return m_Et; }
35 unsigned int isolation() const { return m_isolation; }
36 int eta() const { return m_eta; }
37 int phi() const { return m_phi; }
38
39 double EtDouble() const { return m_EtDouble; }
40 double etaDouble() const { return m_etaDouble; }
41 double phiDouble() const { return m_phiDouble; }
42
43 // setters
44 void setEt(unsigned int et) { m_Et = sizeCheck(et, nBitsEt()); }
45 void setIsolation(unsigned int et) { m_isolation = sizeCheck(et, nBitsIsolation()); }
46 void setEta(int eta) { m_eta = sizeCheck(eta, nBitsEta()); }
47 void setPhi(int phi) { m_phi = sizeCheck(phi, nBitsPhi()); }
48
49 void setEtDouble(double et) { m_EtDouble = et; }
50 void setEtaDouble(double eta) { m_etaDouble = eta; }
51 void setPhiDouble(double phi) { m_phiDouble = phi; }
52
53 // memory management
54 static ClusterTOB* createOnHeap(const ClusterTOB& cl);
55 static void clearHeap();
56 static const Heap<TCS::ClusterTOB>& heap() { return fg_heap; }
57
58 virtual void print(std::ostream &o) const;
59
61
62 inputTOBType_t tobType() const { return m_tobType; }
63
64 private:
65 static const unsigned int g_nBitsEt;
66 static const unsigned int g_nBitsIsolation;
67 static const unsigned int g_nBitsEta;
68 static const unsigned int g_nBitsPhi;
69
70 unsigned int m_Et {0};
71 unsigned int m_isolation {0};
72 int m_eta {0};
73 int m_phi {0};
74
75 double m_EtDouble {0};
76 double m_etaDouble {0};
77 double m_phiDouble {0};
78
80
81 static thread_local Heap<TCS::ClusterTOB> fg_heap;
82 };
83}
84
85#endif
Scalar eta() const
pseudorapidity method
Scalar phi() const
phi method
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
double EtDouble() const
Definition ClusterTOB.h:39
inputTOBType_t tobType() const
Definition ClusterTOB.h:62
static const unsigned int g_nBitsEt
Definition ClusterTOB.h:65
int eta() const
Definition ClusterTOB.h:36
void setEta(int eta)
Definition ClusterTOB.h:46
static ClusterTOB * createOnHeap(const ClusterTOB &cl)
void setEtDouble(double et)
Definition ClusterTOB.h:49
double m_EtDouble
Definition ClusterTOB.h:75
int phi() const
Definition ClusterTOB.h:37
void setPhi(int phi)
Definition ClusterTOB.h:47
unsigned int isolation() const
Definition ClusterTOB.h:35
static unsigned int nBitsEt()
Definition ClusterTOB.h:16
static const unsigned int g_nBitsIsolation
Definition ClusterTOB.h:66
static unsigned int nBitsEta()
Definition ClusterTOB.h:18
double m_phiDouble
Definition ClusterTOB.h:77
static unsigned int nBitsPhi()
Definition ClusterTOB.h:19
double etaDouble() const
Definition ClusterTOB.h:40
static thread_local Heap< TCS::ClusterTOB > fg_heap
Definition ClusterTOB.h:81
unsigned int Et() const
Definition ClusterTOB.h:34
void setTobType(inputTOBType_t tobType)
Definition ClusterTOB.h:60
double m_etaDouble
Definition ClusterTOB.h:76
unsigned int m_isolation
Definition ClusterTOB.h:71
void setPhiDouble(double phi)
Definition ClusterTOB.h:51
static const unsigned int g_nBitsPhi
Definition ClusterTOB.h:68
virtual void print(std::ostream &o) const
void setEtaDouble(double eta)
Definition ClusterTOB.h:50
unsigned int m_Et
Definition ClusterTOB.h:70
void setEt(unsigned int et)
Definition ClusterTOB.h:44
static void clearHeap()
ClusterTOB(uint32_t roiWord=0, const std::string &tobName="ClusterTOB")
double phiDouble() const
Definition ClusterTOB.h:41
static const unsigned int g_nBitsEta
Definition ClusterTOB.h:67
ClusterTOB(const ClusterTOB &cluster)
static const Heap< TCS::ClusterTOB > & heap()
Definition ClusterTOB.h:56
inputTOBType_t m_tobType
Definition ClusterTOB.h:79
virtual ~ClusterTOB()
void setIsolation(unsigned int et)
Definition ClusterTOB.h:45
static unsigned int nBitsIsolation()
Definition ClusterTOB.h:17
Extra patterns decribing particle interation process.