#include "AddOns/Analysis/Triggers/Trigger_Base.H" #include "ATOOLS/Org/Message.H" #include using namespace ATOOLS; namespace ANALYSIS { struct edr { double E, dr; edr(double _E,double _dr) : E(_E), dr(_dr) {} }; class Order_edr { public: int operator()(const edr a, const edr b); }; int Order_edr::operator()(const edr a, const edr b) { if (a.drMomentum().PPerp(); std::vector edrlist; for (size_t i=0;iMomentum(),inlist[i]->Momentum()); if (drMomentum().PPerp(),dr)); } if (edrlist.size()>0) { stable_sort(edrlist.begin(),edrlist.end(),Order_edr()); double etot=0.; for (size_t i=0;i:: operator()(const Analysis_Key& key) const { ATOOLS::Scoped_Settings s{ key.m_settings }; const auto parameters = s.SetDefault({}).GetVector(); if (parameters.size() < 6) THROW(missing_input, "Missing parameter values."); int eps(parameters.size()>6?s.Interprete(parameters[6]):1.0); int crit1=s.Interprete(parameters[0]); Flavour flav=Flavour((kf_code)abs(crit1)); if (crit1<0) flav=flav.Bar(); return new FrixioneIsolation_Selector (s.Interprete(parameters[1]), s.Interprete(parameters[2]),eps, parameters[3],parameters[4],parameters[5]); } void ATOOLS::Getter :: PrintInfo(std::ostream &str,const size_t width) const { str<<"[kf, delta_0, n, inlist, reflist, outlist, epsilon] ... epsilon is optional and defaults to 1.0"; }