80 const std::string
category =
"Muon|RecoMuon|GlobalMuonTrajectoryBuilder|setEvent";
97 const std::string
category =
"Muon|RecoMuon|GlobalMuonTrajectoryBuilder|trajectories";
100 LogTrace(category) <<
" STA pt " << staCandIn.second->pt() <<
" rho " << staCandIn.second->innerMomentum().Rho() <<
" R " << staCandIn.second->innerMomentum().R() <<
" theCut " <<
thePtCut;
106 LogTrace(category) <<
" Found " << regionalTkTracks.size() <<
" tracks within region of interest";
109 vector<TrackCand> trackerTracks =
trackMatcher()->
match(staCand, regionalTkTracks);
110 LogTrace(category) <<
" Found " << trackerTracks.size() <<
" matching tracker tracks within region of interest";
112 if ( trackerTracks.empty() ) {
113 if ( staCandIn.first == 0)
delete staCand.first;
122 LogTrace(category) <<
" Turn tkMatchedTracks into MuonCandidates";
124 for (vector<TrackCand>::const_iterator tkt = trackerTracks.begin(); tkt != trackerTracks.end(); tkt++) {
127 tkTrajs.push_back(muonCand);
130 if ( tkTrajs.empty() ) {
131 LogTrace(category) <<
" tkTrajs empty";
132 if ( staCandIn.first == 0)
delete staCand.first;
138 LogTrace(category) <<
" Found "<< result.size() <<
" GLBMuons from one STACand";
141 if ( staCandIn.first == 0)
delete staCand.first;
143 for( CandidateContainer::const_iterator it = tkTrajs.begin(); it != tkTrajs.end(); ++it) {
144 if ( (*it)->trajectory() )
delete (*it)->trajectory();
145 if ( (*it)->trackerTrajectory() )
delete (*it)->trackerTrajectory();
146 if ( *it )
delete (*it);
160 const std::string
category =
"Muon|RecoMuon|GlobalMuonTrajectoryBuilder|makeTkCandCollection";
162 vector<TrackCand> tkCandColl;
164 vector<TrackCand> tkTrackCands;
169 tkTrackCands.push_back(tkCand);
std::vector< TrackCand > makeTkCandCollection(const TrackCand &)
make a TrackCand collection using tracker Track, Trajectory information
T getParameter(std::string const &) const
MuonCandidate::CandidateContainer CandidateContainer
virtual void setEvent(const edm::Event &)
pass the Event to the algo at each event
GlobalMuonTrackMatcher * trackMatcher() const
virtual void setEvent(const edm::Event &)
pass the Event to the algo at each event
edm::InputTag theTkTrackLabel
std::pair< const Trajectory *, reco::TrackRef > TrackCand
~GlobalMuonTrajectoryBuilder()
destructor
std::vector< TrackCand > chooseRegionalTrackerTracks(const TrackCand &, const std::vector< TrackCand > &)
choose tracker tracks within region of interest
MuonTrajectoryBuilder::CandidateContainer trajectories(const TrackCand &)
reconstruct trajectories from standalone and tracker only Tracks
std::vector< MuonCandidate * > CandidateContainer
double match(const TrackCand &sta, const TrackCand &track, int matchOption=0, int surfaceOption=1) const
How EventSelector::AcceptEvent() decides whether to accept an event for output otherwise it is excluding the probing of A single or multiple positive and the trigger will pass if any such matching triggers are PASS or EXCEPTION[A criterion thatmatches no triggers at all is detected and causes a throw.] A single negative with an expectation of appropriate bit checking in the decision and the trigger will pass if any such matching triggers are FAIL or EXCEPTION A wildcarded negative criterion that matches more than one trigger in the trigger but the state exists so we define the behavior If all triggers are the negative crieriion will lead to accepting the event(this again matches the behavior of"!*"before the partial wildcard feature was incorporated).The per-event"cost"of each negative criterion with multiple relevant triggers is about the same as!*was in the past
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]
GlobalMuonTrajectoryBuilder(const edm::ParameterSet &, const MuonServiceProxy *)
constructor with Parameter Set and MuonServiceProxy