ATLAS Offline Software
jTowerBuilder.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 
6 #ifndef JTOWERBUILDER_H
7 #define JTOWERBUILDER_H
8 
9 // STL
10 #include <string>
11 
12 // Athena/Gaudi
17 #include "L1CaloFEXSim/jTower.h"
21 
22 #include "TH1F.h"
23 #include "TH1I.h"
24 #include "TFile.h"
25 
26 class CaloIdManager;
27 
28 namespace LVL1 {
29 
30 class jTowerBuilder: public AthAlgTool, virtual public IjTowerBuilder {
31 
32  public:
33  jTowerBuilder(const std::string& type,const std::string& name,const IInterface* parent);
34  virtual ~jTowerBuilder() = default;
35  virtual StatusCode initialize() override;
36 
37  virtual void init(std::unique_ptr<jTowerContainer> & jTowerContainerRaw) const override ;
38  virtual void execute(std::unique_ptr<jTowerContainer> & jTowerContainerRaw) const override ;
39  virtual void reset() const override ;
40  virtual StatusCode AssignPileupAndNoiseValues (std::unique_ptr<jTowerContainer> & jTowerContainerRaw) const override;
41 
42 
43 
44  private:
45  void BuildEMBjTowers (std::unique_ptr<jTowerContainer> & jTowerContainerRaw) const;
46  void BuildTRANSjTowers(std::unique_ptr<jTowerContainer> & jTowerContainerRaw) const;
47  void BuildEMEjTowers (std::unique_ptr<jTowerContainer> & jTowerContainerRaw) const;
48  void BuildEMIEjTowers (std::unique_ptr<jTowerContainer> & jTowerContainerRaw) const;
49  void BuildFCALjTowers (std::unique_ptr<jTowerContainer> & jTowerContainerRaw) const;
50  void BuildHECjTowers (std::unique_ptr<jTowerContainer> & jTowerContainerRaw) const;
51  void BuildAllTowers (std::unique_ptr<jTowerContainer> & jTowerContainerRaw) const;
52  void BuildSingleTower (std::unique_ptr<jTowerContainer> & jTowerContainerRaw,float eta, float phi, int key_eta, float keybase, int posneg, float centre_eta = 0.0, float centre_phi = 0.0, int fcal_layer = -1) const;
53 
54  static constexpr float m_TT_Size_phi = M_PI/32;
55  static constexpr float m_TT_Size_phi_FCAL = M_PI/16;
56 
57  SG::ReadCondHandleKey<jFEXDBCondData> m_BDToolKey {this, "BDToolKey", "jFEXDBParams", "DB tool key"};
58 
59 
60 };
61 
62 } // end of LVL1 namespace
63 #endif
LVL1::jTowerBuilder::m_BDToolKey
SG::ReadCondHandleKey< jFEXDBCondData > m_BDToolKey
Definition: jTowerBuilder.h:57
LVL1::jTowerBuilder
Definition: jTowerBuilder.h:30
LVL1::jTowerBuilder::m_TT_Size_phi
static constexpr float m_TT_Size_phi
Definition: jTowerBuilder.h:54
LVL1::jTowerBuilder::BuildHECjTowers
void BuildHECjTowers(std::unique_ptr< jTowerContainer > &jTowerContainerRaw) const
Definition: jTowerBuilder.cxx:265
LVL1::IjTowerBuilder
Definition: IjTowerBuilder.h:28
LVL1::jTowerBuilder::BuildTRANSjTowers
void BuildTRANSjTowers(std::unique_ptr< jTowerContainer > &jTowerContainerRaw) const
Definition: jTowerBuilder.cxx:82
jFEXDBCondData.h
M_PI
#define M_PI
Definition: ActiveFraction.h:11
LVL1
eFexTowerBuilder creates xAOD::eFexTowerContainer from supercells (LATOME) and triggerTowers (TREX) i...
Definition: ICMMCPHitsCnvTool.h:18
AthAlgorithm.h
LVL1::jTowerBuilder::~jTowerBuilder
virtual ~jTowerBuilder()=default
CaloIdManager
This class initializes the Calo (LAr and Tile) offline identifiers.
Definition: CaloIdManager.h:45
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
AthAlgTool.h
test_pyathena.parent
parent
Definition: test_pyathena.py:15
LVL1::jTowerBuilder::BuildEMIEjTowers
void BuildEMIEjTowers(std::unique_ptr< jTowerContainer > &jTowerContainerRaw) const
Definition: jTowerBuilder.cxx:158
LVL1::jTowerBuilder::init
virtual void init(std::unique_ptr< jTowerContainer > &jTowerContainerRaw) const override
Definition: jTowerBuilder.cxx:39
LVL1::jTowerBuilder::BuildEMBjTowers
void BuildEMBjTowers(std::unique_ptr< jTowerContainer > &jTowerContainerRaw) const
Definition: jTowerBuilder.cxx:68
TrigConf::name
Definition: HLTChainList.h:35
ReadCondHandleKey.h
jTowerContainer.h
LVL1::jTowerBuilder::BuildEMEjTowers
void BuildEMEjTowers(std::unique_ptr< jTowerContainer > &jTowerContainerRaw) const
Definition: jTowerBuilder.cxx:98
LVL1::jTowerBuilder::initialize
virtual StatusCode initialize() override
Definition: jTowerBuilder.cxx:30
CaloCellContainer.h
LVL1::jTowerBuilder::m_TT_Size_phi_FCAL
static constexpr float m_TT_Size_phi_FCAL
Definition: jTowerBuilder.h:55
IjTowerBuilder.h
SG::ReadCondHandleKey
Definition: ReadCondHandleKey.h:20
LVL1::jTowerBuilder::jTowerBuilder
jTowerBuilder(const std::string &type, const std::string &name, const IInterface *parent)
Definition: jTowerBuilder.cxx:26
LVL1::jTowerBuilder::AssignPileupAndNoiseValues
virtual StatusCode AssignPileupAndNoiseValues(std::unique_ptr< jTowerContainer > &jTowerContainerRaw) const override
Definition: jTowerBuilder.cxx:300
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
LVL1::jTowerBuilder::BuildSingleTower
void BuildSingleTower(std::unique_ptr< jTowerContainer > &jTowerContainerRaw, float eta, float phi, int key_eta, float keybase, int posneg, float centre_eta=0.0, float centre_phi=0.0, int fcal_layer=-1) const
Definition: jTowerBuilder.cxx:292
AthAlgTool
Definition: AthAlgTool.h:26
LVL1::jTowerBuilder::reset
virtual void reset() const override
Definition: jTowerBuilder.cxx:49
LVL1::jTowerBuilder::execute
virtual void execute(std::unique_ptr< jTowerContainer > &jTowerContainerRaw) const override
Definition: jTowerBuilder.cxx:54
jTower.h
LVL1::jTowerBuilder::BuildFCALjTowers
void BuildFCALjTowers(std::unique_ptr< jTowerContainer > &jTowerContainerRaw) const
Definition: jTowerBuilder.cxx:189
LVL1::jTowerBuilder::BuildAllTowers
void BuildAllTowers(std::unique_ptr< jTowerContainer > &jTowerContainerRaw) const
Definition: jTowerBuilder.cxx:350