CMS 3D CMS Logo

List of all members | Public Types | Public Member Functions | Private Member Functions | Static Private Member Functions | Private Attributes
MuonTrackLoader Class Reference

#include <MuonTrackLoader.h>

Public Types

typedef MuonCandidate::CandidateContainer CandidateContainer
 
typedef MuonCandidate::TrajectoryContainer TrajectoryContainer
 

Public Member Functions

edm::OrphanHandle< reco::MuonTrackLinksCollectionloadTracks (CandidateContainer &, edm::Event &, const TrackerTopology &ttopo)
 Convert the trajectories into tracks and load the tracks in the event. More...
 
edm::OrphanHandle< reco::TrackCollectionloadTracks (TrajectoryContainer &, edm::Event &, const std::vector< std::pair< Trajectory *, reco::TrackRef > > &, edm::Handle< reco::TrackCollection > const &trackHandle, const TrackerTopology &ttopo, const std::string &="", bool=true)
 Convert the trajectories into tracks and load the tracks in the event. More...
 
edm::OrphanHandle< reco::TrackCollectionloadTracks (TrajectoryContainer &, edm::Event &, const TrackerTopology &ttopo, const std::string &="", bool=true)
 Convert the trajectories into tracks and load the tracks in the event. More...
 
edm::OrphanHandle< reco::TrackCollectionloadTracks (TrajectoryContainer &, edm::Event &, std::vector< bool > &, const TrackerTopology &ttopo, const std::string &="", bool=true)
 Convert the trajectories into tracks and load the tracks in the event. More...
 
 MuonTrackLoader (edm::ParameterSet &parameterSet, edm::ConsumesCollector &iC, const MuonServiceProxy *service=nullptr)
 Constructor for the STA reco the args must be specify! More...
 
virtual ~MuonTrackLoader ()
 Destructor. More...
 

Private Member Functions

std::pair< bool, reco::TrackbuildTrackAtPCA (const Trajectory &trajectory, const reco::BeamSpot &) const
 Build a track at the PCA WITHOUT any vertex constriant. More...
 
reco::TrackExtra buildTrackExtra (const Trajectory &) const
 
std::pair< bool, reco::TrackbuildTrackUpdatedAtPCA (const reco::Track &trackAtPCA, const reco::BeamSpot &) const
 Takes a track at the PCA and applies the vertex constriant. More...
 

Static Private Member Functions

static std::vector< const TrackingRecHit * > unpackHit (const TrackingRecHit &hit)
 

Private Attributes

TkClonerImpl hitCloner
 
bool theAllowNoVtxFlag
 
edm::InputTag theBeamSpotInputTag
 
edm::EDGetTokenT< reco::BeamSpottheBeamSpotToken
 
std::string theL2SeededTkLabel
 Label for L2SeededTracks. More...
 
bool thePutTkTrackFlag
 
const MuonServiceProxytheService
 
std::unique_ptr< TrajectorySmoothertheSmoother
 
std::string theSmootherName
 
bool theSmoothingStep
 
bool theSmoothTkTrackFlag
 
std::string theTrackerRecHitBuilderName
 
bool theTrajectoryFlag
 
bool theUpdatingAtVtx
 
std::unique_ptr< MuonUpdatorAtVertextheUpdatorAtVtx
 

Detailed Description

Class to load the tracks in the event, it provide some common functionalities both for all the RecoMuon producers.

Author
R. Bellan - INFN Torino ricca.nosp@m.rdo..nosp@m.bella.nosp@m.n@ce.nosp@m.rn.ch

Class to load the product in the event

Author
R. Bellan - INFN Torino ricca.nosp@m.rdo..nosp@m.bella.nosp@m.n@ce.nosp@m.rn.ch

Definition at line 43 of file MuonTrackLoader.h.

Member Typedef Documentation

◆ CandidateContainer

Definition at line 46 of file MuonTrackLoader.h.

◆ TrajectoryContainer

Definition at line 45 of file MuonTrackLoader.h.

Constructor & Destructor Documentation

◆ MuonTrackLoader()

MuonTrackLoader::MuonTrackLoader ( edm::ParameterSet parameterSet,
edm::ConsumesCollector iC,
const MuonServiceProxy service = nullptr 
)

Constructor for the STA reco the args must be specify!

Definition at line 95 of file MuonTrackLoader.cc.

