Analysis Software
Documentation for sPHENIX simulation software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
JetProbeMaker.h
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file JetProbeMaker.h
1 // make a jet probe and put it onto the node tree
2 // It will always be a single Jet that the JetReco can get
3 #ifndef G4_JETS_JETPROBEMAKER__H
4 #define G4_JETS_JETPROBEMAKER__H
5 
6 #include <fun4all/SubsysReco.h>
7 #include <gsl/gsl_rng.h>
8 #include <memory> // for unique_ptr
9 #include <math.h>
10 
11 class Jet;
12 class JetContainer;
13 class TRandom3;
14 class PHCompositeNode;
15 
16 class JetProbeMaker : public SubsysReco {
17  public:
18  JetProbeMaker(const std::string &name="JetProbeMaker");
19  ~JetProbeMaker() override { };
20 
21  int process_event(PHCompositeNode* /*topNode*/) override;
22  int InitRun(PHCompositeNode *topNode) override;
23 
24  void set_abs_eta(float val) { _eta_min = -val; _eta_max=val; _eta_range = (_eta_max-_eta_min); }
25  void set_eta_min(float val) { _eta_min = val; _eta_range = (_eta_max-_eta_min); }
26  void set_eta_max(float val) { _eta_max = val; _eta_range = (_eta_max-_eta_min); }
27 
28  void set_phi_min(float val) { _phi_min=val; }
29  void set_phi_max(float val) { _phi_max=val; }
30 
31  void set_pt (float val) { _pt_max = val; _pt_min = val; _pt_range = _pt_max-_pt_min; }
32  void set_pt_min (float val) { _pt_min = val; _pt_range = _pt_max-_pt_min; }
33  void set_pt_max (float val) { _pt_max = val; _pt_range = _pt_max-_pt_min; }
34 
35  private:
36 
37  class Deleter
38  {
39  public:
41  void operator()(gsl_rng *rng) const { gsl_rng_free(rng); }
42  };
43  std::unique_ptr<gsl_rng, Deleter> m_rng;
44 
45  float _eta_min = -0.7;
46  float _eta_max = 0.7;
47  float _eta_range = 1.4;
48  float _phi_min = -M_PI;
49  float _phi_max = M_PI;
50  float _pt_min = 30.;
51  float _pt_max = 30.;
52  float _pt_range = 0.;
53  JetContainer* _jets = nullptr;
54 };
55 
56 #endif