|
ATLAS Offline Software
|
Go to the documentation of this file.
52 for(
size_t i = 0;
i<isPassed.size();
i++) {
55 L1Events = L1items[
i];
67 std::map<std::string,std::string>
streams;
68 streams.insert(std::make_pair(
"HLT_AllChains",
"HLT_.*"));
69 streams.insert(std::make_pair(
"HLT_Electrons",
"HLT_[0-9]*e[0-9]+.*"));
70 streams.insert(std::make_pair(
"HLT_Gamma",
"HLT_[0-9]*g[0-9]+.*"));
71 streams.insert(std::make_pair(
"HLT_Muons",
"HLT_[0-9]*mu[0-9]+.*"));
72 streams.insert(std::make_pair(
"HLT_Taus",
"HLT_(tau[0-9]*|trk.*Tau).*"));
73 streams.insert(std::make_pair(
"HLT_MissingET",
"HLT_(t|x)e[0-9]+.*"));
74 streams.insert(std::make_pair(
"HLT_Jets",
"HLT_[0-9]*j[0-9]+.*"));
75 streams.insert(std::make_pair(
"HLT_MinBias",
"HLT_mb.*"));
81 std::vector<int> roiN;
84 std::map<std::string,std::string>::const_iterator strItr;
87 std::string signaturename = strItr->first;
88 std::string thisregex = strItr->second;
91 std::string
toolname =
"Trig"+signaturename+
"Monitor";
96 std::string histname_raw = signaturename+
"RAW";
97 std::string histname_ps = signaturename+
"PS";
102 std::string histname_eta=signaturename+
"_eta";
103 std::string histname_phi=signaturename+
"_phi";
110 std::string histname_roiN=signaturename+
"RoI_N";
114 ATH_MSG_DEBUG(
"Filling HLT" << signaturename <<
" and RoI information for " << thisregex );
117 const std::vector<std::string> chainNames =
group->getListOfTriggers();
118 const std::vector<bool> isPassed =
group->isPassedForEach(TrigDefs::requireDecision);
120 for(
size_t i=0;
i<isPassed.size();
i++) {
122 const std::string&
chain = chainNames[
i];
133 prescale =
c->prescale();
136 ATH_MSG_WARNING(
"No chain found in trigDecTool->ExperimentalAndExpertMethods().getChainConfigurationDetails(" <<
chain <<
"). Using prescale 0");
147 featureRequestDescriptor.
setCondition(TrigDefs::Physics);
159 RoI_eta = roi->
eta();
160 RoI_phi = roi->
phi();
207 ATH_MSG_DEBUG(
"Finalizing the TrigHLTMonitorAlgorithm..." );
208 return StatusCode::SUCCESS;
215 StatusCode sc_hltEvents = StatusCode::FAILURE;
216 StatusCode sc_onlineKeys = StatusCode::FAILURE;
217 StatusCode sc_eventKeys = StatusCode::FAILURE;
228 sc_hltEvents = StatusCode::SUCCESS;
231 sc_onlineKeys = StatusCode::SUCCESS;
238 sc_eventKeys = StatusCode::SUCCESS;
256 if(sc_onlineKeys == StatusCode::SUCCESS) {
257 bskeys_1 = onlineKeys->
smk();
258 bskeys_2 = onlineKeys->
hltpsk();
259 ATH_MSG_DEBUG(
"TrigConfKeysOnline: SMK = bskeys_1 = " << bskeys_1 <<
", HLTPSK = bskeys_2 = " << bskeys_2);
263 ConfigConsistency_HLT=7;
267 ATH_MSG_DEBUG(
"No online keys, reverting to default 0: SMK = bskeys_1 = " << bskeys_1 <<
", HLTPSK = bskeys_2 = " << bskeys_2);
272 uint32_t bskeys[] = {bskeys_1, bskeys_2};
275 if(sc_eventKeys == StatusCode::SUCCESS) {
276 dbkeys[0] = eventKeys->
smk();
277 dbkeys[1] = eventKeys->
hltpsk();
279 ATH_MSG_DEBUG(
"TrigConfKeys: SMK = dbkeys[0] = " << dbkeys[0] <<
", HLTPSK = dbkeys[1] = " << dbkeys[1]);
283 ConfigConsistency_HLT=8;
287 ATH_MSG_DEBUG(
"No event keys, reverting to default 0: SMK = dbkeys[0] = " << dbkeys[0] <<
", HLTPSK = dbkeys[1] = " << dbkeys[0]);
290 for(
int i = 0;
i < 2; ++
i) {
291 ATH_MSG_DEBUG(
"i = " <<
i <<
", dbkeys[" <<
i <<
"] = " << dbkeys[
i] <<
", bskeys[" <<
i <<
"] = " << bskeys[
i]);
293 ConfigConsistency_HLT=3*
i+1;
295 ATH_MSG_DEBUG(
"dbkeys[" <<
i <<
"] = 0, ConfigConsistency_HLT=" << ConfigConsistency_HLT);
298 ConfigConsistency_HLT=3*
i+2;
300 ATH_MSG_DEBUG(
"bskeys[" <<
i <<
"] = 0, ConfigConsistency_HLT=" << ConfigConsistency_HLT);
302 if(dbkeys[
i]!=bskeys[
i]) {
303 ConfigConsistency_HLT=3*
i+3;
305 ATH_MSG_DEBUG(
"dbkeys[" <<
i <<
"]!=bskeys[" <<
i <<
"], ConfigConsistency_HLT=" << ConfigConsistency_HLT);
314 HLTEvents = (
int)sc_hltEvents.isSuccess();
317 return StatusCode::SUCCESS;
FeatureRequestDescriptor & setCondition(const unsigned int condition)
Set the Condition: TrigDefs::Physics - (default), only returns features from paths through the naviga...
SG::ReadHandleKey< xAOD::TrigConfKeys > m_onlineKey
Group
Properties of a chain group.
PublicToolHandle< Trig::TrigDecisionTool > m_trigDecTool
Tool to tell whether a specific trigger is passed.
FeatureRequestDescriptor & setChainGroup(const std::string &chainGroupName)
Set the desired Chain or Chain Group.
const ToolHandle< Trig::TrigDecisionTool > & getTrigDecisionTool() const
Get the trigger decision tool member.
uint32_t smk() const
Get the Super Master Key of this configuration.
nope - should be used for standalone also, perhaps need to protect the class def bits #ifndef XAOD_AN...
HLT chain configuration information.
virtual StatusCode fillHistograms(const EventContext &ctx) const override
adds event to the monitoring histograms
bool equal(double a, double b)
Compare two FP numbers, working around x87 precision issues.
Base class for Athena Monitoring Algorithms.
const std::string & initialRoIString()
Generic monitoring tool for athena components.
StatusCode fillResultAndConsistencyHistograms(const EventContext &ctx) const
::StatusCode StatusCode
StatusCode definition for legacy code.
Workaround x86 precision issues for FP inequality comparisons.
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.
virtual bool isValid() override final
Can the handle be successfully dereferenced?
FeatureRequestDescriptor & setRestrictRequestToLeg(const int restrictToLegIndex)
Set to -1 by default, indicating that all legs of multi-leg chains are searched.
TrigHLTMonitorAlgorithm(const std::string &name, ISvcLocator *pSvcLocator)
FeatureRequestDescriptor & setLinkName(const std::string &navElementLinkKey)
Set the Link Name Key.
ServiceHandle< TrigConf::ITrigConfigSvc > m_trigConfigSvc
virtual StatusCode initialize() override
initialize
Helper to keep a Decision object, ElementLink and ActiveState (with respect to some requested ChainGr...
#define ATH_MSG_WARNING(x)
virtual double phi() const override final
Methods to retrieve data members.
SG::ReadHandleKey< xAOD::TrigConfKeys > m_eventKey
std::vector< bool > isPassedForEach(unsigned int condition=TrigDefs::Physics) const
return vector with isPassed decision for each chain
virtual bool isFullscan() const override final
is this a full scan RoI?
virtual ~TrigHLTMonitorAlgorithm()
virtual double eta() const override final
Declare a monitored scalar variable.
std::vector< std::string > getListOfTriggers() const
uint32_t hltpsk() const
Get the HLT prescale key of this configuration.
const ToolHandle< GenericMonitoringTool > & getGroup(const std::string &name) const
Get a specific monitoring tool from the tool handle array.
virtual StatusCode initialize() override
initialize