28 Tile::MAX_ROS, nL1Triggers);
31 Tile::MAX_ROS, nL1Triggers);
48 int nTowers[
MAX_PART] = { 0, 0, 0, 0, 0 };
56 const CaloTower* mostEnTower = *std::max_element(caloTowerContainer->begin(), caloTowerContainer->end(),
58 return tower1->energy() < tower2->energy();
62 double mostEnTowerPhi = 0.0;
64 if (mostEnTower->
energy() > 0.0) {
65 mostEnTowerPhi = mostEnTower->
phi();
69 for (
int l1TriggerIdx : l1TriggersIndices) {
76 for (
int l1TriggerIdx : l1TriggersIndices) {
85 double correlTowerEnergy = 0.0;
87 for (
const CaloTower* tower : *caloTowerContainer) {
89 double energy = tower->energy();
91 if (tower->getNumberOfCells() > 0) {
98 for (
int l1TriggerIdx : l1TriggersIndices) {
105 if (tower->phi() * mostEnTowerPhi < 0.0
106 && tower->energy() > correlTowerEnergy) {
108 correlTowerEnergy = tower->
energy();
113 <<
", Energy= " << energy
114 <<
", Et()= " << tower->et()
115 <<
", Eta= " << tower->eta()
116 <<
", Phi= " << tower->phi() );
123 if (mostEnTower->
energy() > 0.0 && correlTower) {
124 float etaDelta = std::abs(correlTower->
eta()) - std::abs(mostEnTower->
eta());
125 float phiDelta = std::abs(correlTower->
phi() - mostEnTower->
phi());
129 for (
int l1TriggerIdx : l1TriggersIndices) {
135 fill(
"TileTowerMonExecuteTime", timer);
137 return StatusCode::SUCCESS;
#define ATH_CHECK
Evaluate an expression and check for errors.
#define ATH_MSG_VERBOSE(x)
Handle class for reading from StoreGate.
const ServiceHandle< StoreGateSvc > & detStore() const
SG::ReadHandle< xAOD::EventInfo > GetEventInfo(const EventContext &) const
Return a ReadHandle for an EventInfo object (get run/event numbers, etc.)
ToolHandleArray< GenericMonitoringTool > m_tools
Array of Generic Monitoring Tools.
cell_iterator cell_begin() const
Retrieve a STL-type begin() iterator for the cell store.
Data class for calorimeter cell towers.
virtual double energy() const override final
get energy data member
virtual double phi() const override final
get phi data member
virtual double eta() const override final
get eta data member
Declare a monitored scalar variable.
virtual double et() const
transverse energy defined to be e*sin(theta)
virtual bool isValid() override final
Can the handle be successfully dereferenced?
Static class providing several utility functions and constants.
int getNumberOfL1Triggers(void) const
Return number of L1 triggers for which histograms should be filled.
virtual StatusCode initialize() override
initialize
std::vector< int > getL1TriggerIndices(uint32_t lvl1TriggerType) const
Return indices of histograms to be filled according fired L1 trigger type.
Partition getPartition(const CaloCell *cell, const TileID *tileID) const
Return Partition for Tile cell or MAX_PART otherwise.
virtual StatusCode initialize() override
initialize
std::vector< int > m_towerEtaPhiDiffGroups
std::vector< int > m_towerEtaPhiGroups
SG::ReadHandleKey< CaloTowerContainer > m_caloTowerContainerKey
virtual StatusCode fillHistograms(const EventContext &ctx) const override
adds event to the monitoring histograms
std::vector< std::vector< int > > m_towerEtGroups
std::vector< std::vector< int > > m_towerEnergyGroups
uint16_t level1TriggerType() const
The Level-1 trigger type.
Generic monitoring tool for athena components.
std::vector< V > buildToolMap(const ToolHandleArray< GenericMonitoringTool > &tools, const std::string &baseName, int nHist)
Builds an array of indices (base case)
EventInfo_v1 EventInfo
Definition of the latest event info version.
void fill(H5::Group &out_file, size_t iterations)