98  : theService(service) {
99  // option to do or not the smoothing step.
100  // the trajectories which are passed to the track loader are supposed to be non-smoothed
101  theSmoothingStep = parameterSet.getParameter<bool>("DoSmoothing");
102  if (theSmoothingStep)
103  theSmootherName = parameterSet.getParameter<string>("Smoother");
104 
106 
107  // update at vertex
108  theUpdatingAtVtx = parameterSet.getParameter<bool>("VertexConstraint");
109 
110  // beam spot input tag
113 
114  // Flag to put the trajectory into the event
115  theTrajectoryFlag = parameterSet.getUntrackedParameter<bool>("PutTrajectoryIntoEvent", true);
116 
117  theL2SeededTkLabel = parameterSet.getUntrackedParameter<string>("MuonSeededTracksInstance", string());
118 
119  ParameterSet updatorPar = parameterSet.getParameter<ParameterSet>("MuonUpdatorAtVertexParameters");
120  theUpdatorAtVtx = std::make_unique<MuonUpdatorAtVertex>(updatorPar, service);
121 
122  thePutTkTrackFlag = parameterSet.getUntrackedParameter<bool>("PutTkTrackIntoEvent", false);
123  theSmoothTkTrackFlag = parameterSet.getUntrackedParameter<bool>("SmoothTkTrack", false);
124  theAllowNoVtxFlag = parameterSet.getUntrackedParameter<bool>("AllowNoVertex", false);
125 }

References edm::ConsumesCollector::consumes(), edm::ParameterSet::getParameter(), edm::ParameterSet::getUntrackedParameter(), edm::parameterSet(), AlCaHLTBitMon_QueryRunRegistry::string, theAllowNoVtxFlag, theBeamSpotInputTag, theBeamSpotToken, theL2SeededTkLabel, thePutTkTrackFlag, theSmootherName, theSmoothingStep, theSmoothTkTrackFlag, theTrackerRecHitBuilderName, theTrajectoryFlag, theUpdatingAtVtx, and theUpdatorAtVtx.

◆ ~MuonTrackLoader()

MuonTrackLoader::~MuonTrackLoader ( )
virtual

Destructor.

Definition at line 127 of file MuonTrackLoader.cc.

127 {}

Member Function Documentation

◆ buildTrackAtPCA()

pair< bool, reco::Track > MuonTrackLoader::buildTrackAtPCA ( const Trajectory trajectory,
const reco::BeamSpot beamSpot 
) const
private

Build a track at the PCA WITHOUT any vertex constriant.

Definition at line 674 of file MuonTrackLoader.cc.

675  {
676  const string metname = "Muon|RecoMuon|MuonTrackLoader";
677 
679 
680  // FIXME: check the prop direction
681  TrajectoryStateOnSurface innerTSOS = trajectory.geometricalInnermostState();
682 
683  // This is needed to extrapolate the tsos at vertex
684  LogTrace(metname) << "Propagate to PCA...";
685  pair<bool, FreeTrajectoryState> extrapolationResult = theUpdatorAtVtx->propagate(innerTSOS, beamSpot);
686  FreeTrajectoryState ftsAtVtx;
687 
688  if (extrapolationResult.first)
689  ftsAtVtx = extrapolationResult.second;
690  else {
691  if (TrackerBounds::isInside(innerTSOS.globalPosition())) {
692  LogInfo(metname) << "Track in the Tracker: taking the innermost state instead of the state at PCA";
693  ftsAtVtx = *innerTSOS.freeState();
694  } else {
695  if (theAllowNoVtxFlag) {
696  LogInfo(metname) << "Propagation to PCA failed, taking the innermost state instead of the state at PCA";
697  ftsAtVtx = *innerTSOS.freeState();
698  } else {
699  LogInfo(metname) << "Stand Alone track: this track will be rejected";
700  return pair<bool, reco::Track>(false, reco::Track());
701  }
702  }
703  }
704 
705  LogTrace(metname) << "TSOS after the extrapolation at vtx";
706  LogTrace(metname) << debug.dumpFTS(ftsAtVtx);
707 
708  GlobalPoint pca = ftsAtVtx.position();
709  math::XYZPoint persistentPCA(pca.x(), pca.y(), pca.z());
710  GlobalVector p = ftsAtVtx.momentum();
711  math::XYZVector persistentMomentum(p.x(), p.y(), p.z());
712 
713  bool bon = true;
714  if (fabs(theService->magneticField()->inTesla(GlobalPoint(0, 0, 0)).z()) < 0.01)
715  bon = false;
716  double ndof = trajectory.ndof(bon);
717 
719  trajectory.chiSquared(), ndof, persistentPCA, persistentMomentum, ftsAtVtx.charge(), ftsAtVtx.curvilinearError());
720 
721  return pair<bool, reco::Track>(true, track);
722 }

References pwdgSkimBPark_cfi::beamSpot, FreeTrajectoryState::charge(), Trajectory::chiSquared(), FreeTrajectoryState::curvilinearError(), debug, TrajectoryStateOnSurface::freeState(), Trajectory::geometricalInnermostState(), TrajectoryStateOnSurface::globalPosition(), TrackerBounds::isInside(), LogTrace, metname, FreeTrajectoryState::momentum(), ndof, Trajectory::ndof(), AlCaHLTBitMon_ParallelJobs::p, FreeTrajectoryState::position(), theAllowNoVtxFlag, theService, theUpdatorAtVtx, HLT_FULL_cff::track, PV3DBase< T, PVType, FrameType >::x(), PV3DBase< T, PVType, FrameType >::y(), and PV3DBase< T, PVType, FrameType >::z().

