TopTaggerFixedR.hh
Go to the documentation of this file.
1 #pragma once
2 
3 #include "fastjet/contrib/Njettiness.hh"
4 
5 namespace hep
6 {
7 
8 enum Mode {
14 };
15 
17 {
18 public:
20 
21  TopTaggerFixedR(const fastjet::PseudoJet& jet);
22 
23  TopTaggerFixedR(fastjet::PseudoJet const& jet, double mtmass, double mwmass);
24 
25  //run tagger
26  void run();
27 
28  //settings
29  void do_qjets(bool qjets);
30 
31  void set_mass_drop_threshold(double x);
32  void set_max_subjet_mass(double x);
33 
34  void set_filtering_n(unsigned nfilt);
35  void set_filtering_R(double Rfilt);
36  void set_filtering_minpt_subjet(double x);
37  void set_filtering_jetalgorithm(fastjet::JetAlgorithm jet_algorithm);
38 
39  void set_reclustering_jetalgorithm(fastjet::JetAlgorithm jet_algorithm);
40 
41  void set_mode(enum Mode mode);
42  void set_mt(double x);
43  void set_mw(double x);
44  void set_top_mass_range(double xmin, double xmax);
45  void set_fw(double fw);
46  void set_mass_ratio_range(double rmin, double rmax);
47  void set_mass_ratio_cut(double m23cut, double m13cutmin, double m13cutmax);
48  void set_top_minpt(double x);
49 
50  void set_pruning_zcut(double zcut);
51  void set_pruning_rcut_factor(double rcut_factor);
52 
53  void set_debug(bool debug);
54  void set_qjets(double q_zcut, double q_dcut_fctr, double q_exp_min, double q_exp_max, double q_rigidity, double q_truncation_fctr);
55 
56  //get information
57  bool is_maybe_top() const;
58  bool is_masscut_passed() const;
59  bool is_minptcut_passed() const;
60  bool is_tagged() const;
61 
62  double delta_top() const;
63  double djsum() const;
64  double pruned_mass() const;
65  double unfiltered_mass() const;
66 
67  double f_rec();
68  fastjet::PseudoJet const& t() const;
69  fastjet::PseudoJet const& b() const;
70  fastjet::PseudoJet const& W() const;
71  fastjet::PseudoJet const& W1() const;
72  fastjet::PseudoJet const& W2() const;
73  std::vector<fastjet::PseudoJet> const& top_subjets() const;
74  fastjet::PseudoJet const& j1() const;
75  fastjet::PseudoJet const& j2() const;
76  fastjet::PseudoJet const& j3() const;
77  std::vector<fastjet::PseudoJet> const& top_hadrons() const;
78  std::vector<fastjet::PseudoJet> const& hardparts() const;
79  fastjet::PseudoJet const& fat_initial();
80 
81  void get_setting() const;
82  void get_info() const;
83 
84  double nsub(const fastjet::PseudoJet& jet, int order, fastjet::contrib::Njettiness::AxesMode axes = fastjet::contrib::Njettiness::kt_axes, double beta = 1., double R0 = 1.);
85  double q_weight();
86 
87 private:
88  bool _do_qjets;
89 
90  fastjet::PseudoJet _jet;
91  fastjet::PseudoJet _initial_jet;
92 
93  double _mass_drop_threshold;
94  double _max_subjet_mass;
95 
96  Mode _mode;
97  double _mtmass, _mwmass;
98  double _mtmin, _mtmax;
99  double _rmin, _rmax;
100  double _m23cut, _m13cutmin, _m13cutmax;
101  double _minpt_tag;
102 
103  unsigned _nfilt;
104  double _Rfilt;
105  fastjet::JetAlgorithm _jet_algorithm_filter;
106  double _minpt_subjet;
107 
108  fastjet::JetAlgorithm _jet_algorithm_recluster;
109 
110  double _zcut;
111  double _rcut_factor;
112 
113  double _q_zcut, _q_dcut_fctr, _q_exp_min, _q_exp_max, _q_rigidity, _q_truncation_fctr;
114  fastjet::JetDefinition _qjet_def;
115 
116  fastjet::PseudoJet _fat;
117  bool _debug;
118 
119  bool _is_masscut_passed;
120  bool _is_ptmincut_passed;
121  bool _is_maybe_top;
122 
123  double _delta_top;
124  double _djsum;
125 
126  double _pruned_mass;
127  double _unfiltered_mass;
128 
129  double _fw;
130  unsigned _parts_size;
131 
132  fastjet::PseudoJet _top_candidate;
133  fastjet::PseudoJet _W;
134  std::vector<fastjet::PseudoJet> _top_subs;
135  std::vector<fastjet::PseudoJet> _top_subjets;
136  std::vector<fastjet::PseudoJet> _top_hadrons;
137  std::vector<fastjet::PseudoJet> _top_parts;
138 
139  static bool _first_time;
140  double _qweight;
141 
142  //internal functions
143  void FindHardSubst(fastjet::PseudoJet const& jet, std::vector<fastjet::PseudoJet>& t_parts);
144  std::vector<fastjet::PseudoJet> Filtering(const std::vector <fastjet::PseudoJet>& top_constits, fastjet::JetDefinition const& filtering_def);
145  void store_topsubjets(std::vector<fastjet::PseudoJet> const& top_subs);
146  bool check_mass_criteria(std::vector<fastjet::PseudoJet> const& top_subs) const;
147  double perp(fastjet::PseudoJet const& vec, fastjet::PseudoJet const& ref);
148  double djademod(fastjet::PseudoJet const& subjet_i, fastjet::PseudoJet const& subjet_j, fastjet::PseudoJet const& ref);
149 
150  void print_banner();
151 
152 };
153 
154 }
std::vector< fastjet::PseudoJet > const & top_subjets() const
Definition: TopTaggerFixedR.cpp:514
double unfiltered_mass() const
Definition: TopTaggerFixedR.cpp:538
double q_weight()
Definition: TopTaggerFixedR.cpp:486
void set_pruning_zcut(double zcut)
Definition: TopTaggerFixedR.cpp:582
fastjet::PseudoJet const & W() const
Definition: TopTaggerFixedR.cpp:526
bool is_maybe_top() const
Definition: TopTaggerFixedR.cpp:566
Definition: TopTaggerFixedR.hh:16
void set_mass_drop_threshold(double x)
Definition: TopTaggerFixedR.cpp:647
double f_rec()
Definition: TopTaggerFixedR.cpp:58
void set_filtering_n(unsigned nfilt)
Definition: TopTaggerFixedR.cpp:639
void set_top_minpt(double x)
Definition: TopTaggerFixedR.cpp:586
Definition: TopTaggerFixedR.hh:9
HEP Top Tagger is a top tagger for Standard Model processes or new physics searches at intermediate t...
Definition: FWM.hh:5
void set_max_subjet_mass(double x)
Definition: TopTaggerFixedR.cpp:643
double delta_top() const
Definition: TopTaggerFixedR.cpp:550
bool is_masscut_passed() const
Definition: TopTaggerFixedR.cpp:562
fastjet::PseudoJet const & W2() const
Definition: TopTaggerFixedR.cpp:518
void set_mode(enum Mode mode)
Definition: TopTaggerFixedR.cpp:619
Definition: TopTaggerFixedR.hh:13
Definition: TopTaggerFixedR.hh:11
double pruned_mass() const
Definition: TopTaggerFixedR.cpp:542
fastjet::PseudoJet const & j2() const
Definition: TopTaggerFixedR.cpp:506
std::vector< fastjet::PseudoJet > const & top_hadrons() const
Definition: TopTaggerFixedR.cpp:498
void set_qjets(double q_zcut, double q_dcut_fctr, double q_exp_min, double q_exp_max, double q_rigidity, double q_truncation_fctr)
Definition: TopTaggerFixedR.cpp:570
void set_mt(double x)
Definition: TopTaggerFixedR.cpp:615
fastjet::PseudoJet const & fat_initial()
Definition: TopTaggerFixedR.cpp:490
fastjet::PseudoJet const & t() const
Definition: TopTaggerFixedR.cpp:534
void set_mw(double x)
Definition: TopTaggerFixedR.cpp:611
Definition: TopTaggerFixedR.hh:10
void set_pruning_rcut_factor(double rcut_factor)
Definition: TopTaggerFixedR.cpp:578
TopTaggerFixedR()
Definition: TopTaggerFixedR.cpp:150
void set_fw(double fw)
Definition: TopTaggerFixedR.cpp:601
void set_reclustering_jetalgorithm(fastjet::JetAlgorithm jet_algorithm)
Definition: TopTaggerFixedR.cpp:623
fastjet::PseudoJet const & W1() const
Definition: TopTaggerFixedR.cpp:522
void set_debug(bool debug)
Definition: TopTaggerFixedR.cpp:574
double nsub(const fastjet::PseudoJet &jet, int order, fastjet::contrib::Njettiness::AxesMode axes=fastjet::contrib::Njettiness::kt_axes, double beta=1., double R0=1.)
Definition: TopTaggerFixedR.cpp:144
bool is_tagged() const
Definition: TopTaggerFixedR.cpp:554
double djsum() const
Definition: TopTaggerFixedR.cpp:546
void set_mass_ratio_range(double rmin, double rmax)
Definition: TopTaggerFixedR.cpp:596
void set_filtering_jetalgorithm(fastjet::JetAlgorithm jet_algorithm)
Definition: TopTaggerFixedR.cpp:627
void run()
Definition: TopTaggerFixedR.cpp:259
fastjet::PseudoJet const & j1() const
Definition: TopTaggerFixedR.cpp:510
void set_filtering_R(double Rfilt)
Definition: TopTaggerFixedR.cpp:635
void get_info() const
Definition: TopTaggerFixedR.cpp:435
fastjet::PseudoJet const & b() const
Definition: TopTaggerFixedR.cpp:530
Definition: TopTaggerFixedR.hh:12
bool is_minptcut_passed() const
Definition: TopTaggerFixedR.cpp:558
fastjet::PseudoJet const & j3() const
Definition: TopTaggerFixedR.cpp:502
void set_filtering_minpt_subjet(double x)
Definition: TopTaggerFixedR.cpp:631
void set_mass_ratio_cut(double m23cut, double m13cutmin, double m13cutmax)
Definition: TopTaggerFixedR.cpp:590
void do_qjets(bool qjets)
Definition: TopTaggerFixedR.cpp:651
Mode
Definition: TopTaggerFixedR.hh:8
std::vector< fastjet::PseudoJet > const & hardparts() const
Definition: TopTaggerFixedR.cpp:494
void set_top_mass_range(double xmin, double xmax)
Definition: TopTaggerFixedR.cpp:606
Qjets: A Non-Deterministic Approach to Tree-Based Jet Substructure
Definition: QJets.hh:17
void get_setting() const
Definition: TopTaggerFixedR.cpp:456