94 const std::string
category =
"Muon|RecoMuon|L3MuonTrajectoryBuilder|setEvent";
111 const std::string
category =
"Muon|RecoMuon|L3MuonTrajectoryBuilder|trajectories";
119 vector<TrackCand> trackerTracks;
122 LogDebug(category) <<
"Found " << regionalTkTracks.size() <<
" tracks within region of interest";
127 LogDebug(category) <<
"Found " << trackerTracks.size() <<
" matching tracker tracks within region of interest";
134 LogDebug(category) <<
"turn tkMatchedTracks into MuonCandidates";
136 for (vector<TrackCand>::const_iterator tkt = trackerTracks.begin(); tkt != trackerTracks.end(); tkt++) {
137 if ((*tkt).first != 0 && (*tkt).first->isValid()) {
140 tkTrajs.push_back(muonCand);
145 tkTrajs.push_back(muonCand);
149 if ( tkTrajs.empty() ) {
150 LogDebug(category) <<
"tkTrajs empty";
155 LogDebug(category) <<
"Found "<< result.size() <<
" L3Muons from one L2Cand";
158 if ( staCandIn.first == 0)
delete staCand.first;
160 for( CandidateContainer::const_iterator it = tkTrajs.begin(); it != tkTrajs.end(); ++it) {
161 if ( (*it)->trajectory() )
delete (*it)->trajectory();
162 if ( (*it)->trackerTrajectory() )
delete (*it)->trackerTrajectory();
163 if ( *it )
delete (*it);
167 for ( vector<TrackCand>::const_iterator is = regionalTkTracks.begin(); is != regionalTkTracks.end(); ++is) {
180 const std::string
category =
"Muon|RecoMuon|L3MuonTrajectoryBuilder|makeTkCandCollection";
182 vector<TrackCand> tkCandColl;
184 vector<TrackCand> tkTrackCands;
189 tkCandColl.push_back(tkCand);
192 for(vector<TrackCand>::const_iterator tk = tkCandColl.begin(); tk != tkCandColl.end() ; ++tk) {
195 if(staTrack == (staCand.second) ) tkTrackCands.push_back(*tk);
T getParameter(std::string const &) const
MuonCandidate::CandidateContainer CandidateContainer
GlobalMuonTrackMatcher * trackMatcher() const
virtual void setEvent(const edm::Event &)
pass the Event to the algo at each event
std::pair< const Trajectory *, reco::TrackRef > TrackCand
static int position[TOTALCHAMBERS][3]
virtual void setEvent(const edm::Event &)
pass the Event to the algo at each event
U second(std::pair< T, U > const &p)
L3MuonTrajectoryBuilder(const edm::ParameterSet &, const MuonServiceProxy *)
constructor with Parameter Set and MuonServiceProxy
edm::Handle< reco::TrackCollection > allTrackerTracks
std::vector< TrackCand > makeTkCandCollection(const TrackCand &)
make a TrackCand collection using tracker Track, Trajectory information
edm::InputTag theTkCollName
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
~L3MuonTrajectoryBuilder()
destructor
MuonTrajectoryBuilder::CandidateContainer trajectories(const TrackCand &)
reconstruct trajectories from standalone and tracker only Tracks
MuonTrajectoryBuilder::CandidateContainer build(const TrackCand &, MuonTrajectoryBuilder::CandidateContainer &) const
build combined trajectory from sta Track and tracker RecHits
TrajectoryCleaner * theTrajectoryCleaner