◆ buildTrackExtra()

reco::TrackExtra MuonTrackLoader::buildTrackExtra ( const Trajectory trajectory) const
private

Definition at line 755 of file MuonTrackLoader.cc.

755  {
756  const string metname = "Muon|RecoMuon|MuonTrackLoader";
757 
758  const Trajectory::RecHitContainer transRecHits = trajectory.recHits();
759 
760  // put the collection of TrackingRecHit in the event
761 
762  // sets the outermost and innermost TSOSs
763  // FIXME: check it!
764  TrajectoryStateOnSurface outerTSOS;
765  TrajectoryStateOnSurface innerTSOS;
766  unsigned int innerId = 0, outerId = 0;
768  DetId outerDetId;
769 
770  if (trajectory.direction() == alongMomentum) {
771  LogTrace(metname) << "alongMomentum";
772  outerTSOS = trajectory.lastMeasurement().updatedState();
773  innerTSOS = trajectory.firstMeasurement().updatedState();
774  outerId = trajectory.lastMeasurement().recHit()->geographicalId().rawId();
775  innerId = trajectory.firstMeasurement().recHit()->geographicalId().rawId();
776  outerRecHit = trajectory.lastMeasurement().recHit();
777  outerDetId = trajectory.lastMeasurement().recHit()->geographicalId();
778  } else if (trajectory.direction() == oppositeToMomentum) {
779  LogTrace(metname) << "oppositeToMomentum";
780  outerTSOS = trajectory.firstMeasurement().updatedState();
781  innerTSOS = trajectory.lastMeasurement().updatedState();
782  outerId = trajectory.firstMeasurement().recHit()->geographicalId().rawId();
783  innerId = trajectory.lastMeasurement().recHit()->geographicalId().rawId();
784  outerRecHit = trajectory.firstMeasurement().recHit();
785  outerDetId = trajectory.firstMeasurement().recHit()->geographicalId();
786  } else
787  LogError(metname) << "Wrong propagation direction!";
788 
789  const GeomDet* outerDet = theService->trackingGeometry()->idToDet(outerDetId);
790  GlobalPoint outerTSOSPos = outerTSOS.globalParameters().position();
791  bool inside = outerDet->surface().bounds().inside(outerDet->toLocal(outerTSOSPos));
792 
793  GlobalPoint hitPos =
794  (outerRecHit->isValid()) ? outerRecHit->globalPosition() : outerTSOS.globalParameters().position();
795 
796  if (!inside) {
797  LogTrace(metname) << "The Global Muon outerMostMeasurementState is not compatible with the recHit detector! "
798  "Setting outerMost postition to recHit position if recHit isValid: "
799  << outerRecHit->isValid();
800  LogTrace(metname) << "From " << outerTSOSPos << " to " << hitPos;
801  }
802 
803  //build the TrackExtra
804  GlobalPoint v = (inside) ? outerTSOSPos : hitPos;
805  GlobalVector p = outerTSOS.globalParameters().momentum();
806  math::XYZPoint outpos(v.x(), v.y(), v.z());
807  math::XYZVector outmom(p.x(), p.y(), p.z());
808 
809  v = innerTSOS.globalParameters().position();
810  p = innerTSOS.globalParameters().momentum();
811  math::XYZPoint inpos(v.x(), v.y(), v.z());
812  math::XYZVector inmom(p.x(), p.y(), p.z());
813 
814  reco::TrackExtra trackExtra(outpos,
815  outmom,
816  true,
817  inpos,
818  inmom,
819  true,
820  outerTSOS.curvilinearError(),
821  outerId,
822  innerTSOS.curvilinearError(),
823  innerId,
824  trajectory.direction(),
825  trajectory.seedRef());
826 
827  return trackExtra;
828 }

References alongMomentum, Surface::bounds(), TrajectoryStateOnSurface::curvilinearError(), Trajectory::direction(), Trajectory::firstMeasurement(), TrajectoryStateOnSurface::globalParameters(), Bounds::inside(), Trajectory::lastMeasurement(), LogTrace, metname, GlobalTrajectoryParameters::momentum(), oppositeToMomentum, AlCaHLTBitMon_ParallelJobs::p, GlobalTrajectoryParameters::position(), TrajectoryMeasurement::recHit(), Trajectory::recHits(), Trajectory::seedRef(), GeomDet::surface(), theService, GeomDet::toLocal(), TrajectoryMeasurement::updatedState(), and findQualityFiles::v.

◆ buildTrackUpdatedAtPCA()

pair< bool, reco::Track > MuonTrackLoader::buildTrackUpdatedAtPCA ( const reco::Track trackAtPCA,
const reco::BeamSpot beamSpot 
) const
private

Takes a track at the PCA and applies the vertex constriant.

Definition at line 724 of file MuonTrackLoader.cc.

