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