CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_5_3_3/src/RecoTracker/TkSeedGenerator/plugins/SeedFromConsecutiveHitsCreator.h

Go to the documentation of this file.
00001 #ifndef RecoTracker_TkSeedGenerator_SeedFromConsecutiveHitsCreator_H
00002 #define RecoTracker_TkSeedGenerator_SeedFromConsecutiveHitsCreator_H
00003 
00004 #include "RecoTracker/TkSeedGenerator/interface/SeedCreator.h"
00005 #include "RecoTracker/TkSeedingLayers/interface/SeedingHitSet.h"
00006 #include "RecoTracker/TkSeedingLayers/interface/SeedComparitor.h"
00007 
00008 class FreeTrajectoryState;
00009 
00010 class SeedFromConsecutiveHitsCreator : public SeedCreator {
00011 public:
00012 
00013   SeedFromConsecutiveHitsCreator( const edm::ParameterSet & cfg):
00014     thePropagatorLabel(cfg.getParameter<std::string>("propagator")),
00015     theBOFFMomentum(cfg.existsAs<double>("SeedMomentumForBOFF") ? cfg.getParameter<double>("SeedMomentumForBOFF") : 5.0)
00016       {}
00017 
00018   SeedFromConsecutiveHitsCreator( 
00019       const std::string & propagator = "PropagatorWithMaterial", double seedMomentumForBOFF = -5.0) 
00020    : thePropagatorLabel(propagator), theBOFFMomentum(seedMomentumForBOFF) { }
00021 
00022   //dtor
00023   virtual ~SeedFromConsecutiveHitsCreator(){}
00024 
00025   virtual const TrajectorySeed * trajectorySeed(TrajectorySeedCollection & seedCollection,
00026                                                 const SeedingHitSet & ordered,
00027                                                 const TrackingRegion & region,
00028                                                 const edm::EventSetup& es,
00029                                                 const SeedComparitor *filter);
00030 protected:
00031 
00032   virtual bool checkHit(
00033       const TrajectoryStateOnSurface &tsos,
00034       const TransientTrackingRecHit::ConstRecHitPointer &hit,
00035       const edm::EventSetup& es,
00036       const SeedComparitor *filter) const; 
00037 
00038   virtual GlobalTrajectoryParameters initialKinematic(
00039       const SeedingHitSet & hits, 
00040       const TrackingRegion & region, 
00041       const edm::EventSetup& es,
00042       const SeedComparitor *filter,
00043       bool                 &passesFilter) const;
00044 
00045   virtual CurvilinearTrajectoryError initialError(
00046       const TrackingRegion& region, 
00047       float sinTheta) const;
00048 
00049   virtual const TrajectorySeed * buildSeed(
00050       TrajectorySeedCollection & seedCollection,
00051         const SeedingHitSet & hits,
00052         const FreeTrajectoryState & fts,
00053         const edm::EventSetup& es,
00054         const SeedComparitor *filter) const;
00055 
00056   virtual TransientTrackingRecHit::RecHitPointer refitHit(
00057       const TransientTrackingRecHit::ConstRecHitPointer &hit, 
00058       const TrajectoryStateOnSurface &state) const;
00059 
00060 protected:
00061     std::string thePropagatorLabel;
00062     double theBOFFMomentum;
00063 
00064 };
00065 #endif