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 26 of file HitStructures.h.

Member Typedef Documentation

◆ axis_eta_t

Definition at line 31 of file HitStructures.h.

◆ axis_phi_t

Definition at line 30 of file HitStructures.h.

◆ bin_content_t

using mkfit::LayerOfHits::bin_content_t = unsigned int

Definition at line 29 of file HitStructures.h.

◆ bin_index_t

using mkfit::LayerOfHits::bin_index_t = unsigned short

Definition at line 28 of file HitStructures.h.

◆ binnor_t

Definition at line 32 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:105

◆ ~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 153 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.

153  {
154  m_ext_hits = &hitv;
155  m_n_hits = 0;
156 
157  m_binnor.begin_registration(128); // initial reserve for cons vectors
158  }
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 187 of file HitStructures.cc.

References mkfit::binnor< C, A1, A2, NB_first, NB_count >::finalize_registration(), mps_fire::i, dqmiolumiharvest::j, isotrackApplyRegressor::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.

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

References mps_fire::i, m_ext_idcs, and m_min_ext_idx.

100 { 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 102 of file HitStructures.h.

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

102 { 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 93 of file HitStructures.h.

References mps_fire::i, and m_hit_infos.

93 { 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 94 of file HitStructures.h.

References mps_fire::i, and m_hit_infos.

94 { 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 95 of file HitStructures.h.

References mps_fire::i, and m_hit_infos.

95 { 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 96 of file HitStructures.h.

References mps_fire::i, and m_hit_infos.

96 { 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 97 of file HitStructures.h.

References mps_fire::i, and m_hit_infos.

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

◆ hitArray()

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

Definition at line 109 of file HitStructures.h.

References m_ext_hits.

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

109 { 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 121 of file HitStructures.h.

References m_is_barrel.

121 { return !m_is_barrel; }

◆ is_pixel()

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

◆ is_stereo()

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

Definition at line 134 of file HitStructures.h.

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

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

◆ is_within_r_limits()

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

Definition at line 124 of file HitStructures.h.

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

124 { return m_layer_info->is_within_r_limits(r); }
bool is_within_r_limits(float r) const
Definition: TrackerInfo.h:111
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 130 of file HitStructures.h.

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

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

◆ is_within_z_limits()

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

Definition at line 123 of file HitStructures.h.

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

123 { return m_layer_info->is_within_z_limits(z); }
bool is_within_z_limits(float z) const
Definition: TrackerInfo.h:110
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 126 of file HitStructures.h.

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

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

◆ isBinDead()

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

Definition at line 85 of file HitStructures.h.

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

85 { 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

◆ nHits()

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

◆ phiBin()

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

Definition at line 78 of file HitStructures.h.

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

Referenced by suckInDeads().

78 { 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 79 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().

79 { 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 81 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().

81 { 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 83 of file HitStructures.h.

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

83 { 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 253 of file HitStructures.cc.

References submitPVResolutionJobs::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.

253  {
254  for (bin_index_t qb = 0; qb <= m_ax_eta.m_last_N_bin; ++qb) {
255  printf("%c bin %d\n", is_barrel() ? 'Z' : 'R', qb);
256  for (bin_index_t pb = 0; pb <= m_ax_phi.m_last_N_bin; ++pb) {
257  if (pb % 8 == 0)
258  printf(" Phi %4d: ", pb);
259  auto content = m_binnor.get_content(pb, qb);
260  printf("%5d,%4d %s", content.first, content.count, ((pb + 1) % 8 == 0) ? "\n" : "");
261  }
262  }
263  }
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:28

◆ 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 160 of file HitStructures.cc.

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

160  {
161  const Hit &h = (*m_ext_hits)[idx];
162 
163  m_ext_idcs.push_back(idx);
166 
167  float phi = h.phi();
168  float q = m_is_barrel ? h.z() : h.r();
169 
171 
172  if (Config::usePhiQArrays) {
173  // Factor to get from hit sigma to half-length in q direction.
174  const float hl_fac = is_pixel() ? 3.0f : std::sqrt(3.0f);
175  float half_length, qbar;
176  if (m_is_barrel) {
177  half_length = hl_fac * std::sqrt(h.ezz());
178  qbar = h.r();
179  } else {
180  half_length = hl_fac * std::sqrt(h.exx() + h.eyy());
181  qbar = h.z();
182  }
183  m_hit_infos.emplace_back(HitInfo({phi, q, half_length, qbar}));
184  }
185  }
bool is_pixel() const
unsigned int m_min_ext_idx
constexpr bool usePhiQArrays
Definition: Config.h:76
T sqrt(T t)
Definition: SSEVec.h:23
void register_entry_safe(typename A1::real_t r1, typename A2::real_t r2)
Definition: binnor.h:282
double f[11][100]
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 136 of file HitStructures.h.

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

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

◆ suckInDeads()

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

Definition at line 133 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().

133  {
134  m_dead_bins.assign(m_dead_bins.size(), false);
135 
136  for (const auto &d : deadv) {
137  bin_index_t q_bin_1 = qBinChecked(d.q1);
138  bin_index_t q_bin_2 = qBinChecked(d.q2) + 1;
139  bin_index_t phi_bin_1 = phiBin(d.phi1);
140  bin_index_t phi_bin_2 = phiMaskApply(phiBin(d.phi2) + 1);
141 
142  for (bin_index_t q_bin = q_bin_1; q_bin != q_bin_2; q_bin++) {
143  const unsigned int qoff = q_bin * m_ax_phi.size_of_N();
144  for (bin_index_t pb = phi_bin_1; pb != phi_bin_2; pb = phiMaskApply(pb + 1)) {
145  m_dead_bins[qoff + pb] = true;
146  }
147  }
148  }
149  }
bin_index_t qBinChecked(float q) const
Definition: HitStructures.h:75
bin_index_t phiBin(float phi) const
Definition: HitStructures.h:78
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:28
bin_index_t phiMaskApply(bin_index_t in) const
Definition: HitStructures.h:81

◆ 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(), f, mkfit::binnor< C, A1, A2, NB_first, NB_count >::finalize_registration(), h, mps_fire::i, is_pixel(), 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  // Factor to get from hit sigma to half-length in q direction.
95  const float hl_fac = is_pixel() ? 3.0f : std::sqrt(3.0f);
96 
97  for (unsigned int i = 0; i < m_n_hits; ++i) {
98  const Hit &h = hitv[i];
99 
100  float phi = h.phi();
101  float q = m_is_barrel ? h.z() : h.r();
102 
104 
105  if (Config::usePhiQArrays) {
106  float half_length, qbar;
107  if (m_is_barrel) {
108  half_length = hl_fac * std::sqrt(h.ezz());
109  qbar = h.r();
110  } else {
111  half_length = hl_fac * std::sqrt(h.exx() + h.eyy());
112  qbar = h.z();
113  }
114  hinfos.emplace_back(HitInfo({phi, q, half_length, qbar}));
115  }
116  }
117 
119 
120  for (unsigned int i = 0; i < m_n_hits; ++i) {
121  unsigned int j = m_binnor.m_ranks[i];
122 #ifdef COPY_SORTED_HITS
123  memcpy(&m_hits[i], &hitv[j], sizeof(Hit));
124 #endif
125  if (Config::usePhiQArrays) {
126  m_hit_infos.emplace_back(hinfos[j]);
127  }
128  }
129  }
unsigned int m_n_hits
const HitVec * m_ext_hits
bool is_pixel() const
void finalize_registration()
Definition: binnor.h:289
constexpr bool usePhiQArrays
Definition: Config.h:76
std::vector< C > m_ranks
Definition: binnor.h:211
T sqrt(T t)
Definition: SSEVec.h:23
void register_entry_safe(typename A1::real_t r1, typename A2::real_t r2)
Definition: binnor.h:282
double f[11][100]
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 140 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 158 of file HitStructures.h.

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

◆ m_ext_hits

const HitVec* mkfit::LayerOfHits::m_ext_hits
private

Definition at line 150 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 152 of file HitStructures.h.

Referenced by endRegistrationOfHits().

◆ m_is_barrel

bool mkfit::LayerOfHits::m_is_barrel
private

Definition at line 162 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 154 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