46 unsigned int& numSeedsMade,
71 : theInputCollectionTag_(
73 theMeasurementTrackerTag_(
75 theMinEtaForTEC_(
cfg.getParameter<double>(
"minEtaForTEC")),
76 theMaxEtaForTOB_(
cfg.getParameter<double>(
"maxEtaForTOB")),
77 theErrorSFHitless_(
cfg.getParameter<double>(
"errorSFHitless")),
78 mfToken_{esConsumes<MagneticField, IdealMagneticFieldRecord>()},
79 geomToken_{esConsumes<TrackerGeometry, TrackerDigiGeometryRecord>()},
80 estToken_{esConsumes<Chi2MeasurementEstimatorBase, TrackingComponentsRecord>(
82 propagatorAlongToken_{esConsumes<Propagator, TrackingComponentsRecord>(
84 propagatorOppositeToken_{esConsumes<Propagator, TrackingComponentsRecord>(
86 produces<TrajectorySeedCollection>();
91 desc.add<
edm::InputTag>(
"InputCollection", {
"TTTracksFromTrackletEmulation",
"Level1TTTracks"});
95 desc.add<
double>(
"minEtaForTEC", 0.9);
96 desc.add<
double>(
"maxEtaForTOB", 1.2);
97 desc.add<
double>(
"errorSFHitless", 1
e-9);
106 unsigned int& numSeedsMade,
108 std::vector<GeometricSearchDet::DetWithState> dets;
112 auto const& detOnLayer = dets.front().first;
113 auto const& tsosOnLayer = dets.front().second;
114 if (!tsosOnLayer.isValid()) {
115 LogDebug(
"SeedGeneratorFromL1TTracks") <<
"Hitless TSOS is not valid!";
122 if (numSeedsMade < 1) {
131 std::unique_ptr<std::vector<TrajectorySeed>>
result(
new std::vector<TrajectorySeed>());
154 std::vector<BarrelDetLayer const*>
const& tob =
measurementTracker.geometricSearchTracker()->tobLayers();
156 std::vector<ForwardDetLayer const*>
const& tecPositive =
159 std::vector<ForwardDetLayer const*>
const& tecNegative =
167 for (
auto const& l1 :
trks) {
168 std::unique_ptr<std::vector<TrajectorySeed>>
out(
new std::vector<TrajectorySeed>());
170 dummyPlane->move(fts.
position() - dummyPlane->position());
173 unsigned int numSeedsMade = 0;
176 for (
auto it = tob.rbegin(); it != tob.rend(); ++it) {
185 for (
auto it = tecPositive.rbegin(); it != tecPositive.rend(); ++it) {
191 for (
auto it = tecNegative.rbegin(); it != tecNegative.rend(); ++it) {