CMS 3D CMS Logo

ForwardDiskSectorBuilderFromDet Class Reference

As it's name indicates, it's a builder of a BoundDiskSector from a collection of Dets. More...

#include <RecoTracker/TkDetLayers/interface/ForwardDiskSectorBuilderFromDet.h>

List of all members.

Public Member Functions

std::pair< DiskSectorBounds,
GlobalVector
computeBounds (const std::vector< const GeomDet * > &dets) const
BoundDiskSectoroperator() (const std::vector< const GeomDet * > &dets) const
 Warning, remember to assign this pointer to a ReferenceCountingPointer! Should be changed to return a ReferenceCountingPointer<BoundDisk>.

Private Member Functions

Surface::RotationType computeRotation (const std::vector< const GeomDet * > &dets, Surface::PositionType pos) const
std::vector< GlobalPointcomputeTrapezoidalCorners (const GeomDet *detu) const


Detailed Description

As it's name indicates, it's a builder of a BoundDiskSector from a collection of Dets.

The disk sector has the minimal size fully containing all Dets.

Definition at line 17 of file ForwardDiskSectorBuilderFromDet.h.


Member Function Documentation

std::pair<DiskSectorBounds, GlobalVector> ForwardDiskSectorBuilderFromDet::computeBounds ( const std::vector< const GeomDet * > &  dets  )  const

Surface::RotationType ForwardDiskSectorBuilderFromDet::computeRotation ( const std::vector< const GeomDet * > &  dets,
Surface::PositionType  pos 
) const [private]

vector< GlobalPoint > ForwardDiskSectorBuilderFromDet::computeTrapezoidalCorners ( const GeomDet detu  )  const [private]

Definition at line 165 of file ForwardDiskSectorBuilderFromDet.cc.

References i, python::trackProbabilityAnalysis_cff::parameters, and GeomDet::specificSurface().

00165                                                                                     {
00166 
00167 
00168   const BoundPlane& plane( det->specificSurface());
00169   
00170   const TrapezoidalPlaneBounds* myBounds( static_cast<const TrapezoidalPlaneBounds*>(&(plane.bounds())));
00171   
00172   /*
00173   if (myBounds == 0) {
00174     string errmsg="ForwardDiskSectorBuilderFromDet: problems with dynamic cast to trapezoidal bounds for DetUnits";
00175     throw DetLayerException(errmsg);
00176     edm::LogError("TkDetLayers") << errmsg ;
00177   }
00178   */
00179 
00180   vector<float> parameters = (*myBounds).parameters();
00181 
00182   if ( parameters[0] == 0 ) {
00183     edm::LogError("TkDetLayers") << "ForwardDiskSectorBuilder: something weird going on !" ;
00184     edm::LogError("TkDetLayers") << " Trapezoidal parameters of GeomDet (L2/L1/T/H): " ;
00185     for (int i = 0; i < 4; i++ )     edm::LogError("TkDetLayers") << "  " 
00186                                                                   << 2.*parameters[i] 
00187                                                                   << "\n";  
00188   }
00189 
00190 
00191   float hbotedge = parameters[0];
00192   float htopedge = parameters[1];
00193   float hapothem = parameters[3];
00194   float hthick   = parameters[2];
00195 
00196   vector<GlobalPoint> corners;
00197 
00198   corners.push_back( plane.toGlobal( LocalPoint( -htopedge, hapothem, hthick)));
00199   corners.push_back( plane.toGlobal( LocalPoint( -htopedge, hapothem, -hthick)));
00200   corners.push_back( plane.toGlobal( LocalPoint(  htopedge, hapothem, hthick)));
00201   corners.push_back( plane.toGlobal( LocalPoint(  htopedge, hapothem, -hthick)));
00202   corners.push_back( plane.toGlobal( LocalPoint(  hbotedge, -hapothem, hthick)));
00203   corners.push_back( plane.toGlobal( LocalPoint(  hbotedge, -hapothem, -hthick)));
00204   corners.push_back( plane.toGlobal( LocalPoint( -hbotedge, -hapothem, hthick)));
00205   corners.push_back( plane.toGlobal( LocalPoint( -hbotedge, -hapothem, -hthick)));
00206 
00207   return corners;
00208 }

BoundDiskSector* ForwardDiskSectorBuilderFromDet::operator() ( const std::vector< const GeomDet * > &  dets  )  const

Warning, remember to assign this pointer to a ReferenceCountingPointer! Should be changed to return a ReferenceCountingPointer<BoundDisk>.


The documentation for this class was generated from the following files:
Generated on Tue Jun 9 18:21:00 2009 for CMSSW by  doxygen 1.5.4