CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_6_1_1/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     theOriginTransverseErrorMultiplier(cfg.existsAs<double>("OriginTransverseErrorMultiplier") ? cfg.getParameter<double>("OriginTransverseErrorMultiplier") : 1.0),
00017     theMinOneOverPtError(cfg.existsAs<double>("MinOneOverPtError") ? cfg.getParameter<double>("MinOneOverPtError") : 1.0)
00018       {}
00019 
00020   SeedFromConsecutiveHitsCreator( 
00021       const std::string & propagator = "PropagatorWithMaterial", double seedMomentumForBOFF = -5.0, double aOriginTransverseErrorMultiplier = 1.0, double aMinOneOverPtError = 1.0) 
00022     : thePropagatorLabel(propagator), theBOFFMomentum(seedMomentumForBOFF), 
00023     theOriginTransverseErrorMultiplier(aOriginTransverseErrorMultiplier), theMinOneOverPtError(aMinOneOverPtError) { }
00024 
00025   //dtor
00026   virtual ~SeedFromConsecutiveHitsCreator(){}
00027 
00028   virtual const TrajectorySeed * trajectorySeed(TrajectorySeedCollection & seedCollection,
00029                                                 const SeedingHitSet & ordered,
00030                                                 const TrackingRegion & region,
00031                                                 const edm::EventSetup& es,
00032                                                 const SeedComparitor *filter);
00033 protected:
00034 
00035   virtual bool checkHit(
00036       const TrajectoryStateOnSurface &tsos,
00037       const TransientTrackingRecHit::ConstRecHitPointer &hit,
00038       const edm::EventSetup& es,
00039       const SeedComparitor *filter) const; 
00040 
00041   virtual GlobalTrajectoryParameters initialKinematic(
00042       const SeedingHitSet & hits, 
00043       const TrackingRegion & region, 
00044       const edm::EventSetup& es,
00045       const SeedComparitor *filter,
00046       bool                 &passesFilter) const;
00047 
00048   virtual CurvilinearTrajectoryError initialError(
00049       const TrackingRegion& region, 
00050       float sinTheta) const;
00051 
00052   virtual const TrajectorySeed * buildSeed(
00053       TrajectorySeedCollection & seedCollection,
00054         const SeedingHitSet & hits,
00055         const FreeTrajectoryState & fts,
00056         const edm::EventSetup& es,
00057         const SeedComparitor *filter) const;
00058 
00059   virtual TransientTrackingRecHit::RecHitPointer refitHit(
00060       const TransientTrackingRecHit::ConstRecHitPointer &hit, 
00061       const TrajectoryStateOnSurface &state) const;
00062 
00063 protected:
00064     std::string thePropagatorLabel;
00065     double theBOFFMomentum;
00066     double theOriginTransverseErrorMultiplier;
00067     double theMinOneOverPtError;
00068 
00069 };
00070 #endif