15 HelixHough::HelixHough(
unsigned int n_phi,
unsigned int n_d,
unsigned int n_k,
unsigned int n_dzdl,
unsigned int n_z0,
HelixResolution& min_resolution,
HelixResolution& max_resolution,
HelixRange& range) : remove_hits(
false), vote_time(0.), xy_vote_time(0.), z_vote_time(0.), print_timings(
false), separate_by_helicity(
true), helicity(
false), only_one_helicity(
false), check_layers(
false), req_layers(0), bin_scale(1.), z_bin_scale(1.), start_zoom(0), max_hits_pairs(0), cluster_start_bin(2), layers_at_a_time(4), n_layers(6), smooth_back(
false), cull_input_hits(
false), iterate_clustering(
false)
17 initHelixHough(n_phi, n_d, n_k, n_dzdl, n_z0, min_resolution, max_resolution, range);
22 HelixHough::HelixHough(
vector<vector<unsigned int> >& zoom_profile,
unsigned int minzoom,
HelixRange& range) : remove_hits(
false), vote_time(0.), xy_vote_time(0.), z_vote_time(0.), print_timings(
false), separate_by_helicity(
true), helicity(
false), only_one_helicity(
false), check_layers(
false), req_layers(0), bin_scale(1.), z_bin_scale(1.), start_zoom(0), max_hits_pairs(0), cluster_start_bin(2), layers_at_a_time(4), n_layers(6), layer_start(-1), layer_end(-1), smooth_back(
false), cull_input_hits(
false), iterate_clustering(
false)
26 for(
unsigned int i=0;i<
pairs_vec.size();i++)
47 for(
unsigned int i=0;i<=(
max_zoom);++i)
49 unsigned int phibins=zoom_profile[i][0];
50 unsigned int dbins=zoom_profile[i][1];
51 unsigned int kbins=zoom_profile[i][2];
52 unsigned int dzdlbins=zoom_profile[i][3];
53 unsigned int z0bins=zoom_profile[i][4];
61 hits_vec.push_back(
new vector<SimpleHit3D>);
63 bins_vec.push_back(
new vector<BinEntryPair5D>);
64 seeds_vec.push_back(
new vector<SimpleTrack3D>);
90 unsigned int zoom_level = 0;
97 bool min_zoom_set=
false;
99 unsigned int nzoom_k=0;
100 unsigned int nzoom_d=0;
101 unsigned int nzoom_phi=0;
102 unsigned int nzoom_dzdl=0;
103 unsigned int nzoom_z0=0;
109 if(k_res<=max_resolution.
k_res && phi_res<=max_resolution.
phi_res && d_res<=max_resolution.
d_res && z0_res<=max_resolution.
z0_res && dzdl_res<=max_resolution.
dzdl_res)
116 unsigned int kbins=1;
118 unsigned int dbins=1;
119 unsigned int z0bins=1;
120 unsigned int dzdlbins=1;
121 if(k_res>max_resolution.
k_res)
124 kbins = (
unsigned int)(ceil(k_res/max_resolution.
k_res));
125 if(kbins > n_k){kbins = n_k;}
126 k_res/=((float)kbins);
128 if(phi_res>max_resolution.
phi_res)
131 phibins = (
unsigned int)(ceil(phi_res/max_resolution.
phi_res));
132 if(phibins > n_phi){phibins = n_phi;}
133 phi_res/=((float)phibins);
135 if(d_res>max_resolution.
d_res)
138 dbins = (
unsigned int)(ceil(d_res/max_resolution.
d_res));
139 if(dbins > n_d){dbins = n_d;}
140 d_res/=((float)dbins);
142 if(z0_res>max_resolution.
z0_res)
145 z0bins = (
unsigned int)(ceil(z0_res/max_resolution.
z0_res));
146 if(z0bins > n_z0){z0bins = n_z0;}
147 z0_res/=((float)z0bins);
149 if(dzdl_res>max_resolution.
dzdl_res)
152 dzdlbins = (
unsigned int)(ceil(dzdl_res/max_resolution.
dzdl_res));
153 if(dzdlbins > n_dzdl){dzdlbins = n_dzdl;}
154 dzdl_res/=((float)dzdlbins);
164 for(
unsigned int zoom=0;zoom<
max_zoom;++zoom)
166 if(k_res<=min_resolution.
k_res && phi_res<=min_resolution.
phi_res && d_res<=min_resolution.
d_res && z0_res<=min_resolution.
z0_res && dzdl_res<=min_resolution.
dzdl_res && min_zoom_set==
false)
172 unsigned int kbins=1;
174 unsigned int dbins=1;
175 unsigned int z0bins=1;
176 unsigned int dzdlbins=1;
177 if((k_res>max_resolution.
k_res) && ( (max_zoom - zoom) <= nzoom_k ))
179 kbins = (
unsigned int)(ceil(k_res/max_resolution.
k_res));
180 if( kbins > n_k ){kbins = n_k;}
181 k_res/=((float)kbins);
183 if((phi_res>max_resolution.
phi_res) && ( (max_zoom - zoom) <= nzoom_phi ))
185 phibins = (
unsigned int)(ceil(phi_res/max_resolution.
phi_res));
186 if( phibins > n_phi ){phibins = n_phi;}
187 phi_res/=((float)phibins);
189 if((d_res>max_resolution.
d_res) && ( (max_zoom - zoom) <= nzoom_d ))
191 dbins = (
unsigned int)(ceil(d_res/max_resolution.
d_res));
192 if( dbins > n_d ){dbins = n_d;}
193 d_res/=((float)dbins);
195 if((z0_res>max_resolution.
z0_res) && ( (max_zoom - zoom) <= nzoom_z0 ))
197 z0bins = (
unsigned int)(ceil(z0_res/max_resolution.
z0_res));
198 if( z0bins > n_z0 ){z0bins = n_z0;}
199 z0_res/=((float)z0bins);
201 if((dzdl_res>max_resolution.
dzdl_res) && ( (max_zoom - zoom) <= nzoom_dzdl ))
203 dzdlbins = (
unsigned int)(ceil(dzdl_res/max_resolution.
dzdl_res));
204 if( dzdlbins > n_dzdl ){dzdlbins = n_dzdl;}
205 dzdl_res/=((float)dzdlbins);
213 hits_vec.push_back(
new vector<SimpleHit3D>);
215 bins_vec.push_back(
new vector<BinEntryPair5D>);
216 seeds_vec.push_back(
new vector<SimpleTrack3D>);
222 cout<<
"min_zoom = "<<
min_zoom<<endl;