Analysis Software
Documentation for sPHENIX simulation software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
SoftLeptonTaggingTruth.h
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file SoftLeptonTaggingTruth.h
1 #ifndef __SoftLeptonTaggingTruth_H__
2 #define __SoftLeptonTaggingTruth_H__
3 
4 #include <fun4all/SubsysReco.h>
6 
7 #include <string>
8 #include <set>
9 #include <map>
10 #include <utility> // std::pair, std::make_pair
11 #include <stdint.h>
12 #ifndef __CINT__
13 #include <memory>
14 #endif
15 
16 #include <TString.h>
17 
18 class PHCompositeNode;
20 class TH1F;
21 class JetEvalStack;
22 class JetTruthEval;
23 class Jet;
24 class TAxis;
26 
29 {
30 
31 public:
32 
33  enum enu_flags
34  {
37 
39  };
40 
41  SoftLeptonTaggingTruth(const std::string & truth_jet, enu_flags flags =
42  kDefaultFlag);
43  virtual
45 
48  int
49  add_reco_jet(const std::string & reco_jet)
50  {
51  _reco_jets.insert(reco_jet);
52  return _reco_jets.size();
53  }
54 
55  uint32_t
56  get_flags() const
57  {
58  return _flags;
59  }
60 
61  void
63  {
64  _flags = (uint32_t) flags;
65  }
66 
67  void
69  {
70  _flags |= (uint32_t) flag;
71  }
72 
73  bool
75  {
76  return _flags & flag;
77  }
78 
79  void
81  {
82  _flags &= ~(uint32_t) flag;
83  }
84 
86  double
88  {
89  return _jet_match_E_Ratio;
90  }
91 
93  void
94  set_jet_match_E_Ratio(double jetMatchDERatio)
95  {
96  _jet_match_E_Ratio = jetMatchDERatio;
97  }
98 
100  double
102  {
103  return _jet_match_dR;
104  }
105 
107  void
108  set_jet_match_dR(double jetMatchDEta)
109  {
110  _jet_match_dR = jetMatchDEta;
111  }
112 
114  double
116  {
117  return _jet_match_dca;
118  }
119 
121  void
122  set_jet_match_dca(double jetMatchDPhi)
123  {
124  _jet_match_dca = jetMatchDPhi;
125  }
126 
128  void
129  set_eta_range(double low, double high);
130 
131  int
132  Init(PHCompositeNode *topNode);
133  int
134  InitRun(PHCompositeNode *topNode);
135  int
136  process_event(PHCompositeNode *topNode);
137  int
138  End(PHCompositeNode *topNode);
139 
141  static Fun4AllHistoManager *
142  getHistoManager();
143 
144 private:
145 
146  void
147  useLogBins(TAxis * axis);
148 
149  int
150  Init_Spectrum(PHCompositeNode *topNode, const std::string & jet_name);
151  int
152  process_Spectrum(PHCompositeNode *topNode, const std::string & jet_name,
153  const bool is_reco_jet);
154 
157  get_histo_prefix(const std::string & src_jet_name = "",
158  const std::string & reco_jet_name = "");
159 
160 #ifndef __CINT__
161 
162  typedef std::map<std::string, std::shared_ptr<JetEvalStack>> jetevalstacks_map;
164  std::shared_ptr<JetTruthEval> _jettrutheval;
165 #endif
166 
169 
171  std::set<std::string> _reco_jets;
172 
174 
175  uint32_t _flags;
176 
178  std::pair<double, double> eta_range;
179 
182  TString
183  get_eta_range_str(const char * eta_name = "#eta_{Jet}") const;
184 
186  bool
187  jet_acceptance_cut(const Jet * jet) const;
188 
191 
194 
197 };
198 
199 #endif // __CALOEVALUATOR_H__