File indexing completed on 2025-04-19 09:10:12
0001 #ifndef PHASIC_Selectors_Jet_Finder_H
0002 #define PHASIC_Selectors_Jet_Finder_H
0003
0004 #include "PHASIC++/Selectors/Selector.H"
0005 #include "PHASIC++/Process/Subprocess_Info.H"
0006 #include "ATOOLS/Math/Algebra_Interpreter.H"
0007 #include "ATOOLS/Phys/Cluster_Amplitude.H"
0008
0009 namespace PDF { class Jet_Criterion; }
0010
0011 namespace PHASIC {
0012
0013 class Jet_Finder: public Selector_Base,
0014 public ATOOLS::Tag_Replacer {
0015
0016 struct ReweightSubevt_Args {
0017 std::vector<double> m_jcv;
0018 std::vector<int> m_acc;
0019 ReweightSubevt_Args(const size_t &n):
0020 m_jcv(n,0.0), m_acc(n,0) {}
0021 };
0022
0023 double m_qcut;
0024 std::string m_cuttag;
0025 bool m_on;
0026
0027 ATOOLS::Algebra_Interpreter *p_yccalc;
0028 ATOOLS::Cluster_Amplitude *p_ampl;
0029 ATOOLS::Flavour GetFlavour(std::string fl);
0030
0031 protected:
0032 PDF::Jet_Criterion *p_jc;
0033 public:
0034 Jet_Finder() : Selector_Base("empty_JF"), m_qcut(1.),
0035 p_yccalc(NULL), p_ampl(NULL), p_jc(NULL) {};
0036 Jet_Finder(Process_Base *const proc,const std::string &ycut="1");
0037
0038 ~Jet_Finder();
0039
0040 std::string ReplaceTags(std::string &expr) const;
0041 ATOOLS::Term *ReplaceTags(ATOOLS::Term *term) const;
0042 void AssignId(ATOOLS::Term *term);
0043
0044 bool Trigger(ATOOLS::Selector_List &p);
0045
0046 void BuildCuts(Cut_Data *cuts);
0047
0048 inline double Qcut() const { return m_qcut; }
0049 inline void SetQcut(const double & qcut) { m_qcut = qcut; }
0050
0051 inline void SetOn(const bool on) { m_on=on; }
0052
0053 inline PDF::Jet_Criterion *JC() const { return p_jc; }
0054
0055 };
0056
0057 }
0058
0059 #endif
0060
0061
0062
0063
0064
0065
0066
0067