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
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