CMS 3D CMS Logo

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 (std::unique_ptr< MuonTrajectoryBuilder > ConcreteMuonTrajectoryBuilder, std::unique_ptr< MuonTrackLoader > trackLoader, edm::ConsumesCollector iC)
 Constructor, with default cleaner. For the STA reconstruction the trackLoader must have the propagator. More...
 
 MuonTrackFinder (std::unique_ptr< MuonTrajectoryBuilder > ConcreteMuonTrajectoryBuilder, std::unique_ptr< MuonTrackLoader > trackLoader, std::unique_ptr< MuonTrajectoryCleaner > cleaner, edm::ConsumesCollector iC)
 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

void load (CandidateContainer &, edm::Event &, const TrackerTopology &ttopo)
 convert the trajectories into tracks and load them in to the event More...
 
edm::OrphanHandle< reco::TrackCollectionload (TrajectoryContainer &, 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

std::unique_ptr< MuonTrackLoadertheTrackLoader
 
std::unique_ptr< MuonTrajectoryBuildertheTrajBuilder
 
std::unique_ptr< MuonTrajectoryCleanertheTrajCleaner
 
const edm::ESGetToken< TrackerTopology, TrackerTopologyRcdtheTtopoToken
 

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 26 of file MuonTrackFinder.h.

Member Typedef Documentation

◆ CandidateContainer

Definition at line 29 of file MuonTrackFinder.h.

◆ TrackCand

Definition at line 30 of file MuonTrackFinder.h.

◆ TrajectoryContainer

Definition at line 28 of file MuonTrackFinder.h.

Constructor & Destructor Documentation

◆ MuonTrackFinder() [1/2]

MuonTrackFinder::MuonTrackFinder ( std::unique_ptr< MuonTrajectoryBuilder ConcreteMuonTrajectoryBuilder,
std::unique_ptr< MuonTrackLoader trackLoader,
edm::ConsumesCollector  iC 
)

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

Definition at line 29 of file MuonTrackFinder.cc.

32  : MuonTrackFinder(std::move(ConcreteMuonTrajectoryBuilder),
33  std::move(trackLoader),
34  std::make_unique<MuonTrajectoryCleaner>(),
35  iC) {}

◆ MuonTrackFinder() [2/2]

MuonTrackFinder::MuonTrackFinder ( std::unique_ptr< MuonTrajectoryBuilder ConcreteMuonTrajectoryBuilder,
std::unique_ptr< MuonTrackLoader trackLoader,
std::unique_ptr< MuonTrajectoryCleaner cleaner,
edm::ConsumesCollector  iC 
)

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

Definition at line 38 of file MuonTrackFinder.cc.

42  : theTtopoToken(iC.esConsumes()),
43  theTrajBuilder(std::move(ConcreteMuonTrajectoryBuilder)),
44  theTrajCleaner(std::move(cleaner)),
45  theTrackLoader(std::move(trackLoader)) {}

◆ ~MuonTrackFinder()

MuonTrackFinder::~MuonTrackFinder ( )
virtual

destructor

Definition at line 48 of file MuonTrackFinder.cc.

48  {
49  LogTrace("Muon|RecoMuon|MuonTrackFinder") << "MuonTrackFinder destructor called" << endl;
50 }

References LogTrace.

Member Function Documentation

◆ load() [1/2]

void MuonTrackFinder::load ( CandidateContainer muonCands,
edm::Event event,
const TrackerTopology ttopo 
)
private

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

Definition at line 63 of file MuonTrackFinder.cc.

63  {
64  theTrackLoader->loadTracks(muonCands, event, ttopo);
65 }

References theTrackLoader.

◆ load() [2/2]

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

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

Definition at line 56 of file MuonTrackFinder.cc.

58  {
59  return theTrackLoader->loadTracks(trajectories, event, ttopo);
60 }

References theTrackLoader, and FastTrackerRecHitMaskProducer_cfi::trajectories.

Referenced by reconstruct().

◆ reconstruct() [1/2]

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 68 of file MuonTrackFinder.cc.

69  {
70  const string metname = "Muon|RecoMuon|MuonTrackFinder";
71  LogTrace(metname) << "SA Recostruction starting from: " << seeds->size() << endl;
72 
73  // Percolate the event
74  setEvent(event);
75 
76  const auto& ttopo = es.getData(theTtopoToken);
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, ttopo);
100 }

References edm::EventSetup::getData(), load(), LogTrace, metname, eostools::move(), fileCollector::seed, DetachedQuadStep_cff::seeds, setEvent(), theTrajBuilder, theTrajCleaner, and theTtopoToken.

◆ reconstruct() [2/2]

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.

