CMS 3D CMS Logo

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Types | Public Member Functions | Private Member Functions | Private Attributes
MuonTrackFinder Class Reference

#include <MuonTrackFinder.h>

Public Types

typedef MuonCandidate::CandidateContainer CandidateContainer
 
typedef std::pair< const Trajectory *, reco::TrackRefTrackCand
 
typedef MuonCandidate::TrajectoryContainer TrajectoryContainer
 

Public Member Functions

 MuonTrackFinder (MuonTrajectoryBuilder *ConcreteMuonTrajectoryBuilder, MuonTrackLoader *trackLoader)
 Constructor, with default cleaner. For the STA reconstruction the trackLoader must have the propagator. More...
 
 MuonTrackFinder (MuonTrajectoryBuilder *ConcreteMuonTrajectoryBuilder, MuonTrackLoader *trackLoader, MuonTrajectoryCleaner *cleaner)
 Constructor, with user-defined cleaner. For the STA reconstruction the trackLoader must have the propagator. More...
 
edm::OrphanHandle< reco::TrackCollectionreconstruct (const edm::Handle< edm::View< TrajectorySeed > > &, edm::Event &, const edm::EventSetup &)
 reconstruct standalone tracks starting from a collection of seeds More...
 
void reconstruct (const std::vector< TrackCand > &, edm::Event &, const edm::EventSetup &)
 
virtual ~MuonTrackFinder ()
 destructor More...
 

Private Member Functions

edm::OrphanHandle< reco::TrackCollectionload (const TrajectoryContainer &, edm::Event &, const TrackerTopology &ttopo)
 convert the trajectories into tracks and load them in to the event More...
 
void load (const CandidateContainer &, edm::Event &, const TrackerTopology &ttopo)
 convert the trajectories into tracks and load them in to the event More...
 
void setEvent (const edm::Event &)
 percolate the Event Setup More...
 

Private Attributes

MuonTrackLoadertheTrackLoader
 
MuonTrajectoryBuildertheTrajBuilder
 
MuonTrajectoryCleanertheTrajCleaner
 

Detailed Description

Track finder for the Muon Reco

Author
R. Bellan - INFN Torino

Concrete Track finder for the Muon Reco

Author
R. Bellan - INFN Torino

Definition at line 31 of file MuonTrackFinder.h.

Member Typedef Documentation

Definition at line 34 of file MuonTrackFinder.h.

Definition at line 35 of file MuonTrackFinder.h.

Definition at line 33 of file MuonTrackFinder.h.

Constructor & Destructor Documentation

MuonTrackFinder::MuonTrackFinder ( MuonTrajectoryBuilder ConcreteMuonTrajectoryBuilder,
MuonTrackLoader trackLoader 
)

Constructor, with default cleaner. For the STA reconstruction the trackLoader must have the propagator.

Definition at line 32 of file MuonTrackFinder.cc.

33  : theTrajBuilder(ConcreteMuonTrajectoryBuilder),
35  theTrackLoader(trackLoader) {}
MuonTrackLoader * theTrackLoader
MuonTrajectoryBuilder * theTrajBuilder
MuonTrajectoryCleaner * theTrajCleaner
MuonTrackFinder::MuonTrackFinder ( MuonTrajectoryBuilder ConcreteMuonTrajectoryBuilder,
MuonTrackLoader trackLoader,
MuonTrajectoryCleaner cleaner 
)

Constructor, with user-defined cleaner. For the STA reconstruction the trackLoader must have the propagator.

Definition at line 38 of file MuonTrackFinder.cc.

41  : theTrajBuilder(ConcreteMuonTrajectoryBuilder), theTrajCleaner(cleaner), theTrackLoader(trackLoader) {}
MuonTrackLoader * theTrackLoader
MuonTrajectoryBuilder * theTrajBuilder
MuonTrajectoryCleaner * theTrajCleaner
MuonTrackFinder::~MuonTrackFinder ( )
virtual

destructor

Definition at line 44 of file MuonTrackFinder.cc.

References LogTrace, theTrackLoader, theTrajBuilder, and theTrajCleaner.

44  {
45  LogTrace("Muon|RecoMuon|MuonTrackFinder") << "MuonTrackFinder destructor called" << endl;
46  delete theTrajBuilder;
47  delete theTrajCleaner;
48  delete theTrackLoader;
49 }
MuonTrackLoader * theTrackLoader
#define LogTrace(id)
MuonTrajectoryBuilder * theTrajBuilder
MuonTrajectoryCleaner * theTrajCleaner

Member Function Documentation

edm::OrphanHandle< reco::TrackCollection > MuonTrackFinder::load ( const TrajectoryContainer trajectories,
edm::Event event,
const TrackerTopology ttopo 
)
private

convert the trajectories into tracks and load them in to the event

Definition at line 55 of file MuonTrackFinder.cc.

References MuonTrackLoader::loadTracks(), and theTrackLoader.

Referenced by reconstruct().

57  {
58  return theTrackLoader->loadTracks(trajectories, event, ttopo);
59 }
edm::OrphanHandle< reco::TrackCollection > loadTracks(const TrajectoryContainer &, edm::Event &, const TrackerTopology &ttopo, const std::string &="", bool=true)
Convert the trajectories into tracks and load the tracks in the event.
MuonTrackLoader * theTrackLoader
void MuonTrackFinder::load ( const CandidateContainer muonCands,
edm::Event event,
const TrackerTopology ttopo 
)
private

