 |
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.
Scalar phi() const
phi method
PublicToolHandle< Trig::TrigDecisionTool > m_trigDecTool
Tool to tell whether a specific trigger is passed.
Scalar eta() const
pseudorapidity method
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.
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.
const std::string & initialRoIString()
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