CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_6_1_2_SLHC2/src/SLHCUpgradeSimulations/L1TrackTrigger/interface/TrackingAlgorithm.h

Go to the documentation of this file.
00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 #ifndef TRACKING_ALGO_BASE_H
00010 #define TRACKING_ALGO_BASE_H
00011 
00012 #include <sstream>
00013 #include <map>
00014 #include <string>
00015 #include "classNameFinder.h"
00016 
00017 #include "SimDataFormats/SLHC/interface/L1TkTrack.h"
00018 #include "Geometry/TrackerGeometryBuilder/interface/StackedTrackerGeometry.h"
00019 #include "FWCore/MessageLogger/interface/MessageLogger.h"
00020 
00021 #include "Geometry/CommonDetUnit/interface/GeomDetUnit.h"
00022 
00023 //#include "FastSimulation/BaseParticlePropagator/interface/BaseParticlePropagator.h"
00024 
00025 
00032   template< typename T >
00033   class TrackingAlgorithm
00034   {
00035     protected:
00037       const StackedTrackerGeometry *theStackedTracker;
00038       std::string className_;
00039     public:
00041       TrackingAlgorithm( const StackedTrackerGeometry *aStackedGeom, std::string fName )
00042         : theStackedTracker( aStackedGeom ) {
00043         className_=classNameFinder<T>(fName);
00044       }
00045 
00047       virtual ~TrackingAlgorithm() {}
00048 
00050       virtual void CreateSeeds( std::vector< L1TkTrack< T > > &output, edm::Handle< std::vector< L1TkStub< T > > > &input ) const
00051       {
00052         output.clear();
00053       }
00054 
00056       void AttachStubToSeed( L1TkTrack< T > &seed, edm::Ptr< L1TkStub< T > > &candidate ) const
00057       {
00058         seed.addStubPtr( candidate );
00059       }
00060 
00061 /*
00062       virtual std::vector< L1TkTrack< T > > PropagateSeed( edm::Ptr< L1TkTracklet< T > > aSeed,
00063                                                                         std::vector< edm::Ptr< L1TkStub< T > > > aBricks ) const {
00064         std::vector< L1TkTrack< T > > emptyVector;
00065         emptyVector.clear();
00066         return emptyVector;
00067       }
00068 */
00069 
00071 //      std::pair< double, PSimHit > MakeHit( const GeomDetUnit* dU, BaseParticlePropagator* tP, double curv ) const;
00072       
00074       virtual std::string AlgorithmName() const { return className_; }
00075 
00076   }; 
00077 
00078 
00079 
00080 #endif
00081