21 const IInterface*
p ) :
23 m_tdt(
"Trig::TrigDecisionTool/TrigDecisionTool"),
29 m_highPtCut(300000.0),
32 m_nHighPtJetsRequired(1)
34 declareInterface<DerivationFramework::ISkimmingTool>(
this);
53 if(m_tdt.retrieve().isFailure()) {
55 return StatusCode::FAILURE;
61 return StatusCode::SUCCESS;
67 ATH_MSG_INFO(
"Processed " << m_ntot <<
" events, " << m_npass <<
" events passed filter ");
70 return StatusCode::SUCCESS;
78 bool thisEventPasses =
false;
79 bool passedTrigger =
false;
82 if( m_triggers.size() > 0 ){
83 passedTrigger =
false;
85 for(
unsigned int i = 0;
i < m_triggers.size();
i++ ){
86 int decision = m_tdt->isPassed( m_triggers.at(
i) );
95 if( !passedTrigger )
return thisEventPasses;
100 if( !
jets.isValid() ) {
101 msg(MSG::WARNING) <<
"No Jet container found, will skip this event" <<
endmsg;
109 int nHighPtJetsPassed = 0;
110 for (
unsigned int i = 0;
i <
jets->size(); ++
i ) {
112 if ( (
jet->pt() < m_ptCut) || (std::abs(
jet->eta()) > m_etaCut) )
continue;
115 if (
jet->pt() < m_highPtCut )
continue;
116 nHighPtJetsPassed += 1;
120 m_nptpass = nJetsPassed;
121 m_nhighptpass = nHighPtJetsPassed;
124 if ( (nJetsPassed >= m_nJetsRequired) && (nHighPtJetsPassed >= m_nHighPtJetsRequired) ) {
126 thisEventPasses =
true;
129 return thisEventPasses;