ATLAS Offline Software
L1CaloCells2TriggerTowers.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef TRIGT1CALOCALIBTOOLS_L1CALOCELLS2TRIGGERTOWERS_H
6 #define TRIGT1CALOCALIBTOOLS_L1CALOCELLS2TRIGGERTOWERS_H
7 
8 // Athena Includes
9 #include "AsgTools/AsgTool.h"
11 #include "GaudiKernel/ToolHandle.h"
13 
14 // Calo includes
17 #include "CaloIdentifier/TileID.h"
19 #include "CaloEvent/CaloCell.h"
21 
22 // LAr includes
24 #include "LArRawEvent/LArDigit.h"
26 
27 // Tile includes
29 #include "TileEvent/TileDigits.h"
31 
32 // PABC interface include
34 
35 // STL includes
36 #include <map>
37 #include <vector>
38 #include <string>
39 
40 
50 namespace LVL1 {
51 
52 class
54 {
57 public:
59  L1CaloCells2TriggerTowers( const std::string& name );
67 
68  virtual StatusCode initialize() override;
69  virtual StatusCode finalize() override;
70 
71  // To associate CaloCell to the trigger tower they belong to
72  // This method must be called before any other method in order
73  // to setup correctly the CaloCell-TT map
74  virtual bool initCaloCellsTriggerTowers(const CaloCellContainer& cellContainer) override;
75  virtual bool initLArDigitsTriggerTowers(const LArDigitContainer& larDigitContainer) override;
76  virtual bool initTileDigitsTriggerTowers(const TileDigitsContainer& tileDigitsContainer) override;
77 
78  // John Morris <john.morris@cern.ch> 15/2/2011
79  // Moving most useful functions to the top of this file for clarity
80  virtual std::vector<const CaloCell*> caloCells(const Identifier& ttId) const override;
81  virtual std::vector<std::vector<const CaloCell*> > caloCellsByLayer(const Identifier& ttId) const override;
82  virtual std::vector<int> layerNames(const Identifier& ttID) const override;
83  virtual int layerNames(const CaloCell* cell) const override;
84  virtual float energy(const std::vector<const CaloCell*> &cells) const override;
85  virtual float et(const std::vector<const CaloCell*> &cells) const override;
86  virtual float energy(const Identifier& ttId) const override;
87  virtual float et(const Identifier& ttId) const override;
88 
89  // Return a vector digits belonging the to requested trigger tower
90  virtual std::vector<double> samples(const Identifier& ttId) const override;
91  virtual std::vector<const LArDigit*> larDigits(const Identifier& ttId) const override;
92  virtual std::vector<const TileDigits*> tileDigits(const Identifier& ttId) const override;
93 
94  virtual void dumpCaloCells() const override;
95  virtual void dumpCaloCells(const Identifier& ttId) const override;
96 
97  virtual void dumpDigits(const Identifier& ttId) const override;
98 
99  virtual void dumpLArDigits(const Identifier& ttId) const override; /* ttId must be a LAr TTId */
100  virtual void dumpLArDigits() const override;
101 
102  virtual void dumpTileDigits(const Identifier& ttId) const override; /* ttId must be a Tile TTId */
103  virtual void dumpTileDigits() const override;
104 
105 protected:
106  virtual float calcEnergyOrEt(const std::vector<const CaloCell*> &cells, const unsigned int mode) const override;
107 
108  virtual void reset() override;
109  virtual void resetCaloCells() override;
110  virtual void resetLArDigits() override;
111  virtual void resetTileDigits() override;
112 
113 
114  virtual void dump(const std::vector<const CaloCell*>& vCells) const override;
115  virtual void dump(const std::vector<const LArDigit*>& vCells) const override;
116  virtual void dump(const std::vector<const TileDigits*>& vCells) const override;
117 
118 private:
119  // Id helpers
121  const TileID* m_tileID;
123 
124  // Services
126  {this,"CablingKey","LArOnOffIdMap","SG Key of LArOnOffIdMapping object"};
127  ToolHandle<LVL1::IL1CaloMatchCell2Tower> m_cellMatch
128  { this, "L1CaloMatchCell2Tower", "LVL1::L1CaloMatchCell2Tower", "L1CaloMatchCell2Tower" };
131 
135 
136  // Offline TT Id - vector of CaloCell map
137  std::map<unsigned int, std::vector<const CaloCell*> > m_mTTCaloCells;
138  std::map<unsigned int, std::vector<const LArDigit*> > m_mTTLArDigits;
139  std::map<unsigned int, std::vector<const TileDigits*> > m_mTTTileDigits;
140 
141 };
142 } // end of namespace
143 #endif
CoreClass.layerNames
dictionary layerNames
Definition: CoreClass.py:22
RunTileCalibRec.cells
cells
Definition: RunTileCalibRec.py:271
LVL1::L1CaloCells2TriggerTowers::m_tileID
const TileID * m_tileID
Definition: L1CaloCells2TriggerTowers.h:121
LVL1::L1CaloCells2TriggerTowers
Definition: L1CaloCells2TriggerTowers.h:54
LVL1::L1CaloCells2TriggerTowers::m_mTTCaloCells
std::map< unsigned int, std::vector< const CaloCell * > > m_mTTCaloCells
Definition: L1CaloCells2TriggerTowers.h:137
python.tests.PyTestsLib.finalize
def finalize(self)
_info( "content of StoreGate..." ) self.sg.dump()
Definition: PyTestsLib.py:53
asg::AsgTool
Base class for the dual-use tool implementation classes.
Definition: AsgTool.h:47
ReadCellNoiseFromCool.cell
cell
Definition: ReadCellNoiseFromCool.py:53
LVL1::L1CaloCells2TriggerTowers::operator=
L1CaloCells2TriggerTowers & operator=(const L1CaloCells2TriggerTowers &rhs)=delete
LVL1::L1CaloCells2TriggerTowers::m_lvl1Helper
const CaloLVL1_ID * m_lvl1Helper
Definition: L1CaloCells2TriggerTowers.h:120
xAOD::et
et
Definition: TrigEMCluster_v1.cxx:25
LVL1::L1CaloCells2TriggerTowers::~L1CaloCells2TriggerTowers
virtual ~L1CaloCells2TriggerTowers()
destructor
Definition: L1CaloCells2TriggerTowers.h:61
initialize
void initialize()
Definition: run_EoverP.cxx:894
LVL1::L1CaloCells2TriggerTowers::L1CaloCells2TriggerTowers
L1CaloCells2TriggerTowers()=delete
delete the big 4
CaloTriggerTowerService
Tool providing the mapping of the online and offline TriggerTower identifiers as well as the TT-cells...
Definition: CaloTriggerTowerService.h:50
IL1CaloCells2TriggerTowers.h
CaloCell.h
LVL1::IL1CaloCells2TriggerTowers
Definition: IL1CaloCells2TriggerTowers.h:32
LVL1::L1CaloCells2TriggerTowers::m_mTTLArDigits
std::map< unsigned int, std::vector< const LArDigit * > > m_mTTLArDigits
Definition: L1CaloCells2TriggerTowers.h:138
LVL1::L1CaloCells2TriggerTowers::m_bLArDigitsInitialized
bool m_bLArDigitsInitialized
Definition: L1CaloCells2TriggerTowers.h:133
TileDigitsContainer
Definition: TileDigitsContainer.h:13
LVL1
eFexTowerBuilder creates xAOD::eFexTowerContainer from supercells (LATOME) and triggerTowers (TREX) i...
Definition: ICMMCPHitsCnvTool.h:18
LVL1::L1CaloCells2TriggerTowers::m_caloCellHelper
const CaloCell_ID * m_caloCellHelper
Definition: L1CaloCells2TriggerTowers.h:122
TileID.h
LArOnOffIdMapping.h
LArDigit.h
ParticleGun_FastCalo_ChargeFlip_Config.energy
energy
Definition: ParticleGun_FastCalo_ChargeFlip_Config.py:78
TileCablingService.h
TileID
Helper class for TileCal offline identifiers.
Definition: TileID.h:68
TileDigitsContainer.h
Identifier
Definition: DetectorDescription/Identifier/Identifier/Identifier.h:32
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
01SubmitToGrid.samples
samples
Definition: 01SubmitToGrid.py:58
Preparation.mode
mode
Definition: Preparation.py:95
CaloJiveXML_DataTypes.tileDigitsContainer
string tileDigitsContainer
Definition: CaloJiveXML_DataTypes.py:11
CaloCell_ID
Helper class for offline cell identifiers.
Definition: CaloCell_ID.h:34
TileCablingService
Definition: TileCablingService.h:23
python.ChapPy.dump
def dump(buf, stdout=sys.stdout)
Definition: ChapPy.py:25
LVL1::L1CaloCells2TriggerTowers::L1CaloCells2TriggerTowers
L1CaloCells2TriggerTowers(const L1CaloCells2TriggerTowers &rhs)=delete
LVL1::L1CaloCells2TriggerTowers::m_mTTTileDigits
std::map< unsigned int, std::vector< const TileDigits * > > m_mTTTileDigits
Definition: L1CaloCells2TriggerTowers.h:139
TrigConf::name
Definition: HLTChainList.h:35
ReadCondHandleKey.h
IL1CaloMatchCell2Tower.h
Map from calo cells to trigger towers.
CaloLVL1_ID
Helper class for offline TT identifiers.
Definition: CaloLVL1_ID.h:66
LArDigitContainer.h
CaloCellContainer.h
CaloCellContainer
Container class for CaloCell.
Definition: CaloCellContainer.h:55
SG::ReadCondHandleKey< LArOnOffIdMapping >
LVL1::L1CaloCells2TriggerTowers::m_bInitialized
bool m_bInitialized
Definition: L1CaloCells2TriggerTowers.h:132
LVL1::L1CaloCells2TriggerTowers::L1CaloCells2TriggerTowers
L1CaloCells2TriggerTowers(L1CaloCells2TriggerTowers &&rhs)=delete
CaloLVL1_ID.h
CaloCell
Data object for each calorimeter readout cell.
Definition: CaloCell.h:57
LVL1::L1CaloCells2TriggerTowers::m_tileCablingService
const TileCablingService * m_tileCablingService
Definition: L1CaloCells2TriggerTowers.h:129
CaloTriggerTowerService.h
ASG_TOOL_CLASS
#define ASG_TOOL_CLASS(CLASSNAME, INT1)
Definition: AsgToolMacros.h:68
CxxUtils::reset
constexpr std::enable_if_t< is_bitmask_v< E >, E & > reset(E &lhs, E rhs)
Convenience function to clear bits in a class enum bitmask.
Definition: bitmask.h:243
LVL1::L1CaloCells2TriggerTowers::m_ttSvc
CaloTriggerTowerService * m_ttSvc
Definition: L1CaloCells2TriggerTowers.h:130
LArDigitContainer
Container class for LArDigit.
Definition: LArDigitContainer.h:24
CaloIdManager.h
AsgTool.h
TileDigits.h
LVL1::L1CaloCells2TriggerTowers::m_bTileDigitsInitialized
bool m_bTileDigitsInitialized
Definition: L1CaloCells2TriggerTowers.h:134