63 const Identifier& l_identifier,
double l_energy,
64 double l_time,
bool l_valid,
74 G4cout << this->GetName() <<
" DEBUG update_map: bad identifier: "
75 << l_identifier.
getString() <<
" skipping this hit." << G4endl;
80 auto map_item =
m_hit_map.find(l_identifier);
83 new std::vector<ISF_FCS_Parametrization::FCS_StepInfo*>;
87 l_time, l_valid, l_detector));
92 m_calo_dd_man.get()->get_element(l_identifier)->getSampling();
94 double timeWindow =
m_config.m_maxTime;
95 const double distWinLong =
m_config.m_maxRadiusLongitudinal.at(layer);
96 const double distWinLat =
m_config.m_maxRadiusLateral.at(layer);
100 for (
auto* map_it : *map_item->second) {
102 const double delta_t = std::fabs(map_it->time() - l_time);
103 if (delta_t >= tsame) {
106 if (delta_t >= timeWindow) {
111 const CLHEP::Hep3Vector& currentPosition = map_it->position();
112 const double currentPosition_mag = currentPosition.mag();
113 const double proj_longitudinal =
114 currentPosition.dot(l_vec) / currentPosition_mag;
115 const double delta_longitudinal = currentPosition_mag - proj_longitudinal;
116 if (std::fabs(delta_longitudinal) >= distWinLong) {
121 double delta_lateral_2 = l_vec.mag2() - proj_longitudinal * proj_longitudinal;
122 if (delta_lateral_2 < 0) {
125 const double delta_lateral =
126 std::sqrt(delta_lateral_2);
127 if (delta_lateral >= distWinLat) {
133 l_vec, l_identifier, l_energy, l_time, l_valid, l_detector);
140 l_vec, l_identifier, l_energy, l_time, l_valid, l_detector));
void update_map(const CLHEP::Hep3Vector &l_vec, const Identifier &l_identifier, double l_energy, double l_time, bool l_valid, int l_detector)