File indexing completed on 2025-08-06 08:17:46
0001
0002
0003 #ifndef G4_JETS_JETPROBEMAKER__H
0004 #define G4_JETS_JETPROBEMAKER__H
0005
0006 #include <fun4all/SubsysReco.h>
0007
0008 #include <gsl/gsl_rng.h>
0009
0010 #include <cmath>
0011 #include <memory> // for unique_ptr
0012
0013 class Jet;
0014 class JetContainer;
0015 class TRandom3;
0016 class PHCompositeNode;
0017
0018 class JetProbeMaker : public SubsysReco
0019 {
0020 public:
0021 JetProbeMaker(const std::string &name = "JetProbeMaker");
0022 ~JetProbeMaker() override{};
0023
0024 int process_event(PHCompositeNode * ) override;
0025 int InitRun(PHCompositeNode *topNode) override;
0026
0027 void set_abs_eta(float val)
0028 {
0029 _eta_min = -val;
0030 _eta_max = val;
0031 _eta_range = (_eta_max - _eta_min);
0032 }
0033 void set_eta_min(float val)
0034 {
0035 _eta_min = val;
0036 _eta_range = (_eta_max - _eta_min);
0037 }
0038 void set_eta_max(float val)
0039 {
0040 _eta_max = val;
0041 _eta_range = (_eta_max - _eta_min);
0042 }
0043
0044 void set_phi_min(float val) { _phi_min = val; }
0045 void set_phi_max(float val) { _phi_max = val; }
0046
0047 void set_pt(float val)
0048 {
0049 _pt_max = val;
0050 _pt_min = val;
0051 _pt_range = _pt_max - _pt_min;
0052 }
0053 void set_pt_min(float val)
0054 {
0055 _pt_min = val;
0056 _pt_range = _pt_max - _pt_min;
0057 }
0058 void set_pt_max(float val)
0059 {
0060 _pt_max = val;
0061 _pt_range = _pt_max - _pt_min;
0062 }
0063
0064 private:
0065 class Deleter
0066 {
0067 public:
0068
0069 void operator()(gsl_rng *rng) const { gsl_rng_free(rng); }
0070 };
0071 std::unique_ptr<gsl_rng, Deleter> m_rng;
0072
0073 float _eta_min = -0.7;
0074 float _eta_max = 0.7;
0075 float _eta_range = 1.4;
0076 float _phi_min = -M_PI;
0077 float _phi_max = M_PI;
0078 float _pt_min = 30.;
0079 float _pt_max = 30.;
0080 float _pt_range = 0.;
0081 JetContainer *_jets = nullptr;
0082 };
0083
0084 #endif