CMS 3D CMS Logo

Public Member Functions | Protected Member Functions | Private Member Functions

FWSiStripClusterProxyBuilder Class Reference

Inheritance diagram for FWSiStripClusterProxyBuilder:
FWSimpleProxyBuilderTemplate< SiStripCluster > FWSimpleProxyBuilder FWProxyBuilderBase

List of all members.

Public Member Functions

 FWSiStripClusterProxyBuilder (void)
 REGISTER_PROXYBUILDER_METHODS ()
virtual ~FWSiStripClusterProxyBuilder (void)

Protected Member Functions

virtual void build (const SiStripCluster &iData, unsigned int iIndex, TEveElement &oItemHolder, const FWViewContext *)
virtual void localModelChanges (const FWModelId &iId, TEveElement *iCompound, FWViewType::EType viewType, const FWViewContext *vc)

Private Member Functions

 FWSiStripClusterProxyBuilder (const FWSiStripClusterProxyBuilder &)
const
FWSiStripClusterProxyBuilder
operator= (const FWSiStripClusterProxyBuilder &)

Detailed Description

Definition at line 16 of file FWSiStripClusterProxyBuilder.cc.


Constructor & Destructor Documentation

FWSiStripClusterProxyBuilder::FWSiStripClusterProxyBuilder ( void  ) [inline]

Definition at line 19 of file FWSiStripClusterProxyBuilder.cc.

{}
virtual FWSiStripClusterProxyBuilder::~FWSiStripClusterProxyBuilder ( void  ) [inline, virtual]

Definition at line 20 of file FWSiStripClusterProxyBuilder.cc.

{}
FWSiStripClusterProxyBuilder::FWSiStripClusterProxyBuilder ( const FWSiStripClusterProxyBuilder ) [private]

Member Function Documentation

void FWSiStripClusterProxyBuilder::build ( const SiStripCluster iData,
unsigned int  iIndex,
TEveElement &  oItemHolder,
const FWViewContext  
) [protected, virtual]

iIndex is the index where iData is found in the container from which it came iItemHolder is the object to which you add your own objects which inherit from TEveElement

Reimplemented from FWSimpleProxyBuilderTemplate< SiStripCluster >.

Definition at line 36 of file FWSiStripClusterProxyBuilder.cc.

References FWGeometry::contains(), SiStripCluster::firstStrip(), fwLog, SiStripCluster::geographicalId(), relativeConstraints::geom, FWGeometry::getEveShape(), FWEventItem::getGeom(), FWGeometry::getParameters(), FWProxyBuilderBase::increaseComponentTransparency(), FWProxyBuilderBase::item(), fwlog::kError, fwlog::kWarning, fireworks::localSiStrip(), FWGeometry::localToGlobal(), and FWProxyBuilderBase::setupAddElement().

{
  unsigned int rawid = iData.geographicalId();
  const FWGeometry *geom = item()->getGeom();
 
  TEveGeoShape* shape = geom->getEveShape( rawid );
  
  if( shape ) 
  {
    shape->SetElementName( "Det" );
    setupAddElement( shape, &oItemHolder );
  }
  else
  {
    fwLog( fwlog::kWarning ) 
      << "failed to get shape of SiStripCluster with detid: "
      << rawid << std::endl;
  }
  increaseComponentTransparency( iIndex, &oItemHolder, "Det", 60 );
  
  TEveStraightLineSet *lineSet = new TEveStraightLineSet( "strip" );
  setupAddElement( lineSet, &oItemHolder );

  if( ! geom->contains( rawid ))
  {
    fwLog( fwlog::kError )
      << "failed to geometry of SiStripCluster with detid: " 
      << rawid << std::endl;

      return;
  }

  float localTop[3] = { 0.0, 0.0, 0.0 };
  float localBottom[3] = { 0.0, 0.0, 0.0 };

  fireworks::localSiStrip( iData.firstStrip(), localTop, localBottom, geom->getParameters( rawid ), rawid );

  float globalTop[3];
  float globalBottom[3];
  geom->localToGlobal( rawid, localTop, globalTop, localBottom, globalBottom );
  
  lineSet->AddLine( globalTop[0], globalTop[1], globalTop[2],
                    globalBottom[0], globalBottom[1], globalBottom[2] );  
}
void FWSiStripClusterProxyBuilder::localModelChanges ( const FWModelId iId,
TEveElement *  iCompound,
FWViewType::EType  viewType,
const FWViewContext vc 
) [protected, virtual]

Reimplemented from FWProxyBuilderBase.

Definition at line 83 of file FWSiStripClusterProxyBuilder.cc.

References FWProxyBuilderBase::increaseComponentTransparency(), and FWModelId::index().

{
  increaseComponentTransparency( iId.index(), iCompound, "Det", 60 );
}
const FWSiStripClusterProxyBuilder& FWSiStripClusterProxyBuilder::operator= ( const FWSiStripClusterProxyBuilder ) [private]
FWSiStripClusterProxyBuilder::REGISTER_PROXYBUILDER_METHODS ( )