725  {
726  const string metname = "Muon|RecoMuon|MuonTrackLoader";
728 
729  // build the transient track
730  reco::TransientTrack transientTrack(track, &*theService->magneticField(), theService->trackingGeometry());
731 
732  LogTrace(metname) << "Apply the vertex constraint";
733  pair<bool, FreeTrajectoryState> updateResult = theUpdatorAtVtx->update(transientTrack, beamSpot);
734 
735  if (!updateResult.first) {
736  return pair<bool, reco::Track>(false, reco::Track());
737  }
738 
739  LogTrace(metname) << "FTS after the vertex constraint";
740  FreeTrajectoryState& ftsAtVtx = updateResult.second;
741 
742  LogTrace(metname) << debug.dumpFTS(ftsAtVtx);
743 
744  GlobalPoint pca = ftsAtVtx.position();
745  math::XYZPoint persistentPCA(pca.x(), pca.y(), pca.z());
746  GlobalVector p = ftsAtVtx.momentum();
747  math::XYZVector persistentMomentum(p.x(), p.y(), p.z());
748 
749  reco::Track updatedTrack(
750  track.chi2(), track.ndof(), persistentPCA, persistentMomentum, ftsAtVtx.charge(), ftsAtVtx.curvilinearError());
751 
752  return pair<bool, reco::Track>(true, updatedTrack);
753 }

References pwdgSkimBPark_cfi::beamSpot, FreeTrajectoryState::charge(), FreeTrajectoryState::curvilinearError(), debug, LogTrace, metname, FreeTrajectoryState::momentum(), AlCaHLTBitMon_ParallelJobs::p, FreeTrajectoryState::position(), theService, theUpdatorAtVtx, HLT_FULL_cff::track, PV3DBase< T, PVType, FrameType >::x(), PV3DBase< T, PVType, FrameType >::y(), and PV3DBase< T, PVType, FrameType >::z().

◆ loadTracks() [1/4]

OrphanHandle< reco::MuonTrackLinksCollection > MuonTrackLoader::loadTracks ( CandidateContainer muonCands,
edm::Event event,
const TrackerTopology ttopo 
)

Convert the trajectories into tracks and load the tracks in the event.

Definition at line 361 of file MuonTrackLoader.cc.

363  {
364  const string metname = "Muon|RecoMuon|MuonTrackLoader";
365 
366  // the muon collection, it will be loaded in the event
367  auto trackLinksCollection = std::make_unique<reco::MuonTrackLinksCollection>();
368 
369  // don't waste any time...
370  if (muonCands.empty()) {
371  auto trackExtraCollection = std::make_unique<reco::TrackExtraCollection>();
372  auto recHitCollection = std::make_unique<TrackingRecHitCollection>();
373  auto trackCollection = std::make_unique<reco::TrackCollection>();
374 
375  event.put(std::move(recHitCollection));
376  event.put(std::move(trackExtraCollection));
377  event.put(std::move(trackCollection));
378 
379  //need to also put the tracker tracks collection if requested
380  if (thePutTkTrackFlag) {
381  //will take care of putting nothing in the event but the empty collection
382  TrajectoryContainer trackerTrajs;
384  }
385 
386  return event.put(std::move(trackLinksCollection));
387  }
388 
389  // get combined Trajectories
390  TrajectoryContainer combinedTrajs;
391  TrajectoryContainer trackerTrajs;
392  for (CandidateContainer::iterator it = muonCands.begin(); it != muonCands.end(); ++it) {
393  LogDebug(metname) << "Loader glbSeedRef " << (*it)->trajectory()->seedRef().isNonnull();
394  if ((*it)->trackerTrajectory())
395  LogDebug(metname) << " "
396  << "tkSeedRef " << (*it)->trackerTrajectory()->seedRef().isNonnull();
397 
398  combinedTrajs.push_back((*it)->releaseTrajectory());
399  {
400  auto tt = (*it)->releaseTrackerTrajectory();
401  if (thePutTkTrackFlag)
402  trackerTrajs.push_back(std::move(tt));
403  }
404 
405  // // Create the links between sta and tracker tracks
406  // reco::MuonTrackLinks links;
407  // links.setStandAloneTrack((*it)->muonTrack());
408  // links.setTrackerTrack((*it)->trackerTrack());
409  // trackLinksCollection->push_back(links);
410  // delete *it;
411  }
412 
413  // create the TrackCollection of combined Trajectories
414  // FIXME: could this be done one track at a time in the previous loop?
415  LogTrace(metname) << "Build combinedTracks";
416  std::vector<bool> combTksVec(combinedTrajs.size(), false);
417  OrphanHandle<reco::TrackCollection> combinedTracks = loadTracks(combinedTrajs, event, combTksVec, ttopo);
418 
420  std::vector<bool> trackerTksVec(trackerTrajs.size(), false);
421  if (thePutTkTrackFlag) {
422  LogTrace(metname) << "Build trackerTracks: " << trackerTrajs.size();
423  trackerTracks = loadTracks(trackerTrajs, event, trackerTksVec, ttopo, theL2SeededTkLabel, theSmoothTkTrackFlag);
424  }
425 
426  trackerTrajs.clear();
427 
428  LogTrace(metname) << "Set the final links in the MuonTrackLinks collection";
429 
430  unsigned int candposition(0), position(0), tkposition(0);
431  //reco::TrackCollection::const_iterator glIt = combinedTracks->begin(),
432  // glEnd = combinedTracks->end();
433 
434  for (CandidateContainer::const_iterator it = muonCands.begin(); it != muonCands.end(); ++it, ++candposition) {
435  // The presence of the global track determines whether to fill the MuonTrackLinks or not
436  // N.B. We are assuming here that the global tracks in "combinedTracks"
437  // have the same order as the muon candidates in "muonCands"
438  // (except for possible missing tracks), which should always be the case...
439  //if( glIt == glEnd ) break;
440  if (combTksVec[candposition]) {
441  reco::TrackRef combinedTR(combinedTracks, position++);
442  //++glIt;
443 
444  // Create the links between sta and tracker tracks
446  links.setStandAloneTrack((*it)->muonTrack());
447  links.setTrackerTrack((*it)->trackerTrack());
448  links.setGlobalTrack(combinedTR);
449 
450  if (thePutTkTrackFlag && trackerTksVec[candposition]) {
451  reco::TrackRef trackerTR(trackerTracks, tkposition++);
452  links.setTrackerTrack(trackerTR);
453  }
454 
455  trackLinksCollection->push_back(links);
456  }
457 
458  else { // if no global track, still increment the tracker-track counter when appropriate
459  if (thePutTkTrackFlag && trackerTksVec[candposition])
460  tkposition++;
461  }
462  }
463 
464  if (thePutTkTrackFlag && trackerTracks.isValid() && !(!combinedTracks->empty() && !trackerTracks->empty()))
465  LogWarning(metname) << "The MuonTrackLinkCollection is incomplete";
466 
467  // put the MuonCollection in the event
468  LogTrace(metname) << "put the MuonCollection in the event"
469  << "\n";
470 
471  return event.put(std::move(trackLinksCollection));
472 }

