74 if(
m_cells.empty())
return true;
75 t_cellmap::iterator ic=
m_cells.begin();
78 if(cell->getSampling()!=sampling)
return false;
79 if(cell->eta_raw()*refcell->
eta_raw()<0)
return false;
81 if(TMath::Abs(cell->deta()-refcell->
deta())>0.001)
return false;
82 if(TMath::Abs(cell->dphi()-refcell->
dphi())>0.001)
return false;
84 if( cell->eta()<
mineta()-2.1*cell->deta() )
return false;
85 if( cell->eta()>
maxeta()+2.1*cell->deta() )
return false;
87 double delta_eta=(cell->eta_raw()-refcell->
eta_raw())/cell->deta();
88 double delta_phi=(cell->phi_raw()-refcell->
phi_raw())/cell->dphi();
89 if(TMath::Abs(delta_eta-TMath::Nint(delta_eta)) > 0.01)
return false;
90 if(TMath::Abs(delta_phi-TMath::Nint(delta_phi)) > 0.01)
return false;
124 if(cell->getSampling()<21) {
169 m_cells[cell->identify()]=cell;
262 if(!distance) distance=&dist;
265 if(!steps) steps=&intsteps;
270 float raw_eta=
eta+best_eta_corr;
271 float raw_phi=
phi+best_phi_corr;
278 float bestdist=+10000000;
281 while(newDDE && nsearch<3) {
282 float dist_eta0,dist_phi0;
288 cout<<
"CaloGeometryLookup::getDDE, search iteration "<<nsearch<<endl;
290 cout<<
" input sampling="<<newDDE->
getSampling()<<
" eta="<<newDDE->
eta()<<
" eta_raw="<<newDDE->
eta_raw()<<
" deta="<<newDDE->
deta()<<
" ("<<(newDDE->
eta_raw()-newDDE->
eta())/newDDE->
deta()<<
") phi="<<newDDE->
phi()<<
" phi_raw="<<newDDE->
phi_raw()<<
" dphi="<<newDDE->
dphi()<<
" ("<<(newDDE->
phi_raw()-newDDE->
phi())/newDDE->
dphi()<<
")"<<endl;
291 cout<<
" ieta="<<ieta<<
" iphi="<<iphi<<endl;
292 cout<<
" dist_eta0="<<dist_eta0<<
" ,dist_phi0="<<dist_phi0<<endl;
295 if(*distance<0)
return newDDE;
297 ieta+=TMath::Nint(dist_eta0);
298 iphi+=TMath::Nint(dist_phi0);
304 if(oldDDE==newDDE)
break;
307 cout<<
"CaloGeometryLookup::getDDE, direct search ieta="<<ieta<<
" iphi="<<iphi<<
" is empty"<<endl;
313 if(minieta<0) minieta=0;
315 for(
int iieta=minieta;iieta<=maxieta;++iieta) {
316 for(
int iiphi=miniphi;iiphi<=maxiphi;++iiphi) {
323 float dist_eta0,dist_phi0;
328 cout<<
"cell id="<<newDDE->
identify()<<
" steps "<<*steps<<
" steps, eta="<<
eta<<
" phi="<<
phi<<
" dist="<<*distance<<endl;
329 cout<<
" input sampling="<<newDDE->
getSampling()<<
" eta="<<newDDE->
eta()<<
" eta_raw="<<newDDE->
eta_raw()<<
" deta="<<newDDE->
deta()<<
" ("<<(newDDE->
eta_raw()-newDDE->
eta())/newDDE->
deta()<<
") phi="<<newDDE->
phi()<<
" phi_raw="<<newDDE->
phi_raw()<<
" dphi="<<newDDE->
dphi()<<
" ("<<(newDDE->
phi_raw()-newDDE->
phi())/newDDE->
dphi()<<
")"<<endl;
330 cout<<
" ieta="<<ieta<<
" iphi="<<iphi<<endl;
331 cout<<
" dist_eta0="<<dist_eta0<<
" ,dist_phi0="<<dist_phi0<<endl;
334 if(*distance<0)
return newDDE;
335 if(*distance<bestdist) {
340 cout<<
"CaloGeometryLookup::getDDE, windows search ieta="<<ieta<<
" iphi="<<iphi<<
" is empty"<<endl;