CMS 3D CMS Logo

List of all members | Classes | Public Types | Public Member Functions | Private Attributes
mkfit::LayerOfHits Class Reference

#include <HitStructures.h>

Classes

struct  HitInfo
 
struct  Initializator
 

Public Types

using axis_eta_t = axis< float, bin_index_t, 16, 8 >
 
using axis_phi_t = axis_pow2_u1< float, bin_index_t, 16, 8 >
 
using bin_content_t = unsigned int
 
using bin_index_t = unsigned short
 
using binnor_t = binnor< bin_content_t, axis_phi_t, axis_eta_t, 18, 14 >
 

Public Member Functions

void beginRegistrationOfHits (const HitVec &hitv)
 
void endRegistrationOfHits (bool build_original_to_internal_map)
 
unsigned int getHitIndexFromOriginal (unsigned int i) const
 
unsigned int getOriginalHitIndex (unsigned int i) const
 
const HitInfohit_info (unsigned int i) const
 
float hit_phi (unsigned int i) const
 
float hit_q (unsigned int i) const
 
float hit_q_half_length (unsigned int i) const
 
float hit_qbar (unsigned int i) const
 
const HithitArray () const
 
bool is_barrel () const
 
bool is_endcap () const
 
bool is_pixel () const
 
bool is_stereo () const
 
bool is_within_r_limits (float r) const
 
WSR_Result is_within_r_sensitive_region (float r, float dr) const
 
bool is_within_z_limits (float z) const
 
WSR_Result is_within_z_sensitive_region (float z, float dz) const
 
bool isBinDead (bin_index_t pi, bin_index_t qi) const
 
int layer_id () const
 
const LayerInfolayer_info () const
 
 LayerOfHits (const LayerOfHits::Initializator &i)
 
unsigned int nHits () const
 
bin_index_t phiBin (float phi) const
 
bin_index_t phiBinChecked (float phi) const
 
bin_index_t phiMaskApply (bin_index_t in) const
 
binnor_t::C_pair phiQBinContent (bin_index_t pi, bin_index_t qi) const
 
void printBins ()
 
bin_index_t qBin (float q) const
 
bin_index_t qBinChecked (float q) const
 
const HitrefHit (int i) const
 
void registerHit (unsigned int idx)
 
void reset ()
 
int subdet () const
 
void suckInDeads (const DeadVec &deadv)
 
void suckInHits (const HitVec &hitv)
 
 ~LayerOfHits ()
 

Private Attributes

axis_eta_t m_ax_eta
 
axis_phi_t m_ax_phi
 
binnor_t m_binnor
 
std::vector< bool > m_dead_bins
 
const HitVecm_ext_hits
 
std::vector< unsigned int > m_ext_idcs
 
std::vector< HitInfom_hit_infos
 
unsigned int * m_hit_ranks = nullptr
 
bool m_is_barrel
 
const LayerInfom_layer_info = nullptr
 
unsigned int m_max_ext_idx
 
unsigned int m_min_ext_idx
 
unsigned int m_n_hits = 0
 

Detailed Description

Definition at line 24 of file HitStructures.h.

Member Typedef Documentation

◆ axis_eta_t

Definition at line 29 of file HitStructures.h.

◆ axis_phi_t

Definition at line 28 of file HitStructures.h.

◆ bin_content_t

using mkfit::LayerOfHits::bin_content_t = unsigned int

Definition at line 27 of file HitStructures.h.

◆ bin_index_t

using mkfit::LayerOfHits::bin_index_t = unsigned short

Definition at line 26 of file HitStructures.h.

◆ binnor_t

Definition at line 30 of file HitStructures.h.

Constructor & Destructor Documentation

◆ LayerOfHits()

mkfit::LayerOfHits::LayerOfHits ( const LayerOfHits::Initializator i)

Definition at line 33 of file HitStructures.cc.

References mps_fire::i, mkfit::LayerInfo::is_barrel(), m_ax_eta, m_ax_phi, m_dead_bins, m_is_barrel, m_layer_info, mkfit::axis_pow2_base< R, I, M, N >::size_of_N(), and mkfit::axis< R, I, M, N >::size_of_N().

