4#ifndef TRIGT1CALOMONITORING_JFEXSIMMONITORALGORITHM_H
5#define TRIGT1CALOMONITORING_JFEXSIMMONITORALGORITHM_H
28 virtual StatusCode
fillHistograms(
const EventContext& ctx )
const override;
54 template <
typename T>
bool compareRoI(
const std::string&
label,
const std::string& evenType,
57 const EventContext& ctx,
bool simReadyFlag=
false,
size_t maxTobs=0)
const;
69 template <
typename T>
void fillVectors(
const SG::ReadHandleKey<T>& key,
const EventContext& ctx, std::vector<float>& etas, std::vector<float>& phis, std::vector<unsigned int>& word0s)
const {
70 etas.clear();phis.clear();word0s.clear();
73 etas.reserve(tobs->size());
74 phis.reserve(tobs->size());
75 word0s.reserve(tobs->size());
76 std::vector<SortableTob> sortedTobs;
77 sortedTobs.reserve(tobs->size());
78 for(
const auto tob : *tobs) {
79 sortedTobs.emplace_back(SortableTob{tob->tobWord(),tob->eta(),tob->phi()});
81 std::sort(sortedTobs.begin(),sortedTobs.end(),[](
const SortableTob& lhs,
const SortableTob& rhs) { return lhs.word0<rhs.word0; });
82 for(
const auto& tob : sortedTobs) {
83 etas.push_back(tob.eta);
84 phis.push_back(tob.phi);
85 word0s.push_back(tob.word0);
Header file to be included by clients of the Monitored infrastructure.
Property holding a SG store/key/clid from which a ReadHandle is made.
AthMonitorAlgorithm(const std::string &name, ISvcLocator *pSvcLocator)
Constructor.
SG::ReadHandleKey< xAOD::jFexLRJetRoIContainer > m_data_key_jLJ
SG::ReadHandleKey< xAOD::jFexMETRoIContainer > m_simu_key_jXE
SG::ReadHandleKey< xAOD::jFexFwdElRoIContainer > m_simu_key_jEM
SG::ReadHandleKey< xAOD::jFexTowerContainer > m_jFexTowerKey
SG::ReadHandleKey< xAOD::jFexTauRoIContainer > m_data_key_jTau
SG::ReadHandleKey< xAOD::jFexSRJetRoIContainer > m_data_key_jJ
SG::ReadHandleKey< xAOD::jFexLRJetRoIContainer > m_simu_key_jLJ
virtual StatusCode fillHistograms(const EventContext &ctx) const override
adds event to the monitoring histograms
virtual ~JfexSimMonitorAlgorithm()=default
SG::ReadHandleKey< xAOD::jFexSumETRoIContainer > m_data_key_jTE
SG::ReadCondHandleKey< LArBadChannelCont > m_bcContKey
std::map< int, std::string > m_firstEvents ATLAS_THREAD_SAFE
SG::ReadHandleKey< xAOD::jFexFwdElRoIContainer > m_data_key_jEM
void fillVectors(const SG::ReadHandleKey< T > &key, const EventContext &ctx, std::vector< float > &etas, std::vector< float > &phis, std::vector< unsigned int > &word0s) const
SG::ReadHandleKey< xAOD::jFexSumETRoIContainer > m_simu_key_jTE
SG::ReadHandleKey< CaloCellContainer > m_scellKey
SG::ReadHandleKey< xAOD::jFexMETRoIContainer > m_data_key_jXE
SG::ReadHandleKey< xAOD::jFexTauRoIContainer > m_simu_key_jTau
std::mutex m_firstEventsMutex
SG::ReadHandleKey< xAOD::jFexSRJetRoIContainer > m_simu_key_jJ
Property holding a SG store/key/clid from which a ReadHandle is made.
virtual bool isValid() override final
Can the handle be successfully dereferenced?
std::string label(const std::string &format, int i)
void sort(typename DataModel_detail::iterator< DVL > beg, typename DataModel_detail::iterator< DVL > end)
Specialization of sort for DataVector/List.
SortableTob(unsigned int w, float e, float p)