ATLAS Offline Software
LArFCalTowerBuilderTool.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef LARCLUSTERREC_LARFCALTOWERBUILDERTOOL_H
6 #define LARCLUSTERREC_LARFCALTOWERBUILDERTOOL_H
7 
21 #include "LArFCalTowerStore.h"
23 
25 
26 
27 class LArFCalTowerStore;
28 
29 class CaloTowerContainer;
30 class CaloTower;
32 
33 class LArFCAL_ID;
34 
36 {
37  public:
40 
42  LArFCalTowerBuilderTool(const std::string& name, const std::string& type,
43  const IInterface* parent);
44 
45  virtual ~LArFCalTowerBuilderTool();
46 
47  virtual StatusCode execute(const EventContext& ctx,
48  CaloTowerContainer* theContainer,
49  const CaloCellContainer* theCell=0,
50  const CaloTowerSeg::SubSeg* subseg = 0) const override;
51 
52 
61  virtual StatusCode execute (const EventContext& ctx,
62  CaloTowerContainer* theContainer) override;
63 
64 
65 private:
66 
67  double m_minEt;
68 
69  virtual StatusCode initializeTool() override;
70 
72 
73  void addTower (const tower_iterator& t,
74  const ElementLink<CaloCellContainer>& cellsEL,
75  CaloTower* tower) const;
77  const ElementLink<CaloCellContainer>& cellsEL) const;
79  const ElementLink<CaloCellContainer>& cellsEL,
80  const CaloTowerSeg::SubSeg* subseg) const;
81 
82 
86  StatusCode rebuildLookup(const EventContext& ctx);
87 
88 
89  // FCal only
91 
94 
97  mutable std::atomic_bool m_cellStoreInit{false};
98 
99 };
100 #endif
LArFCalTowerBuilderTool::~LArFCalTowerBuilderTool
virtual ~LArFCalTowerBuilderTool()
Definition: LArFCalTowerBuilderTool.cxx:38
LArFCalTowerBuilderTool::iterateFull
void iterateFull(CaloTowerContainer *towers, const ElementLink< CaloCellContainer > &cellsEL) const
Definition: LArFCalTowerBuilderTool.cxx:92
BeamSpot::mutex
std::mutex mutex
Definition: InDetBeamSpotVertex.cxx:18
LArFCalTowerBuilderTool::rebuildLookup
StatusCode rebuildLookup(const EventContext &ctx)
Rebuild the cell lookup table.
Definition: LArFCalTowerBuilderTool.cxx:206
LArFCalTowerBuilderTool::m_cellIdHelper
const CaloCell_ID * m_cellIdHelper
Definition: LArFCalTowerBuilderTool.h:92
LArFCalTowerBuilderTool::tower_iterator
LArFCalTowerStore::tower_iterator tower_iterator
Definition: LArFCalTowerBuilderTool.h:71
LArFCalTowerBuilderTool::m_minEt
double m_minEt
Definition: LArFCalTowerBuilderTool.h:67
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
CaloCell_ID.h
LArFCalTowerStore
Intermediate store for cell/tower maps.
Definition: LArFCalTowerStore.h:38
CaloTowerSeg::SubSeg
A rectangular window within the segmentation.
Definition: CaloTowerSeg.h:220
LArFCalTowerBuilderTool::m_larFCalId
const LArFCAL_ID * m_larFCalId
Definition: LArFCalTowerBuilderTool.h:93
CaloTowerContainer
Storable container class for CaloTower.
Definition: Calorimeter/CaloEvent/CaloEvent/CaloTowerContainer.h:77
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
CaloCell_Base_ID::SUBCALO
SUBCALO
enumeration of sub calorimeters
Definition: CaloCell_Base_ID.h:46
test_pyathena.parent
parent
Definition: test_pyathena.py:15
CaloCell_ID
Helper class for offline cell identifiers.
Definition: CaloCell_ID.h:34
LArFCalTowerBuilderTool::m_caloIndex
static const CaloCell_ID::SUBCALO m_caloIndex
Definition: LArFCalTowerBuilderTool.h:90
LArFCalTowerBuilderTool::operator=
LArFCalTowerBuilderTool & operator=(const LArFCalTowerBuilderTool &)=delete
LArFCalTowerBuilderTool::m_cellStore
LArFCalTowerStore m_cellStore
Definition: LArFCalTowerBuilderTool.h:95
CaloTower
Data class for calorimeter cell towers.
Definition: Calorimeter/CaloEvent/CaloEvent/CaloTower.h:55
LArFCalTowerBuilderTool::LArFCalTowerBuilderTool
LArFCalTowerBuilderTool(const LArFCalTowerBuilderTool &)=delete
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
LArFCalTowerStore.h
LArFCalTowerBuilderTool::initializeTool
virtual StatusCode initializeTool() override
Definition: LArFCalTowerBuilderTool.cxx:45
CaloCellContainer
Container class for CaloCell.
Definition: CaloCellContainer.h:55
LArFCalTowerBuilderTool::m_cellStoreInit
std::atomic_bool m_cellStoreInit
Definition: LArFCalTowerBuilderTool.h:97
LArFCalTowerBuilderTool::m_cellStoreMutex
std::mutex m_cellStoreMutex
Definition: LArFCalTowerBuilderTool.h:96
CaloDetDescrManager
This class provides the client interface for accessing the detector description information common to...
Definition: CaloDetDescrManager.h:473
RunTileMonitoring.towers
towers
Definition: RunTileMonitoring.py:133
LArFCalTowerStore::tower_iterator
tower_table_t::const_iterator tower_iterator
Definition: LArFCalTowerStore.h:50
LArFCalTowerBuilderTool
special tower builder for FCal
Definition: LArFCalTowerBuilderTool.h:36
CaloTowerBuilderToolBase
Definition: CaloTowerBuilderToolBase.h:31
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
LArFCalTowerBuilderTool::addTower
void addTower(const tower_iterator &t, const ElementLink< CaloCellContainer > &cellsEL, CaloTower *tower) const
Definition: LArFCalTowerBuilderTool.cxx:62
LArFCAL_ID
Helper class for LArFCAL offline identifiers.
Definition: LArFCAL_ID.h:60
LArFCalTowerBuilderTool::execute
virtual StatusCode execute(const EventContext &ctx, CaloTowerContainer *theContainer, const CaloCellContainer *theCell=0, const CaloTowerSeg::SubSeg *subseg=0) const override
Run tower building and add results to the tower container.
Definition: LArFCalTowerBuilderTool.cxx:128
CaloTowerBuilderToolBase.h
LArFCalTowerBuilderTool::iterateSubSeg
void iterateSubSeg(CaloTowerContainer *towers, const ElementLink< CaloCellContainer > &cellsEL, const CaloTowerSeg::SubSeg *subseg) const
Definition: LArFCalTowerBuilderTool.cxx:108