77 desc.
add(
"MuonTrackingRegionBuilder",descTRB);
98 vtx = pvHandle->front();
101 edm::LogInfo(category) <<
"No Primary Vertex available from EventSetup \n";
111 edm::LogInfo(category) <<
"No beam spot available from EventSetup \n";
130 std::vector<TrackCand> trackerTracks;
133 LogDebug(category) <<
"Found " << regionalTkTracks.size() <<
" tracks within region of interest";
138 LogDebug(category) <<
"Found " << trackerTracks.size() <<
" matching tracker tracks within region of interest";
143 LogDebug(category) <<
"turn tkMatchedTracks into MuonCandidates";
145 for (std::vector<TrackCand>::const_iterator tkt = trackerTracks.begin(); tkt != trackerTracks.end(); tkt++) {
146 if ((*tkt).first != 0 && (*tkt).first->isValid()) {
148 tkTrajs.push_back(muonCand);
151 tkTrajs.push_back(muonCand);
155 if ( tkTrajs.empty() ) {
156 LogDebug(category) <<
"tkTrajs empty";
161 LogDebug(category) <<
"Found "<< result.size() <<
" L3Muons from one L2Cand";
164 if ( staCandIn.first == 0)
delete staCand.first;
166 for( CandidateContainer::const_iterator it = tkTrajs.begin(); it != tkTrajs.end(); ++it) {
167 if ( (*it)->trajectory() )
delete (*it)->trajectory();
168 if ( (*it)->trackerTrajectory() )
delete (*it)->trackerTrajectory();
169 if ( *it )
delete (*it);
173 for ( std::vector<TrackCand>::const_iterator is = regionalTkTracks.begin(); is != regionalTkTracks.end(); ++is) {
186 std::vector<TrackCand> tkCandColl;
187 std::vector<TrackCand> tkTrackCands;
194 tkCandColl.push_back(tkCand);
198 for (
auto&& tkCand: tkCandColl){
199 auto& tk = tkCand.second;
200 bool canUseL3MTS =
false;
202 if (tk->seedRef().isNonnull()){
204 canUseL3MTS =
a !=
nullptr;
210 if( staTrack == (staCand.second) ) {
216 tkTrackCands.push_back(tkCand);
225 tkTrackCands.push_back(tkCand);
EDGetTokenT< ProductType > consumes(edm::InputTag const &tag)
T getParameter(std::string const &) const
MuonCandidate::CandidateContainer CandidateContainer
static void fillDescriptions(edm::ParameterSetDescription &descriptions)
Add Fill Descriptions.
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
std::vector< Track > TrackCollection
collection of Tracks
static void fillDescriptions(edm::ParameterSetDescription &descriptions)
Add default values for fillDescriptions.
const Point & position() const
position
virtual void setEvent(const edm::Event &)
Pass the Event to the algo at each event.
U second(std::pair< T, U > const &p)
edm::Handle< reco::TrackCollection > allTrackerTracks
edm::Handle< reco::VertexCollection > pvHandle
edm::InputTag theTkCollName
ParameterDescriptionBase * add(U const &iLabel, T const &value)
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 &)
return a container reconstructed muons starting from a given track
edm::EDGetTokenT< reco::TrackCollection > theTrackToken
MuonTrajectoryBuilder::CandidateContainer build(const TrackCand &, MuonTrajectoryBuilder::CandidateContainer &) const
build combined trajectory from sta Track and tracker RecHits
edm::InputTag theBeamSpotInputTag
TrajectoryCleaner * theTrajectoryCleaner
std::vector< TrackCand > makeTkCandCollection(const TrackCand &)
Make a TrackCand collection using tracker Track, Trajectory information.
edm::Handle< reco::BeamSpot > beamSpotHandle
static int position[264][3]
const Point & position() const
position
L3MuonTrajectoryBuilder(const edm::ParameterSet &, const MuonServiceProxy *, edm::ConsumesCollector &)
Constructor with Parameter Set and MuonServiceProxy.
edm::InputTag theVertexCollInputTag