![]() |
ATLAS Offline Software
|
HLT online histogram service. More...
#include <WebdaqHistSvc.h>
Classes | |
struct | THistID |
Helper struct that bundles the histogram, name and mutex. More... | |
Public Member Functions | |
WebdaqHistSvc (const std::string &name, ISvcLocator *svc) | |
virtual | ~WebdaqHistSvc () noexcept override |
virtual StatusCode initialize | ATLAS_NOT_THREAD_SAFE () override |
virtual void | handle (const Incident &incident) override |
virtual StatusCode | stop () override |
virtual StatusCode | finalize () override |
virtual StatusCode | regHist (const std::string &name) override |
virtual StatusCode | regHist (const std::string &name, std::unique_ptr< TH1 > hist) override |
virtual StatusCode | regHist (const std::string &name, TH1 *) override |
virtual StatusCode | getHist (const std::string &id, TH1 *&hist, size_t ind) const override |
virtual StatusCode | getHist (const std::string &id, TH2 *&hist, size_t ind) const override |
virtual StatusCode | getHist (const std::string &id, TH3 *&hist, size_t ind) const override |
virtual StatusCode | deReg (TObject *obj) override |
virtual StatusCode | deReg (const std::string &name) override |
virtual std::vector< std::string > | getHists () const override |
std::set< std::string > | getSet (boost::regex) const |
virtual StatusCode | regShared (const std::string &, std::unique_ptr< TH1 >, LockedHandle< TH1 > &) override |
virtual StatusCode | regShared (const std::string &, std::unique_ptr< TH2 >, LockedHandle< TH2 > &) override |
virtual StatusCode | regShared (const std::string &, std::unique_ptr< TH3 >, LockedHandle< TH3 > &) override |
virtual StatusCode | getShared (const std::string &, LockedHandle< TH1 > &) const override |
virtual StatusCode | getShared (const std::string &, LockedHandle< TH2 > &) const override |
virtual StatusCode | getShared (const std::string &, LockedHandle< TH3 > &) const override |
virtual StatusCode | getTHists (TDirectory *td, TList &, bool recurse=false) const override |
virtual StatusCode | getTHists (const std::string &name, TList &, bool recurse=false) const override |
virtual StatusCode | getTHists (TDirectory *td, TList &tl, bool recurse=false, bool reg=false) override |
virtual StatusCode | getTHists (const std::string &name, TList &tl, bool recurse=false, bool reg=false) override |
virtual bool | exists (const std::string &name) const override |
virtual bool | existsHist (const std::string &name) const override |
virtual StatusCode | regTree (const std::string &) override |
virtual StatusCode | regTree (const std::string &, std::unique_ptr< TTree >) override |
virtual StatusCode | regTree (const std::string &, TTree *) override |
virtual StatusCode | getTree (const std::string &, TTree *&) const override |
virtual std::vector< std::string > | getTrees () const override |
virtual StatusCode | getTTrees (TDirectory *, TList &, bool) const override |
virtual StatusCode | getTTrees (const std::string &, TList &, bool) const override |
virtual StatusCode | getTTrees (TDirectory *, TList &, bool, bool) override |
virtual StatusCode | getTTrees (const std::string &, TList &, bool, bool) override |
virtual StatusCode | regGraph (const std::string &) override |
virtual StatusCode | regGraph (const std::string &, std::unique_ptr< TGraph >) override |
virtual StatusCode | regGraph (const std::string &, TGraph *) override |
virtual std::vector< std::string > | getGraphs () const override |
virtual StatusCode | getGraph (const std::string &, TGraph *&) const override |
virtual StatusCode | regEfficiency (const std::string &) override |
virtual StatusCode | regEfficiency (const std::string &, std::unique_ptr< TEfficiency >) override |
virtual StatusCode | regEfficiency (const std::string &, TEfficiency *) override |
virtual StatusCode | getEfficiency (const std::string &, TEfficiency *&) const override |
virtual std::vector< std::string > | getEfficiencies () const override |
virtual StatusCode | getTEfficiencies (TDirectory *, TList &, bool) const override |
virtual StatusCode | getTEfficiencies (const std::string &, TList &, bool) const override |
virtual StatusCode | getTEfficiencies (TDirectory *, TList &, bool, bool) override |
virtual StatusCode | getTEfficiencies (const std::string &, TList &, bool, bool) override |
virtual StatusCode | regShared (const std::string &, std::unique_ptr< TGraph >, LockedHandle< TGraph > &) override |
virtual StatusCode | getShared (const std::string &, LockedHandle< TGraph > &) const override |
virtual StatusCode | regShared (const std::string &, std::unique_ptr< TEfficiency >, LockedHandle< TEfficiency > &) override |
virtual StatusCode | getShared (const std::string &, LockedHandle< TEfficiency > &) const override |
virtual StatusCode | merge (const std::string &) override |
virtual StatusCode | merge (TObject *) override |
virtual bool | existsTree (const std::string &) const override |
virtual bool | existsGraph (const std::string &) const override |
virtual bool | existsEfficiency (const std::string &) const override |
Private Member Functions | |
void | monitoringTask (int, int, std::atomic< bool > &, boost::regex) |
The actual publication Task. More... | |
void | syncPublish (long int, boost::posix_time::ptime) |
Sync the publication to a multiple of the interval. More... | |
void | conditionedSleep (std::chrono::milliseconds, const std::atomic< bool > &) |
Sleep for a duration or until the stop flag is set. More... | |
bool | isObjectAllowed (const std::string &path, const TObject *o) const |
Does the histogram follow the naming rules ? More... | |
StatusCode | getTHists_i (const std::string &name, TList &) const |
Get TList of registered histograms. More... | |
template<typename T > | |
StatusCode | regHist_i (std::unique_ptr< T > hist, const std::string &name, bool shared, THistID *&phid) |
template<typename T > | |
T * | getHist_i (const std::string &id, const size_t &ind, bool quiet=false) const |
template<typename T > | |
LockedHandle< T > | regShared_i (const std::string &id, std::unique_ptr< T > hist) |
template<typename T > | |
LockedHandle< T > | getShared_i (const std::string &id) const |
Private Attributes | |
std::atomic< bool > | m_stopFlag {false} |
Flag to stop the monitoring task. More... | |
std::thread | m_thread |
Publication thread. More... | |
std::thread | m_threadFast |
std::string | m_partition |
The partition to publish to. More... | |
std::string | m_tdaqWebdaqBase |
Webdaq configuration variable, see https://gitlab.cern.ch/atlas-tdaq-software/webdaq. More... | |
std::string | m_tdaqOHServerName |
The OH server name (TDAQ_OH_SERVER if defined, m_OHServerName otherwise) More... | |
std::atomic< bool > | m_histoMapUpdated {false} |
Flag to indicate when the histogram map is updated. More... | |
std::atomic< bool > | m_histoMapUpdatedFast {false} |
Flag to indicate when the histogram map is updated for the fast publication More... | |
ServiceHandle< Gaudi::Interfaces::IOptionsSvc > | m_jobOptionsSvc {this, "JobOptionsSvc", "JobOptionsSvc"} |
joboptions service More... | |
tbb::concurrent_hash_map< std::string, THistID > | m_hists |
Map of the registered histograms. More... | |
Gaudi::Property< std::string > | m_excludeType {this, "ExcludeType", "()"} |
Gaudi::Property< std::string > | m_includeType {this, "IncludeType", ".+"} |
Gaudi::Property< std::string > | m_excludeName {this, "ExcludeName", ".*\\..*"} |
Gaudi::Property< std::string > | m_includeName |
Gaudi::Property< int > | m_numSlots {this, "NumSlots", 8, "Number of slots for the main monitoring task"} |
Gaudi::Property< int > | m_numSlotsFast {this, "NumSlotsFast", 1, "Number of slots for the fast monitoring task"} |
Gaudi::Property< int > | m_intervalSeconds {this, "IntervalSeconds", 80, "Interval between histogram publications periods in seconds"} |
Gaudi::Property< int > | m_intervalSecondsFast {this, "IntervalSecondsFast", 10, "Interval between histogram publications periods in seconds for the fast publication"} |
Gaudi::Property< std::string > | m_OHServerName {this, "OHServerName", "Histogramming", "Name of the OH server to publish histograms into"} |
Gaudi::Property< std::string > | m_PublicationIncludeName {this, "PublicationIncludeName",".*","Regex to select histograms for publication"} |
Gaudi::Property< std::string > | m_fastPublicationIncludeName {this, "FastPublicationIncludeName","^.EXPERT.HLTFramework.TrigSignatureMoni.*","Regex to select histograms for fast publication"} |
Gaudi::Property< int > | m_autoSave {this, "AutoSave", 0, "Not supported by WebdaqHistSvc"} |
Gaudi::Property< int > | m_autoFlush {this, "AutoFlush", 0, "Not supported by WebdaqHistSvc"} |
Gaudi::Property< bool > | m_print {this, "PrintAll", false, "Not supported by WebdaqHistSvc"} |
Gaudi::Property< int > | m_maxFileSize {this, "MaxFileSize", 10240, "Not supported by WebdaqHistSvc"} |
Gaudi::Property< std::vector< std::string > > | m_outputfile {this, "Output", {}, "Not supported by WebdaqHistSvc"} |
Gaudi::Property< std::vector< std::string > > | m_inputfile {this, "Input", {}, "Not supported by WebdaqHistSvc"} |
boost::regex | m_excludeTypeRegex |
boost::regex | m_includeTypeRegex |
boost::regex | m_excludeNameRegex |
boost::regex | m_includeNameRegex |
boost::regex | m_PublicationIncludeNameRegex |
boost::regex | m_fastPublicationIncludeNameRegex |
HLT online histogram service.
The main difference to the offline THistSvc are:
Definition at line 52 of file WebdaqHistSvc.h.
WebdaqHistSvc::WebdaqHistSvc | ( | const std::string & | name, |
ISvcLocator * | svc | ||
) |
Definition at line 34 of file WebdaqHistSvc.cxx.
|
inlineoverridevirtualnoexcept |
Definition at line 56 of file WebdaqHistSvc.h.
|
overridevirtual |
|
private |
Sleep for a duration or until the stop flag is set.
Definition at line 664 of file WebdaqHistSvc.cxx.
|
overridevirtual |
Definition at line 313 of file WebdaqHistSvc.cxx.
|
overridevirtual |
Definition at line 297 of file WebdaqHistSvc.cxx.
|
inlineoverridevirtual |
Definition at line 88 of file WebdaqHistSvc.h.
|
inlineoverridevirtual |
Definition at line 130 of file WebdaqHistSvc.h.
|
inlineoverridevirtual |
Definition at line 129 of file WebdaqHistSvc.h.
|
overridevirtual |
Definition at line 388 of file WebdaqHistSvc.cxx.
|
inlineoverridevirtual |
Definition at line 128 of file WebdaqHistSvc.h.
|
overridevirtual |
Definition at line 143 of file WebdaqHistSvc.cxx.
|
inlineoverridevirtual |
Definition at line 113 of file WebdaqHistSvc.h.
|
inlineoverridevirtual |
Definition at line 112 of file WebdaqHistSvc.h.
|
inlineoverridevirtual |
Definition at line 107 of file WebdaqHistSvc.h.
|
inlineoverridevirtual |
Definition at line 106 of file WebdaqHistSvc.h.
|
overridevirtual |
Definition at line 419 of file WebdaqHistSvc.cxx.
|
overridevirtual |
Definition at line 425 of file WebdaqHistSvc.cxx.
|
overridevirtual |
Definition at line 431 of file WebdaqHistSvc.cxx.
|
private |
Definition at line 236 of file WebdaqHistSvc.cxx.
|
overridevirtual |
std::set< std::string > WebdaqHistSvc::getSet | ( | boost::regex | nameSelect | ) | const |
Definition at line 343 of file WebdaqHistSvc.cxx.
|
inlineoverridevirtual |
Definition at line 123 of file WebdaqHistSvc.h.
|
inlineoverridevirtual |
Definition at line 121 of file WebdaqHistSvc.h.
|
overridevirtual |
Definition at line 492 of file WebdaqHistSvc.cxx.
|
overridevirtual |
Definition at line 498 of file WebdaqHistSvc.cxx.
|
overridevirtual |
Definition at line 504 of file WebdaqHistSvc.cxx.
|
private |
Definition at line 273 of file WebdaqHistSvc.cxx.
|
inlineoverridevirtual |
Definition at line 116 of file WebdaqHistSvc.h.
|
inlineoverridevirtual |
Definition at line 118 of file WebdaqHistSvc.h.
|
inlineoverridevirtual |
Definition at line 115 of file WebdaqHistSvc.h.
|
inlineoverridevirtual |
Definition at line 117 of file WebdaqHistSvc.h.
|
overridevirtual |
Definition at line 445 of file WebdaqHistSvc.cxx.
|
overridevirtual |
Definition at line 459 of file WebdaqHistSvc.cxx.
|
overridevirtual |
Definition at line 439 of file WebdaqHistSvc.cxx.
|
overridevirtual |
Definition at line 451 of file WebdaqHistSvc.cxx.
|
private |
Get TList of registered histograms.
Definition at line 258 of file WebdaqHistSvc.cxx.
|
inlineoverridevirtual |
Definition at line 95 of file WebdaqHistSvc.h.
|
inlineoverridevirtual |
Definition at line 97 of file WebdaqHistSvc.h.
|
inlineoverridevirtual |
Definition at line 99 of file WebdaqHistSvc.h.
|
inlineoverridevirtual |
Definition at line 101 of file WebdaqHistSvc.h.
|
inlineoverridevirtual |
Definition at line 98 of file WebdaqHistSvc.h.
|
inlineoverridevirtual |
Definition at line 100 of file WebdaqHistSvc.h.
|
overridevirtual |
Definition at line 97 of file WebdaqHistSvc.cxx.
Does the histogram follow the naming rules ?
Definition at line 359 of file WebdaqHistSvc.cxx.
|
inlineoverridevirtual |
Definition at line 125 of file WebdaqHistSvc.h.
|
inlineoverridevirtual |
Definition at line 126 of file WebdaqHistSvc.h.
|
private |
The actual publication Task.
Histograms publication via WebDAQ.
It divides the histograms into batches and publishes them in slots. The method also handles synchronization to ensure that the publication happens at regular intervals.
numSlots | Number of slots to divide the histograms into for publication. |
intervalSeconds | Interval in seconds between each publication cycle. |
histoMapUpdated | Atomic flag indicating if the histogram map has been updated. |
nameSelect | Regular expression to select histograms for publication. |
Definition at line 522 of file WebdaqHistSvc.cxx.
|
inlineoverridevirtual |
Definition at line 109 of file WebdaqHistSvc.h.
|
inlineoverridevirtual |
Definition at line 110 of file WebdaqHistSvc.h.
|
inlineoverridevirtual |
Definition at line 111 of file WebdaqHistSvc.h.
|
inlineoverridevirtual |
Definition at line 103 of file WebdaqHistSvc.h.
|
inlineoverridevirtual |
Definition at line 104 of file WebdaqHistSvc.h.
|
inlineoverridevirtual |
Definition at line 105 of file WebdaqHistSvc.h.
|
overridevirtual |
Definition at line 397 of file WebdaqHistSvc.cxx.
|
overridevirtual |
Definition at line 404 of file WebdaqHistSvc.cxx.
|
overridevirtual |
Definition at line 410 of file WebdaqHistSvc.cxx.
|
private |
Definition at line 155 of file WebdaqHistSvc.cxx.
|
inlineoverridevirtual |
Definition at line 122 of file WebdaqHistSvc.h.
|
inlineoverridevirtual |
Definition at line 120 of file WebdaqHistSvc.h.
|
overridevirtual |
Definition at line 469 of file WebdaqHistSvc.cxx.
|
overridevirtual |
Definition at line 476 of file WebdaqHistSvc.cxx.
|
overridevirtual |
Definition at line 483 of file WebdaqHistSvc.cxx.
|
private |
Definition at line 197 of file WebdaqHistSvc.cxx.
|
inlineoverridevirtual |
Definition at line 92 of file WebdaqHistSvc.h.
|
inlineoverridevirtual |
Definition at line 93 of file WebdaqHistSvc.h.
|
inlineoverridevirtual |
Definition at line 94 of file WebdaqHistSvc.h.
|
overridevirtual |
|
private |
Sync the publication to a multiple of the interval.
Definition at line 650 of file WebdaqHistSvc.cxx.
|
private |
Definition at line 201 of file WebdaqHistSvc.h.
|
private |
Definition at line 200 of file WebdaqHistSvc.h.
|
private |
Definition at line 186 of file WebdaqHistSvc.h.
|
private |
Definition at line 210 of file WebdaqHistSvc.h.
|
private |
Definition at line 184 of file WebdaqHistSvc.h.
|
private |
Definition at line 208 of file WebdaqHistSvc.h.
|
private |
Definition at line 197 of file WebdaqHistSvc.h.
|
private |
Definition at line 213 of file WebdaqHistSvc.h.
|
private |
Flag to indicate when the histogram map is updated.
Definition at line 161 of file WebdaqHistSvc.h.
|
private |
Flag to indicate when the histogram map is updated for the fast publication
Definition at line 163 of file WebdaqHistSvc.h.
|
private |
Map of the registered histograms.
Definition at line 169 of file WebdaqHistSvc.h.
|
private |
Definition at line 187 of file WebdaqHistSvc.h.
|
private |
Definition at line 211 of file WebdaqHistSvc.h.
|
private |
Definition at line 185 of file WebdaqHistSvc.h.
|
private |
Definition at line 209 of file WebdaqHistSvc.h.
|
private |
Definition at line 205 of file WebdaqHistSvc.h.
|
private |
Definition at line 193 of file WebdaqHistSvc.h.
|
private |
Definition at line 194 of file WebdaqHistSvc.h.
|
private |
joboptions service
Definition at line 166 of file WebdaqHistSvc.h.
|
private |
Definition at line 203 of file WebdaqHistSvc.h.
|
private |
Definition at line 191 of file WebdaqHistSvc.h.
|
private |
Definition at line 192 of file WebdaqHistSvc.h.
|
private |
Definition at line 195 of file WebdaqHistSvc.h.
|
private |
Definition at line 204 of file WebdaqHistSvc.h.
|
private |
The partition to publish to.
Definition at line 155 of file WebdaqHistSvc.h.
|
private |
Definition at line 202 of file WebdaqHistSvc.h.
|
private |
Definition at line 196 of file WebdaqHistSvc.h.
|
private |
Definition at line 212 of file WebdaqHistSvc.h.
|
private |
Flag to stop the monitoring task.
Definition at line 144 of file WebdaqHistSvc.h.
|
private |
The OH server name (TDAQ_OH_SERVER if defined, m_OHServerName otherwise)
Definition at line 159 of file WebdaqHistSvc.h.
|
private |
Webdaq configuration variable, see https://gitlab.cern.ch/atlas-tdaq-software/webdaq.
Definition at line 157 of file WebdaqHistSvc.h.
|
private |
Publication thread.
Definition at line 152 of file WebdaqHistSvc.h.
|
private |
Definition at line 153 of file WebdaqHistSvc.h.