CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
SeedFromConsecutiveHitsCreator.h
Go to the documentation of this file.
1 #ifndef RecoTracker_TkSeedGenerator_SeedFromConsecutiveHitsCreator_H
2 #define RecoTracker_TkSeedGenerator_SeedFromConsecutiveHitsCreator_H
3 
12 
14 
17 
18 
20 
22 public:
23 
25  : thePropagatorLabel (cfg.getParameter<std::string>("propagator"))
26  , theBOFFMomentum (cfg.existsAs<double>("SeedMomentumForBOFF") ? cfg.getParameter<double>("SeedMomentumForBOFF") : 5.0)
27  , theOriginTransverseErrorMultiplier(cfg.existsAs<double>("OriginTransverseErrorMultiplier") ? cfg.getParameter<double>("OriginTransverseErrorMultiplier") : 1.0)
28  , theMinOneOverPtError (cfg.existsAs<double>("MinOneOverPtError") ? cfg.getParameter<double>("MinOneOverPtError") : 1.0)
29  , TTRHBuilder (cfg.existsAs<std::string>("TTRHBuilder") ? cfg.getParameter<std::string>("TTRHBuilder") : std::string("WithTrackAngle"))
30  // 2014/02/11 mia:
31  // we should get rid of the boolean parameter useSimpleMF,
32  // and use only a string magneticField [instead of SimpleMagneticField]
33  // or better an edm::ESInputTag (at the moment HLT does not handle ESInputTag)
34  , useSimpleMF_(false)
35  , mfName_("")
36  , forceKinematicWithRegionDirection_(cfg.existsAs<bool>("forceKinematicWithRegionDirection") ? cfg.getParameter<bool>("forceKinematicWithRegionDirection") : false)
37  {
38  if (cfg.exists("SimpleMagneticField")) {
39  useSimpleMF_ = true;
40  mfName_ = cfg.getParameter<std::string>("SimpleMagneticField");
41  }
42  }
43 
45  const std::string & propagator = "PropagatorWithMaterial", double seedMomentumForBOFF = -5.0,
46  double aOriginTransverseErrorMultiplier = 1.0, double aMinOneOverPtError = 1.0, const std::string & bname="WithTrackAngle")
47  : thePropagatorLabel(propagator)
48  , theBOFFMomentum(seedMomentumForBOFF)
49  , theOriginTransverseErrorMultiplier(aOriginTransverseErrorMultiplier)
50  , theMinOneOverPtError(aMinOneOverPtError)
51  , TTRHBuilder(bname)
52  , useSimpleMF_(false)
53  , forceKinematicWithRegionDirection_(false)
54  { }
55 
56  //dtor
58 
59  // initialize the "event dependent state"
60  virtual void init(const TrackingRegion & region,
61  const edm::EventSetup& es,
63 
64  // make job
65  // fill seedCollection with the "TrajectorySeed"
66  virtual void makeSeed(TrajectorySeedCollection & seedCollection,
67  const SeedingHitSet & hits) GCC11_FINAL;
68 
69 
70 private:
71 
72  virtual bool initialKinematic(GlobalTrajectoryParameters & kine,
73  const SeedingHitSet & hits) const;
74 
75 
76  bool checkHit(
77  const TrajectoryStateOnSurface &tsos,
79 
80 
81  CurvilinearTrajectoryError initialError(float sin2Theta) const dso_hidden;
82 
83  void buildSeed(TrajectorySeedCollection & seedCollection,
84  const SeedingHitSet & hits,
85  const FreeTrajectoryState & fts) const dso_hidden;
86 
89  const TrajectoryStateOnSurface & state) const dso_hidden;
90 
91 protected:
92 
97 
98  const TrackingRegion * region = nullptr;
99  const SeedComparitor *filter = nullptr;
103  float nomField;
104  bool isBOFF = false;
109 
111 
112 
113 };
114 #endif
virtual void init(const TrackingRegion &region, const edm::EventSetup &es, const SeedComparitor *filter)=0
T getParameter(std::string const &) const
#define dso_hidden
#define GCC11_FINAL
tuple cfg
Definition: looper.py:237
virtual void makeSeed(TrajectorySeedCollection &seedCollection, const SeedingHitSet &hits)=0
edm::ESHandle< Propagator > propagatorHandle
bool exists(std::string const &parameterName) const
checks if a parameter exists
SeedFromConsecutiveHitsCreator(const std::string &propagator="PropagatorWithMaterial", double seedMomentumForBOFF=-5.0, double aOriginTransverseErrorMultiplier=1.0, double aMinOneOverPtError=1.0, const std::string &bname="WithTrackAngle")
BaseTrackerRecHit const * ConstRecHitPointer
Definition: SeedingHitSet.h:11
std::vector< TrajectorySeed > TrajectorySeedCollection
SeedFromConsecutiveHitsCreator(const edm::ParameterSet &cfg)
edm::ESHandle< TrackerGeometry > tracker
volatile std::atomic< bool > shutdown_flag false