|  | 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