101 LogTrace(category) <<
" STA pt " << staCandIn.second->pt() <<
" rho " << staCandIn.second->innerMomentum().Rho() <<
" R " << staCandIn.second->innerMomentum().R() <<
" theCut " <<
thePtCut;
107 LogTrace(category) <<
" Found " << regionalTkTracks.size() <<
" tracks within region of interest";
110 vector<TrackCand> trackerTracks =
trackMatcher()->
match(staCand, regionalTkTracks);
111 LogTrace(category) <<
" Found " << trackerTracks.size() <<
" matching tracker tracks within region of interest";
113 if ( trackerTracks.empty() ) {
114 if ( staCandIn.first ==
nullptr)
delete staCand.first;
123 LogTrace(category) <<
" Turn tkMatchedTracks into MuonCandidates";
125 for (vector<TrackCand>::const_iterator tkt = trackerTracks.begin(); tkt != trackerTracks.end(); tkt++) {
128 tkTrajs.push_back(muonCand);
131 if ( tkTrajs.empty() ) {
132 LogTrace(category) <<
" tkTrajs empty";
133 if ( staCandIn.first ==
nullptr)
delete staCand.first;
139 LogTrace(category) <<
" Found "<< result.size() <<
" GLBMuons from one STACand";
142 if ( staCandIn.first ==
nullptr)
delete staCand.first;
144 for( CandidateContainer::const_iterator it = tkTrajs.begin(); it != tkTrajs.end(); ++it) {
145 if ( (*it)->trajectory() )
delete (*it)->trajectory();
146 if ( (*it)->trackerTrajectory() )
delete (*it)->trackerTrajectory();
147 if ( *it )
delete (*it);
161 const std::string category =
"Muon|RecoMuon|GlobalMuonTrajectoryBuilder|makeTkCandCollection";
163 vector<TrackCand> tkCandColl;
165 vector<TrackCand> tkTrackCands;
170 tkTrackCands.push_back(tkCand);
EDGetTokenT< ProductType > consumes(edm::InputTag const &tag)
T getParameter(std::string const &) const
MuonCandidate::CandidateContainer CandidateContainer
GlobalMuonTrackMatcher * trackMatcher() const
edm::InputTag theTkTrackLabel
std::pair< const Trajectory *, reco::TrackRef > TrackCand
MuonTrajectoryBuilder::CandidateContainer trajectories(const TrackCand &) override
reconstruct trajectories from standalone and tracker only Tracks
void setEvent(const edm::Event &) override
pass the Event to the algo at each event
std::vector< Track > TrackCollection
collection of Tracks
std::vector< TrackCand > makeTkCandCollection(const TrackCand &) override
make a TrackCand collection using tracker Track, Trajectory information
std::vector< TrackCand > chooseRegionalTrackerTracks(const TrackCand &, const std::vector< TrackCand > &)
choose tracker tracks within region of interest
edm::EDGetTokenT< reco::TrackCollection > allTrackerTracksToken
~GlobalMuonTrajectoryBuilder() override
destructor
void setEvent(const edm::Event &) override
pass the Event to the algo at each event
std::vector< MuonCandidate * > CandidateContainer
double match(const TrackCand &sta, const TrackCand &track, int matchOption=0, int surfaceOption=1) const
GlobalMuonTrajectoryBuilder(const edm::ParameterSet &, const MuonServiceProxy *, edm::ConsumesCollector &)
constructor with Parameter Set and MuonServiceProxy
edm::Handle< reco::TrackCollection > allTrackerTracks
MuonTrajectoryBuilder::CandidateContainer build(const TrackCand &, MuonTrajectoryBuilder::CandidateContainer &) const
build combined trajectory from sta Track and tracker RecHits
static int position[264][3]