19 template <
class T> T
sqr( T
t) {
return t*
t;}
27 if ( hits.
size() < 2)
return 0;
35 return buildSeed(seedCollection,hits,fts,es);
53 FastHelix helix(tth2->globalPosition(), tth1->globalPosition(), vertexPos, es);
54 if (helix.isValid()) {
55 kine = helix.stateAtVertex().parameters();
57 GlobalVector initMomentum(tth2->globalPosition() - vertexPos);
58 initMomentum *= (100./initMomentum.perp());
90 float sin2th =
sqr(sinTheta);
93 float zErr = vertexErr.
czz();
94 float transverseErr = vertexErr.
cxx();
95 C[3][3] = transverseErr;
96 C[4][4] = zErr*sin2th + transverseErr*(1-sin2th);
125 for (
unsigned int iHit = 0; iHit < hits.
size(); iHit++) {
126 hit = hits[iHit]->hit();
130 if (!state.
isValid())
return 0;
136 if (!
checkHit(state,newtth,es))
return 0;
138 updatedState = updator.
update(state, *newtth);
139 if (!updatedState.
isValid())
return 0;
141 seedHits.
push_back(newtth->hit()->clone());
145 boost::shared_ptr<PTrajectoryStateOnDet> PTraj(
149 return &seedCollection.back();
156 return hit->clone(state);
virtual bool checkHit(const TrajectoryStateOnSurface &, const TransientTrackingRecHit::ConstRecHitPointer &hit, const edm::EventSetup &es) const
virtual const TrajectorySeed * buildSeed(TrajectorySeedCollection &seedCollection, const SeedingHitSet &hits, const FreeTrajectoryState &fts, const edm::EventSetup &es) const
virtual float ptMin() const =0
minimal pt of interest
virtual GlobalPoint origin() const =0
virtual TransientTrackingRecHit::RecHitPointer refitHit(const TransientTrackingRecHit::ConstRecHitPointer &hit, const TrajectoryStateOnSurface &state) const
Sin< T >::type sin(const T &t)
virtual GlobalTrajectoryParameters initialKinematic(const SeedingHitSet &hits, const TrackingRegion ®ion, const edm::EventSetup &es) const
Geom::Theta< T > theta() const
uint32_t rawId() const
get the raw id
virtual CurvilinearTrajectoryError initialError(const TrackingRegion ®ion, float sinTheta) const
virtual const TrajectorySeed * trajectorySeed(TrajectorySeedCollection &seedCollection, const SeedingHitSet &ordered, const TrackingRegion ®ion, const edm::EventSetup &es)
std::vector< TrajectorySeed > TrajectorySeedCollection
std::string thePropagatorLabel
const T & max(const T &a, const T &b)
GlobalVector momentum() const
GlobalPoint position() const
virtual TrajectoryStateOnSurface propagate(const FreeTrajectoryState &, const Surface &) const
Vector3DBase unit() const
virtual float originRBound() const =0
bounds the particle vertex in the transverse plane
TrajectoryStateOnSurface update(const TrajectoryStateOnSurface &, const TransientTrackingRecHit &) const
virtual float originZBound() const =0
bounds the particle vertex in the longitudinal plane
Square< F >::type sqr(const F &f)
unsigned int size() const
CLHEP::HepSymMatrix AlgebraicSymMatrix
DetId geographicalId() const
TrackCharge charge() const