CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
SeedFromConsecutiveHitsStraightLineCreator.cc
Go to the documentation of this file.
2 
9 
10 
12  const SeedingHitSet & hits,
13  const TrackingRegion & region,
14  const edm::EventSetup& es,
15  const SeedComparitor *filter,
16  bool &passesFilter) const
17 {
19 
20  const TransientTrackingRecHit::ConstRecHitPointer& tth1 = hits[0];
21  const TransientTrackingRecHit::ConstRecHitPointer& tth2 = hits[1];
22 
23  const GlobalPoint& vertexPos = region.origin();
25  es.get<IdealMagneticFieldRecord>().get(bfield);
26 
27  // Assume initial state is straight line passing through beam spot
28  // with direction given by innermost two seed hits (with big uncertainty)
29  GlobalVector initMomentum(tth2->globalPosition() - tth1->globalPosition());
30  double rescale = 1000./initMomentum.perp();
31  initMomentum *= rescale; // set to approximately infinite momentum
32  TrackCharge q = 1; // irrelevant, since infinite momentum
33  kine = GlobalTrajectoryParameters(vertexPos, initMomentum, q, &*bfield);
34 
35  passesFilter = (filter ? filter->compatible(hits, kine, region) : true);
36  return kine;
37 }
38 
T perp() const
Definition: PV3DBase.h:71
virtual GlobalPoint origin() const =0
virtual bool compatible(const SeedingHitSet &hits, const TrackingRegion &region) const =0
int TrackCharge
Definition: TrackCharge.h:4
const T & get() const
Definition: EventSetup.h:55
virtual GlobalTrajectoryParameters initialKinematic(const SeedingHitSet &hits, const TrackingRegion &region, const edm::EventSetup &es, const SeedComparitor *filter, bool &passesFilter) const