Reimplemented from FWProxyBuilderBase.
Definition at line 41 of file FWSiPixelClusterProxyBuilder.cc.
References edmNew::DetSet< T >::begin(), edmNew::DetSetVector< T >::begin(), FWGeometry::contains(), edmNew::DetSetVector< T >::end(), edmNew::DetSet< T >::end(), fwLog, relativeConstraints::geom, FWEventItem::get(), FWEventItem::getGeom(), FWGeometry::getParameters(), fwlog::kWarning, FWGeometry::localToGlobal(), fireworks::pixelLocalX(), fireworks::pixelLocalY(), and FWProxyBuilderBase::setupAddElement().
{
const SiPixelClusterCollectionNew* pixels = 0;
iItem->get( pixels );
if( ! pixels )
{
fwLog( fwlog::kWarning ) << "failed get SiPixelDigis" << std::endl;
return;
}
for( SiPixelClusterCollectionNew::const_iterator set = pixels->begin(), setEnd = pixels->end();
set != setEnd; ++set )
{
unsigned int id = set->detId();
const FWGeometry *geom = iItem->getGeom();
const float* pars = geom->getParameters( id );
const edmNew::DetSet<SiPixelCluster> & clusters = *set;
for( edmNew::DetSet<SiPixelCluster>::const_iterator itc = clusters.begin(), edc = clusters.end();
itc != edc; ++itc )
{
TEvePointSet* pointSet = new TEvePointSet;
setupAddElement( pointSet, product );
if( ! geom->contains( id ))
{
fwLog( fwlog::kWarning )
<< "failed get geometry of SiPixelCluster with detid: "
<< id << std::endl;
continue;
}
float localPoint[3] =
{
fireworks::pixelLocalX(( *itc ).minPixelRow(), ( int )pars[0] ),
fireworks::pixelLocalY(( *itc ).minPixelCol(), ( int )pars[1] ),
0.0
};
float globalPoint[3];
geom->localToGlobal( id, localPoint, globalPoint );
pointSet->SetNextPoint( globalPoint[0], globalPoint[1], globalPoint[2] );
}
}
}