|
|
Go to the documentation of this file.
75 desc.add(
"MuonTrackingRegionBuilder", descTRB);
117 (staCandIn).
second->innerMomentum().R() < 2.5)
124 LogDebug(
category) <<
"Found " << regionalTkTracks.size() <<
" tracks within region of interest";
127 std::vector<TrackCand> trackerTracks =
trackMatcher()->
match(staCand, regionalTkTracks);
129 LogDebug(
category) <<
"Found " << trackerTracks.size() <<
" matching tracker tracks within region of interest";
130 if (trackerTracks.empty())
137 tkTrajs.reserve(trackerTracks.size());
138 for (std::vector<TrackCand>::const_iterator tkt = trackerTracks.begin(); tkt != trackerTracks.end(); tkt++) {
139 if ((*tkt).first !=
nullptr && (*tkt).first->isValid()) {
140 tkTrajs.emplace_back(std::make_unique<MuonCandidate>(
141 nullptr, staCand.second, (*tkt).second, std::make_unique<Trajectory>(*(*tkt).first)));
143 tkTrajs.emplace_back(std::make_unique<MuonCandidate>(
nullptr, staCand.second, (*tkt).second,
nullptr));
147 if (tkTrajs.empty()) {
156 if (staCandIn.first ==
nullptr)
157 delete staCand.first;
159 for (std::vector<TrackCand>::const_iterator is = regionalTkTracks.begin(); is != regionalTkTracks.end(); ++is) {
171 std::vector<TrackCand> tkCandColl;
172 std::vector<TrackCand> tkTrackCands;
179 tkCandColl.push_back(tkCand);
183 for (
auto&& tkCand : tkCandColl) {
184 auto& tk = tkCand.second;
185 bool canUseL3MTS =
false;
187 if (tk->seedRef().isNonnull()) {
188 auto a = dynamic_cast<const L3MuonTrajectorySeed*>(tk->seedRef().get());
189 canUseL3MTS =
a !=
nullptr;
196 if (staTrack == (staCand.second)) {
205 tkTrackCands.push_back(tkCand);
216 tkTrackCands.push_back(tkCand);
edm::InputTag theVertexCollInputTag
static void fillDescriptionsHLT(edm::ParameterSetDescription &descriptions)
double match(const TrackCand &sta, const TrackCand &track, int matchOption=0, int surfaceOption=1) const
U second(std::pair< T, U > const &p)
GlobalMuonTrackMatcher * trackMatcher() const
const Point & position() const
position
MuonTrajectoryBuilder::CandidateContainer trajectories(const TrackCand &) override
return a container reconstructed muons starting from a given track
Log< level::Info, false > LogInfo
MuonTrajectoryBuilder::CandidateContainer build(const TrackCand &, MuonTrajectoryBuilder::CandidateContainer &) const
build combined trajectory from sta Track and tracker RecHits
MuonCandidate::CandidateContainer CandidateContainer
edm::Handle< reco::VertexCollection > pvHandle
edm::Handle< reco::TrackCollection > allTrackerTracks
EDGetTokenT< ProductType > consumes(edm::InputTag const &tag)
void setEvent(const edm::Event &) override
Pass the Event to the algo at each event.
static void fillDescriptions(edm::ParameterSetDescription &descriptions)
Add default values for fillDescriptions.
const Point & position() const
position
edm::InputTag theTkCollName
void setEvent(const edm::Event &) override
pass the Event to the algo at each event
edm::EDGetTokenT< reco::TrackCollection > theTrackToken
std::vector< std::unique_ptr< MuonCandidate > > CandidateContainer
static int position[264][3]
edm::Handle< reco::BeamSpot > beamSpotHandle
std::unique_ptr< TrajectoryCleaner > theTrajectoryCleaner
std::vector< TrackCand > makeTkCandCollection(const TrackCand &) override
Make a TrackCand collection using tracker Track, Trajectory information.
~L3MuonTrajectoryBuilder() override
Destructor.
T getParameter(std::string const &) const
std::pair< const Trajectory *, reco::TrackRef > TrackCand
edm::InputTag theBeamSpotInputTag
std::vector< Track > TrackCollection
collection of Tracks
L3MuonTrajectoryBuilder(const edm::ParameterSet &, const MuonServiceProxy *, edm::ConsumesCollector &)
Constructor with Parameter Set and MuonServiceProxy.