TopTagger.hh
Go to the documentation of this file.
1 #pragma once
2 
3 #include "fastjet/JetDefinition.hh"
4 
10 namespace hep
11 {
12 
13 class TopTagger
14 {
15 
16 public:
17 
18  TopTagger(fastjet::ClusterSequence const& cs, fastjet::PseudoJet const& jet);
19 
20  TopTagger(fastjet::ClusterSequence const& cs, fastjet::PseudoJet const& jet, double mtmass, double mwmass);
21 
22  void run_tagger();
23 
24  bool is_maybe_top() const;
25  bool is_masscut_passed() const;
26  fastjet::PseudoJet const& top_candidate() const;
27  std::vector<fastjet::PseudoJet> const& top_subjets() const;
28  std::vector<fastjet::PseudoJet> const& top_hadrons() const;
29  unsigned top_count() const;
30  std::vector<fastjet::PseudoJet> const& hardparts() const;
31  unsigned parts_size() const;
32  double delta_top() const;
33  const std::vector<std::vector<fastjet::PseudoJet> >& candjets() const;
34  void get_setting() const;
35 
36  void get_info() const;
37  // for setting parameters
38  void set_max_subjet_mass(double x);
39  void set_mass_drop_threshold(double x);
40  void set_top_range(double xmin, double xmax);
41  void set_mass_ratio_range(double rmin, double rmax);
42  void set_mass_ratio_cut(double m23cut, double m13cutmin, double m13cutmax);
43  void set_nfilt(unsigned nfilt);
44  void set_filtering_jetalgorithm(fastjet::JetAlgorithm jet_algorithm);
45  void set_reclustering_jetalgorithm(fastjet::JetAlgorithm jet_algorithm);
46  //
47  double cos_theta_h() const;
48  double dr_bjj() const;
49  std::vector<double> dr_values() const;
50 
51 private:
52  fastjet::ClusterSequence const* _cs;
53  const fastjet::PseudoJet _jet;
54  const double _mtmass, _mwmass;
55  double _mass_drop_threshold;
56  double _max_subjet_mass; // stop when subjet mass < 30 GeV
57  double _mtmin, _mtmax;
58  double _rmin, _rmax;
59  double _m23cut, _m13cutmin, _m13cutmax;
60  size_t _nfilt;
61  // filtering algorithm
62  fastjet::JetAlgorithm _jet_algorithm;
63  fastjet::JetAlgorithm _jet_algorithm_recluster;
64 
65  bool _is_masscut_passed;
66  bool _is_maybe_top;
67  double _delta_top;
68  unsigned _top_count;
69  unsigned _parts_size;
70  fastjet::PseudoJet _top_candidate;
71  std::vector<fastjet::PseudoJet> _top_subjets;
72  std::vector<fastjet::PseudoJet> _top_hadrons;
73  std::vector<fastjet::PseudoJet> _top_parts;
74  std::vector<std::vector<fastjet::PseudoJet> > _candjets;
75 
76  void FindHardSubst(fastjet::PseudoJet const& jet, std::vector<fastjet::PseudoJet>& t_parts);
77  std::vector<fastjet::PseudoJet> Filtering(std::vector<fastjet::PseudoJet> const& top_constits, fastjet::JetDefinition const& filtering_def);
78  void store_topsubjets(std::vector<fastjet::PseudoJet> const& top_subs);
79  bool check_mass_criteria(std::vector<fastjet::PseudoJet> const& top_subs) const;
80  double check_cos_theta(fastjet::PseudoJet const& jet, fastjet::PseudoJet const& subj1, fastjet::PseudoJet const& subj2) const;
81  fastjet::PseudoJet Sum(std::vector<fastjet::PseudoJet> const&);
82  double r_max_3jets(fastjet::PseudoJet const& jet1, fastjet::PseudoJet const& jet2, fastjet::PseudoJet const& jet3) const;
83 public:
84  bool debugg;
85 };
86 
87 
88 }
std::vector< fastjet::PseudoJet > const & top_subjets() const
Definition: TopTagger.cpp:303
void run_tagger()
Definition: TopTagger.cpp:165
void set_filtering_jetalgorithm(fastjet::JetAlgorithm jet_algorithm)
Definition: TopTagger.cpp:359
void set_mass_drop_threshold(double x)
Definition: TopTagger.cpp:335
std::vector< double > dr_values() const
Definition: TopTagger.cpp:24
double dr_bjj() const
Definition: TopTagger.cpp:16
void set_nfilt(unsigned nfilt)
Definition: TopTagger.cpp:355
HEP Top Tagger is a top tagger for Standard Model processes or new physics searches at intermediate t...
Definition: FWM.hh:5
std::vector< fastjet::PseudoJet > const & top_hadrons() const
Definition: TopTagger.cpp:307
void get_info() const
Definition: TopTagger.cpp:259
double delta_top() const
Definition: TopTagger.cpp:323
bool is_maybe_top() const
Definition: TopTagger.cpp:291
void set_top_range(double xmin, double xmax)
Definition: TopTagger.cpp:339
std::vector< fastjet::PseudoJet > const & hardparts() const
Definition: TopTagger.cpp:315
fastjet::PseudoJet const & top_candidate() const
Definition: TopTagger.cpp:299
unsigned top_count() const
Definition: TopTagger.cpp:311
double cos_theta_h() const
Definition: TopTagger.cpp:11
void set_max_subjet_mass(double x)
Definition: TopTagger.cpp:331
unsigned parts_size() const
Definition: TopTagger.cpp:319
Definition: TopTagger.hh:13
bool debugg
Definition: TopTagger.hh:84
void set_reclustering_jetalgorithm(fastjet::JetAlgorithm jet_algorithm)
Definition: TopTagger.cpp:363
void set_mass_ratio_cut(double m23cut, double m13cutmin, double m13cutmax)
Definition: TopTagger.cpp:349
const std::vector< std::vector< fastjet::PseudoJet > > & candjets() const
Definition: TopTagger.cpp:327
void set_mass_ratio_range(double rmin, double rmax)
Definition: TopTagger.cpp:344
TopTagger(fastjet::ClusterSequence const &cs, fastjet::PseudoJet const &jet)
Definition: TopTagger.cpp:147
bool is_masscut_passed() const
Definition: TopTagger.cpp:295
void get_setting() const
Definition: TopTagger.cpp:275