14#include "GaudiKernel/StatusCode.h"
34 const std::string& name,
35 const IInterface* parent) :
58 return StatusCode::SUCCESS;
62 return StatusCode::SUCCESS;
68 for (
auto i: input ) {
70 if ( i.previousDecisionsIDs.count(
m_decisionId.numeric() ) == 0 ) {
76 bool objDecision =
true;
79 auto jetPt= (i.jet)->pt();
86 auto jetEta=std::abs( (i.jet)->p4().Eta() );
93 float promptTrackFrac = -2.0;
95 if (objDecision ==
true) {
99 promptTrackFrac = 0.0;
100 for (
auto trackIter = i.AllTracks->begin(); trackIter != i.AllTracks->end(); ++trackIter){
101 float trackPt = (*trackIter)->pt();
108 if (trackPt > 0.0) sigma = 1000.0 * 0.0463 / trackPt + 0.0195;
111 if (std::abs((*trackIter)->d0()) >
m_PTFSigmaCut*sigma)
continue;
112 promptTrackFrac += trackPt;
115 if (promptTrackFrac/jetPt >
m_ptf)
break;
118 promptTrackFrac /= jetPt;
120 ATH_MSG_DEBUG(
"exotics jets chain promptTrackFrac: " << promptTrackFrac);
121 if (promptTrackFrac < -0.5 || promptTrackFrac >
m_ptf) objDecision =
false;
126 int matchedtracks = 0;
128 for (
auto trackIter = i.AllTracks->begin(); trackIter != i.AllTracks->end(); ++trackIter){
130 || (i.jet)->p4().DeltaR((*trackIter)->p4()) >
m_dr)
139 ATH_MSG_DEBUG(
"Number of matched tracks (" << matchedtracks <<
") greater than cutoff - in trackless jet chain");
144 if ( objDecision ==
true ) {
145 ATH_MSG_DEBUG(
"passed exotics/trackless jet chain decision with PTF: " << promptTrackFrac <<
"\ttrackless: " <<
m_trackless <<
"\tpt: " << jetPt <<
"\teta: " << jetEta);
151 return StatusCode::SUCCESS;
#define CHECK(...)
Evaluate an expression and check for errors.
virtual std::string toString() const override
std::vector< std::string > lineSplitter(const std::string &s, char delimiter)
It used to be useful piece of code for replacing actual SG with other store of similar functionality ...
xAOD::TrigComposite Decision
std::set< DecisionID > DecisionIDContainer
xAOD::TrigCompositeContainer DecisionContainer
void addDecisionID(DecisionID id, Decision *d)
Appends the decision (given as ID) to the decision object.
void decisionIDs(const Decision *d, DecisionIDContainer &destination)
Extracts DecisionIDs stored in the Decision object.