CMS 3D CMS Logo

MuonTrackFinder.cc
Go to the documentation of this file.
1 
11 
16 
21 
24 
27 
28 using namespace std;
29 using namespace edm;
30 
31 // Constructor, with default cleaner. For the STA reconstruction the trackLoader must have the propagator.
32 MuonTrackFinder::MuonTrackFinder(std::unique_ptr<MuonTrajectoryBuilder> ConcreteMuonTrajectoryBuilder,
33  std::unique_ptr<MuonTrackLoader> trackLoader)
34  : theTrajBuilder(std::move(ConcreteMuonTrajectoryBuilder)),
35  theTrajCleaner(new MuonTrajectoryCleaner()),
36  theTrackLoader(std::move(trackLoader)) {}
37 
38 // Constructor, with user-defined cleaner. For the STA reconstruction the trackLoader must have the propagator.
39 MuonTrackFinder::MuonTrackFinder(std::unique_ptr<MuonTrajectoryBuilder> ConcreteMuonTrajectoryBuilder,
40  std::unique_ptr<MuonTrackLoader> trackLoader,
41  std::unique_ptr<MuonTrajectoryCleaner> cleaner)
42  : theTrajBuilder(std::move(ConcreteMuonTrajectoryBuilder)),
43  theTrajCleaner(std::move(cleaner)),
44  theTrackLoader(std::move(trackLoader)) {}
45 
46 // destructor
48  LogTrace("Muon|RecoMuon|MuonTrackFinder") << "MuonTrackFinder destructor called" << endl;
49 }
50 
51 // percolate the event setup
53 
54 // convert the trajectories into tracks and load them in to the event
57  const TrackerTopology& ttopo) {
58  return theTrackLoader->loadTracks(trajectories, event, ttopo);
59 }
60 
61 // convert the trajectories into tracks and load them in to the event
63  theTrackLoader->loadTracks(muonCands, event, ttopo);
64 }
65 
66 // reconstruct trajectories
69  const string metname = "Muon|RecoMuon|MuonTrackFinder";
70  LogTrace(metname) << "SA Recostruction starting from: " << seeds->size() << endl;
71 
72  // Percolate the event
73  setEvent(event);
74 
76  es.get<TrackerTopologyRcd>().get(httopo);
77 
78  // Trajectory container
79  TrajectoryContainer muonTrajectories;
81  // reconstruct the trajectory
83  for (seed = seeds->begin(); seed != seeds->end(); ++seed, ++nSeed) {
84  LogTrace(metname) << "+++ New Seed +++" << endl;
85  TrajectoryContainer muonTrajs_temp = theTrajBuilder->trajectories(*seed);
86  for (TrajectoryContainer::iterator it = muonTrajs_temp.begin(); it != muonTrajs_temp.end(); ++it) {
87  (*it)->setSeedRef(seeds->refAt(nSeed));
88  muonTrajectories.push_back(std::move(*it));
89  }
90  }
91 
92  // clean the clone traj
93  LogTrace(metname) << "Clean the trajectories container" << endl;
94  if (theTrajCleaner)
95  theTrajCleaner->clean(muonTrajectories, event, seeds); //used by reference...
96 
97  // convert the trajectories into tracks and load them in to the event
98  LogTrace(metname) << "Convert the trajectories into tracks and load them in to the event" << endl;
99  return load(muonTrajectories, event, *httopo);
100 }
101 
102 // reconstruct trajectories
103 void MuonTrackFinder::reconstruct(const std::vector<TrackCand>& staCandColl, Event& event, const edm::EventSetup& es) {
104  const string metname = "Muon|RecoMuon|MuonTrackFinder";
105 
106  // percolate the event
107  setEvent(event);
108 
110  es.get<TrackerTopologyRcd>().get(httopo);
111 
112  // Muon Candidate container
114 
115  // reconstruct the muon candidates
116  for (vector<TrackCand>::const_iterator staCand = staCandColl.begin(); staCand != staCandColl.end(); ++staCand) {
117  CandidateContainer muonCands_temp = theTrajBuilder->trajectories(*staCand);
118  muonCandidates.insert(muonCandidates.end(),
119  std::make_move_iterator(muonCands_temp.begin()),
120  std::make_move_iterator(muonCands_temp.end()));
121  }
122 
123  // clean the cloned candidates
124  if (theTrajCleaner)
126 
127  // convert the trajectories into staTracks and load them into the event
128  LogTrace(metname) << "Load Muon Candidates into the event" << endl;
129  load(muonCandidates, event, *httopo);
130 }
Propagator.h
Handle.h
Muon.h
MessageLogger.h
MuonTrackFinder::setEvent
void setEvent(const edm::Event &)
percolate the Event Setup
Definition: MuonTrackFinder.cc:52
MuonTrajectoryCleaner.h
edm
HLT enums.
Definition: AlignableModifier.h:19
TrackerTopology
Definition: TrackerTopology.h:16
QuarkoniaTrackSelector_cfi.muonCandidates
muonCandidates
Definition: QuarkoniaTrackSelector_cfi.py:4
MuonTrackFinder::theTrajBuilder
std::unique_ptr< MuonTrajectoryBuilder > theTrajBuilder
Definition: MuonTrackFinder.h:71
FastTrackerRecHitMaskProducer_cfi.trajectories
trajectories
Definition: FastTrackerRecHitMaskProducer_cfi.py:7
MuonTrackFinder::reconstruct
edm::OrphanHandle< reco::TrackCollection > reconstruct(const edm::Handle< edm::View< TrajectorySeed > > &, edm::Event &, const edm::EventSetup &)
reconstruct standalone tracks starting from a collection of seeds
Definition: MuonTrackFinder.cc:67
edm::Handle
Definition: AssociativeIterator.h:50
MuonTrackFinder::CandidateContainer
MuonCandidate::CandidateContainer CandidateContainer
Definition: MuonTrackFinder.h:34
MuonTrackFinder::MuonTrackFinder
MuonTrackFinder(std::unique_ptr< MuonTrajectoryBuilder > ConcreteMuonTrajectoryBuilder, std::unique_ptr< MuonTrackLoader > trackLoader)
Constructor, with default cleaner. For the STA reconstruction the trackLoader must have the propagato...
Definition: MuonTrackFinder.cc:32
TrackerTopology.h
trigger::size_type
uint16_t size_type
Definition: TriggerTypeDefs.h:18
TrackerTopologyRcd.h
Track.h
edm::EventSetup::get
T get() const
Definition: EventSetup.h:73
MuonTrackFinder::theTrajCleaner
std::unique_ptr< MuonTrajectoryCleaner > theTrajCleaner
Definition: MuonTrackFinder.h:73
MuonTrackLoader.h
MuonFwd.h
edm::ESHandle< TrackerTopology >
InitialStep_cff.seeds
seeds
Definition: InitialStep_cff.py:232
edm::View
Definition: CaloClusterFwd.h:14
Event.h
MuonTrajectoryCleaner
Definition: MuonTrajectoryCleaner.h:16
MuonTrackFinder.h
edm::EventSetup
Definition: EventSetup.h:57
get
#define get
TrajectorySeedCollection.h
MuonTrackFinder::theTrackLoader
std::unique_ptr< MuonTrackLoader > theTrackLoader
Definition: MuonTrackFinder.h:75
MuonTrackFinder::~MuonTrackFinder
virtual ~MuonTrackFinder()
destructor
Definition: MuonTrackFinder.cc:47
Trajectory.h
eostools.move
def move(src, dest)
Definition: eostools.py:511
std
Definition: JetResolutionObject.h:76
edm::OrphanHandle< reco::TrackCollection >
MuonTrackFinder::load
edm::OrphanHandle< reco::TrackCollection > load(TrajectoryContainer &, edm::Event &, const TrackerTopology &ttopo)
convert the trajectories into tracks and load them in to the event
Definition: MuonTrackFinder.cc:55
EventSetup.h
edm::View::const_iterator
boost::indirect_iterator< typename seq_t::const_iterator > const_iterator
Definition: View.h:86
MuonTrackFinder::TrajectoryContainer
MuonCandidate::TrajectoryContainer TrajectoryContainer
Definition: MuonTrackFinder.h:33
MuonTrajectoryBuilder.h
LogTrace
#define LogTrace(id)
Definition: MessageLogger.h:671
TrackerTopologyRcd
Definition: TrackerTopologyRcd.h:10
event
Definition: event.py:1
edm::Event
Definition: Event.h:73
SurveyInfoScenario_cff.seed
seed
Definition: SurveyInfoScenario_cff.py:295
metname
const std::string metname
Definition: MuonSeedOrcaPatternRecognition.cc:43