convert the trajectories into tracks and load them in to the event

Definition at line 62 of file MuonTrackFinder.cc.

References MuonTrackLoader::loadTracks(), and theTrackLoader.

62  {
63  theTrackLoader->loadTracks(muonCands, event, ttopo);
64 }
edm::OrphanHandle< reco::TrackCollection > loadTracks(const TrajectoryContainer &, edm::Event &, const TrackerTopology &ttopo, const std::string &="", bool=true)
Convert the trajectories into tracks and load the tracks in the event.
MuonTrackLoader * theTrackLoader
edm::OrphanHandle< reco::TrackCollection > MuonTrackFinder::reconstruct ( const edm::Handle< edm::View< TrajectorySeed > > &  seeds,
edm::Event event,
const edm::EventSetup es 
)

reconstruct standalone tracks starting from a collection of seeds

Definition at line 67 of file MuonTrackFinder.cc.

References edm::View< T >::begin(), MuonTrajectoryCleaner::clean(), edm::View< T >::end(), edm::EventSetup::get(), load(), LogTrace, metname, SurveyInfoScenario_cff::seed, setEvent(), theTrajBuilder, theTrajCleaner, and MuonTrajectoryBuilder::trajectories().

Referenced by GlobalCosmicMuonProducer::produce().

68  {
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(*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 }
void clean(TrajectoryContainer &muonTrajectories, edm::Event &evt, const edm::Handle< edm::View< TrajectorySeed > > &seeds)
Clean the trajectories container, erasing the (worst) clone trajectory.
const std::string metname
uint16_t size_type
virtual TrajectoryContainer trajectories(const TrajectorySeed &)=0
return a container of the reconstructed trajectories compatible with a given seed ...
void setEvent(const edm::Event &)
percolate the Event Setup
edm::OrphanHandle< reco::TrackCollection > load(const TrajectoryContainer &, edm::Event &, const TrackerTopology &ttopo)
convert the trajectories into tracks and load them in to the event
#define LogTrace(id)
MuonCandidate::TrajectoryContainer TrajectoryContainer
MuonTrajectoryBuilder * theTrajBuilder
MuonTrajectoryCleaner * theTrajCleaner
boost::indirect_iterator< typename seq_t::const_iterator > const_iterator
Definition: View.h:86
T get() const
Definition: EventSetup.h:73
void MuonTrackFinder::reconstruct ( const std::vector< TrackCand > &  staCandColl,
edm::Event event,
const edm::EventSetup es 
)

reconstruct global tracks starting from a collection of standalone tracks and one of trakectories. If the latter is invalid, trajectories are refitted.

Definition at line 103 of file MuonTrackFinder.cc.

References MuonTrajectoryCleaner::clean(), edm::EventSetup::get(), load(), LogTrace, metname, QuarkoniaTrackSelector_cfi::muonCandidates, setEvent(), theTrajBuilder, theTrajCleaner, and MuonTrajectoryBuilder::trajectories().

103  {
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(), muonCands_temp.begin(), muonCands_temp.end());
119  }
120 
121  // clean the cloned candidates
122  if (theTrajCleaner)
123  theTrajCleaner->clean(muonCandidates);
124 
125  // convert the trajectories into staTracks and load them into the event
126  LogTrace(metname) << "Load Muon Candidates into the event" << endl;
127  load(muonCandidates, event, *httopo);
128 }
void clean(TrajectoryContainer &muonTrajectories, edm::Event &evt, const edm::Handle< edm::View< TrajectorySeed > > &seeds)
Clean the trajectories container, erasing the (worst) clone trajectory.
const std::string metname
virtual TrajectoryContainer trajectories(const TrajectorySeed &)=0
return a container of the reconstructed trajectories compatible with a given seed ...
void setEvent(const edm::Event &)
percolate the Event Setup
edm::OrphanHandle< reco::TrackCollection > load(const TrajectoryContainer &, edm::Event &, const TrackerTopology &ttopo)
convert the trajectories into tracks and load them in to the event
#define LogTrace(id)
MuonTrajectoryBuilder * theTrajBuilder
MuonTrajectoryCleaner * theTrajCleaner
T get() const
Definition: EventSetup.h:73
MuonCandidate::CandidateContainer CandidateContainer
void MuonTrackFinder::setEvent ( const edm::Event event)
private

percolate the Event Setup

Definition at line 52 of file MuonTrackFinder.cc.

References MuonTrajectoryBuilder::setEvent(), and theTrajBuilder.

Referenced by reconstruct().

52 { theTrajBuilder->setEvent(event); }
virtual void setEvent(const edm::Event &event)=0
pass the Event to the algo at each event
MuonTrajectoryBuilder * theTrajBuilder

Member Data Documentation

MuonTrackLoader* MuonTrackFinder::theTrackLoader
private

Definition at line 74 of file MuonTrackFinder.h.

Referenced by load(), and ~MuonTrackFinder().

MuonTrajectoryBuilder* MuonTrackFinder::theTrajBuilder
private

Definition at line 70 of file MuonTrackFinder.h.

Referenced by reconstruct(), setEvent(), and ~MuonTrackFinder().

MuonTrajectoryCleaner* MuonTrackFinder::theTrajCleaner
private

Definition at line 72 of file MuonTrackFinder.h.

Referenced by reconstruct(), and ~MuonTrackFinder().