35  m_ax_eta(i.m_qmin, i.m_qmax, i.m_nq),
36  m_binnor(m_ax_phi, m_ax_eta, true, false) // yes-radix, no-keep-cons
37  {
38  m_layer_info = &i.m_linfo;
40 
42  }
unsigned int size_of_N() const
Definition: binnor.h:143
constexpr float PI
Definition: Config.h:7
std::vector< bool > m_dead_bins
unsigned int size_of_N() const
Definition: binnor.h:88
const LayerInfo * m_layer_info
bool is_barrel() const
Definition: TrackerInfo.h:76

◆ ~LayerOfHits()

mkfit::LayerOfHits::~LayerOfHits ( )

Definition at line 44 of file HitStructures.cc.

44  {
45 #ifdef COPY_SORTED_HITS
46  free_hits();
47 #endif
48  }

Member Function Documentation

◆ beginRegistrationOfHits()

void mkfit::LayerOfHits::beginRegistrationOfHits ( const HitVec hitv)

Definition at line 151 of file HitStructures.cc.

References mkfit::binnor< C, A1, A2, NB_first, NB_count >::begin_registration(), m_binnor, m_ext_hits, and m_n_hits.

151  {
152  m_ext_hits = &hitv;
153  m_n_hits = 0;
154 
155  m_binnor.begin_registration(128); // initial reserve for cons vectors
156  }
unsigned int m_n_hits
const HitVec * m_ext_hits
void begin_registration(C n_items)
Definition: binnor.h:264

◆ endRegistrationOfHits()

void mkfit::LayerOfHits::endRegistrationOfHits ( bool  build_original_to_internal_map)

Definition at line 184 of file HitStructures.cc.

References mkfit::binnor< C, A1, A2, NB_first, NB_count >::finalize_registration(), mps_fire::i, dqmiolumiharvest::j, dqmdumpme::k, m_binnor, m_ext_idcs, m_hit_infos, m_hit_ranks, m_max_ext_idx, m_min_ext_idx, m_n_hits, mkfit::binnor< C, A1, A2, NB_first, NB_count >::m_ranks, and mkfit::Config::usePhiQArrays.

