|
ATLAS Offline Software
|
Go to the documentation of this file.
11 #include <boost/algorithm/string.hpp>
17 const std::string&
name,
29 return StatusCode::SUCCESS;
34 ATH_MSG_INFO(
"Updating CTP bits decoding configuration");
54 return StatusCode::SUCCESS;
58 ATH_MSG_WARNING(itemName <<
" used to seed the chain " <<
id <<
" not in the configuration ");
59 return StatusCode::SUCCESS;
61 ATH_MSG_ERROR(itemName <<
" used to seed the chain " <<
id <<
" not in the configuration ");
62 return StatusCode::FAILURE;
69 if (
chain.l1item().empty() ) {
71 }
else if (
chain.l1item().find(
',') != std::string::npos ) {
73 std::vector<std::string>
items;
75 for (
const std::string&
i:
items ) {
76 ATH_CHECK( addIfItemExists(
i, chainID,
true ) );
84 for (
auto chain: ctpIDtoChain.second ) {
89 return StatusCode::SUCCESS;
98 const size_t bitsSize = ctpBits.size();
99 constexpr
static size_t wordSize{32};
101 for (
size_t wordCounter = 0; wordCounter < bitsSize; ++wordCounter ) {
102 for (
size_t bitCounter = 0; bitCounter < wordSize; ++bitCounter ) {
103 const size_t ctpIndex = wordSize*wordCounter + bitCounter;
104 const bool decision = ( ctpBits[wordCounter].roIWord() & ((
uint32_t)1 << bitCounter) ) > 0;
109 ATH_MSG_DEBUG(
"L1 item " << ctpIndex <<
" active, enabling chains "
110 << (
m_forceEnable ?
" due to the forceEnable flag" :
" due to the seed"));
115 enabledChains.insert( enabledChains.end(), itr->second.begin(), itr->second.end() );
123 enabledChains.insert( enabledChains.end(), itr->second.begin(), itr->second.end());
126 nChains = enabledChains.size();
127 for (
auto chain: enabledChains ) {
131 ATH_MSG_ERROR(
"All CTP bits were disabled, this event should not have shown here" );
132 return StatusCode::FAILURE;
135 return StatusCode::SUCCESS;
140 const std::vector<std::string>& l1ItemNames,
147 for (
const std::string& l1name : l1ItemNames) {
151 const size_t bitCounter = ctpId % 32;
152 const size_t wordCounter = ctpId / 32;
154 const bool decision = (ctpBits[wordCounter].roIWord() & ((
uint32_t)1 << bitCounter)) > 0;
156 pass = (pass || decision);
160 return StatusCode::FAILURE;
164 return StatusCode::SUCCESS;
Group
Properties of a chain group.
Class holding the LVL1 RoIB result build by the RoIBuilder.
const std::vector< CTPRoI > TBP() const
get trigger result before prescale
SG::ReadCondHandle< T > makeHandle(const SG::ReadCondHandleKey< T > &key, const EventContext &ctx=Gaudi::Hive::currentContext())
std::vector< HLT::Identifier > IDVec
It used to be useful piece of code for replacing actual SG with other store of similar functionality ...
::StatusCode StatusCode
StatusCode definition for legacy code.
L1 threshold configuration.
StatusCode initialize(bool used=true)
If this object is used as a property, then this should be called during the initialize phase.
Header file to be included by clients of the Monitored infrastructure.
virtual bool isValid() override final
Can the handle be successfully dereferenced?
const CTPResult & cTPResult() const
Gets the CTP part of the L1 RDO.
const std::vector< CTPRoI > TAV() const
get trigger result after veto
#define ATH_MSG_WARNING(x)
Declare a monitored scalar variable.