26 _hough_space(nullptr) {
33 os <<
"---HelixHoughBin_v1-------------" << endl;
35 os <<
" helix hough bins (kappa, phi, d, dzdl, z0) = ("
41 os <<
"--------------------------------" << endl;
62 cerr <<
PHWHERE <<
"::Error - HelixHoughSpace is not set!! "<< endl;
71 unsigned int temp1 = n_kappa_bins * n_phi_bins * n_d_bins * n_dzdl_bins;
72 unsigned int z0_bin = bin/
temp1;
76 unsigned int dzdl_bin = temp2/
temp1;
78 temp2 -= dzdl_bin *
temp1;
80 unsigned int d_bin = temp2/
temp1;
82 temp2 -= d_bin *
temp1;
84 unsigned int phi_bin = temp2/
temp1;
86 temp2 -= phi_bin *
temp1;
87 temp1 /= n_kappa_bins;
88 unsigned int kappa_bin = temp2/
temp1;
115 for (
unsigned int izoom=1; izoom<zoomlevel+1; izoom++){
134 for (
unsigned int i=0;i<5;i++)
136 int sign = 2*((bit_sign>>i)%2)-1;
137 unsigned int bit_var = (var>>i)%2;
138 if (!bit_var || (bins[i]==(nbins[i]-1)&& sign>0) || (bins[i]==0 && sign<0) )
continue;
144 unsigned int _global_neighbor_bin;
145 if (zoomlevel==0) _global_neighbor_bin = _neighbor_bin;
146 else _global_neighbor_bin =
_bin[0];
147 for (
unsigned int izoom=1; izoom<zoomlevel+1; izoom++){
153 if (izoom == zoomlevel){
154 _global_neighbor_bin += _neighbor_bin + ntotalbins * _global_neighbor_bin;
156 _global_neighbor_bin +=
_bin[izoom] + ntotalbins * _global_neighbor_bin;
159 return _global_neighbor_bin;
165 for (
unsigned int i=0; i<zoomlevel+1; i++){
175 for (
unsigned int i=0; i<zoomlevel+1; i++){
185 for (
unsigned int i=0; i<zoomlevel+1; i++){
195 for (
unsigned int i=0; i<zoomlevel+1; i++){
205 for (
unsigned int i=0; i<zoomlevel+1; i++){