184  {
185  m_n_hits = m_ext_idcs.size();
186  if (m_n_hits == 0)
187  return;
188 
190 
191  // copy q/phi
192 
193 #ifdef COPY_SORTED_HITS
194  if (m_capacity < m_n_hits) {
195  free_hits();
196  alloc_hits(m_n_hits);
197  }
198 #endif
199 
200  std::vector<HitInfo> hinfos;
201  if (Config::usePhiQArrays) {
202  hinfos.swap(m_hit_infos);
203  m_hit_infos.reserve(m_n_hits);
204  }
205 
206  for (unsigned int i = 0; i < m_n_hits; ++i) {
207  unsigned int j = m_binnor.m_ranks[i]; // index in intermediate
208  unsigned int k = m_ext_idcs[j]; // index in external hit_vec
209 
210 #ifdef COPY_SORTED_HITS
211  memcpy(&m_hits[i], &hitv[k], sizeof(Hit));
212 #endif
213 
214  if (Config::usePhiQArrays) {
215  m_hit_infos.emplace_back(hinfos[j]);
216  }
217 
218  // Redirect m_binnor.m_ranks[i] to point to external/original index.
219  m_binnor.m_ranks[i] = k;
220  }
221 
222  if (build_original_to_internal_map) {
223  if (m_max_ext_idx - m_min_ext_idx + 1 > 8 * m_n_hits) {
224  // If this happens we might:
225  // a) Use external indices for everything. -- *** We are now. ***
226  // b) Build these maps for seeding layers only.
227  // c) Have a flag in hit-on-track that tells us if the hit index has been remapped,
228  // essentially, if it is a seed hit. This might be smart anyway.
229  // One could use index < -256 or something similar.
230 
231  printf(
232  "LayerOfHits::endRegistrationOfHits() original_to_internal index map vector is largish: m_n_hits=%d, "
233  "map_vector_size=%d\n",
234  m_n_hits,
236  }
237 
238  m_ext_idcs.resize(m_max_ext_idx - m_min_ext_idx + 1);
239  for (unsigned int i = 0; i < m_n_hits; ++i) {
241  }
242  }
243 
244  // We can release m_hit_infos and, if not used, also m_ext_idcs -- and realloc them
245  // on next beginRegistration().
246  // If binnor had keep_cons on we could use it for pre-selection in selectHitIndices()
247  // instead of q and phi arrays -- assuming sufficient precision can be achieved..
248  }
unsigned int m_n_hits
unsigned int m_min_ext_idx
void finalize_registration()
Definition: binnor.h:289
constexpr bool usePhiQArrays
Definition: Config.h:69
std::vector< C > m_ranks
Definition: binnor.h:211
unsigned int * m_hit_ranks
unsigned int m_max_ext_idx
std::vector< unsigned int > m_ext_idcs
std::vector< HitInfo > m_hit_infos

◆ getHitIndexFromOriginal()

unsigned int mkfit::LayerOfHits::getHitIndexFromOriginal ( unsigned int  i) const
inline

Definition at line 98 of file HitStructures.h.

References mps_fire::i, m_ext_idcs, and m_min_ext_idx.

98 { return m_ext_idcs[i - m_min_ext_idx]; }
unsigned int m_min_ext_idx
std::vector< unsigned int > m_ext_idcs

◆ getOriginalHitIndex()

unsigned int mkfit::LayerOfHits::getOriginalHitIndex ( unsigned int  i) const
inline

Definition at line 100 of file HitStructures.h.

References mps_fire::i, m_binnor, and mkfit::binnor< C, A1, A2, NB_first, NB_count >::m_ranks.

100 { return m_binnor.m_ranks[i]; }
std::vector< C > m_ranks
Definition: binnor.h:211

◆ hit_info()

const HitInfo& mkfit::LayerOfHits::hit_info ( unsigned int  i) const
inline

Definition at line 91 of file HitStructures.h.

References mps_fire::i, and m_hit_infos.

91 { return m_hit_infos[i]; }
std::vector< HitInfo > m_hit_infos

◆ hit_phi()

float mkfit::LayerOfHits::hit_phi ( unsigned int  i) const
inline

Definition at line 92 of file HitStructures.h.

References mps_fire::i, and m_hit_infos.

92 { return m_hit_infos[i].phi; }
std::vector< HitInfo > m_hit_infos

◆ hit_q()

float mkfit::LayerOfHits::hit_q ( unsigned int  i) const
inline

Definition at line 93 of file HitStructures.h.

References mps_fire::i, and m_hit_infos.

93 { return m_hit_infos[i].q; }
std::vector< HitInfo > m_hit_infos

◆ hit_q_half_length()

float mkfit::LayerOfHits::hit_q_half_length ( unsigned int  i) const
inline

Definition at line 94 of file HitStructures.h.

References mps_fire::i, and m_hit_infos.

94 { return m_hit_infos[i].q_half_length; }
std::vector< HitInfo > m_hit_infos

◆ hit_qbar()

float mkfit::LayerOfHits::hit_qbar ( unsigned int  i) const
inline

Definition at line 95 of file HitStructures.h.

References mps_fire::i, and m_hit_infos.

95 { return m_hit_infos[i].qbar; }
std::vector< HitInfo > m_hit_infos

◆ hitArray()

const Hit* mkfit::LayerOfHits::hitArray ( ) const
inline

Definition at line 107 of file HitStructures.h.

References m_ext_hits.

Referenced by mkfit::MkFinder::addBestHit(), mkfit::MkFinder::findCandidates(), and mkfit::MkFinder::findCandidatesCloneEngine().

107 { return m_ext_hits->data(); }
const HitVec * m_ext_hits

◆ is_barrel()

bool mkfit::LayerOfHits::is_barrel ( ) const
inline

◆ is_endcap()

bool mkfit::LayerOfHits::is_endcap ( ) const
inline

Definition at line 119 of file HitStructures.h.

References m_is_barrel.

119 { return !m_is_barrel; }

◆ is_pixel()

bool mkfit::LayerOfHits::is_pixel ( ) const
inline

Definition at line 133 of file HitStructures.h.

References mkfit::LayerInfo::is_pixel(), and m_layer_info.

Referenced by mkfit::MkFinder::findCandidates(), and mkfit::MkFinder::findCandidatesCloneEngine().

133 { return m_layer_info->is_pixel(); }
bool is_pixel() const
Definition: TrackerInfo.h:77
const LayerInfo * m_layer_info

◆ is_stereo()

bool mkfit::LayerOfHits::is_stereo ( ) const
inline

Definition at line 132 of file HitStructures.h.

References mkfit::LayerInfo::is_stereo(), and m_layer_info.

132 { return m_layer_info->is_stereo(); }
bool is_stereo() const
Definition: TrackerInfo.h:78
const LayerInfo * m_layer_info

◆ is_within_r_limits()

bool mkfit::LayerOfHits::is_within_r_limits ( float  r) const
inline

Definition at line 122 of file HitStructures.h.

References mkfit::LayerInfo::is_within_r_limits(), and m_layer_info.

122 { return m_layer_info->is_within_r_limits(r); }
bool is_within_r_limits(float r) const
Definition: TrackerInfo.h:81
const LayerInfo * m_layer_info

◆ is_within_r_sensitive_region()

WSR_Result mkfit::LayerOfHits::is_within_r_sensitive_region ( float  r,
float  dr 
) const
inline

Definition at line 128 of file HitStructures.h.

References mkfit::LayerInfo::is_within_r_sensitive_region(), and m_layer_info.

128  {
130  }
WSR_Result is_within_r_sensitive_region(float r, float dr) const
Definition: TrackerInfo.h:94
const LayerInfo * m_layer_info

◆ is_within_z_limits()

bool mkfit::LayerOfHits::is_within_z_limits ( float  z) const
inline

Definition at line 121 of file HitStructures.h.

References mkfit::LayerInfo::is_within_z_limits(), and m_layer_info.

121 { return m_layer_info->is_within_z_limits(z); }
bool is_within_z_limits(float z) const
Definition: TrackerInfo.h:80
const LayerInfo * m_layer_info

◆ is_within_z_sensitive_region()

WSR_Result mkfit::LayerOfHits::is_within_z_sensitive_region ( float  z,
float  dz 
) const
inline

Definition at line 124 of file HitStructures.h.

References PVValHelper::dz, mkfit::LayerInfo::is_within_z_sensitive_region(), and m_layer_info.

124  {
126  }
WSR_Result is_within_z_sensitive_region(float z, float dz) const
Definition: TrackerInfo.h:86
const LayerInfo * m_layer_info

◆ isBinDead()

bool mkfit::LayerOfHits::isBinDead ( bin_index_t  pi,
bin_index_t  qi 
) const
inline

Definition at line 83 of file HitStructures.h.

References m_ax_phi, m_dead_bins, pi, and mkfit::axis_pow2_base< R, I, M, N >::size_of_N().

83 { return m_dead_bins[qi * m_ax_phi.size_of_N() + pi]; }
const Double_t pi
std::vector< bool > m_dead_bins
unsigned int size_of_N() const
Definition: binnor.h:88

◆ layer_id()

int mkfit::LayerOfHits::layer_id ( ) const
inline

◆ layer_info()

const LayerInfo* mkfit::LayerOfHits::layer_info ( ) const
inline

Definition at line 115 of file HitStructures.h.

References m_layer_info.

115 { return m_layer_info; }
const LayerInfo * m_layer_info

◆ nHits()

unsigned int mkfit::LayerOfHits::nHits ( void  ) const
inline

◆ phiBin()

bin_index_t mkfit::LayerOfHits::phiBin ( float  phi) const
inline

Definition at line 76 of file HitStructures.h.

References mkfit::axis_base< R, I, M, N >::from_R_to_N_bin(), and m_ax_phi.

Referenced by suckInDeads().

76 { return m_ax_phi.from_R_to_N_bin(phi); }
I from_R_to_N_bin(R r) const
Definition: binnor.h:62

◆ phiBinChecked()

bin_index_t mkfit::LayerOfHits::phiBinChecked ( float  phi) const
inline

Definition at line 77 of file HitStructures.h.

References mkfit::axis_pow2_u1< R, I, M, N >::from_R_to_N_bin_safe(), and m_ax_phi.

Referenced by mkfit::MkFinder::selectHitIndicesV2().

77 { return m_ax_phi.from_R_to_N_bin_safe(phi); }
I from_R_to_N_bin_safe(R r) const
Definition: binnor.h:103

◆ phiMaskApply()

bin_index_t mkfit::LayerOfHits::phiMaskApply ( bin_index_t  in) const
inline

Definition at line 79 of file HitStructures.h.

References mkfit::axis_pow2_u1< R, I, M, N >::c_N_mask, recoMuon::in, and m_ax_phi.

Referenced by suckInDeads().

79 { return in & m_ax_phi.c_N_mask; }
static constexpr I c_N_mask
Definition: binnor.h:98

◆ phiQBinContent()

binnor_t::C_pair mkfit::LayerOfHits::phiQBinContent ( bin_index_t  pi,
bin_index_t  qi 
) const
inline

Definition at line 81 of file HitStructures.h.

References mkfit::binnor< C, A1, A2, NB_first, NB_count >::get_content(), m_binnor, and pi.

81 { return m_binnor.get_content(pi, qi); }
C_pair get_content(B_pair n_bin) const
Definition: binnor.h:240
const Double_t pi

◆ printBins()

void mkfit::LayerOfHits::printBins ( )

Definition at line 250 of file HitStructures.cc.

References Skims_PA_cff::content, mkfit::binnor< C, A1, A2, NB_first, NB_count >::get_content(), is_barrel(), m_ax_eta, m_ax_phi, m_binnor, and mkfit::axis_base< R, I, M, N >::m_last_N_bin.

250  {
251  for (bin_index_t qb = 0; qb <= m_ax_eta.m_last_N_bin; ++qb) {
252  printf("%c bin %d\n", is_barrel() ? 'Z' : 'R', qb);
253  for (bin_index_t pb = 0; pb <= m_ax_phi.m_last_N_bin; ++pb) {
254  if (pb % 8 == 0)
255  printf(" Phi %4d: ", pb);
256  auto content = m_binnor.get_content(pb, qb);
257  printf("%5d,%4d %s", content.first, content.count, ((pb + 1) % 8 == 0) ? "\n" : "");
258  }
259  }
260  }
C_pair get_content(B_pair n_bin) const
Definition: binnor.h:240
const I m_last_N_bin
Definition: binnor.h:36
bool is_barrel() const
unsigned short bin_index_t
Definition: HitStructures.h:26

◆ qBin()

bin_index_t mkfit::LayerOfHits::qBin ( float  q) const
inline

◆ qBinChecked()

bin_index_t mkfit::LayerOfHits::qBinChecked ( float  q) const
inline

◆ refHit()

const Hit& mkfit::LayerOfHits::refHit ( int  i) const
inline

◆ registerHit()

void mkfit::LayerOfHits::registerHit ( unsigned int  idx)

Definition at line 158 of file HitStructures.cc.

References h, heavyIonCSV_trainingSettings::idx, m_binnor, m_ext_idcs, m_hit_infos, m_is_barrel, m_max_ext_idx, m_min_ext_idx, SiStripPI::max, SiStripPI::min, submitPVResolutionJobs::q, mkfit::binnor< C, A1, A2, NB_first, NB_count >::register_entry_safe(), mathSSE::sqrt(), and mkfit::Config::usePhiQArrays.

158  {
159  const Hit &h = (*m_ext_hits)[idx];
160 
161  m_ext_idcs.push_back(idx);
164 
165  float phi = h.phi();
166  float q = m_is_barrel ? h.z() : h.r();
167 
169 
170  if (Config::usePhiQArrays) {
171  const float sqrt3 = std::sqrt(3);
172  float half_length, qbar;
173  if (m_is_barrel) {
174  half_length = sqrt3 * std::sqrt(h.ezz());
175  qbar = h.r();
176  } else {
177  half_length = sqrt3 * std::sqrt(h.exx() + h.eyy());
178  qbar = h.z();
179  }
180  m_hit_infos.emplace_back(HitInfo({phi, q, half_length, qbar}));
181  }
182  }
unsigned int m_min_ext_idx
constexpr bool usePhiQArrays
Definition: Config.h:69
T sqrt(T t)
Definition: SSEVec.h:19
void register_entry_safe(typename A1::real_t r1, typename A2::real_t r2)
Definition: binnor.h:282
unsigned int m_max_ext_idx
std::vector< unsigned int > m_ext_idcs
The Signals That Services Can Subscribe To This is based on ActivityRegistry h
Helper function to determine trigger accepts.
Definition: Activities.doc:4
std::vector< HitInfo > m_hit_infos

◆ reset()

void mkfit::LayerOfHits::reset ( void  )

◆ subdet()

int mkfit::LayerOfHits::subdet ( ) const
inline

Definition at line 134 of file HitStructures.h.

References m_layer_info, and mkfit::LayerInfo::subdet().

134 { return m_layer_info->subdet(); }
int subdet() const
Definition: TrackerInfo.h:75
const LayerInfo * m_layer_info

◆ suckInDeads()

void mkfit::LayerOfHits::suckInDeads ( const DeadVec deadv)

Definition at line 131 of file HitStructures.cc.

References ztail::d, m_ax_phi, m_dead_bins, phiBin(), phiMaskApply(), qBinChecked(), and mkfit::axis_pow2_base< R, I, M, N >::size_of_N().

131  {
132  m_dead_bins.assign(m_dead_bins.size(), false);
133 
134  for (const auto &d : deadv) {
135  bin_index_t q_bin_1 = qBinChecked(d.q1);
136  bin_index_t q_bin_2 = qBinChecked(d.q2) + 1;
137  bin_index_t phi_bin_1 = phiBin(d.phi1);
138  bin_index_t phi_bin_2 = phiMaskApply(phiBin(d.phi2) + 1);
139 
140  for (bin_index_t q_bin = q_bin_1; q_bin != q_bin_2; q_bin++) {
141  const unsigned int qoff = q_bin * m_ax_phi.size_of_N();
142  for (bin_index_t pb = phi_bin_1; pb != phi_bin_2; pb = phiMaskApply(pb + 1)) {
143  m_dead_bins[qoff + pb] = true;
144  }
145  }
146  }
147  }
bin_index_t qBinChecked(float q) const
Definition: HitStructures.h:73
bin_index_t phiBin(float phi) const
Definition: HitStructures.h:76
d
Definition: ztail.py:151
std::vector< bool > m_dead_bins
unsigned int size_of_N() const
Definition: binnor.h:88
unsigned short bin_index_t
Definition: HitStructures.h:26
bin_index_t phiMaskApply(bin_index_t in) const
Definition: HitStructures.h:79

◆ suckInHits()

void mkfit::LayerOfHits::suckInHits ( const HitVec hitv)

Definition at line 75 of file HitStructures.cc.

References mkfit::binnor< C, A1, A2, NB_first, NB_count >::begin_registration(), mkfit::binnor< C, A1, A2, NB_first, NB_count >::finalize_registration(), h, mps_fire::i, dqmiolumiharvest::j, m_binnor, m_ext_hits, m_hit_infos, m_is_barrel, m_n_hits, mkfit::binnor< C, A1, A2, NB_first, NB_count >::m_ranks, submitPVResolutionJobs::q, mkfit::binnor< C, A1, A2, NB_first, NB_count >::register_entry_safe(), mathSSE::sqrt(), and mkfit::Config::usePhiQArrays.

75  {
76  m_ext_hits = &hitv;
77  m_n_hits = hitv.size();
78 
80 
81 #ifdef COPY_SORTED_HITS
82  if (m_capacity < m_n_hits) {
83  free_hits();
84  alloc_hits(m_n_hits);
85  }
86 #endif
87 
88  std::vector<HitInfo> hinfos;
90  hinfos.reserve(m_n_hits);
91  m_hit_infos.reserve(m_n_hits);
92  }
93 
94  for (unsigned int i = 0; i < m_n_hits; ++i) {
95  const Hit &h = hitv[i];
96 
97  float phi = h.phi();
98  float q = m_is_barrel ? h.z() : h.r();
99 
101 
102  if (Config::usePhiQArrays) {
103  const float sqrt3 = std::sqrt(3);
104  float half_length, qbar;
105  if (m_is_barrel) {
106  half_length = sqrt3 * std::sqrt(h.ezz());
107  qbar = h.r();
108  } else {
109  half_length = sqrt3 * std::sqrt(h.exx() + h.eyy());
110  qbar = h.z();
111  }
112  hinfos.emplace_back(HitInfo({phi, q, half_length, qbar}));
113  }
114  }
115 
117 
118  for (unsigned int i = 0; i < m_n_hits; ++i) {
119  unsigned int j = m_binnor.m_ranks[i];
120 #ifdef COPY_SORTED_HITS
121  memcpy(&m_hits[i], &hitv[j], sizeof(Hit));
122 #endif
123  if (Config::usePhiQArrays) {
124  m_hit_infos.emplace_back(hinfos[j]);
125  }
126  }
127  }
unsigned int m_n_hits
const HitVec * m_ext_hits
void finalize_registration()
Definition: binnor.h:289
constexpr bool usePhiQArrays
Definition: Config.h:69
std::vector< C > m_ranks
Definition: binnor.h:211
T sqrt(T t)
Definition: SSEVec.h:19
void register_entry_safe(typename A1::real_t r1, typename A2::real_t r2)
Definition: binnor.h:282
void begin_registration(C n_items)
Definition: binnor.h:264
The Signals That Services Can Subscribe To This is based on ActivityRegistry h
Helper function to determine trigger accepts.
Definition: Activities.doc:4
std::vector< HitInfo > m_hit_infos

