|
ATLAS Offline Software
|
Athena algorithm used to process Trigger cost monitoring data in Run 3 and above. Outputs histograms.
More...
#include <TrigCostAnalysis.h>
|
| TrigCostAnalysis (const std::string &name, ISvcLocator *pSvcLocator) |
| Construct TrigCostAnalysis. More...
|
|
virtual | ~TrigCostAnalysis ()=default |
| Default destructor. More...
|
|
virtual StatusCode | initialize () final |
| Retrieve tools and initialise read handles. More...
|
|
virtual StatusCode | start () |
| Retrieve menu handle. More...
|
|
virtual StatusCode | execute () final |
| Monitor event, unless max range limit reached and event outside of all ranges. More...
|
|
virtual StatusCode | finalize () final |
| Currently a noop for this algorithm. More...
|
|
TH1 * | bookGetPointer (TH1 *hist, const std::string &tDir="") const |
| Public method forwarded to this class' AthHistogramAlgorithm::bookGetPointer base. More...
|
|
virtual StatusCode | sysInitialize () override |
| Override sysInitialize. More...
|
|
virtual const DataObjIDColl & | extraOutputDeps () const override |
| Return the list of extra output dependencies. More...
|
|
ServiceHandle< StoreGateSvc > & | evtStore () |
| The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc . More...
|
|
const ServiceHandle< StoreGateSvc > & | evtStore () const |
| The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc . More...
|
|
const ServiceHandle< StoreGateSvc > & | detStore () const |
| The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc . More...
|
|
virtual StatusCode | sysStart () override |
| Handle START transition. More...
|
|
virtual std::vector< Gaudi::DataHandle * > | inputHandles () const override |
| Return this algorithm's input handles. More...
|
|
virtual std::vector< Gaudi::DataHandle * > | outputHandles () const override |
| Return this algorithm's output handles. More...
|
|
Gaudi::Details::PropertyBase & | declareProperty (Gaudi::Property< T > &t) |
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, SG::VarHandleKey &hndl, const std::string &doc, const SG::VarHandleKeyType &) |
| Declare a new Gaudi property. More...
|
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, SG::VarHandleBase &hndl, const std::string &doc, const SG::VarHandleType &) |
| Declare a new Gaudi property. More...
|
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, SG::VarHandleKeyArray &hndArr, const std::string &doc, const SG::VarHandleKeyArrayType &) |
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, T &property, const std::string &doc, const SG::NotHandleType &) |
| Declare a new Gaudi property. More...
|
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, T &property, const std::string &doc="none") |
| Declare a new Gaudi property. More...
|
|
void | updateVHKA (Gaudi::Details::PropertyBase &) |
|
MsgStream & | msg () const |
|
MsgStream & | msg (const MSG::Level lvl) const |
|
bool | msgLvl (const MSG::Level lvl) const |
|
Athena algorithm used to process Trigger cost monitoring data in Run 3 and above. Outputs histograms.
Algorithm to read relevant trigger cost data from the event store and trigger configuration data from the config service, identify the time Range that the event falls into, and dispatches monitoring to the correct time range. Time ranges, their monitors, and their monitor's counters are all instantiated on-demand.
Definition at line 36 of file TrigCostAnalysis.h.
◆ StoreGateSvc_t
◆ TrigCostAnalysis()
TrigCostAnalysis::TrigCostAnalysis |
( |
const std::string & |
name, |
|
|
ISvcLocator * |
pSvcLocator |
|
) |
| |
◆ ~TrigCostAnalysis()
virtual TrigCostAnalysis::~TrigCostAnalysis |
( |
| ) |
|
|
virtualdefault |
◆ bookGetPointer()
TH1 * TrigCostAnalysis::bookGetPointer |
( |
TH1 * |
hist, |
|
|
const std::string & |
tDir = "" |
|
) |
| const |
Public method forwarded to this class' AthHistogramAlgorithm::bookGetPointer base.
- Parameters
-
[in] | hist | Bare pointer to histogram. Ownership transferred to THistSvc. |
[in] | tDir | Histogram name & directory. |
- Returns
- Cached pointer to histogram. Used to fill histogram without having to perform THishSvc lookup.
Definition at line 171 of file TrigCostAnalysis.cxx.
173 std::string bookingString =
"/COSTSTREAM/" + tDir +
"/" +
histName;
175 if (!((
m_histSvc->regHist(bookingString,
hist)).isSuccess())) {
◆ checkDoFullEventDump()
bool TrigCostAnalysis::checkDoFullEventDump |
( |
const EventContext & |
context, |
|
|
const CostData & |
costData |
|
) |
| |
|
private |
Check if event dumping should be performed for the current event.
- Parameters
-
[in] | context | Event context. |
[in] | costData | We only dump the master-slot (slot:0) as these events cary payload data for all slots / all threads. |
- Returns
- True, if the event should be dumped.
Definition at line 304 of file TrigCostAnalysis.cxx.
◆ checkUpdateMaxView()
StatusCode TrigCostAnalysis::checkUpdateMaxView |
( |
const size_t |
max | ) |
|
|
private |
High watermark for pre-cached string hashes for the SLOT category.
Corresponding to SG and View IProxyDict names.
- Parameters
-
[in] | max | Pre-compute string hashes for View or Slot multiplicities up to this number. |
Definition at line 138 of file TrigCostAnalysis.cxx.
140 return StatusCode::SUCCESS;
148 std::stringstream
ss;
149 ss <<
store <<
"_view_" << viewID;
153 std::stringstream
ss;
154 ss << viewID <<
"_StoreGateSvc_Impl";
157 return StatusCode::SUCCESS;
◆ declareGaudiProperty() [1/4]
specialization for handling Gaudi::Property<SG::VarHandleKeyArray>
Definition at line 170 of file AthCommonDataStore.h.
175 hndl.documentation());
◆ declareGaudiProperty() [2/4]
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition at line 156 of file AthCommonDataStore.h.
161 hndl.documentation());
◆ declareGaudiProperty() [3/4]
specialization for handling Gaudi::Property<SG::VarHandleBase>
Definition at line 184 of file AthCommonDataStore.h.
189 hndl.documentation());
◆ declareGaudiProperty() [4/4]
◆ declareProperty() [1/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
hndl | Object holding the property value. |
doc | Documentation string for the property. |
This is the version for types that derive from SG::VarHandleBase
. The property value object is put on the input and output lists as appropriate; then we forward to the base class.
Definition at line 245 of file AthCommonDataStore.h.
250 this->declare(hndl.
vhKey());
251 hndl.
vhKey().setOwner(
this);
253 return PBASE::declareProperty(
name,hndl,
doc);
◆ declareProperty() [2/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
hndl | Object holding the property value. |
doc | Documentation string for the property. |
This is the version for types that derive from SG::VarHandleKey
. The property value object is put on the input and output lists as appropriate; then we forward to the base class.
Definition at line 221 of file AthCommonDataStore.h.
229 return PBASE::declareProperty(
name,hndl,
doc);
◆ declareProperty() [3/6]
◆ declareProperty() [4/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
property | Object holding the property value. |
doc | Documentation string for the property. |
This is the generic version, for types that do not derive from SG::VarHandleKey
. It just forwards to the base class version of declareProperty
.
Definition at line 333 of file AthCommonDataStore.h.
338 return PBASE::declareProperty(
name, property,
doc);
◆ declareProperty() [5/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
property | Object holding the property value. |
doc | Documentation string for the property. |
This dispatches to either the generic declareProperty
or the one for VarHandle/Key/KeyArray.
Definition at line 352 of file AthCommonDataStore.h.
◆ declareProperty() [6/6]
◆ detStore()
◆ dumpEvent()
StatusCode TrigCostAnalysis::dumpEvent |
( |
const EventContext & |
context | ) |
const |
|
private |
Dump event algorithm execution data in ASCII format.
- Parameters
-
[in] | context | Event context. |
Definition at line 421 of file TrigCostAnalysis.cxx.
425 std::stringstream
ss;
436 ss <<
"{id:" << algID++;
437 ss <<
", group:" << threadID;
438 ss <<
", className:'slot" << slot <<
"'";
442 ss <<
", start:" << start_ms_round;
443 if (stop_ms_round > start_ms_round) {
444 ss <<
", end:" << stop_ms_round;
446 ss <<
", type:'point'";
448 ss <<
"}," << std::endl;
451 ATH_MSG_DEBUG(
"Full Event Summary for event " << context.eventID().event_number());
455 return StatusCode::SUCCESS;
◆ evtStore() [1/2]
◆ evtStore() [2/2]
◆ execute()
StatusCode TrigCostAnalysis::execute |
( |
| ) |
|
|
finalvirtual |
Monitor event, unless max range limit reached and event outside of all ranges.
Definition at line 184 of file TrigCostAnalysis.cxx.
185 const EventContext& context = Gaudi::Hive::currentContext();
193 return StatusCode::SUCCESS;
197 ATH_MSG_DEBUG(
"Monitoring event " << context.eventID().event_number() <<
" in LB " << context.eventID().lumi_block() <<
" in range " <<
range->getName());
208 if (metadataDataHandle.isValid()){
212 const std::string hostname = tc->getDetail<std::string>(
"hostname");
213 m_hostnames.insert(hostname);
215 ATH_MSG_WARNING(
"Missing HLT_RuntimeMetadata EDM hostname for event " << context.eventID().event_number());
221 ATH_MSG_DEBUG(
"Not valid HLT_RuntimeMetadata handle for the event " << context.eventID().event_number());
226 std::map<std::string, std::set<size_t>> chainToAlgIdx;
227 std::map<std::string, std::set<size_t>> chainToUniqAlgs;
228 std::map<std::string, std::map<int16_t, std::set<size_t>>> seqToAlgIdx;
229 std::map<std::string, std::set<std::string>> algToChain;
234 std::map<std::string, std::string> algToSeq;
243 chainToAlgIdx[
chain].insert(tc->index());
249 chainToUniqAlgs[*algToChain[
algName].begin()].insert(tc->index());
254 seqToAlgIdx[algToSeq[
algName]][
view].insert(tc->index());
258 const std::set<TrigCompositeUtils::DecisionID> seededChains =
m_algToChainTool->retrieveActiveChains(context,
"HLTNav_L1");
259 std::vector<TrigCompositeUtils::AlgToChainTool::ChainInfo> seededChainsInfo;
262 bool skipMonitoringThisEvent =
false;
265 skipMonitoringThisEvent =
true;
268 for (
auto id : seededChains){
271 seededChainsInfo.push_back(chainInfo);
276 ATH_CHECK( costData.
set(costDataHandle.get(), rosDataHandle.get(), onlineSlot) );
282 costData.
setLb( context.eventID().lumi_block() );
286 bool liveTimeIsPerEvent =
true;
287 if (liveTime == 0.0) {
289 liveTimeIsPerEvent =
false;
291 costData.
setLivetime( liveTime, liveTimeIsPerEvent );
300 return StatusCode::SUCCESS;
◆ extraDeps_update_handler()
Add StoreName to extra input/output deps as needed.
use the logic of the VarHandleKey to parse the DataObjID keys supplied via the ExtraInputs and ExtraOuputs Properties to add the StoreName if it's not explicitly given
◆ extraOutputDeps()
const DataObjIDColl & AthAlgorithm::extraOutputDeps |
( |
| ) |
const |
|
overridevirtualinherited |
Return the list of extra output dependencies.
This list is extended to include symlinks implied by inheritance relations.
Definition at line 50 of file AthAlgorithm.cxx.
57 return Algorithm::extraOutputDeps();
◆ finalize()
StatusCode TrigCostAnalysis::finalize |
( |
| ) |
|
|
finalvirtual |
Currently a noop for this algorithm.
Definition at line 459 of file TrigCostAnalysis.cxx.
463 return StatusCode::SUCCESS;
◆ getOnlineSlot()
Return the slot used to process the event online.
- Parameters
-
[in] | costCollection | Cost data. |
- Returns
- Oneline slot number..
Definition at line 401 of file TrigCostAnalysis.cxx.
406 if (costCollection->
size() == 0) {
412 if (algSlot == 0 or algSlot != initialSlot) {
◆ getRange()
StatusCode TrigCostAnalysis::getRange |
( |
const EventContext & |
context, |
|
|
MonitoredRange *& |
range |
|
) |
| |
|
private |
Return or construct and return a Range for the Context.
Might return nullptr range.
- Parameters
-
[in] | context | Event context. |
[out] | range | Reference to a mutable range ptr. Will be set to point to the Range. If range does not exist it will be created unless the maximum number of ranges has been reached. If this happens, range will be set to nullptr. |
Definition at line 361 of file TrigCostAnalysis.cxx.
362 std::string rangeName;
364 bool includeEndOfLB =
false;
372 std::stringstream
ss;
373 ss <<
"LumiBlock_" << std::setfill(
'0') << std::setw(5) << lumiBlockRangeStart;
374 if (includeEndOfLB && lumiBlockRangeStop != lumiBlockRangeStart) {
375 ss <<
"_" << lumiBlockRangeStop;
377 rangeName =
ss.str();
380 std::unordered_map<std::string, std::unique_ptr<MonitoredRange>>
::iterator it;
387 std::make_pair(rangeName, std::make_unique<MonitoredRange>(rangeName,
this))
393 return StatusCode::SUCCESS;
398 return StatusCode::SUCCESS;
◆ getWeight()
float TrigCostAnalysis::getWeight |
( |
const EventContext & |
context | ) |
|
|
private |
Compute global event weight to correct for online prescales.
- Parameters
-
[in] | context | Event context. |
- Returns
- Global event weight.
Definition at line 160 of file TrigCostAnalysis.cxx.
162 double ebWeight = 1.0;
◆ initialize()
StatusCode TrigCostAnalysis::initialize |
( |
| ) |
|
|
finalvirtual |
Retrieve tools and initialise read handles.
Definition at line 34 of file TrigCostAnalysis.cxx.
48 ATH_MSG_DEBUG(
"No EnhancedBiasTool. Not doing additional weighting.");
50 ATH_MSG_FATAL(
"Configured to use Enhanced Bias weights. Must supply weighting tool.");
51 return StatusCode::FAILURE;
59 if (hashFile.empty()) {
68 ATH_CHECK(
m_histSvc->regTree(
"/COSTSTREAM/metadata", std::make_unique<TTree>(
"metadata",
"metadata")) );
71 return StatusCode::SUCCESS;
◆ inputHandles()
Return this algorithm's input handles.
We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.
◆ msg() [1/2]
◆ msg() [2/2]
◆ msgLvl()
◆ outputHandles()
Return this algorithm's output handles.
We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.
◆ registerMonitors()
StatusCode TrigCostAnalysis::registerMonitors |
( |
MonitoredRange * |
range | ) |
|
|
private |
Populate a newly minted Range object with all configured Monitors.
- Parameters
-
[in] | range | Mutable ptr to new Range object which is to be populated. |
Definition at line 316 of file TrigCostAnalysis.cxx.
319 ATH_CHECK(
range->addMonitor(std::make_unique<MonitorAlgorithm>(
"Algorithm_HLT",
range)) );
320 ATH_MSG_DEBUG(
"Registering Algorithm_HLT Monitor for range " <<
range->getName() <<
". Size:" <<
range->getMonitors().size());
323 ATH_CHECK(
range->addMonitor(std::make_unique<MonitorAlgorithmClass>(
"Algorithm_Class_HLT",
range)) );
324 ATH_MSG_DEBUG(
"Registering Algorithm_Class_HLT Monitor for range " <<
range->getName() <<
". Size:" <<
range->getMonitors().size());
328 ATH_MSG_DEBUG(
"Registering Global_HLT Monitor for range " <<
range->getName() <<
". Size:" <<
range->getMonitors().size());
331 ATH_CHECK(
range->addMonitor(std::make_unique<MonitorThreadOccupancy>(
"Thread_Occupancy_HLT",
range)) );
332 ATH_MSG_DEBUG(
"Registering Thread_Occupancy_HLT Monitor for range " <<
range->getName() <<
". Size:" <<
range->getMonitors().size());
336 ATH_MSG_DEBUG(
"Registering ROS_HLT Monitor for range " <<
range->getName() <<
". Size:" <<
range->getMonitors().size());
340 ATH_MSG_DEBUG(
"Registering Chain_HLT Monitor for range " <<
range->getName() <<
". Size:" <<
range->getMonitors().size());
343 ATH_CHECK(
range->addMonitor(std::make_unique<MonitorChainAlgorithm>(
"Chain_Algorithm_HLT",
range)) );
344 ATH_MSG_DEBUG(
"Registering Chain_Algorihtm_HLT Monitor for range " <<
range->getName() <<
". Size:" <<
range->getMonitors().size());
348 ATH_MSG_DEBUG(
"Registering Sequence_HLT Monitor for range " <<
range->getName() <<
". Size:" <<
range->getMonitors().size());
353 for (
const std::unique_ptr<MonitorBase>& monitor :
range->getMonitors()){
354 monitor->msg().setLevel(
msg().
level());
357 return StatusCode::SUCCESS;
◆ renounce()
◆ renounceArray()
◆ start()
StatusCode TrigCostAnalysis::start |
( |
| ) |
|
|
virtual |
Retrieve menu handle.
Definition at line 74 of file TrigCostAnalysis.cxx.
83 const ptree& menuData = hltMenuHandle->
data();
84 for (
const auto& sequencer : menuData.get_child(
"sequencers")) {
86 for (
const auto&
alg : sequencer.second) {
88 size_t breakPoint =
alg.second.data().find(
'/');
89 std::string algType =
alg.second.data().substr(0, breakPoint);
90 std::string
algName =
alg.second.data().substr(breakPoint+1,
alg.second.data().size());
95 if (algType.find(
"EventViewCreatorAlgorithm") != std::string::npos) {
103 std::vector<TrigConf::Chain>
chains;
110 const size_t legsSize {
chain.legMultiplicities().size()};
120 size_t breakPoint =
entry.find(
'/');
121 if (breakPoint != std::string::npos){
122 std::string algType =
entry.substr(0, breakPoint);
134 return StatusCode::SUCCESS;
◆ sysInitialize()
StatusCode AthAlgorithm::sysInitialize |
( |
| ) |
|
|
overridevirtualinherited |
◆ sysStart()
Handle START transition.
We override this in order to make sure that conditions handle keys can cache a pointer to the conditions container.
◆ updateVHKA()
◆ writeMetadata()
void TrigCostAnalysis::writeMetadata |
( |
| ) |
|
|
private |
Write to outpute tree (if any) the metadata needed downstream.
Definition at line 467 of file TrigCostAnalysis.cxx.
475 std::string hostnamesList =
"";
476 if (m_hostnames.size() > 1){
478 for (
const auto&
name : m_hostnames) hostnamesList +=
name +
",";
479 hostnamesList.pop_back();
480 }
else if (m_hostnames.size() == 1) {
481 hostnamesList = *m_hostnames.begin();
487 if ( hltMenuHandle.
isValid() ){
488 std::stringstream
ss;
489 boost::property_tree::json_parser::write_json(
ss, hltMenuHandle->
data());
503 m_metadataTree->Branch(
"ChainAlgorithmMonitor", &ChainAlgorithmMonitor);
505 m_metadataTree->Branch(
"AlgorithmClassMonitor", &AlgorithmClassMonitor);
518 std::string atlasProject =
std::getenv(
"AtlasProject");
519 std::string atlasVersion =
std::getenv(
"AtlasVersion");
524 std::string processedRanges;
529 std::stringstream
ss;
531 ss << rangePair.first <<
": ";
532 std::string
lbrange = rangePair.first.substr(strlen(
"LumiBlock_"));
535 processedRanges =
ss.str();
◆ ATLAS_THREAD_SAFE
std::set<std::string> m_hostnames TrigCostAnalysis::ATLAS_THREAD_SAFE |
|
mutableprivate |
◆ m_addHostnameMutex
std::mutex TrigCostAnalysis::m_addHostnameMutex |
|
private |
◆ m_additionalHashList
Gaudi::Property<std::vector<std::string> > TrigCostAnalysis::m_additionalHashList |
Initial value:{ this, "AdditionalHashList", {},
"Used to load strings corresponding to algorithms which are not explicitly scheduled by chains." }
Definition at line 90 of file TrigCostAnalysis.h.
◆ m_additionalHashMap
Gaudi::Property<std::string> TrigCostAnalysis::m_additionalHashMap |
Initial value:{ this, "AdditionalHashMap", "TrigCostRootAnalysis/hashes2string_29042021.txt",
"Used to load strings corresponding to algorithms which are not explicitly scheduled by chains. To be updated periodically." }
Definition at line 87 of file TrigCostAnalysis.h.
◆ m_algToChainTool
Initial value:{this, "AlgToChainTool", "",
"Tool to retrieve chains for algorithm."}
Definition at line 153 of file TrigCostAnalysis.h.
◆ m_algTypeMap
std::unordered_map<uint32_t, std::string > TrigCostAnalysis::m_algTypeMap |
|
private |
Cache of algorithm's type, read from configuration data.
Definition at line 213 of file TrigCostAnalysis.h.
◆ m_baseEventWeight
Gaudi::Property<float> TrigCostAnalysis::m_baseEventWeight |
Initial value:{ this, "BaseEventWeight", true,
"Base events weight, other weights may be multiplied on top of this one." }
Definition at line 132 of file TrigCostAnalysis.h.
◆ m_costDataKey
Initial value:{ this, "CostReadHandleKey", "HLT_TrigCostContainer",
"Trigger cost payload container for algorithms" }
Definition at line 138 of file TrigCostAnalysis.h.
◆ m_costROSData
◆ m_detStore
◆ m_doMonitorAlgorithm
Gaudi::Property<bool> TrigCostAnalysis::m_doMonitorAlgorithm |
Initial value:{ this, "DoMonitorAlgs", true,
"Monitor individual algorithms by instance name" }
Definition at line 99 of file TrigCostAnalysis.h.
◆ m_doMonitorAlgorithmClass
Gaudi::Property<bool> TrigCostAnalysis::m_doMonitorAlgorithmClass |
Initial value:{ this, "DoMonitorAlgClass", true,
"Monitor individual algorithms by instance class type name" }
Definition at line 102 of file TrigCostAnalysis.h.
◆ m_doMonitorChain
Gaudi::Property<bool> TrigCostAnalysis::m_doMonitorChain |
Initial value:{ this, "DoMonitorChain", true,
"Monitor individual chains by instance name" }
Definition at line 114 of file TrigCostAnalysis.h.
◆ m_doMonitorChainAlgorithm
Gaudi::Property<bool> TrigCostAnalysis::m_doMonitorChainAlgorithm |
Initial value:{ this, "DoMonitorChainAlgorithm", false,
"Monitor algorithms associated with chains by instance name" }
Definition at line 117 of file TrigCostAnalysis.h.
◆ m_doMonitorGlobal
Gaudi::Property<bool> TrigCostAnalysis::m_doMonitorGlobal |
Initial value:{ this, "DoMonitorGlobal", true,
"Monitor global event properties" }
Definition at line 105 of file TrigCostAnalysis.h.
◆ m_doMonitorROS
Gaudi::Property<bool> TrigCostAnalysis::m_doMonitorROS |
Initial value:{ this, "DoMonitorROS", true,
"Monitor Read-Out System" }
Definition at line 111 of file TrigCostAnalysis.h.
◆ m_doMonitorSequence
Gaudi::Property<bool> TrigCostAnalysis::m_doMonitorSequence |
Initial value:{ this, "DoMonitorSequence", true,
"Monitor individual sequences by name" }
Definition at line 120 of file TrigCostAnalysis.h.
◆ m_doMonitorThreadOccupancy
Gaudi::Property<bool> TrigCostAnalysis::m_doMonitorThreadOccupancy |
Initial value:{ this, "DoMonitorThreadOccupancy", true,
"Monitor algorithm occupancy load of individual threads in an MT execution environment" }
Definition at line 108 of file TrigCostAnalysis.h.
◆ m_enhancedBiasTool
Initial value:{this, "EnhancedBiasTool", "",
"Enhanced bias weighting tool."}
Definition at line 150 of file TrigCostAnalysis.h.
◆ m_evtStore
◆ m_extendedExtraObjects
DataObjIDColl AthAlgorithm::m_extendedExtraObjects |
|
privateinherited |
◆ m_fullEventDumpProbability
Gaudi::Property<uint64_t> TrigCostAnalysis::m_fullEventDumpProbability |
Initial value:{ this, "FullEventDumpProbability", 10,
"Save a full record of one in every N events, up to MaxFullEventDumps." }
Definition at line 129 of file TrigCostAnalysis.h.
◆ m_fullEventDumps
std::atomic<size_t> TrigCostAnalysis::m_fullEventDumps |
|
mutableprivate |
Counter to keep track of how many events have been full-dumped.
Definition at line 217 of file TrigCostAnalysis.h.
◆ m_histSvc
ServiceHandle<ITHistSvc> TrigCostAnalysis::m_histSvc { this, "THistSvc", "THistSvc/THistSvc", "Histogramming svc" } |
◆ m_HLTMenuKey
Initial value:{this, "HLTTriggerMenu", "DetectorStore+HLTTriggerMenu",
"HLT Menu"}
Definition at line 147 of file TrigCostAnalysis.h.
◆ m_maxFullEventDumps
Gaudi::Property<size_t> TrigCostAnalysis::m_maxFullEventDumps |
Initial value:{ this, "MaxFullEventDumps", 10,
"Maximum number of full event summaries which will be dumped" }
Definition at line 126 of file TrigCostAnalysis.h.
◆ m_maxTimeRange
Gaudi::Property<size_t> TrigCostAnalysis::m_maxTimeRange |
Initial value:{ this, "MaxTimeRanges", 5,
"Maximum number of allowed time ranges" }
Definition at line 96 of file TrigCostAnalysis.h.
◆ m_maxViewsNumber
std::atomic<size_t> TrigCostAnalysis::m_maxViewsNumber |
|
mutableprivate |
What is the maximum number of View instances we've so far cached string hashes to cover?
Definition at line 218 of file TrigCostAnalysis.h.
◆ m_metadataDataKey
Initial value:{ this, "CostMetadataWriteHandleKey", "HLT_RuntimeMetadata",
"TrigComposite collections with additional cost metadata" }
Definition at line 144 of file TrigCostAnalysis.h.
◆ m_metadataTree
TTree* TrigCostAnalysis::m_metadataTree |
|
private |
Used to write out some metadata needed by post-processing (e.g.
bunchgroup, lumi)
Definition at line 215 of file TrigCostAnalysis.h.
◆ m_monitoredRanges
std::unordered_map<std::string, std::unique_ptr<MonitoredRange> > TrigCostAnalysis::m_monitoredRanges |
|
private |
◆ m_rosDataKey
Initial value:{ this, "CostROSReadHandleKey", "HLT_TrigCostROSContainer",
"Trigger ROS cost payload container for algorithms" }
Definition at line 141 of file TrigCostAnalysis.h.
◆ m_rosToRob
Gaudi::Property<std::map<std::string, std::vector<uint32_t> > > TrigCostAnalysis::m_rosToRob |
Initial value:{
this, "ROSToROBMap", {}, "ROS to ROB mapping" }
Definition at line 135 of file TrigCostAnalysis.h.
◆ m_singleTimeRange
Gaudi::Property<bool> TrigCostAnalysis::m_singleTimeRange |
Initial value:{ this, "UseSingleTimeRange", false,
"Use a single time range rather than splitting by LB" }
Definition at line 81 of file TrigCostAnalysis.h.
◆ m_singleTimeRangeName
Gaudi::Property<std::string> TrigCostAnalysis::m_singleTimeRangeName |
Initial value:{ this, "SingleTimeRangeName", "All",
"Name for single time range" }
Definition at line 84 of file TrigCostAnalysis.h.
◆ m_storeIdentifiers
std::set<std::string> TrigCostAnalysis::m_storeIdentifiers |
|
private |
◆ m_TimeRangeLengthLB
Gaudi::Property<size_t> TrigCostAnalysis::m_TimeRangeLengthLB |
Initial value:{ this, "TimeRangeLengthLB", 50,
"Length of each variable length Time Range in LB" }
Definition at line 93 of file TrigCostAnalysis.h.
◆ m_useEBWeights
Gaudi::Property<bool> TrigCostAnalysis::m_useEBWeights |
Initial value:{ this, "UseEBWeights", true,
"Apply Enhanced Bias weights" }
Definition at line 123 of file TrigCostAnalysis.h.
◆ m_varHandleArraysDeclared
◆ m_vhka
The documentation for this class was generated from the following files:
JetConstituentVector::iterator iterator
const ptree & data() const
Access to the underlying data, if needed.
Gaudi::Property< std::string > m_additionalHashMap
ServiceHandle< ITHistSvc > m_histSvc
std::string replace(std::string s, const std::string &s2, const std::string &s3)
SG::ReadHandleKey< xAOD::TrigCompositeContainer > m_costDataKey
std::atomic< size_t > m_fullEventDumps
Counter to keep track of how many events have been full-dumped.
void setSequencersMap(const std::map< std::string, std::map< int16_t, std::set< size_t >>> &seqToAlg)
Set the sequence to alg idx map.
SG::ReadHandleKey< xAOD::TrigCompositeContainer > m_rosDataKey
std::set< std::string > m_storeIdentifiers
Identifiers of object stores, needed to cache STORE string-hash values.
std::atomic< size_t > m_maxViewsNumber
What is the maximum number of View instances we've so far cached string hashes to cover?
void writeMetadata()
Write to outpute tree (if any) the metadata needed downstream.
bool isMasterSlot() const
Gaudi::Property< size_t > m_maxFullEventDumps
uint32_t getOnlineSlot(const xAOD::TrigCompositeContainer *costCollection) const
Return the slot used to process the event online.
Gaudi::Property< bool > m_doMonitorROS
Gaudi::Property< bool > m_doMonitorChain
void initialize(const std::map< std::string, std::vector< uint32_t >> &rosToRobMap)
Create object based on ROS to ROB mapping.
Gaudi::Property< uint64_t > m_fullEventDumpProbability
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
const std::string & algName(ID id)
Converts a JetAlgorithmType::ID into a string.
void setTypeMap(const std::unordered_map< uint32_t, std::string > &typeMap)
Set internal type map pointer.
StoreGateSvc_t m_evtStore
Pointer to StoreGate (event store by default)
std::vector< SG::VarHandleKeyArray * > m_vhka
std::unordered_map< uint32_t, std::string > m_algTypeMap
Cache of algorithm's type, read from configuration data.
ToolHandle< TrigCompositeUtils::AlgToChainTool > m_algToChainTool
StatusCode checkUpdateMaxView(const size_t max)
High watermark for pre-cached string hashes for the SLOT category.
#define ATH_MSG_VERBOSE(x)
const std::string & key() const
Return the StoreGate ID for the referenced object.
Gaudi::Property< bool > m_useEBWeights
setScaleOne setStatusOne setSaturated int16_t
StatusCode set(const xAOD::TrigCompositeContainer *costCollection, const xAOD::TrigCompositeContainer *rosCollection, uint32_t onlineSlot)
Cache the cost and ros collections, after formally requesting it from storegate.
ToolHandle< IEnhancedBiasWeighter > m_enhancedBiasTool
virtual void setOwner(IDataHandleHolder *o)=0
void setLb(uint32_t lb)
Setter of effective P1 walltime represented by the current event.
Gaudi::Property< float > m_baseEventWeight
SG::ReadCondHandle< T > makeHandle(const SG::ReadCondHandleKey< T > &key, const EventContext &ctx=Gaudi::Hive::currentContext())
virtual StatusCode sysInitialize() override
Override sysInitialize.
std::mutex m_addHostnameMutex
Mutex to update set below.
static HLTHash string2hash(const std::string &, const std::string &category="TE")
hash function translating TE names into identifiers
virtual std::vector< Gaudi::DataHandle * > outputHandles() const override
Return this algorithm's output handles.
::StatusCode StatusCode
StatusCode definition for legacy code.
Gaudi::Property< bool > m_singleTimeRange
CostROSData m_costROSData
Cached CostROSData class with details needed for ROS monitoring.
TTree * m_metadataTree
Used to write out some metadata needed by post-processing (e.g.
void setSeededChains(const std::vector< TrigCompositeUtils::AlgToChainTool::ChainInfo > &seededChains)
Set the seeded chains set.
Gaudi::Property< std::vector< std::string > > m_additionalHashList
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
StatusCode initialize(bool used=true)
If this object is used as a property, then this should be called during the initialize phase.
Gaudi::Property< bool > m_doMonitorThreadOccupancy
Gaudi::Property< bool > m_doMonitorGlobal
Class used to describe composite objects in the HLT.
virtual bool isValid() override final
Can the handle be successfully dereferenced?
virtual void renounce()=0
std::conditional< std::is_base_of< SG::VarHandleKeyArray, T >::value, VarHandleKeyArrayType, type2 >::type type
StatusCode registerMonitors(MonitoredRange *range)
Populate a newly minted Range object with all configured Monitors.
std::unordered_map< std::string, std::unique_ptr< MonitoredRange > > m_monitoredRanges
Owned storage of Ranges.
boost::property_tree::ptree ptree
Gaudi::Property< bool > m_doMonitorSequence
Gaudi::Property< bool > m_doMonitorAlgorithm
SG::ReadHandleKey< xAOD::TrigCompositeContainer > m_metadataDataKey
static const std::string hash2string(HLTHash, const std::string &category="TE")
hash function translating identifiers into names (via internal dictionary)
Gaudi::Property< bool > m_doMonitorChainAlgorithm
HLT::Identifier createLegName(const HLT::Identifier &chainIdentifier, size_t counter)
Generate the HLT::Identifier which corresponds to a specific leg of a given chain.
std::string PathResolverFindCalibFile(const std::string &logical_file_name)
virtual StatusCode start()
Retrieve menu handle.
DataObjIDColl m_extendedExtraObjects
SG::ReadHandleKey< TrigConf::HLTMenu > m_HLTMenuKey
Gaudi::Property< size_t > m_TimeRangeLengthLB
Container which represents a time range and holds a collection of Monitors which monitor this range.
std::string getenv(const std::string &variableName)
get an environment variable
Gaudi::Property< std::string > m_singleTimeRangeName
#define ATH_MSG_WARNING(x)
void setCostROSData(const CostROSData &costROSData)
Set ROS to ROB map.
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
Gaudi::Property< bool > m_doMonitorAlgorithmClass
AthAlgorithm()
Default constructor:
void setChainToAlgMap(const std::map< std::string, std::set< size_t >> &algToChains)
Set the alg name to chains map.
const T * at(size_type n) const
Access an element, as an rvalue.
void setLivetime(float time, bool liveTimeIsPerEvent)
Setter of effective P1 walltime represented by the current event, or the current lumi block.
float getWeight(const EventContext &context)
Compute global event weight to correct for online prescales.
static void file2hashes(const std::string &fileName="hashes2string.txt")
debugging output of internal dictionary
Gaudi::Property< size_t > m_maxTimeRange
void setChainToUniqAlgMap(const std::map< std::string, std::set< size_t >> &algToChains)
Set the chain to its unique alg names map.
Gaudi::Property< std::map< std::string, std::vector< uint32_t > > > m_rosToRob
StatusCode getRange(const EventContext &context, MonitoredRange *&range)
Return or construct and return a Range for the Context.
size_type size() const noexcept
Returns the number of elements in the collection.
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
Caches and propagates event data to be used by monitoring algorithms.
StatusCode dumpEvent(const EventContext &context) const
Dump event algorithm execution data in ASCII format.
bool checkDoFullEventDump(const EventContext &context, const CostData &costData)
Check if event dumping should be performed for the current event.