Back to home page

EIC code displayed by LXR

 
 

    


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     };// end of struct ReweightSubevt_Args
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