![]() |
![]() |
#include <RecoTracker/TkDetLayers/interface/ForwardDiskSectorBuilderFromDet.h>
Public Member Functions | |
std::pair< DiskSectorBounds, GlobalVector > | computeBounds (const std::vector< const GeomDet * > &dets) const |
BoundDiskSector * | 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>. | |
Private Member Functions | |
Surface::RotationType | computeRotation (const std::vector< const GeomDet * > &dets, Surface::PositionType pos) const |
std::vector< GlobalPoint > | computeTrapezoidalCorners (const GeomDet *detu) const |
The disk sector has the minimal size fully containing all Dets.
Definition at line 17 of file ForwardDiskSectorBuilderFromDet.h.
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>.