5#ifndef TRIGTLAMONITORING_TRIGTLAMONITORALGORITHM_H
6#define TRIGTLAMONITORING_TRIGTLAMONITORALGORITHM_H
24 virtual StatusCode
fillHistograms(
const EventContext& ctx )
const override;
27 Gaudi::Property<std::vector<std::string>>
m_allChains{
this,
"AllChains",{}};
36 PublicToolHandle<Trig::TrigDecisionTool>
m_trigDecisionTool{
this,
"TriggerDecisionTool",
"Trigger decision tool"};
80 template<
class C,
typename T>
103 template <
typename U,
typename T>
104 StatusCode
fill2DHistogram(
const std::string& varname1, U var1,
const std::string& varname2, T var2,
const std::string& prefix)
const;
138 ATH_MSG_ERROR(
"evtStore() does not contain Collection with name "<< key);
139 return StatusCode::FAILURE;
142 return StatusCode::SUCCESS;
151 for(
auto tcEI : *tcEventInfo) {
152 auto status = tcEI->getDetail<T>(varname, variable);
155 fill(
"TrigTLAMonitor", variable);
156 ATH_MSG_DEBUG(
"Retrieved EventInfo variable: "<<varname<<
" = "<<variable);
160 return StatusCode::SUCCESS;
178 n = particles->size();
179 fill(
"TrigTLAMonitor", n);
181 for(
const T* particle : *particles) {
182 pt = particle->pt()/1e3;
183 eta = particle->eta();
184 phi = particle->phi();
185 fill(
"TrigTLAMonitor",pt );
191 if(particles->size()>0) {
192 pt0 =particles->at(0)->pt ()/1e3;
193 eta0=particles->at(0)->eta();
194 phi0=particles->at(0)->phi();
195 fill(
"TrigTLAMonitor",pt0 );
196 fill(
"TrigTLAMonitor",eta0);
197 fill(
"TrigTLAMonitor",phi0);
200 return StatusCode::SUCCESS;
205template<
class C,
typename T>
209 std::string hname = varname;
210 std::replace( hname.begin(), hname.end(),
'_',
'-' );
217 mon_var = accessor(*element);
218 fill(
"TrigTLAMonitor", mon_var);
219 if (cnt < 5)
ATH_MSG_DEBUG(prefix<<
" "<<varname<<
" = "<<mon_var);
222 return StatusCode::SUCCESS;
229 std::vector<T> variable_vec;
233 for(
auto jet : *jets) {
234 auto status =
jet->getAttribute<std::vector<T>>(varname, variable_vec);
238 variable = variable_vec.at(0);
239 fill(
"TrigTLAMonitor",variable);
240 if (cnt < 3)
ATH_MSG_DEBUG(prefix<<
" "<<varname<<
" = "<<variable);
244 return StatusCode::SUCCESS;
248template <
typename U,
typename T>
253 ATH_MSG_DEBUG(
"Filling 2D histogram. "<<varname1<<
" = "<<var1<<
" ; "<<varname2<<
" = "<<var2);
254 fill(
"TrigTLAMonitor", mon_var1, mon_var2);
256 return StatusCode::SUCCESS;
Scalar eta() const
pseudorapidity method
Scalar phi() const
phi method
#define ATH_MSG_WARNING(x)
Header file to be included by clients of the Monitored infrastructure.
AthMonitorAlgorithm(const std::string &name, ISvcLocator *pSvcLocator)
Constructor.
Declare a monitored scalar variable.
SG::ConstAccessor< T, ALLOC > ConstAccessor
Property holding a SG store/key/clid from which a ReadHandle is made.
SG::ReadHandleKey< xAOD::TrigCompositeContainer > m_tcEventInfoContainerKey
StatusCode fillObjectVariableHistogram(SG::ReadHandle< DataVector< C > > &container, const std::string &varname, const std::string &prefix, const std::string &trigName, T default_val=-1) const
Fill Analysis Object feature histogram`.
virtual StatusCode fillHistograms(const EventContext &ctx) const override
adds event to the monitoring histograms
StatusCode fillJetTrackVariableHistogram(SG::ReadHandle< xAOD::JetContainer > &jets, const std::string &varname, const std::string &prefix, const std::string &trigName, T default_val=-1) const
Fill jet track variable to 1D histograms. Jet track variables are vectors where each element correspo...
virtual StatusCode initialize() override
initialize
SG::ReadHandleKey< xAOD::JetContainer > m_jetContainerKey
SG::ReadHandleKey< xAOD::TrackParticleContainer > m_trackParticleContainerKey
PublicToolHandle< Trig::TrigDecisionTool > m_trigDecisionTool
SG::ReadHandleKey< xAOD::MuonContainer > m_muonContainerKey
StatusCode readContainer(SG::ReadHandle< T > &container, const SG::ReadHandleKey< T > &key, const EventContext &ctx) const
Retrieve a container of type T.
Gaudi::Property< std::vector< std::string > > m_allChains
StatusCode fillParticleHistograms(SG::ReadHandle< DataVector< T > > particles, const std::string &prefix, const std::string &trigName) const
Fill kinematic histograms for a given particle of type T
TrigTLAMonitorAlgorithm(const std::string &name, ISvcLocator *pSvcLocator)
StatusCode fillJetPtCalibStatesHistograms(SG::ReadHandle< xAOD::JetContainer > &jets, const std::string &calibState, const std::string &prefix, const std::string &trigName) const
Fill jet pT to 1D histograms at different calibration scales.
SG::ReadHandleKey< xAOD::JetContainer > m_pfjetContainerKey
StatusCode fillEventInfoHistogram(SG::ReadHandle< DataVector< xAOD::TrigComposite_v1 > > &tcEventInfo, const std::string &varname, const std::string &prefix) const
Fill an event info variable to a 1D histogram.
SG::ReadHandleKey< xAOD::PhotonContainer > m_photonContainerKey
virtual ~TrigTLAMonitorAlgorithm()
StatusCode fillDeltaRHistograms(const xAOD::IParticle *p0, const xAOD::IParticle *p1, const std::string &prefix, const std::string &trigName) const
Fill kinematic histograms for a given particle of type T
StatusCode fill2DHistogram(const std::string &varname1, U var1, const std::string &varname2, T var2, const std::string &prefix) const
A generic function to fill 2D histogram.
Class providing the definition of the 4-vector interface.
void fill(const ToolHandle< GenericMonitoringTool > &groupHandle, std::vector< std::reference_wrapper< Monitored::IMonitoredVariable > > &&variables) const
Fills a vector of variables to a group by reference.
SG::ReadCondHandle< T > makeHandle(const SG::ReadCondHandleKey< T > &key, const EventContext &ctx=Gaudi::Hive::currentContext())