|
ATLAS Offline Software
|
Go to the documentation of this file.
29 const static unsigned int requireDecision = 0x1;
36 const static unsigned int enforceLogicalFlow = 0x1 << 5;
45 const static unsigned int Physics = requireDecision | enforceLogicalFlow;
48 const static unsigned int EF_passedRaw =0x1;
49 const static unsigned int EF_passThrough =0x1 << 1;
50 const static unsigned int EF_prescaled =0x1 << 2;
51 const static unsigned int EF_resurrected =0x1 << 3;
52 const static unsigned int L2_passedRaw =0x1 << 8;
53 const static unsigned int L2_passThrough =0x1 << 9;
54 const static unsigned int L2_prescaled =0x1 << 10;
55 const static unsigned int L2_resurrected =0x1 << 11;
68 static const uint32_t MAXIMUM_CHAIN_ID = 8192;
70 static const uint32_t BITSET_SIZE = MAXIMUM_CHAIN_ID / 32;
73 const std::string&
name,
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);
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() )
192 >= MAXIMUM_CHAIN_ID ) {
205 CHECK(
setBit( l2PassedPhysics, ( *chain_itr )->chain_counter(),
206 m_tdt->isPassed(
group, TrigDefs::Physics ) ) );
207 CHECK(
setBit( l2PassedRaw, ( *chain_itr )->chain_counter(),
208 ( bits & TrigDefs::L2_passedRaw ) ) );
209 CHECK(
setBit( l2PassedThrough, ( *chain_itr )->chain_counter(),
210 ( bits & TrigDefs::L2_passThrough ) ) );
211 CHECK(
setBit( l2Prescaled, ( *chain_itr )->chain_counter(),
212 ( bits & TrigDefs::L2_prescaled ) ) );
213 CHECK(
setBit( l2Resurrected, ( *chain_itr )->chain_counter(),
214 ( bits & TrigDefs::L2_resurrected ) ) );
219 CHECK(
setBit( efPassedPhysics, ( *chain_itr )->chain_counter(),
220 m_tdt->isPassed(
group, TrigDefs::Physics ) ) );
221 CHECK(
setBit( efPassedRaw, ( *chain_itr )->chain_counter(),
222 ( bits & TrigDefs::EF_passedRaw ) ) );
223 CHECK(
setBit( efPassedThrough, ( *chain_itr )->chain_counter(),
224 ( bits & TrigDefs::EF_passThrough ) ) );
225 CHECK(
setBit( efPrescaled, ( *chain_itr )->chain_counter(),
226 ( bits & TrigDefs::EF_prescaled ) ) );
227 CHECK(
setBit( efResurrected, ( *chain_itr )->chain_counter(),
228 ( bits & TrigDefs::EF_resurrected ) ) );
245 return StatusCode::SUCCESS;
252 if( ( chainId >= MAXIMUM_CHAIN_ID ) ||
253 ( bitset.size() < BITSET_SIZE ) ) {
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;
void setSMK(uint32_t value)
Set the Super Master Key describing this object.
void setLVL2ErrorBits(uint32_t value)
Set a summary of all errors that happened during the LVL2 execution.
void setEFPassedPhysics(const std::vector< uint32_t > &value)
Set the EF physics decision bits.
void setLVL2PassedRaw(const std::vector< uint32_t > &value)
Set the LVL2 passed-raw bits.
bool isConfigured() const
is LVL1 configured ?
void setEFTruncated(bool value)
Set whether the EF result is truncated.
uint32_t masterKey() const
const std::vector< uint32_t > & tav() const
Get the Trigger After Veto bits.
The TrigDecision is an object which merges trigger informations from various levels.
void setLVL2PassedThrough(const std::vector< uint32_t > &value)
Set the LVL2 pass-through bits.
const std::vector< uint32_t > & itemsBeforePrescale() const
const std::vector< uint32_t > & itemsAfterVeto() const
const std::vector< number_type > & level1TriggerInfo() const
get level1 trigger info
void setEFPassedThrough(const std::vector< uint32_t > &value)
Set the EF pass-through bits.
list of all HLT chains in a trigger menu
void setTAP(const std::vector< uint32_t > &value)
Set the Trigger After Prescale bits.
::StatusCode StatusCode
StatusCode definition for legacy code.
bool isHLTResultTruncated() const
is serialized HLTResult truncated
void setTBP(const std::vector< uint32_t > &value)
Set the Trigger Before Prescale bits.
@ NoRegex
Do not use regular expressions.
virtual uint32_t error_bits() const
bit flags to explain problems during processing
const LVL1CTP::Lvl1Result & getL1Result() const
#define CHECK(...)
Evaluate an expression and check for errors.
void setTAV(const std::vector< uint32_t > &value)
Set the Trigger After Veto bits.
void setLVL2Resurrected(const std::vector< uint32_t > &value)
Set the LVL2 resurrected bits.
void setEFErrorBits(uint32_t value)
Set a summary of all errors that happened during the EF execution.
This class contains trigger related information.
Helpers for checking error return status codes and reporting errors.
const HLT::HLTResult & getEFResult() const
const std::vector< uint32_t > & tap() const
Get the Trigger After Prescale bits.
void setEFPrescaled(const std::vector< uint32_t > &value)
Set the EF prescaled 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.
void setLVL2PassedPhysics(const std::vector< uint32_t > &value)
Set the LVL2 physics decision bits.
void setLVL2Prescaled(const std::vector< uint32_t > &value)
Set the LVL2 prescaled bits.
const std::vector< uint32_t > & tbp() const
Get the Trigger Before Prescale bits.
void setBGCode(char value)
Set the bunch group code of the current event.
void setEFResurrected(const std::vector< uint32_t > &value)
Set the EF resurrected bits.
const HLT::HLTResult & getL2Result() const
void setLVL2Truncated(bool value)
Set whether the LVL2 result is truncated.
Interface to the raw trigger decision information of the event.
const std::vector< uint32_t > & itemsAfterPrescale() const