Analysis Software
Documentation for sPHENIX simulation software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
HFFastSim.h
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file HFFastSim.h
1 #ifndef __HFFastSim_H__
2 #define __HFFastSim_H__
3 
4 // --- need to check all these includes...
5 #include <fun4all/SubsysReco.h>
6 
7 #include <TObject.h>
8 #include <TString.h>
9 
10 #include <limits.h>
11 #include <cmath>
12 #include <string>
13 #include <vector>
14 #include <utility>
15 
16 class TTree;
17 class TFile;
18 class TH2D;
19 class TH2F;
20 class TH1D;
21 
22 class PHCompositeNode;
23 class Jet;
24 namespace HepMC
25 {
26 class GenParticle;
27 class GenEvent;
28 } // namespace HepMC
29 
30 class HFFastSim : public SubsysReco
31 {
32  public:
33  HFFastSim(std::string filename, int flavor = 5, int maxevent = INT_MAX);
34 
35  int Init(PHCompositeNode *);
37  int End(PHCompositeNode *);
38 
39  double
40  get_eta_max() const
41  {
42  return _eta_max;
43  }
44 
45  void
46  set_eta_max(double etaMax)
47  {
48  _eta_max = etaMax;
49  }
50 
51  double
52  get_eta_min() const
53  {
54  return _eta_min;
55  }
56 
57  void
58  set_eta_min(double etaMin)
59  {
60  _eta_min = etaMin;
61  }
62 
63  double
64  get_pt_max() const
65  {
66  return _pt_max;
67  }
68 
69  void
70  set_pt_max(double ptMax)
71  {
72  _pt_max = ptMax;
73  }
74 
75  double
76  get_pt_min() const
77  {
78  return _pt_min;
79  }
80 
81  void
82  set_pt_min(double ptMin)
83  {
84  _pt_min = ptMin;
85  }
86 
89  void
91  {
93  }
94 
100  int get_embedding_id() const { return _embedding_id; }
101  //
107  void set_embedding_id(int id) { _embedding_id = id; }
108 
109  static std::pair<int, TString> quark_trace(const HepMC::GenParticle *p, HepMC::GenEvent *theEvent);
110 
111  bool process_D02PiK(HepMC::GenEvent *theEvent);
112 
113  class D02PiK : public TObject
114  {
115  public:
116  D02PiK() { Clear(); }
117 
118  int pid;
120  float y;
121  float pt;
122  float prodL;
123  float decayL;
124  TString decayChain;
125 
126  void Clear(Option_t * /*option*/ = "")
127  {
128  pid = 0;
130  y = NAN;
131  pt = NAN;
132  prodL = NAN;
133  decayL = NAN;
134  decayChain = "";
135  }
136 
137  ClassDef(HFFastSim::D02PiK, 1) //Event structure
138  };
139 
140  bool process_Lc2pPiK(HepMC::GenEvent *theEvent);
141 
142  class Lc2pPiK : public TObject
143  {
144  public:
145  Lc2pPiK() { Clear(); }
146 
147  int pid;
149  float y;
150  float pt;
151  float prodL;
152  float decayL;
153  TString decayChain;
154 
155  void Clear(Option_t * /*option*/ = "")
156  {
157  pid = 0;
159  y = NAN;
160  pt = NAN;
161  prodL = NAN;
162  decayL = NAN;
163  decayChain = "";
164  }
165 
166  ClassDef(HFFastSim::Lc2pPiK, 1) //Event structure
167  };
168 
169  private:
170  bool _verbose;
171 
172  int _ievent;
174 
175  TFile *_f;
176 
177  TH2D *_h2;
178  TH2D *_h2all;
179  TH2D *_h2_b;
180  TH2D *_h2_c;
181 
182  TH1D *m_hNorm;
183  TH2F *m_DRapidity;
184 
185  TTree *m_tSingleD;
187 
188  TTree *m_tSingleLc;
190 
192 
193  int _flavor;
195 
196  double _pt_min;
197  double _pt_max;
198 
199  double _eta_min;
200  double _eta_max;
201 
203 
206 
212 };
213 
214 #endif // __HFFastSim_H__