Back to home page

sPhenix code displayed by LXR

 
 

    


File indexing completed on 2025-08-06 08:17:46

0001 // make a jet probe and put it onto the node tree
0002 // It will always be a single Jet that the JetReco can get
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 * /*topNode*/) 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     //! delection operation
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