References edm::OrphanHandleBase::isValid(), electronStore::links, loadTracks(), LogDebug, LogTrace, metname, eostools::move(), position, theL2SeededTkLabel, thePutTkTrackFlag, theSmoothTkTrackFlag, duplicaterechits_cfi::trackCollection, and groupFilesInBlocks::tt.

◆ loadTracks() [2/4]

edm::OrphanHandle<reco::TrackCollection> MuonTrackLoader::loadTracks ( TrajectoryContainer ,
edm::Event ,
const std::vector< std::pair< Trajectory *, reco::TrackRef > > &  ,
edm::Handle< reco::TrackCollection > const &  trackHandle,
const TrackerTopology ttopo,
const std::string &  = "",
bool  = true 
)

Convert the trajectories into tracks and load the tracks in the event.

◆ loadTracks() [3/4]

edm::OrphanHandle<reco::TrackCollection> MuonTrackLoader::loadTracks ( TrajectoryContainer ,
edm::Event ,
const TrackerTopology ttopo,
const std::string &  = "",
bool  = true 
)

Convert the trajectories into tracks and load the tracks in the event.

Referenced by loadTracks().

◆ loadTracks() [4/4]

edm::OrphanHandle<reco::TrackCollection> MuonTrackLoader::loadTracks ( TrajectoryContainer ,
edm::Event ,
std::vector< bool > &  ,
const TrackerTopology ttopo,
const std::string &  = "",
bool  = true 
)

Convert the trajectories into tracks and load the tracks in the event.

◆ unpackHit()

std::vector< const TrackingRecHit * > MuonTrackLoader::unpackHit ( const TrackingRecHit hit)
staticprivate

Definition at line 48 of file MuonTrackLoader.cc.

48  {
49  // get rec hit det id and rec hit type
50  DetId id = hit.geographicalId();
51  uint16_t detid = id.det();
52 
53  std::vector<const TrackingRecHit*> hits;
54 
55  if (detid == DetId::Tracker) {
56  hits.push_back(&hit);
57  } else if (detid == DetId::Muon) {
58  uint16_t subdet = id.subdetId();
59  if (subdet == (uint16_t)MuonSubdetId::DT) {
60  if (hit.dimension() == 1) { // DT rechit (granularity 2)
61  hits.push_back(&hit);
62  } else if (hit.dimension() > 1) { // 4D segment (granularity 0).
63  // Both 2 and 4 dim cases. MB4s have 2D, but formatted in 4D segment
64  // 4D --> 2D
65  std::vector<const TrackingRecHit*> seg2D = hit.recHits();
66  // load 1D hits (2D --> 1D)
67  for (std::vector<const TrackingRecHit*>::const_iterator it = seg2D.begin(); it != seg2D.end(); ++it) {
68  std::vector<const TrackingRecHit*> hits1D = (*it)->recHits();
69  copy(hits1D.begin(), hits1D.end(), back_inserter(hits));
70  }
71  }
72  } else if (subdet == (uint16_t)MuonSubdetId::CSC) {
73  if (hit.dimension() == 2) { // CSC rechit (granularity 2)
74  hits.push_back(&hit);
75  } else if (hit.dimension() == 4) { // 4D segment (granularity 0)
76  // load 2D hits (4D --> 1D)
77  hits = hit.recHits();
78  }
79  } else if (subdet == (uint16_t)MuonSubdetId::RPC) {
80  hits.push_back(&hit);
81  } else if (subdet == (uint16_t)MuonSubdetId::GEM) {
82  if (hit.dimension() == 2) { // GEM rechit
83  hits.push_back(&hit);
84  } else if (hit.dimension() == 4) { // GEM segment
85  hits = hit.recHits();
86  }
87  } else if (subdet == (uint16_t)MuonSubdetId::ME0) { //segment
88  hits = hit.recHits();
89  }
90  }
91  return hits;
92 }

