ATLAS Offline Software
Loading...
Searching...
No Matches
eFEXegAlgo.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//***************************************************************************
6// eFEXegAlgo.h -
7// -------------------
8// begin : 24 02 2020
9// email : antonio.jacques.costa@cern.ch ulla.blumenschein@cern.ch tong.qiu@cern.ch
10// ***************************************************************************/
11
12
13#ifndef eFEXegAlgo_H
14#define eFEXegAlgo_H
15
20
22
23namespace LVL1 {
24
25 //Doxygen class description below:
28
29 static const InterfaceID IID_IeFEXegAlgo("LVL1::eFEXegAlgo", 1, 0);
30
31 class eFEXegAlgo : public AthAlgTool {
32
33 public:
35 eFEXegAlgo(const std::string& type, const std::string& name, const IInterface* parent);
36
37 static const InterfaceID& interfaceID() { return IID_IeFEXegAlgo; };
39 virtual StatusCode initialize();
40
42 virtual ~eFEXegAlgo();
43
44 virtual StatusCode safetyTest() const;
45 virtual void setup(int inputTable[3][3], int efex_id, int fpga_id, int central_eta);
46
47 virtual void getReta(std::vector<unsigned int> & );
48 virtual void getRhad(std::vector<unsigned int> & );
49 virtual void getWstot(std::vector<unsigned int> & );
50 virtual void getRealPhi(float & phi);
51 virtual void getRealEta(float & eta);
52 virtual std::unique_ptr<eFEXegTOB> geteFEXegTOB();
53 virtual void getClusterCells(std::vector<unsigned int> &cellETs);
54 virtual unsigned int getET();
55 virtual unsigned int dmCorrection(unsigned int ET, unsigned int layer);
56 virtual void getWindowET(int layer, int jPhi, int SCID, unsigned int &);
57 virtual bool hasSeed() const {return m_hasSeed;};
58 virtual unsigned int getSeed() const {return m_seedID;};
59 virtual unsigned int getUnD() const {return m_seed_UnD;};
60 virtual void getCoreEMTowerET(unsigned int & et);
61 virtual void getCoreHADTowerET(unsigned int & et);
62 virtual void getSums(unsigned int seed, bool UnD,
63 std::vector<unsigned int> & RetaSums,
64 std::vector<unsigned int> & RhadSums,
65 std::vector<unsigned int> & WstotSums);
66 private:
67 void setSeed();
68 bool m_seed_UnD = false;
69 unsigned int m_seedID = 999;
71 int m_efexid{};
72 int m_fpgaid{};
74 bool m_hasSeed{};
75
77 {
78 public:
79 Corrections() = default;
80 Corrections (const CondAttrListCollection& dmCorrections, MsgStream& msg);
81 int corr (unsigned int layer, unsigned int ieta) const
82 { return m_corrections[layer][ieta]; }
83 private:
84 int m_corrections[3][25] = {
85 {0,0,0,0,0,0,0,0x8,0,0,0xb,0x4,0x8,0x9,0x34,0x7e,0x7b,0x6b,0,0,0,0,0,0,0xc},
86 {0xe,0x12,0x12,0x12,0x12,0x13,0x18,0x17,0x42,0x40,0x38,0x3d,0x3b,0x4e,0x2d,0xc,0x10,0x4,0x27,0x19,0x19,0x16,0x12,0x10,0xc},
87 {0xb,0x8,0x8,0x8,0x8,0x8,0x7,0x9,0x8,0x8,0x8,0x7,0x8,0x8,0x21,0x2,0x2,0x4,0x6,0x8,0x8,0x8,0x9,0x10,0x12}
88 };
89 };
90 mutable Corrections m_corrections ATLAS_THREAD_SAFE;
91
92 // Enable dead material corrections
93 Gaudi::Property<bool> m_dmCorr {this, "dmCorr", false, "Enable dead material correctionst"};
94 Gaudi::Property<int> m_algoVersion {this, "algoVersion", 0, "AlgoVersion, part of the L1Menu spec"};
95
96 // Key for input towers
97 SG::ReadHandleKey<LVL1::eTowerContainer> m_eTowerContainerKey {this, "MyETowers", "eTowerContainer", "Input container for eTowers"};
98
99 // Key for reading dm corrections
101 "Key to dead material corrections (AttrListCollection)"};
102
103 };
104
105} // end of namespace
106
107//CLASS_DEF( LVL1::eFEXegAlgo, 32202260 , 1 )
108
109#endif
Scalar eta() const
pseudorapidity method
Scalar phi() const
phi method
This file defines the class for a collection of AttributeLists where each one is associated with a ch...
macros to associate a CLID to a type
AthAlgTool(const std::string &type, const std::string &name, const IInterface *parent)
Constructor with parameters:
MsgStream & msg() const
This class is a collection of AttributeLists where each one is associated with a channel number.
int corr(unsigned int layer, unsigned int ieta) const
Definition eFEXegAlgo.h:81
virtual ~eFEXegAlgo()
Destructor.
Corrections m_corrections ATLAS_THREAD_SAFE
Definition eFEXegAlgo.h:90
virtual bool hasSeed() const
Definition eFEXegAlgo.h:57
virtual unsigned int getET()
virtual void getReta(std::vector< unsigned int > &)
virtual void getRealPhi(float &phi)
int m_eFEXegAlgoTowerID[3][3]
Definition eFEXegAlgo.h:70
SG::ReadHandleKey< LVL1::eTowerContainer > m_eTowerContainerKey
Definition eFEXegAlgo.h:97
Gaudi::Property< int > m_algoVersion
Definition eFEXegAlgo.h:94
virtual void setup(int inputTable[3][3], int efex_id, int fpga_id, int central_eta)
virtual void getRealEta(float &eta)
virtual unsigned int getSeed() const
Definition eFEXegAlgo.h:58
virtual std::unique_ptr< eFEXegTOB > geteFEXegTOB()
virtual void getSums(unsigned int seed, bool UnD, std::vector< unsigned int > &RetaSums, std::vector< unsigned int > &RhadSums, std::vector< unsigned int > &WstotSums)
virtual StatusCode initialize()
standard Athena-Algorithm method
SG::ReadCondHandleKey< CondAttrListCollection > m_dmCorrectionsKey
Definition eFEXegAlgo.h:100
eFEXegAlgo(const std::string &type, const std::string &name, const IInterface *parent)
Constructors.
virtual unsigned int dmCorrection(unsigned int ET, unsigned int layer)
virtual void getCoreEMTowerET(unsigned int &et)
virtual void getWstot(std::vector< unsigned int > &)
unsigned int m_seedID
Definition eFEXegAlgo.h:69
virtual void getWindowET(int layer, int jPhi, int SCID, unsigned int &)
virtual unsigned int getUnD() const
Definition eFEXegAlgo.h:59
virtual void getClusterCells(std::vector< unsigned int > &cellETs)
Return cell ET values used in cluster.
Gaudi::Property< bool > m_dmCorr
Definition eFEXegAlgo.h:93
static const InterfaceID & interfaceID()
Definition eFEXegAlgo.h:37
virtual void getRhad(std::vector< unsigned int > &)
virtual StatusCode safetyTest() const
virtual void getCoreHADTowerET(unsigned int &et)
Property holding a SG store/key/clid from which a ReadHandle is made.
eFexTowerBuilder creates xAOD::eFexTowerContainer from supercells (LATOME) and triggerTowers (TREX) i...
static const InterfaceID IID_IeFEXegAlgo("LVL1::eFEXegAlgo", 1, 0)
The eFEXegAlgo class calculates the egamma TOB variables: Reta, Rhad and Wstot.
Extra patterns decribing particle interation process.