29 desc.
add<
std::string>(
"propagator",
"PropagatorWithMaterialParabolicMf");
30 desc.
add<
double>(
"SeedMomentumForBOFF", 5.0);
31 desc.
add<
double>(
"OriginTransverseErrorMultiplier", 1.0);
32 desc.
add<
double>(
"MinOneOverPtError", 1.0);
35 desc.
add<
bool>(
"forceKinematicWithRegionDirection",
false);
57 cloner = (*builder).cloner();
63 if ( hits.
size() < 2)
return;
92 C[1][1] = twiceDeltaLambda*twiceDeltaLambda;
93 C[2][2] = twiceDeltaPhi*twiceDeltaPhi;
94 C[3][3] = transverseErr;
95 C[4][4] = zErr*sin2Theta + transverseErr*(1.f-sin2Theta);
115 if (helix.isValid()) {
116 kine = helix.stateAtVertex();
118 GlobalVector initMomentum(tth2->globalPosition() - vertexPos);
119 initMomentum *= (100.f/initMomentum.perp());
146 auto sin2th = sin2Theta;
151 C[1][1] = C[2][2] = 1.;
152 C[3][3] = transverseErr;
153 C[4][4] = zErr*sin2th + transverseErr*(1.f-sin2th);
174 for (
unsigned int iHit = 0; iHit < hits.
size(); iHit++) {
175 hit = hits[iHit]->hit();
183 std::unique_ptr<BaseTrackerRecHit> newtth(
refitHit( tth, state));
185 if (!
checkHit(state,&*newtth))
return;
187 updatedState = updator.
update(state, *newtth);
188 if (!updatedState.
isValid())
return;
float originRBound() const
bounds the particle vertex in the transverse plane
void makeSeed(TrajectorySeedCollection &seedCollection, const SeedingHitSet &hits) final
GlobalPoint const & origin() const
const GlobalTrajectoryParameters & parameters() const
int nominalValue() const
The nominal field value for this map in kGauss.
edm::ESHandle< Propagator > propagatorHandle
const Margin & phiMargin() const
void buildSeed(TrajectorySeedCollection &seedCollection, const SeedingHitSet &hits, const FreeTrajectoryState &fts) const
constexpr uint32_t rawId() const
get the raw id
virtual bool initialKinematic(GlobalTrajectoryParameters &kine, const SeedingHitSet &hits) const
TrackCharge charge() const
CurvilinearTrajectoryError initialError(float sin2Theta) const
GlobalVector const & direction() const
the direction around which region is constructed
TrajectoryStateOnSurface update(const TrajectoryStateOnSurface &, const TrackingRecHit &) const override
BaseTrackerRecHit const * ConstRecHitPointer
std::vector< TrajectorySeed > TrajectorySeedCollection
std::string thePropagatorLabel
SeedingHitSet::RecHitPointer refitHit(SeedingHitSet::ConstRecHitPointer hit, const TrajectoryStateOnSurface &state) const
const TrackingRegion * region
GlobalVector momentum() const
virtual bool compatible(const SeedingHitSet &hits) const =0
float theOriginTransverseErrorMultiplier
~SeedFromConsecutiveHitsCreator() override
ParameterDescriptionBase * add(U const &iLabel, T const &value)
GlobalVector momentum() const
bool forceKinematicWithRegionDirection_
float originZBound() const
bounds the particle vertex in the longitudinal plane
GlobalPoint position() const
Vector3DBase unit() const
void init(const TrackingRegion ®ion, const edm::EventSetup &es, const SeedComparitor *filter) final
edm::ESHandle< TrackerGeometry > tracker
float ptMin() const
minimal pt of interest
TrajectoryStateOnSurface propagate(STA const &state, SUR const &surface) const
const AlgebraicSymMatrix55 & matrix() const
Square< F >::type sqr(const F &f)
static int position[264][3]
unsigned int size() const
const TrackerGeomDet * idToDet(DetId) const override
const MagneticField & magneticField() const
const Range & tanLambdaRange() const
DetId geographicalId() const
static void fillDescriptions(edm::ParameterSetDescription &desc)
TrackCharge charge() const
edm::ESHandle< MagneticField > bfield
T const * product() const
float theMinOneOverPtError
const SeedComparitor * filter
bool checkHit(const TrajectoryStateOnSurface &tsos, SeedingHitSet::ConstRecHitPointer hit) const