References filterCSVwithJSON::copy, MuonSubdetId::CSC, MuonSubdetId::DT, MuonSubdetId::GEM, hfClusterShapes_cfi::hits, MuonSubdetId::ME0, DetId::Muon, MuonSubdetId::RPC, and DetId::Tracker.

Member Data Documentation

◆ hitCloner

TkClonerImpl MuonTrackLoader::hitCloner
private

Definition at line 104 of file MuonTrackLoader.h.

◆ theAllowNoVtxFlag

bool MuonTrackLoader::theAllowNoVtxFlag
private

Definition at line 113 of file MuonTrackLoader.h.

Referenced by buildTrackAtPCA(), and MuonTrackLoader().

◆ theBeamSpotInputTag

edm::InputTag MuonTrackLoader::theBeamSpotInputTag
private

Definition at line 106 of file MuonTrackLoader.h.

Referenced by MuonTrackLoader().

◆ theBeamSpotToken

edm::EDGetTokenT<reco::BeamSpot> MuonTrackLoader::theBeamSpotToken
private

Definition at line 107 of file MuonTrackLoader.h.

Referenced by MuonTrackLoader().

◆ theL2SeededTkLabel

std::string MuonTrackLoader::theL2SeededTkLabel
private

Label for L2SeededTracks.

Definition at line 110 of file MuonTrackLoader.h.

Referenced by loadTracks(), and MuonTrackLoader().

◆ thePutTkTrackFlag

bool MuonTrackLoader::thePutTkTrackFlag
private

Definition at line 111 of file MuonTrackLoader.h.

Referenced by loadTracks(), and MuonTrackLoader().

◆ theService

const MuonServiceProxy* MuonTrackLoader::theService
private

Definition at line 93 of file MuonTrackLoader.h.

Referenced by buildTrackAtPCA(), buildTrackExtra(), and buildTrackUpdatedAtPCA().

◆ theSmoother

std::unique_ptr<TrajectorySmoother> MuonTrackLoader::theSmoother
private

Definition at line 103 of file MuonTrackLoader.h.

◆ theSmootherName

std::string MuonTrackLoader::theSmootherName
private

Definition at line 101 of file MuonTrackLoader.h.

Referenced by MuonTrackLoader().

◆ theSmoothingStep

bool MuonTrackLoader::theSmoothingStep
private

Definition at line 100 of file MuonTrackLoader.h.

Referenced by MuonTrackLoader().

◆ theSmoothTkTrackFlag

bool MuonTrackLoader::theSmoothTkTrackFlag
private

Definition at line 112 of file MuonTrackLoader.h.

Referenced by loadTracks(), and MuonTrackLoader().

◆ theTrackerRecHitBuilderName

std::string MuonTrackLoader::theTrackerRecHitBuilderName
private

Definition at line 102 of file MuonTrackLoader.h.

Referenced by MuonTrackLoader().

◆ theTrajectoryFlag

bool MuonTrackLoader::theTrajectoryFlag
private

Definition at line 98 of file MuonTrackLoader.h.

Referenced by MuonTrackLoader().

◆ theUpdatingAtVtx

bool MuonTrackLoader::theUpdatingAtVtx
private

Definition at line 95 of file MuonTrackLoader.h.

Referenced by MuonTrackLoader().

◆ theUpdatorAtVtx

std::unique_ptr<MuonUpdatorAtVertex> MuonTrackLoader::theUpdatorAtVtx
private

Definition at line 96 of file MuonTrackLoader.h.

Referenced by buildTrackAtPCA(), buildTrackUpdatedAtPCA(), and MuonTrackLoader().

