ATLAS Offline Software
Loading...
Searching...
No Matches
L1TopoRatesCalculator.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#ifndef RATESANALYSIS_L1TOPORATESCALCULATOR_H
6#define RATESANALYSIS_L1TOPORATESCALCULATOR_H 1
7
11
12/* L1TopoSim results access
13 */
17
18//for hw data access
20
21/* Including L1Menu connectors
22 */
24#include "TrigConfData/L1Menu.h"
27#include <vector>
28#include <cstdint>
29#include <unordered_map>
30
32 public:
33 L1TopoRatesCalculator( const std::string& name, ISvcLocator* pSvcLocator );
34
35 SG::ReadHandleKey<xAOD::TrigDecision> m_trigDecisionKey{this, "TrigDecisionKey", "xTrigDecision"};
36 SG::ReadHandleKey<xAOD::L1TopoSimResultsContainer> m_l1topoKey {this, "L1_TopoKey", "L1_TopoSimResults", "l1topo EDM"};
37
38 virtual StatusCode initialize() override;
39 virtual StatusCode ratesInitialize() override;
40 virtual StatusCode ratesExecute() override;
41 virtual StatusCode ratesFinalize() override;
42 protected:
43 std::vector<double> m_EB_weight;
44 std::vector<std::string> m_RCM_nameOrder;
45 private:
46 TH2D* m_ratesMatrixHist{}; // Rates Matrix
47 TH2D* m_countsMatrixHist{}; // Counts Matrix
48 TH2D* m_L1TopoScoreMatrixHist{}; // L1TopoScore Matrix
50 unsigned int conID{};
51 unsigned int flatindex{};
52 unsigned int nBit{};
53 unsigned int clock{};
54 bool fromSim{};
55 bool overflow{};
56 };
57
58 Gaudi::Property<std::vector<std::string>> m_L1_items_json{this, "m_L1_items_json", {}, "L1 trigger items"};
59 Gaudi::Property<std::vector<std::string>> m_userDefinedNames{this, "m_userDefinedNames", {}, "user Defined Names"};
60 Gaudi::Property<std::vector<std::string>> m_userDefinedDefinitions{this, "m_userDefinedDefinitions", {}, "user Defined definitions"};
61 std::unordered_map<std::string, std::string> m_userDefinedMap;
62
63 std::vector<std::string> m_L1_items;
64 std::vector<std::string> m_L1_item_definitions;
65 std::vector<std::string> m_beforeCTP_triggers;
66 std::vector<std::string> m_beforeCTP_triggers_mult;
67 std::vector<ResultDefinition> m_definitions;
68 std::vector<std::vector<double>> m_rates_matrix;
69 std::vector<std::vector<double>> m_rates_matrix2;
70 std::vector<std::vector<double>> m_rates_matrix_TDT;
71 std::vector<std::vector<double>> m_rates_matrix2_TDT;
72 std::vector<std::vector<double>> m_counts_matrix_TDT;
73 std::vector<std::vector<double>> m_count_matrix;
74 std::vector<std::vector<double>> m_L1TopoScore_matrix;
75 std::vector<std::vector<double>> m_L1TopoScore_errors;
76 std::vector<double> m_denominator;
78 struct TriggerInfo {
79 std::vector<std::string> triggers;
80 std::vector<std::string> operations;
81 };
82
83 std::map<std::string, TriggerInfo> m_triggerMap;
84 uint32_t extractResult(const std::vector<uint32_t>& connectorContents, const L1TopoRatesCalculator::ResultDefinition& definition, unsigned int startOffset);
86 bool getTOBblockFromProcessor(const std::vector<uint32_t>& allDataBlock, std::vector<uint32_t>& tobBlock, uint32_t fpgaPattern);
88 Gaudi::Property<float> m_lumi{this, "TargetLuminosity", 2e34, "Targer inst. luminosity, assuming full ring."};
89};
90
91#endif //> !RATESANALYSIS_RATESEMULATIONEXAMPLE_H
Templated class that provides access to Athena event stores and ability to set data dependencies via ...
Property holding a SG store/key/clid from which a ReadHandle is made.
Property holding a SG store/key/clid from which a WriteHandle is made.
virtual StatusCode ratesInitialize() override
To be implemented by the user.
std::vector< std::string > m_L1_items
L1TopoRatesCalculator(const std::string &name, ISvcLocator *pSvcLocator)
SG::ReadHandleKey< xAOD::TrigDecision > m_trigDecisionKey
std::vector< std::vector< double > > m_rates_matrix
Gaudi::Property< std::vector< std::string > > m_userDefinedDefinitions
Gaudi::Property< float > m_lumi
SG::ReadHandleKey< xAOD::L1TopoSimResultsContainer > m_l1topoKey
std::vector< double > m_EB_weight
virtual StatusCode initialize() override
Get the trigger decision tool and set up global groups.
std::map< std::string, TriggerInfo > m_triggerMap
std::vector< ResultDefinition > m_definitions
std::vector< std::string > m_RCM_nameOrder
std::vector< std::string > m_L1_item_definitions
virtual StatusCode ratesExecute() override
To be implemented by the user.
std::vector< std::vector< double > > m_count_matrix
std::vector< std::vector< double > > m_L1TopoScore_matrix
std::vector< std::vector< double > > m_counts_matrix_TDT
uint32_t extractResult(const std::vector< uint32_t > &connectorContents, const L1TopoRatesCalculator::ResultDefinition &definition, unsigned int startOffset)
virtual StatusCode ratesFinalize() override
To be implemented by the user.
std::vector< std::vector< double > > m_rates_matrix2_TDT
Gaudi::Property< std::vector< std::string > > m_userDefinedNames
std::vector< std::vector< double > > m_rates_matrix_TDT
Gaudi::Property< std::vector< std::string > > m_L1_items_json
std::vector< std::string > m_beforeCTP_triggers
uint32_t L1TopoSimResultsContainer_decoder(const L1TopoRatesCalculator::ResultDefinition &definition, SG::ReadHandle< xAOD::L1TopoSimResultsContainer > &cont)
std::vector< std::vector< double > > m_rates_matrix2
std::vector< std::string > m_beforeCTP_triggers_mult
std::vector< std::vector< double > > m_L1TopoScore_errors
std::vector< double > m_denominator
std::unordered_map< std::string, std::string > m_userDefinedMap
uint32_t getHWvalue(const L1TopoRatesCalculator::ResultDefinition &definition)
bool getTOBblockFromProcessor(const std::vector< uint32_t > &allDataBlock, std::vector< uint32_t > &tobBlock, uint32_t fpgaPattern)
RatesAnalysisAlg(const std::string &name, ISvcLocator *pSvcLocator)
Property holding a SG store/key/clid from which a ReadHandle is made.
std::vector< std::string > operations