73 const std::string& name,
74 const IInterface* parent )
78 declareInterface< ITrigDecisionCnvTool >(
this );
95 return StatusCode::SUCCESS;
111 ATH_MSG_DEBUG(
"converting TrigDecision to xAOD::TrigDecision" );
118 ATH_MSG_DEBUG(
"converting BGCode " << std::hex << (
unsigned int) aod->
BGCode() <<
" (size " <<
sizeof(aod->
BGCode()) <<
"|" <<
sizeof(xaod->
bgCode()) <<
")" );
125 }
else if( triggerInfo !=
nullptr ){
129 std::vector<uint32_t>::const_iterator begin, end;
133 std::advance(end,L1SIZE);
134 std::vector<uint32_t> tbp(begin,end);
137 std::advance(end,L1SIZE);
138 std::vector<uint32_t> tap(begin,end);
141 std::advance(end,L1SIZE);
142 std::vector<uint32_t> tav(begin,end);
154 ATH_MSG_DEBUG(
"can not set L1 info as the old TrigDecision has no L1Result and there is no TriggerInfo available");
169 std::vector< uint32_t > l2PassedPhysics(
BITSET_SIZE, 0 );
170 std::vector< uint32_t > l2PassedRaw (
BITSET_SIZE, 0 );
171 std::vector< uint32_t > l2PassedThrough(
BITSET_SIZE, 0 );
172 std::vector< uint32_t > l2Prescaled (
BITSET_SIZE, 0 );
173 std::vector< uint32_t > l2Resurrected (
BITSET_SIZE, 0 );
176 std::vector< uint32_t > efPassedPhysics(
BITSET_SIZE, 0 );
177 std::vector< uint32_t > efPassedRaw (
BITSET_SIZE, 0 );
178 std::vector< uint32_t > efPassedThrough(
BITSET_SIZE, 0 );
179 std::vector< uint32_t > efPrescaled (
BITSET_SIZE, 0 );
180 std::vector< uint32_t > efResurrected (
BITSET_SIZE, 0 );
186 TrigConf::HLTChainList::const_iterator chain_itr = chains.begin();
187 TrigConf::HLTChainList::const_iterator chain_end = chains.end();
188 for( ; chain_itr != chain_end; ++chain_itr ) {
191 if(
static_cast< uint32_t
>( ( *chain_itr )->chain_counter() )
200 const uint32_t bits =
m_tdt->isPassedBits(group);
205 CHECK(
setBit( l2PassedPhysics, ( *chain_itr )->chain_counter(),
207 CHECK(
setBit( l2PassedRaw, ( *chain_itr )->chain_counter(),
209 CHECK(
setBit( l2PassedThrough, ( *chain_itr )->chain_counter(),
211 CHECK(
setBit( l2Prescaled, ( *chain_itr )->chain_counter(),
213 CHECK(
setBit( l2Resurrected, ( *chain_itr )->chain_counter(),
219 CHECK(
setBit( efPassedPhysics, ( *chain_itr )->chain_counter(),
221 CHECK(
setBit( efPassedRaw, ( *chain_itr )->chain_counter(),
223 CHECK(
setBit( efPassedThrough, ( *chain_itr )->chain_counter(),
225 CHECK(
setBit( efPrescaled, ( *chain_itr )->chain_counter(),
227 CHECK(
setBit( efResurrected, ( *chain_itr )->chain_counter(),
245 return StatusCode::SUCCESS;
249 uint32_t chainId,
bool value ) {
254 return StatusCode::FAILURE;
258 const size_t word = chainId / 32;
259 const size_t bit = chainId % 32;
263 bitset[ word ] = bitset[ word ] | ( 0x1 << bit );
266 bitset[ word ] = bitset[ word ] & ( ~ ( 0x1 << bit ) );
270 return StatusCode::SUCCESS;
Helpers for checking error return status codes and reporting errors.
#define CHECK(...)
Evaluate an expression and check for errors.
virtual uint32_t error_bits() const
bit flags to explain problems during processing
bool isHLTResultTruncated() const
is serialized HLTResult truncated
bool isConfigured() const
is LVL1 configured ?
const std::vector< uint32_t > & itemsAfterVeto() const
const std::vector< uint32_t > & itemsAfterPrescale() const
const std::vector< uint32_t > & itemsBeforePrescale() const
list of all HLT chains in a trigger menu
The TrigDecision is an object which merges trigger informations from various levels.
const HLT::HLTResult & getEFResult() const
const HLT::HLTResult & getL2Result() const
uint32_t masterKey() const
const LVL1CTP::Lvl1Result & getL1Result() const
This class contains trigger related information.
const std::vector< number_type > & level1TriggerInfo() const
get level1 trigger info
void setLVL2Resurrected(const std::vector< uint32_t > &value)
Set the LVL2 resurrected bits.
void setTBP(const std::vector< uint32_t > &value)
Set the Trigger Before Prescale bits.
const std::vector< uint32_t > & tav() const
Get the Trigger After Veto bits.
void setEFPassedPhysics(const std::vector< uint32_t > &value)
Set the EF physics decision bits.
void setEFTruncated(bool value)
Set whether the EF result is truncated.
void setEFPrescaled(const std::vector< uint32_t > &value)
Set the EF prescaled bits.
void setLVL2Prescaled(const std::vector< uint32_t > &value)
Set the LVL2 prescaled bits.
void setEFPassedThrough(const std::vector< uint32_t > &value)
Set the EF pass-through bits.
void setEFResurrected(const std::vector< uint32_t > &value)
Set the EF resurrected bits.
const std::vector< uint32_t > & tap() const
Get the Trigger After Prescale bits.
void setLVL2PassedPhysics(const std::vector< uint32_t > &value)
Set the LVL2 physics decision bits.
void setLVL2PassedRaw(const std::vector< uint32_t > &value)
Set the LVL2 passed-raw bits.
char bgCode() const
Get the bunch group code of the current event.
void setEFPassedRaw(const std::vector< uint32_t > &value)
Set the EF passed-raw bits.
const std::vector< uint32_t > & tbp() const
Get the Trigger Before Prescale bits.
void setSMK(uint32_t value)
Set the Super Master Key describing this object.
void setLVL2PassedThrough(const std::vector< uint32_t > &value)
Set the LVL2 pass-through bits.
void setTAP(const std::vector< uint32_t > &value)
Set the Trigger After Prescale bits.
void setEFErrorBits(uint32_t value)
Set a summary of all errors that happened during the EF execution.
void setTAV(const std::vector< uint32_t > &value)
Set the Trigger After Veto bits.
void setLVL2Truncated(bool value)
Set whether the LVL2 result is truncated.
void setLVL2ErrorBits(uint32_t value)
Set a summary of all errors that happened during the LVL2 execution.
void setBGCode(char value)
Set the bunch group code of the current event.
@ NoRegex
Do not use regular expressions.
static const unsigned int EF_passedRaw
static const unsigned int EF_prescaled
static const unsigned int L2_passThrough
static const unsigned int EF_resurrected
static const unsigned int enforceLogicalFlow
static const unsigned int L2_passedRaw
static const unsigned int L2_resurrected
static const unsigned int L2_prescaled
static const unsigned int Physics
static const unsigned int EF_passThrough
static const unsigned int requireDecision
static const uint32_t BITSET_SIZE
Size of the bitset vectors.
static const uint32_t MAXIMUM_CHAIN_ID
The range in which we copy the trigger decision for the chains.
TrigDecision_v1 TrigDecision
Define the latest version of the trigger decision class.