46 LogTrace(
"Muon|RecoMuon|StandAloneMuonProducer") <<
"constructor called" << endl;
62 theService = std::make_unique<MuonServiceProxy>(serviceParameters, consumesCollector());
64 auto trackLoader = std::make_unique<MuonTrackLoader>(trackLoaderParameters, iC, theService.get());
65 std::unique_ptr<MuonTrajectoryBuilder> trajectoryBuilder;
68 if (typeOfBuilder ==
"StandAloneMuonTrajectoryBuilder")
70 std::make_unique<StandAloneMuonTrajectoryBuilder>(trajectoryBuilderParameters, theService.get(), iC);
71 else if (typeOfBuilder ==
"DirectMuonTrajectoryBuilder")
72 trajectoryBuilder = std::make_unique<DirectMuonTrajectoryBuilder>(trajectoryBuilderParameters, theService.get());
73 else if (typeOfBuilder ==
"Exhaustive")
75 std::make_unique<ExhaustiveMuonTrajectoryBuilder>(trajectoryBuilderParameters, theService.get(), iC);
77 LogWarning(
"Muon|RecoMuon|StandAloneMuonProducer")
78 <<
"No Trajectory builder associated with " << typeOfBuilder
79 <<
". Falling down to the default (StandAloneMuonTrajectoryBuilder)";
81 std::make_unique<StandAloneMuonTrajectoryBuilder>(trajectoryBuilderParameters, theService.get(), iC);
83 theTrackFinder = std::make_unique<MuonTrackFinder>(
std::move(trajectoryBuilder),
std::move(trackLoader), iC);
87 produces<reco::TrackCollection>().setBranchAlias(theAlias +
"Tracks");
88 produces<reco::TrackCollection>(
"UpdatedAtVtx").setBranchAlias(theAlias +
"UpdatedAtVtxTracks");
89 produces<TrackingRecHitCollection>().setBranchAlias(theAlias +
"RecHits");
90 produces<reco::TrackExtraCollection>().setBranchAlias(theAlias +
"TrackExtras");
91 produces<reco::TrackToTrackMap>().setBranchAlias(theAlias +
"TrackToTrackMap");
93 produces<std::vector<Trajectory> >().setBranchAlias(theAlias +
"Trajectories");
94 produces<TrajTrackAssociationCollection>().setBranchAlias(theAlias +
"TrajToTrackMap");
96 seedToken = consumes<edm::View<TrajectorySeed> >(theSeedCollectionLabel);
101 LogTrace(
"Muon|RecoMuon|StandAloneMuonProducer") <<
"StandAloneMuonProducer destructor called" << endl;
109 LogTrace(
metname) <<
"Stand Alone Muon Reconstruction Started" << endl;
112 LogTrace(
metname) <<
"Taking the seeds: " << theSeedCollectionLabel.label() << endl;
114 event.getByToken(seedToken,
seeds);
117 theService->update(eventSetup);
121 theTrackFinder->reconstruct(
seeds,
event, eventSetup);
124 <<
"================================" << endl