#include "PHASIC++/Selectors/Fastjet_Selector_Base.H" #include "ATOOLS/Org/Run_Parameter.H" using namespace PHASIC; using namespace ATOOLS; Fastjet_Selector_Base::Fastjet_Selector_Base(const std::string& name, Process_Base* const proc, Scoped_Settings s): Selector_Base(name, proc), m_eekt(0), p_jdef(0) { // parameter/mode settings const auto algo = s["Algorithm"] .SetDefault("") .Get(); const auto reco = s["RecombinationScheme"].SetDefault("E") .Get(); m_delta_r = s["DR"] .SetDefault(0.4) .Get(); m_f = s["f"] .SetDefault(0.75).Get(); // min/max settings m_nj = s["N"] .SetDefault("None").UseZeroReplacements() .Get(); m_ptmin = s["PTMin"] .SetDefault("None").UseZeroReplacements() .Get(); m_etmin = s["ETMin"] .SetDefault("None").UseZeroReplacements() .Get(); m_eta = s["EtaMax"].SetDefault("None").UseMaxDoubleReplacements().Get(); m_y = s["YMax"] .SetDefault("None").UseMaxDoubleReplacements().Get(); fjcore::RecombinationScheme recom; if (reco=="E") recom=fjcore::E_scheme; else if (reco=="pt") recom=fjcore::pt_scheme; else if (reco=="pt2") recom=fjcore::pt2_scheme; else if (reco=="Et") recom=fjcore::Et_scheme; else if (reco=="Et2") recom=fjcore::Et2_scheme; else if (reco=="BIpt") recom=fjcore::BIpt_scheme; else if (reco=="BIpt2") recom=fjcore::BIpt2_scheme; else THROW(fatal_error, "Unknown recombination scheme \"" + reco + "\"."); bool ee(rpa->gen.Bunch(0).IsLepton() && rpa->gen.Bunch(1).IsLepton()); fjcore::JetAlgorithm ja(fjcore::kt_algorithm); if (algo=="cambridge") ja = fjcore::cambridge_algorithm; if (algo=="antikt") ja = fjcore::antikt_algorithm; if (ee) { p_jdef=new fjcore::JetDefinition(fjcore::ee_kt_algorithm); m_eekt=1; } else p_jdef=new fjcore::JetDefinition(ja,m_delta_r); m_smin = Max(sqr(m_nj*m_ptmin),sqr(m_nj*m_etmin)); } Fastjet_Selector_Base::~Fastjet_Selector_Base() { delete p_jdef; } void Fastjet_Selector_Base::PrintCommonInfoLines(std::ostream& str, size_t width) { str<