Member Data Documentation

◆ m_ax_eta

axis_eta_t mkfit::LayerOfHits::m_ax_eta
private

Definition at line 138 of file HitStructures.h.

Referenced by LayerOfHits(), printBins(), qBin(), and qBinChecked().

◆ m_ax_phi

axis_phi_t mkfit::LayerOfHits::m_ax_phi
private

◆ m_binnor

binnor_t mkfit::LayerOfHits::m_binnor
private

◆ m_dead_bins

std::vector<bool> mkfit::LayerOfHits::m_dead_bins
private

Definition at line 156 of file HitStructures.h.

Referenced by isBinDead(), LayerOfHits(), and suckInDeads().

◆ m_ext_hits

const HitVec* mkfit::LayerOfHits::m_ext_hits
private

Definition at line 148 of file HitStructures.h.

Referenced by beginRegistrationOfHits(), hitArray(), refHit(), and suckInHits().

◆ m_ext_idcs

std::vector<unsigned int> mkfit::LayerOfHits::m_ext_idcs
private

◆ m_hit_infos

std::vector<HitInfo> mkfit::LayerOfHits::m_hit_infos
private

◆ m_hit_ranks

unsigned int* mkfit::LayerOfHits::m_hit_ranks = nullptr
private

Definition at line 150 of file HitStructures.h.

Referenced by endRegistrationOfHits().

◆ m_is_barrel

bool mkfit::LayerOfHits::m_is_barrel
private

Definition at line 160 of file HitStructures.h.

Referenced by is_barrel(), is_endcap(), LayerOfHits(), registerHit(), and suckInHits().

◆ m_layer_info

const LayerInfo* mkfit::LayerOfHits::m_layer_info = nullptr
private

◆ m_max_ext_idx

unsigned int mkfit::LayerOfHits::m_max_ext_idx
private

Definition at line 152 of file HitStructures.h.

Referenced by endRegistrationOfHits(), registerHit(), and reset().

◆ m_min_ext_idx

unsigned int mkfit::LayerOfHits::m_min_ext_idx
private

◆ m_n_hits

unsigned int mkfit::LayerOfHits::m_n_hits = 0
private