103  {
104  const string metname = "Muon|RecoMuon|MuonTrackFinder";
105 
106  // percolate the event
107  setEvent(event);
108 
109  const auto& ttopo = es.getData(theTtopoToken);
110 
111  // Muon Candidate container
113 
114  // reconstruct the muon candidates
115  for (vector<TrackCand>::const_iterator staCand = staCandColl.begin(); staCand != staCandColl.end(); ++staCand) {
116  CandidateContainer muonCands_temp = theTrajBuilder->trajectories(*staCand);
117  muonCandidates.insert(muonCandidates.end(),
118  std::make_move_iterator(muonCands_temp.begin()),
119  std::make_move_iterator(muonCands_temp.end()));
120  }
121 
122  // clean the cloned candidates
123  if (theTrajCleaner)
125 
126  // convert the trajectories into staTracks and load them into the event
127  LogTrace(metname) << "Load Muon Candidates into the event" << endl;
128  load(muonCandidates, event, ttopo);
129 }

References edm::EventSetup::getData(), load(), LogTrace, metname, QuarkoniaTrackSelector_cfi::muonCandidates, setEvent(), theTrajBuilder, theTrajCleaner, and theTtopoToken.

◆ setEvent()

void MuonTrackFinder::setEvent ( const edm::Event event)
private

percolate the Event Setup

Definition at line 53 of file MuonTrackFinder.cc.

53 { theTrajBuilder->setEvent(event); }

References theTrajBuilder.

Referenced by reconstruct().

Member Data Documentation

◆ theTrackLoader

std::unique_ptr<MuonTrackLoader> MuonTrackFinder::theTrackLoader
private

Definition at line 74 of file MuonTrackFinder.h.

Referenced by load().

◆ theTrajBuilder

std::unique_ptr<MuonTrajectoryBuilder> MuonTrackFinder::theTrajBuilder
private

Definition at line 70 of file MuonTrackFinder.h.

Referenced by reconstruct(), and setEvent().

◆ theTrajCleaner

std::unique_ptr<MuonTrajectoryCleaner> MuonTrackFinder::theTrajCleaner
private

Definition at line 72 of file MuonTrackFinder.h.

Referenced by reconstruct().

◆ theTtopoToken

const edm::ESGetToken<TrackerTopology, TrackerTopologyRcd> MuonTrackFinder::theTtopoToken
private

Definition at line 68 of file MuonTrackFinder.h.

Referenced by reconstruct().

MuonTrackFinder::setEvent
void setEvent(const edm::Event &)
percolate the Event Setup
Definition: MuonTrackFinder.cc:53
QuarkoniaTrackSelector_cfi.muonCandidates
muonCandidates
Definition: QuarkoniaTrackSelector_cfi.py:4
MuonTrackFinder::theTrajBuilder
std::unique_ptr< MuonTrajectoryBuilder > theTrajBuilder
Definition: MuonTrackFinder.h:70
FastTrackerRecHitMaskProducer_cfi.trajectories
trajectories
Definition: FastTrackerRecHitMaskProducer_cfi.py:7
edm::ConsumesCollector::esConsumes
auto esConsumes()
Definition: ConsumesCollector.h:97
MuonTrackFinder::CandidateContainer
MuonCandidate::CandidateContainer CandidateContainer
Definition: MuonTrackFinder.h:29
fileCollector.seed
seed
Definition: fileCollector.py:127
trigger::size_type
uint16_t size_type
Definition: TriggerTypeDefs.h:18
MuonTrackFinder::theTrajCleaner
std::unique_ptr< MuonTrajectoryCleaner > theTrajCleaner
Definition: MuonTrackFinder.h:72
MuonTrackFinder::theTtopoToken
const edm::ESGetToken< TrackerTopology, TrackerTopologyRcd > theTtopoToken
Definition: MuonTrackFinder.h:68
MuonTrackFinder::MuonTrackFinder
MuonTrackFinder(std::unique_ptr< MuonTrajectoryBuilder > ConcreteMuonTrajectoryBuilder, std::unique_ptr< MuonTrackLoader > trackLoader, edm::ConsumesCollector iC)
Constructor, with default cleaner. For the STA reconstruction the trackLoader must have the propagato...
Definition: MuonTrackFinder.cc:29
MuonTrackFinder::theTrackLoader
std::unique_ptr< MuonTrackLoader > theTrackLoader
Definition: MuonTrackFinder.h:74
edm::EventSetup::getData
bool getData(T &iHolder) const
Definition: EventSetup.h:127
eostools.move
def move(src, dest)
Definition: eostools.py:511
DetachedQuadStep_cff.seeds
seeds
Definition: DetachedQuadStep_cff.py:195
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:56
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:28
LogTrace
#define LogTrace(id)
Definition: MessageLogger.h:234
event
Definition: event.py:1
metname
const std::string metname
Definition: MuonSeedOrcaPatternRecognition.cc:40