28 : thePropagatorLabel(
cfg.getParameter<
std::
string>(
"propagator")),
29 theBOFFMomentum(
cfg.getParameter<double>(
"SeedMomentumForBOFF")),
30 theOriginTransverseErrorMultiplier(
cfg.getParameter<double>(
"OriginTransverseErrorMultiplier")),
31 theMinOneOverPtError(
cfg.getParameter<double>(
"MinOneOverPtError")),
34 forceKinematicWithRegionDirection_(
cfg.getParameter<
bool>(
"forceKinematicWithRegionDirection")),
43 desc.add<
std::string>(
"propagator",
"PropagatorWithMaterialParabolicMf");
44 desc.add<
double>(
"SeedMomentumForBOFF", 5.0);
45 desc.add<
double>(
"OriginTransverseErrorMultiplier", 1.0);
46 desc.add<
double>(
"MinOneOverPtError", 1.0);
49 desc.add<
bool>(
"forceKinematicWithRegionDirection",
false);
66 cloner = (*builder).cloner();
96 constexpr
float minC00 = 0.4f;
100 auto twiceDeltaLambda =
103 C[1][1] = twiceDeltaLambda * twiceDeltaLambda;
104 C[2][2] = twiceDeltaPhi * twiceDeltaPhi;
105 C[3][3] = transverseErr;
106 C[4][4] = zErr * sin2Theta + transverseErr * (1.f - sin2Theta);
122 if (helix.isValid()) {
123 kine = helix.stateAtVertex();
125 GlobalVector initMomentum(tth2->globalPosition() - vertexPos);
126 initMomentum *= (100.f / initMomentum.perp());
147 auto sin2th = sin2Theta;
152 C[1][1] =
C[2][2] = 1.;
153 C[3][3] = transverseErr;
154 C[4][4] = zErr * sin2th + transverseErr * (1.f - sin2th);
171 for (
unsigned int iHit = 0; iHit <
hits.size(); iHit++) {
176 if (!
state.isValid())
181 std::unique_ptr<BaseTrackerRecHit> newtth(
refitHit(tth,
state));
bool checkHit(const TrajectoryStateOnSurface &tsos, SeedingHitSet::ConstRecHitPointer hit) const
void makeSeed(TrajectorySeedCollection &seedCollection, const SeedingHitSet &hits) final
T const & getData(const ESGetToken< T, R > &iToken) const noexcept(false)
GlobalPoint position() const
GlobalPoint const & origin() const
void buildSeed(TrajectorySeedCollection &seedCollection, const SeedingHitSet &hits, const FreeTrajectoryState &fts) const
virtual bool compatible(const SeedingHitSet &hits) const =0
SeedFromConsecutiveHitsCreator(const edm::ParameterSet &, edm::ConsumesCollector &&)
TrackCharge charge() const
TrajectoryStateOnSurface propagate(STA const &state, SUR const &surface) const
const GlobalTrajectoryParameters & parameters() const
const Range & tanLambdaRange() const
GlobalVector momentum() const
Propagator const * propagator_
const edm::ESGetToken< TransientTrackingRecHitBuilder, TransientRecHitRecord > transientTrackingRecHitBuilderESToken_
BaseTrackerRecHit const * ConstRecHitPointer
std::vector< TrajectorySeed > TrajectorySeedCollection
const TrackingRegion * region
const edm::ESGetToken< MagneticField, IdealMagneticFieldRecord > magneticFieldESToken_
float ptMin() const
minimal pt of interest
TrackCharge charge() const
GlobalVector momentum() const
MagneticField const * magneticField_
float theOriginTransverseErrorMultiplier
~SeedFromConsecutiveHitsCreator() override
const TrackerGeomDet * idToDet(DetId) const override
bool forceKinematicWithRegionDirection_
const edm::ESGetToken< Propagator, TrackingComponentsRecord > propagatorESToken_
float originRBound() const
bounds the particle vertex in the transverse plane
void init(const TrackingRegion ®ion, const edm::EventSetup &es, const SeedComparitor *filter) final
virtual bool initialKinematic(GlobalTrajectoryParameters &kine, const SeedingHitSet &hits) const
CurvilinearTrajectoryError initialError(float sin2Theta) const
const AlgebraicSymMatrix55 & matrix() const
const MagneticField & magneticField() const
const Margin & phiMargin() const
GlobalVector const & direction() const
the direction around which region is constructed
float originZBound() const
bounds the particle vertex in the longitudinal plane
Square< F >::type sqr(const F &f)
static int position[264][3]
int nominalValue() const
The nominal field value for this map in kGauss.
Vector3DBase unit() const
static void fillDescriptions(edm::ParameterSetDescription &desc)
float theMinOneOverPtError
TrackerGeometry const * trackerGeometry_
const SeedComparitor * filter
SeedingHitSet::RecHitPointer refitHit(SeedingHitSet::ConstRecHitPointer hit, const TrajectoryStateOnSurface &state) const
const edm::ESGetToken< TrackerGeometry, TrackerDigiGeometryRecord > trackerGeometryESToken_