Vector3DBase
Definition: Vector3DBase.h:8
MuonSubdetId::GEM
static constexpr int GEM
Definition: MuonSubdetId.h:14
FreeTrajectoryState::momentum
GlobalVector momentum() const
Definition: FreeTrajectoryState.h:68
service
Definition: service.py:1
MuonSubdetId::CSC
static constexpr int CSC
Definition: MuonSubdetId.h:12
pwdgSkimBPark_cfi.beamSpot
beamSpot
Definition: pwdgSkimBPark_cfi.py:5
HLT_FULL_cff.track
track
Definition: HLT_FULL_cff.py:11713
GeomDet
Definition: GeomDet.h:27
MuonTrackLoader::theUpdatingAtVtx
bool theUpdatingAtVtx
Definition: MuonTrackLoader.h:95
hfClusterShapes_cfi.hits
hits
Definition: hfClusterShapes_cfi.py:5
filterCSVwithJSON.copy
copy
Definition: filterCSVwithJSON.py:36
groupFilesInBlocks.tt
int tt
Definition: groupFilesInBlocks.py:144
Trajectory::seedRef
edm::RefToBase< TrajectorySeed > seedRef(void) const
Definition: Trajectory.h:303
Trajectory::chiSquared
float chiSquared() const
Definition: Trajectory.h:241
GlobalTrajectoryParameters::position
GlobalPoint position() const
Definition: GlobalTrajectoryParameters.h:60
PV3DBase::x
T x() const
Definition: PV3DBase.h:59
Trajectory::direction
PropagationDirection const & direction() const
Definition: Trajectory.cc:133
MuonTrackLoader::thePutTkTrackFlag
bool thePutTkTrackFlag
Definition: MuonTrackLoader.h:111
AlCaHLTBitMon_ParallelJobs.p
p
Definition: AlCaHLTBitMon_ParallelJobs.py:153
TrajectoryStateOnSurface::globalPosition
GlobalPoint globalPosition() const
Definition: TrajectoryStateOnSurface.h:65
FreeTrajectoryState::charge
TrackCharge charge() const
Definition: FreeTrajectoryState.h:69
oppositeToMomentum
Definition: PropagationDirection.h:4
TrajectoryMeasurement::updatedState
TrajectoryStateOnSurface const & updatedState() const
Definition: TrajectoryMeasurement.h:184
edm::ParameterSet::getUntrackedParameter
T getUntrackedParameter(std::string const &, T const &) const
FreeTrajectoryState::position
GlobalPoint position() const
Definition: FreeTrajectoryState.h:67
edm::LogInfo
Log< level::Info, false > LogInfo
Definition: MessageLogger.h:125
findQualityFiles.v
v
Definition: findQualityFiles.py:179
MuonTrackLoader::theSmoothTkTrackFlag
bool theSmoothTkTrackFlag
Definition: MuonTrackLoader.h:112
MuonTrackLoader::theAllowNoVtxFlag
bool theAllowNoVtxFlag
Definition: MuonTrackLoader.h:113
edm::LogWarning
Log< level::Warning, false > LogWarning
Definition: MessageLogger.h:122
Trajectory::geometricalInnermostState
TrajectoryStateOnSurface geometricalInnermostState() const
Definition: Trajectory.cc:217
TrackerBounds::isInside
static bool isInside(const GlobalPoint &)
Definition: TrackerBounds.cc:37
edm::Ref< TrackCollection >
PV3DBase::z
T z() const
Definition: PV3DBase.h:61
ndof
Definition: HIMultiTrackSelector.h:49
DetId
Definition: DetId.h:17
reco::TrackExtra
Definition: TrackExtra.h:26
GeomDet::surface
const Plane & surface() const
The nominal surface of the GeomDet.
Definition: GeomDet.h:37
TrajectoryStateOnSurface
Definition: TrajectoryStateOnSurface.h:16
debug
#define debug
Definition: HDRShower.cc:19
TrajectoryStateOnSurface::freeState
FreeTrajectoryState const * freeState(bool withErrors=true) const
Definition: TrajectoryStateOnSurface.h:58
MuonPatternRecoDumper
Definition: MuonPatternRecoDumper.h:18
Bounds::inside
virtual bool inside(const Local3DPoint &) const =0
Determine if the point is inside the bounds.
MuonTrackLoader::loadTracks
edm::OrphanHandle< reco::TrackCollection > loadTracks(TrajectoryContainer &, edm::Event &, const TrackerTopology &ttopo, const std::string &="", bool=true)
Convert the trajectories into tracks and load the tracks in the event.
FreeTrajectoryState::curvilinearError
const CurvilinearTrajectoryError & curvilinearError() const
Definition: FreeTrajectoryState.h:89
Surface::bounds
const Bounds & bounds() const
Definition: Surface.h:87
reco::BeamSpot
Definition: BeamSpot.h:21
reco::Track
Definition: Track.h:27
edm::ConsumesCollector::consumes
EDGetTokenT< ProductType > consumes(edm::InputTag const &tag)
Definition: ConsumesCollector.h:55
MuonTrackLoader::theTrajectoryFlag
bool theTrajectoryFlag
Definition: MuonTrackLoader.h:98
MuonSubdetId::DT
static constexpr int DT
Definition: MuonSubdetId.h:11
GlobalPoint
Global3DPoint GlobalPoint
Definition: GlobalPoint.h:10
Point3DBase< float, GlobalTag >
GeomDet::toLocal
LocalPoint toLocal(const GlobalPoint &gp) const
Conversion to the R.F. of the GeomDet.
Definition: GeomDet.h:58
GlobalTrajectoryParameters::momentum
GlobalVector momentum() const
Definition: GlobalTrajectoryParameters.h:65
MuonTrackLoader::theBeamSpotInputTag
edm::InputTag theBeamSpotInputTag
Definition: MuonTrackLoader.h:106
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
MuonTrackLoader::theService
const MuonServiceProxy * theService
Definition: MuonTrackLoader.h:93
LogDebug
#define LogDebug(id)
Definition: MessageLogger.h:223
edm::ParameterSet
Definition: ParameterSet.h:47
math::XYZPoint
XYZPointD XYZPoint
point in space with cartesian internal representation
Definition: Point3D.h:12
Trajectory::ndof
int ndof(bool bon=true) const
Definition: Trajectory.cc:97
Trajectory::RecHitContainer
ConstRecHitContainer RecHitContainer
Definition: Trajectory.h:42
DetId::Tracker
Definition: DetId.h:25
duplicaterechits_cfi.trackCollection
trackCollection
Definition: duplicaterechits_cfi.py:4
MuonTrackLoader::theL2SeededTkLabel
std::string theL2SeededTkLabel
Label for L2SeededTracks.
Definition: MuonTrackLoader.h:110
Trajectory::lastMeasurement
TrajectoryMeasurement const & lastMeasurement() const
Definition: Trajectory.h:150
math::XYZVector
XYZVectorD XYZVector
spatial vector with cartesian internal representation
Definition: Vector3D.h:31
position
static int position[264][3]
Definition: ReadPGInfo.cc:289
PV3DBase::y
T y() const
Definition: PV3DBase.h:60
MuonSubdetId::ME0
static constexpr int ME0
Definition: MuonSubdetId.h:15
edm::LogError
Log< level::Error, false > LogError
Definition: MessageLogger.h:123
MuonTrackLoader::theUpdatorAtVtx
std::unique_ptr< MuonUpdatorAtVertex > theUpdatorAtVtx
Definition: MuonTrackLoader.h:96
edm::OrphanHandleBase::isValid
bool isValid() const
Definition: OrphanHandleBase.h:53
TrajectoryMeasurement::recHit
ConstRecHitPointer const & recHit() const
Definition: TrajectoryMeasurement.h:190
MuonTrackLoader::theSmootherName
std::string theSmootherName
Definition: MuonTrackLoader.h:101
Trajectory::recHits
ConstRecHitContainer recHits() const
Definition: Trajectory.h:186
eostools.move
def move(src, dest)
Definition: eostools.py:511
edm::OrphanHandle< reco::TrackCollection >
Trajectory::firstMeasurement
TrajectoryMeasurement const & firstMeasurement() const
Definition: Trajectory.h:166
reco::TransientTrack
Definition: TransientTrack.h:19
MuonTrackLoader::theTrackerRecHitBuilderName
std::string theTrackerRecHitBuilderName
Definition: MuonTrackLoader.h:102
FreeTrajectoryState
Definition: FreeTrajectoryState.h:27
MuonTrackLoader::theBeamSpotToken
edm::EDGetTokenT< reco::BeamSpot > theBeamSpotToken
Definition: MuonTrackLoader.h:107
TrajectoryMeasurement::ConstRecHitPointer
TrackingRecHit::ConstRecHitPointer ConstRecHitPointer
Definition: TrajectoryMeasurement.h:28
MuonSubdetId::RPC
static constexpr int RPC
Definition: MuonSubdetId.h:13
TrajectoryStateOnSurface::curvilinearError
const CurvilinearTrajectoryError & curvilinearError() const
Definition: TrajectoryStateOnSurface.h:72
electronStore.links
links
Definition: electronStore.py:149
edm::parameterSet
ParameterSet const & parameterSet(Provenance const &provenance, ProcessHistory const &history)
Definition: Provenance.cc:11
edm::ParameterSet::getParameter
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
MuonTrackLoader::TrajectoryContainer
MuonCandidate::TrajectoryContainer TrajectoryContainer
Definition: MuonTrackLoader.h:45
DetId::Muon
Definition: DetId.h:26
LogTrace
#define LogTrace(id)
Definition: MessageLogger.h:224
TrajectoryStateOnSurface::globalParameters
const GlobalTrajectoryParameters & globalParameters() const
Definition: TrajectoryStateOnSurface.h:64
event
Definition: event.py:1
MuonTrackLoader::theSmoothingStep
bool theSmoothingStep
Definition: MuonTrackLoader.h:100
edm::InputTag
Definition: InputTag.h:15
alongMomentum
Definition: PropagationDirection.h:4
hit
Definition: SiStripHitEffFromCalibTree.cc:88
metname
const std::string metname
Definition: MuonSeedOrcaPatternRecognition.cc:40