CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_4_1_8_patch9/src/TrackingTools/DetLayers/src/GeometricSearchDet.cc

Go to the documentation of this file.
00001 #include "TrackingTools/DetLayers/interface/GeometricSearchDet.h"
00002 #include "TrackingTools/TrajectoryState/interface/TrajectoryStateOnSurface.h" 
00003 
00004 #include "FWCore/MessageLogger/interface/MessageLogger.h"
00005 
00006 
00007  void
00008  GeometricSearchDet::compatibleDetsV( const TrajectoryStateOnSurface&,
00009                                       const Propagator&, 
00010                                       const MeasurementEstimator&,
00011                                       std::vector<DetWithState>&) const {
00012    edm::LogError("DetLayers") << "At the moment not a real implementation" ;
00013  }
00014 
00015 void
00016 GeometricSearchDet::groupedCompatibleDetsV( const TrajectoryStateOnSurface& startingState,
00017                                             const Propagator&,
00018                                             const MeasurementEstimator&,
00019                                             std::vector<DetGroup> &) const {
00020    edm::LogError("DetLayers") << "At the moment not a real implementation" ;
00021 }
00022 
00023 
00024 std::vector<GeometricSearchDet::DetWithState> 
00025 GeometricSearchDet::compatibleDets( const TrajectoryStateOnSurface& startingState,
00026                                     const Propagator& prop, 
00027                                     const MeasurementEstimator& est) const {
00028   std::vector<DetWithState> result;
00029   compatibleDetsV( startingState, prop, est,result);
00030   return result;
00031 }
00032 
00033 std::vector<DetGroup> 
00034 GeometricSearchDet::groupedCompatibleDets( const TrajectoryStateOnSurface& startingState,
00035                                            const Propagator& prop,
00036                                            const MeasurementEstimator& est) const {
00037   std::vector<DetGroup> result;
00038   groupedCompatibleDetsV(startingState, prop, est,result);
00039   return result;
00040 }
00041 
00042 
00043 
00044 
00045 void
00046 GeometricSearchDetWithGroups::compatibleDetsV( const TrajectoryStateOnSurface& startingState,
00047                                                const Propagator& prop, 
00048                                                const MeasurementEstimator& est,
00049                                                std::vector<DetWithState> &result) const{
00050   
00051   // standard implementation of compatibleDets() for class which have 
00052   // groupedCompatibleDets implemented.
00053   
00054   std::vector<DetGroup> vectorGroups;
00055   groupedCompatibleDetsV(startingState,prop,est,vectorGroups);
00056   for(std::vector<DetGroup>::const_iterator itDG=vectorGroups.begin();
00057       itDG!=vectorGroups.end();itDG++){
00058     for(std::vector<DetGroupElement>::const_iterator itDGE=itDG->begin();
00059         itDGE!=itDG->end();itDGE++){
00060       result.push_back(DetWithState(itDGE->det(),itDGE->trajectoryState()));
00061     }
00062   }
00063 }
00064