diff --git a/offline/packages/eventplaneinfo/EventPlaneReco.cc b/offline/packages/eventplaneinfo/EventPlaneReco.cc index 0179e08926..bfd68cb4ca 100644 --- a/offline/packages/eventplaneinfo/EventPlaneReco.cc +++ b/offline/packages/eventplaneinfo/EventPlaneReco.cc @@ -351,15 +351,27 @@ int EventPlaneReco::process_sEPD(PHCompositeNode* topNode) TowerInfo* tower = towerinfosEPD->get_tower_at_channel(channel); unsigned int key = TowerInfoDefs::encode_epd(channel); + int rbin = TowerInfoDefs::get_epd_rbin(key); double charge = tower->get_energy(); - // skip bad channels - // skip channels with very low charge - if (tower->get_isHot() || charge < m_sepd_min_channel_charge) + // Skip Innermost Ring + if (m_skipRing0 && rbin == 0) { continue; } + // Skip Noise + if (charge <= m_sepd_min_channel_charge) + { + continue; + } + + // Clamp on high charge threshold + if (m_sEPD_charge_threshold > 0 && charge > m_sEPD_charge_threshold) + { + charge = m_sEPD_charge_threshold; + } + // arm = 0: South // arm = 1: North unsigned int arm = TowerInfoDefs::get_epd_arm(key); diff --git a/offline/packages/eventplaneinfo/EventPlaneReco.h b/offline/packages/eventplaneinfo/EventPlaneReco.h index 231d30a8bb..167e7b698a 100644 --- a/offline/packages/eventplaneinfo/EventPlaneReco.h +++ b/offline/packages/eventplaneinfo/EventPlaneReco.h @@ -65,6 +65,16 @@ class EventPlaneReco : public SubsysReco m_sepd_min_channel_charge = sepd_min_channel_charge; } + void set_charge_threshold(double threshold) + { + m_sEPD_charge_threshold = std::max(0.0, threshold); + } + + void set_skipRing0(bool skip) + { + m_skipRing0 = skip; + } + void set_EventPlaneInfoNodeName(const std::string &name) { m_EventPlaneInfoNodeName = name; @@ -91,9 +101,12 @@ class EventPlaneReco : public SubsysReco bool m_doNotCalib{false}; bool m_doNotCalibEvent{false}; + bool m_skipRing0{true}; + double m_cent{0.0}; double m_globalEvent{0}; - double m_sepd_min_channel_charge{0.2}; + double m_sepd_min_channel_charge{0.5}; + double m_sEPD_charge_threshold{50}; std::string m_calibName{"SEPD_EventPlaneCalib"}; std::string m_inputNode{"TOWERINFO_CALIB_SEPD"};