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 93 of file MuonTrackLoader.cc.

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

References edm::ConsumesCollector::consumes(), edm::ParameterSet::getParameter(), edm::ParameterSet::getUntrackedParameter(), MuonUpdatorAtVertex_cff::MuonUpdatorAtVertex, 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 125 of file MuonTrackLoader.cc.

125 {}

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 672 of file MuonTrackLoader.cc.

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

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_2018_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 753 of file MuonTrackLoader.cc.

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

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 722 of file MuonTrackLoader.cc.

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

References pwdgSkimBPark_cfi::beamSpot, FreeTrajectoryState::charge(), FreeTrajectoryState::curvilinearError(), debug, LogTrace, metname, FreeTrajectoryState::momentum(), AlCaHLTBitMon_ParallelJobs::p, FreeTrajectoryState::position(), theService, theUpdatorAtVtx, HLT_2018_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 359 of file MuonTrackLoader.cc.

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

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 46 of file MuonTrackLoader.cc.

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

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
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
edm::LogInfo
Definition: MessageLogger.h:254
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
findQualityFiles.v
v
Definition: findQualityFiles.py:179
MuonTrackLoader::theSmoothTkTrackFlag
bool theSmoothTkTrackFlag
Definition: MuonTrackLoader.h:112
MuonTrackLoader::theAllowNoVtxFlag
bool theAllowNoVtxFlag
Definition: MuonTrackLoader.h:113
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:49
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
edm::LogWarning
Definition: MessageLogger.h:141
LogDebug
#define LogDebug(id)
Definition: MessageLogger.h:670
edm::ParameterSet
Definition: ParameterSet.h:36
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
edm::LogError
Definition: MessageLogger.h:183
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
MuonUpdatorAtVertex_cff.MuonUpdatorAtVertex
MuonUpdatorAtVertex
Definition: MuonUpdatorAtVertex_cff.py:3
MuonSubdetId::ME0
static constexpr int ME0
Definition: MuonSubdetId.h:15
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
edm::ParameterSet::getParameter
T getParameter(std::string const &) const
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
HLT_2018_cff.track
track
Definition: HLT_2018_cff.py:10352
MuonTrackLoader::TrajectoryContainer
MuonCandidate::TrajectoryContainer TrajectoryContainer
Definition: MuonTrackLoader.h:45
DetId::Muon
Definition: DetId.h:26
LogTrace
#define LogTrace(id)
Definition: MessageLogger.h:671
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:43