ATLAS Offline Software
JfexSimMonitorAlgorithm.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
3 */
4 #ifndef TRIGT1CALOMONITORING_JFEXSIMMONITORALGORITHM_H
5 #define TRIGT1CALOMONITORING_JFEXSIMMONITORALGORITHM_H
6 
10 
17 
19 
21 
23  public:
24  JfexSimMonitorAlgorithm( const std::string& name, ISvcLocator* pSvcLocator );
25  virtual ~JfexSimMonitorAlgorithm()=default;
26  virtual StatusCode initialize() override;
27  virtual StatusCode fillHistograms( const EventContext& ctx ) const override;
28 
29  private:
30 
31  // container keys for jfex input data
32  SG::ReadHandleKey<xAOD::jFexTowerContainer> m_jFexTowerKey{this, "jFexTowerContainer","L1_jFexDataTowers","SG key of the input jFex Tower container"};
33 
34  // container keys for Data tobs
35  SG::ReadHandleKey< xAOD::jFexSRJetRoIContainer > m_data_key_jJ {this,"jFexSRJetRoIContainer","L1_jFexSRJetRoI","SG key of the jFex SR Jet Roi container"};
36  SG::ReadHandleKey< xAOD::jFexLRJetRoIContainer > m_data_key_jLJ {this,"jFexLRJetRoIContainer","L1_jFexLRJetRoI","SG key of the jFex LR Jet Roi container"};
37  SG::ReadHandleKey< xAOD::jFexTauRoIContainer > m_data_key_jTau {this,"jFexTauRoIContainer" ,"L1_jFexTauRoI" ,"SG key of the jFex Tau Roi container" };
38  SG::ReadHandleKey< xAOD::jFexFwdElRoIContainer > m_data_key_jEM {this,"jFexFwdElRoIContainer","L1_jFexFwdElRoI","SG key of the jFex EM Roi container" };
39  SG::ReadHandleKey< xAOD::jFexMETRoIContainer > m_data_key_jXE {this,"jFexMETRoIContainer" ,"L1_jFexMETRoI" ,"SG key of the jFex MET Roi container" };
40  SG::ReadHandleKey< xAOD::jFexSumETRoIContainer > m_data_key_jTE {this,"jFexSumETRoIContainer","L1_jFexSumETRoI","SG key of the jFex SumEt Roi container" };
41 
42  // container keys for Simulation tobs
43  SG::ReadHandleKey< xAOD::jFexSRJetRoIContainer > m_simu_key_jJ {this,"jFexSRJetRoISimContainer","L1_jFexSRJetRoISim","SG key of the Sim jFex SR Jet Roi container"};
44  SG::ReadHandleKey< xAOD::jFexLRJetRoIContainer > m_simu_key_jLJ {this,"jFexLRJetRoISimContainer","L1_jFexLRJetRoISim","SG key of the Sim jFex LR Jet Roi container"};
45  SG::ReadHandleKey< xAOD::jFexTauRoIContainer > m_simu_key_jTau {this,"jFexTauRoISimContainer" ,"L1_jFexTauRoISim" ,"SG key of the Sim jFex Tau Roi container" };
46  SG::ReadHandleKey< xAOD::jFexFwdElRoIContainer > m_simu_key_jEM {this,"jFexFwdElRoISimContainer","L1_jFexFwdElRoISim","SG key of the Sim jFex EM Roi container" };
47  SG::ReadHandleKey< xAOD::jFexMETRoIContainer > m_simu_key_jXE {this,"jFexMETRoISimContainer" ,"L1_jFexMETRoISim" ,"SG key of the Sim jFex MET Roi container" };
48  SG::ReadHandleKey< xAOD::jFexSumETRoIContainer > m_simu_key_jTE {this,"jFexSumETRoISimContainer","L1_jFexSumETRoISim","SG key of the Sim jFex SumEt Roi container" };
49 
50  SG::ReadCondHandleKey<LArBadChannelCont> m_bcContKey{this, "LArMaskedChannelKey", "LArMaskedSC", "Key of the OTF-Masked SC" };
51 
52  template <typename T> bool compareRoI(const std::string& label, const std::string& evenType,
53  const SG::ReadHandleKey<T>& tobs1Key,
54  const SG::ReadHandleKey<T>& tobs2Key,
55  const EventContext& ctx, bool simReadyFlag=false) const;
56 
57  // map hold the binlabels (in form of LBN:FirstEventNum) to use for each lb
58  mutable std::map<int,std::string> m_firstEvents ATLAS_THREAD_SAFE;
60 
61 
62  struct SortableTob {
63  SortableTob(unsigned int w, float e, float p) : word0(w),eta(e),phi(p) { }
64  unsigned int word0;
65  float eta,phi;
66  };
67  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 {
68  etas.clear();phis.clear();word0s.clear();
69  SG::ReadHandle<T> tobs{key, ctx};
70  if(tobs.isValid()) {
71  etas.reserve(tobs->size());
72  phis.reserve(tobs->size());
73  word0s.reserve(tobs->size());
74  std::vector<SortableTob> sortedTobs;
75  sortedTobs.reserve(tobs->size());
76  for(const auto tob : *tobs) {
77  sortedTobs.emplace_back(SortableTob{tob->tobWord(),tob->eta(),tob->phi()});
78  }
79  std::sort(sortedTobs.begin(),sortedTobs.end(),[](const SortableTob& lhs, const SortableTob& rhs) { return lhs.word0<rhs.word0; });
80  for(const auto& tob : sortedTobs) {
81  etas.push_back(tob.eta);
82  phis.push_back(tob.phi);
83  word0s.push_back(tob.word0);
84  }
85  }
86  }
87 
88 };
89 
90 // specializations for global tob types (no eta and phi values)
91 template <> void JfexSimMonitorAlgorithm::fillVectors(const SG::ReadHandleKey<xAOD::jFexMETRoIContainer>& key, const EventContext& ctx, std::vector<float>& etas, std::vector<float>& phis, std::vector<unsigned int>& word0s) const;
92 template <> void JfexSimMonitorAlgorithm::fillVectors(const SG::ReadHandleKey<xAOD::jFexSumETRoIContainer>& key, const EventContext& ctx, std::vector<float>& etas, std::vector<float>& phis, std::vector<unsigned int>& word0s) const;
93 
94 #endif
ReadHandleKey.h
Property holding a SG store/key/clid from which a ReadHandle is made.
jFexFwdElRoIContainer.h
JfexSimMonitorAlgorithm::m_simu_key_jLJ
SG::ReadHandleKey< xAOD::jFexLRJetRoIContainer > m_simu_key_jLJ
Definition: JfexSimMonitorAlgorithm.h:44
jFexTowerContainer.h
JfexSimMonitorAlgorithm::m_simu_key_jTE
SG::ReadHandleKey< xAOD::jFexSumETRoIContainer > m_simu_key_jTE
Definition: JfexSimMonitorAlgorithm.h:48
jFexSumETRoIContainer.h
python.PerfMonSerializer.p
def p
Definition: PerfMonSerializer.py:743
JfexSimMonitorAlgorithm::m_data_key_jJ
SG::ReadHandleKey< xAOD::jFexSRJetRoIContainer > m_data_key_jJ
Definition: JfexSimMonitorAlgorithm.h:35
JfexSimMonitorAlgorithm::m_jFexTowerKey
SG::ReadHandleKey< xAOD::jFexTowerContainer > m_jFexTowerKey
Definition: JfexSimMonitorAlgorithm.h:32
SG::ReadHandle
Definition: StoreGate/StoreGate/ReadHandle.h:70
BeamSpot::mutex
std::mutex mutex
Definition: InDetBeamSpotVertex.cxx:18
PlotCalibFromCool.label
label
Definition: PlotCalibFromCool.py:78
JfexSimMonitorAlgorithm::ATLAS_THREAD_SAFE
std::map< int, std::string > m_firstEvents ATLAS_THREAD_SAFE
Definition: JfexSimMonitorAlgorithm.h:58
JfexSimMonitorAlgorithm::SortableTob::word0
unsigned int word0
Definition: JfexSimMonitorAlgorithm.h:64
JfexSimMonitorAlgorithm::fillHistograms
virtual StatusCode fillHistograms(const EventContext &ctx) const override
adds event to the monitoring histograms
Definition: JfexSimMonitorAlgorithm.cxx:60
JfexSimMonitorAlgorithm::m_data_key_jLJ
SG::ReadHandleKey< xAOD::jFexLRJetRoIContainer > m_data_key_jLJ
Definition: JfexSimMonitorAlgorithm.h:36
SG::ReadHandleKey
Property holding a SG store/key/clid from which a ReadHandle is made.
Definition: StoreGate/StoreGate/ReadHandleKey.h:39
JfexSimMonitorAlgorithm
Definition: JfexSimMonitorAlgorithm.py:1
jFexTauRoIContainer.h
JfexSimMonitorAlgorithm::m_simu_key_jXE
SG::ReadHandleKey< xAOD::jFexMETRoIContainer > m_simu_key_jXE
Definition: JfexSimMonitorAlgorithm.h:47
JfexSimMonitorAlgorithm::m_simu_key_jEM
SG::ReadHandleKey< xAOD::jFexFwdElRoIContainer > m_simu_key_jEM
Definition: JfexSimMonitorAlgorithm.h:46
AthMonitorAlgorithm
Base class for Athena Monitoring Algorithms.
Definition: AthMonitorAlgorithm.h:36
LArBadChannelCont.h
jFexLRJetRoIContainer.h
JfexSimMonitorAlgorithm::JfexSimMonitorAlgorithm
JfexSimMonitorAlgorithm(const std::string &name, ISvcLocator *pSvcLocator)
Definition: JfexSimMonitorAlgorithm.cxx:6
JfexSimMonitorAlgorithm::m_bcContKey
SG::ReadCondHandleKey< LArBadChannelCont > m_bcContKey
Definition: JfexSimMonitorAlgorithm.h:50
jFexSRJetRoIContainer.h
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
AthMonitorAlgorithm.h
JfexSimMonitorAlgorithm::m_simu_key_jJ
SG::ReadHandleKey< xAOD::jFexSRJetRoIContainer > m_simu_key_jJ
Definition: JfexSimMonitorAlgorithm.h:43
Monitored.h
Header file to be included by clients of the Monitored infrastructure.
JfexSimMonitorAlgorithm::m_firstEventsMutex
std::mutex m_firstEventsMutex
Definition: JfexSimMonitorAlgorithm.h:59
JfexSimMonitorAlgorithm::SortableTob::SortableTob
SortableTob(unsigned int w, float e, float p)
Definition: JfexSimMonitorAlgorithm.h:63
JfexSimMonitorAlgorithm::fillVectors
void fillVectors(const SG::ReadHandleKey< T > &key, const EventContext &ctx, std::vector< float > &etas, std::vector< float > &phis, std::vector< unsigned int > &word0s) const
Definition: JfexSimMonitorAlgorithm.h:67
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
JfexSimMonitorAlgorithm::SortableTob::phi
float phi
Definition: JfexSimMonitorAlgorithm.h:65
SG::ReadCondHandleKey
Definition: ReadCondHandleKey.h:20
DiTauMassTools::MaxHistStrategyV2::e
e
Definition: PhysicsAnalysis/TauID/DiTauMassTools/DiTauMassTools/HelperFunctions.h:26
JfexSimMonitorAlgorithm::m_data_key_jXE
SG::ReadHandleKey< xAOD::jFexMETRoIContainer > m_data_key_jXE
Definition: JfexSimMonitorAlgorithm.h:39
JfexSimMonitorAlgorithm::initialize
virtual StatusCode initialize() override
initialize
Definition: JfexSimMonitorAlgorithm.cxx:8
JfexSimMonitorAlgorithm::m_data_key_jEM
SG::ReadHandleKey< xAOD::jFexFwdElRoIContainer > m_data_key_jEM
Definition: JfexSimMonitorAlgorithm.h:38
JfexSimMonitorAlgorithm::compareRoI
bool compareRoI(const std::string &label, const std::string &evenType, const SG::ReadHandleKey< T > &tobs1Key, const SG::ReadHandleKey< T > &tobs2Key, const EventContext &ctx, bool simReadyFlag=false) const
Definition: JfexSimMonitorAlgorithm.cxx:97
JfexSimMonitorAlgorithm::SortableTob
Definition: JfexSimMonitorAlgorithm.h:62
JfexSimMonitorAlgorithm::m_simu_key_jTau
SG::ReadHandleKey< xAOD::jFexTauRoIContainer > m_simu_key_jTau
Definition: JfexSimMonitorAlgorithm.h:45
python.IoTestsLib.w
def w
Definition: IoTestsLib.py:200
JfexSimMonitorAlgorithm::SortableTob::eta
float eta
Definition: JfexSimMonitorAlgorithm.h:65
JfexSimMonitorAlgorithm::m_data_key_jTE
SG::ReadHandleKey< xAOD::jFexSumETRoIContainer > m_data_key_jTE
Definition: JfexSimMonitorAlgorithm.h:40
JfexSimMonitorAlgorithm::m_data_key_jTau
SG::ReadHandleKey< xAOD::jFexTauRoIContainer > m_data_key_jTau
Definition: JfexSimMonitorAlgorithm.h:37
EgEfficiencyCorr_testFixedInput.etas
list etas
Definition: EgEfficiencyCorr_testFixedInput.py:9
jFexMETRoIContainer.h
JfexSimMonitorAlgorithm::~JfexSimMonitorAlgorithm
virtual ~JfexSimMonitorAlgorithm()=default
mapkey::key
key
Definition: TElectronEfficiencyCorrectionTool.cxx:37