Back to home page

sPhenix code displayed by LXR

 
 

    


File indexing completed on 2025-12-17 09:20:01

0001 #ifndef CALOVTXRECO_CALOVTXRECO_H
0002 #define CALOVTXRECO_CALOVTXRECO_H
0003 
0004 #include <calobase/RawTowerDefs.h>
0005 
0006 #include <fun4all/SubsysReco.h>
0007 
0008 class CaloVertexMap;
0009 class PHCompositeNode;
0010 class RawTowerGeomContainer;
0011 class TowerInfoContainer;
0012 
0013 class CaloVtxReco : public SubsysReco
0014 {
0015  public:
0016   CaloVtxReco(const std::string &name = "CaloVtxReco", const std::string &jetnodename = "zzjets06", const bool use_z_energy_dep = false);
0017 
0018   virtual ~CaloVtxReco() = default;
0019 
0020   int createNodes(PHCompositeNode *topNode);
0021 
0022   float new_eta(int channel, TowerInfoContainer *towers, RawTowerGeomContainer *geom, RawTowerDefs::CalorimeterId caloID, float testz);
0023 
0024   int InitRun(PHCompositeNode *topNode) override;
0025 
0026   int calo_tower_algorithm(PHCompositeNode *topNode) const;
0027 
0028   int process_event(PHCompositeNode *topNode) override;
0029 
0030   float get_jet_threshold() { return m_jet_threshold; }
0031 
0032   void set_jet_threshold(float new_thresh) { m_jet_threshold = new_thresh; }
0033 
0034   float get_calib_factor() { return m_calib_factor; }
0035 
0036   void set_calib_factor(float new_calib) { m_calib_factor = new_calib; }
0037 
0038   float get_energy_cut() { return m_energy_cut; }
0039 
0040   void set_energy_cut(float new_energy) { m_energy_cut = new_energy; }
0041 
0042  private:
0043   CaloVertexMap *m_calovtxmap{nullptr};
0044   float m_jet_threshold{15};
0045   float m_zvtx{std::numeric_limits<float>::quiet_NaN()};
0046   float m_calib_factor{1.406};
0047   float m_energy_cut{0.1};
0048   float m_radius_EM{std::numeric_limits<float>::quiet_NaN()};
0049   float m_radius_OH{std::numeric_limits<float>::quiet_NaN()};
0050   bool m_use_z_energy_dep;
0051   std::string m_jetnodename;
0052 };
0053 
0054 #endif  // CALOVTXRECO_CALOVTXRECO_H