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
MuonTrackLoader Class Reference

#include <MuonTrackLoader.h>

Public Types

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

Public Member Functions

edm::OrphanHandle
< reco::TrackCollection
loadTracks (const TrajectoryContainer &, edm::Event &, const std::string &="", bool=true)
 Convert the trajectories into tracks and load the tracks in the event. More...
 
edm::OrphanHandle
< reco::TrackCollection
loadTracks (const TrajectoryContainer &, edm::Event &, std::vector< std::pair< Trajectory *, reco::TrackRef > >, const std::string &="", bool=true)
 Convert the trajectories into tracks and load the tracks in the event. More...
 
edm::OrphanHandle
< reco::MuonTrackLinksCollection
loadTracks (const CandidateContainer &, edm::Event &)
 Convert the trajectories into tracks and load the tracks in the event. More...
 
 MuonTrackLoader (edm::ParameterSet &parameterSet, const MuonServiceProxy *service=0)
 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...
 

Private Attributes

bool theAllowNoVtxFlag
 
edm::InputTag theBeamSpotInputTag
 
std::string theL2SeededTkLabel
 Label for L2SeededTracks. More...
 
bool thePutTkTrackFlag
 
const MuonServiceProxytheService
 
edm::ESHandle< TrajectorySmoothertheSmoother
 
std::string theSmootherName
 
bool theSmoothingStep
 
bool theSmoothTkTrackFlag
 
bool theTrajectoryFlag
 
bool theUpdatingAtVtx
 
MuonUpdatorAtVertextheUpdatorAtVtx
 

Detailed Description

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

Date:
2008/11/30 23:06:03
Revision:
1.28
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

Date:
2010/09/02 13:25:27
Revision:
1.86
Author
R. Bellan - INFN Torino ricca.nosp@m.rdo..nosp@m.bella.nosp@m.n@ce.nosp@m.rn.ch

Definition at line 36 of file MuonTrackLoader.h.

Member Typedef Documentation

Definition at line 40 of file MuonTrackLoader.h.

Definition at line 39 of file MuonTrackLoader.h.

Constructor & Destructor Documentation

MuonTrackLoader::MuonTrackLoader ( edm::ParameterSet parameterSet,
const MuonServiceProxy service = 0 
)

Constructor for the STA reco the args must be specify!

Definition at line 46 of file MuonTrackLoader.cc.

References edm::ParameterSet::getParameter(), edm::ParameterSet::getUntrackedParameter(), MuonUpdatorAtVertex_cff::MuonUpdatorAtVertex, theAllowNoVtxFlag, theBeamSpotInputTag, theL2SeededTkLabel, thePutTkTrackFlag, theSmootherName, theSmoothingStep, theSmoothTkTrackFlag, theTrajectoryFlag, theUpdatingAtVtx, and theUpdatorAtVtx.

46  :
47  theService(service){
48 
49  // option to do or not the smoothing step.
50  // the trajectories which are passed to the track loader are supposed to be non-smoothed
51  theSmoothingStep = parameterSet.getParameter<bool>("DoSmoothing");
53  theSmootherName = parameterSet.getParameter<string>("Smoother");
54 
55  // update at vertex
56  theUpdatingAtVtx = parameterSet.getParameter<bool>("VertexConstraint");
57 
58  // beam spot input tag
59  theBeamSpotInputTag = parameterSet.getParameter<edm::InputTag>("beamSpot");
60 
61  // Flag to put the trajectory into the event
62  theTrajectoryFlag = parameterSet.getUntrackedParameter<bool>("PutTrajectoryIntoEvent",true);
63 
64  theL2SeededTkLabel = parameterSet.getUntrackedParameter<string>("MuonSeededTracksInstance",string());
65 
66  ParameterSet updatorPar = parameterSet.getParameter<ParameterSet>("MuonUpdatorAtVertexParameters");
67  theUpdatorAtVtx = new MuonUpdatorAtVertex(updatorPar,service);
68 
69  thePutTkTrackFlag = parameterSet.getUntrackedParameter<bool>("PutTkTrackIntoEvent",false);
70  theSmoothTkTrackFlag = parameterSet.getUntrackedParameter<bool>("SmoothTkTrack",false);
71  theAllowNoVtxFlag = parameterSet.getUntrackedParameter<bool>("AllowNoVertex",false);
72 }
T getParameter(std::string const &) const
T getUntrackedParameter(std::string const &, T const &) const
std::string theSmootherName
edm::InputTag theBeamSpotInputTag
MuonUpdatorAtVertex * theUpdatorAtVtx
std::string theL2SeededTkLabel
Label for L2SeededTracks.
const MuonServiceProxy * theService
MuonTrackLoader::~MuonTrackLoader ( )
virtual

Destructor.

Definition at line 74 of file MuonTrackLoader.cc.

References theUpdatorAtVtx.

74  {
76 }
MuonUpdatorAtVertex * theUpdatorAtVtx

Member Function Documentation

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

References FreeTrajectoryState::charge(), Trajectory::chiSquared(), FreeTrajectoryState::curvilinearError(), debug, MuonPatternRecoDumper::dumpFTS(), TrajectoryStateOnSurface::freeState(), Trajectory::geometricalInnermostState(), TrajectoryStateOnSurface::globalPosition(), TrackerBounds::isInside(), LogTrace, FreeTrajectoryState::momentum(), Trajectory::ndof(), L1TEmulatorMonitor_cff::p, FreeTrajectoryState::position(), MuonUpdatorAtVertex::propagate(), theAllowNoVtxFlag, theService, theUpdatorAtVtx, ExpressReco_HICollisions_FallBack::track, PV3DBase< T, PVType, FrameType >::x(), PV3DBase< T, PVType, FrameType >::y(), and PV3DBase< T, PVType, FrameType >::z().

561  {
562 
563  const string metname = "Muon|RecoMuon|MuonTrackLoader";
564 
566 
567  // FIXME: check the prop direction
568  TrajectoryStateOnSurface innerTSOS = trajectory.geometricalInnermostState();
569 
570  // This is needed to extrapolate the tsos at vertex
571  LogTrace(metname) << "Propagate to PCA...";
572  pair<bool,FreeTrajectoryState>
573  extrapolationResult = theUpdatorAtVtx->propagate(innerTSOS, beamSpot);
574  FreeTrajectoryState ftsAtVtx;
575 
576  if(extrapolationResult.first)
577  ftsAtVtx = extrapolationResult.second;
578  else{
579  if(TrackerBounds::isInside(innerTSOS.globalPosition())){
580  LogInfo(metname) << "Track in the Tracker: taking the innermost state instead of the state at PCA";
581  ftsAtVtx = *innerTSOS.freeState();
582  }
583  else{
584  if ( theAllowNoVtxFlag ) {
585  LogInfo(metname) << "Propagation to PCA failed, taking the innermost state instead of the state at PCA";
586  ftsAtVtx = *innerTSOS.freeState();
587  } else {
588  LogInfo(metname) << "Stand Alone track: this track will be rejected";
589  return pair<bool,reco::Track>(false,reco::Track());
590  }
591  }
592  }
593 
594  LogTrace(metname) << "TSOS after the extrapolation at vtx";
595  LogTrace(metname) << debug.dumpFTS(ftsAtVtx);
596 
597  GlobalPoint pca = ftsAtVtx.position();
598  math::XYZPoint persistentPCA(pca.x(),pca.y(),pca.z());
599  GlobalVector p = ftsAtVtx.momentum();
600  math::XYZVector persistentMomentum(p.x(),p.y(),p.z());
601 
602  bool bon = true;
603  if(fabs(theService->magneticField()->inTesla(GlobalPoint(0,0,0)).z()) < 0.01) bon=false;
604  double ndof = trajectory.ndof(bon);
605 
606  reco::Track track(trajectory.chiSquared(),
607  ndof,
608  persistentPCA,
609  persistentMomentum,
610  ftsAtVtx.charge(),
611  ftsAtVtx.curvilinearError());
612 
613  return pair<bool,reco::Track>(true,track);
614 }
static bool isInside(const GlobalPoint &)
const std::string metname
Global3DPoint GlobalPoint
Definition: GlobalPoint.h:10
T y() const
Definition: PV3DBase.h:57
std::pair< bool, FreeTrajectoryState > propagate(const TrajectoryStateOnSurface &tsos, const reco::BeamSpot &beamSpot) const
Propagate the state to the 2D-PCA.
GlobalPoint globalPosition() const
TrackCharge charge() const
TrajectoryStateOnSurface geometricalInnermostState() const
Definition: Trajectory.cc:232
const CurvilinearTrajectoryError & curvilinearError() const
std::string dumpFTS(const FreeTrajectoryState &fts) const
FreeTrajectoryState * freeState(bool withErrors=true) const
T z() const
Definition: PV3DBase.h:58
MuonUpdatorAtVertex * theUpdatorAtVtx
GlobalVector momentum() const
#define LogTrace(id)
GlobalPoint position() const
int ndof(bool bon=true) const
Definition: Trajectory.cc:74
XYZVectorD XYZVector
spatial vector with cartesian internal representation
Definition: Vector3D.h:31
XYZPointD XYZPoint
point in space with cartesian internal representation
Definition: Point3D.h:13
const MuonServiceProxy * theService
#define debug
Definition: MEtoEDMFormat.h:34
T x() const
Definition: PV3DBase.h:56
double chiSquared() const
Definition: Trajectory.h:208
reco::TrackExtra MuonTrackLoader::buildTrackExtra ( const Trajectory trajectory) const
private

Definition at line 655 of file MuonTrackLoader.cc.

References alongMomentum, BoundSurface::bounds(), TrajectoryStateOnSurface::curvilinearError(), Trajectory::direction(), Trajectory::firstMeasurement(), TrajectoryStateOnSurface::globalParameters(), Bounds::inside(), Trajectory::lastMeasurement(), LogTrace, GlobalTrajectoryParameters::momentum(), oppositeToMomentum, L1TEmulatorMonitor_cff::p, GlobalTrajectoryParameters::position(), TrajectoryMeasurement::recHit(), Trajectory::recHits(), Trajectory::seedRef(), GeomDet::surface(), theService, GeomDet::toLocal(), TrajectoryMeasurement::updatedState(), v, PV3DBase< T, PVType, FrameType >::x(), PV3DBase< T, PVType, FrameType >::y(), and PV3DBase< T, PVType, FrameType >::z().

655  {
656 
657  const string metname = "Muon|RecoMuon|MuonTrackLoader";
658 
659  const Trajectory::RecHitContainer transRecHits = trajectory.recHits();
660 
661  // put the collection of TrackingRecHit in the event
662 
663  // sets the outermost and innermost TSOSs
664  // FIXME: check it!
665  TrajectoryStateOnSurface outerTSOS;
666  TrajectoryStateOnSurface innerTSOS;
667  unsigned int innerId=0, outerId=0;
669  DetId outerDetId;
670 
671  if (trajectory.direction() == alongMomentum) {
672  LogTrace(metname)<<"alongMomentum";
673  outerTSOS = trajectory.lastMeasurement().updatedState();
674  innerTSOS = trajectory.firstMeasurement().updatedState();
675  outerId = trajectory.lastMeasurement().recHit()->geographicalId().rawId();
676  innerId = trajectory.firstMeasurement().recHit()->geographicalId().rawId();
677  outerRecHit = trajectory.lastMeasurement().recHit();
678  outerDetId = trajectory.lastMeasurement().recHit()->geographicalId();
679  }
680  else if (trajectory.direction() == oppositeToMomentum) {
681  LogTrace(metname)<<"oppositeToMomentum";
682  outerTSOS = trajectory.firstMeasurement().updatedState();
683  innerTSOS = trajectory.lastMeasurement().updatedState();
684  outerId = trajectory.firstMeasurement().recHit()->geographicalId().rawId();
685  innerId = trajectory.lastMeasurement().recHit()->geographicalId().rawId();
686  outerRecHit = trajectory.firstMeasurement().recHit();
687  outerDetId = trajectory.firstMeasurement().recHit()->geographicalId();
688  }
689  else LogError(metname)<<"Wrong propagation direction!";
690 
691  const GeomDet *outerDet = theService->trackingGeometry()->idToDet(outerDetId);
692  GlobalPoint outerTSOSPos = outerTSOS.globalParameters().position();
693  bool inside = outerDet->surface().bounds().inside(outerDet->toLocal(outerTSOSPos));
694 
695 
696  GlobalPoint hitPos = (outerRecHit->isValid()) ? outerRecHit->globalPosition() : outerTSOS.globalParameters().position() ;
697 
698  if(!inside) {
699  LogTrace(metname)<<"The Global Muon outerMostMeasurementState is not compatible with the recHit detector! Setting outerMost postition to recHit position if recHit isValid: " << outerRecHit->isValid();
700  LogTrace(metname)<<"From " << outerTSOSPos << " to " << hitPos;
701  }
702 
703 
704  //build the TrackExtra
705  GlobalPoint v = (inside) ? outerTSOSPos : hitPos ;
706  GlobalVector p = outerTSOS.globalParameters().momentum();
707  math::XYZPoint outpos( v.x(), v.y(), v.z() );
708  math::XYZVector outmom( p.x(), p.y(), p.z() );
709 
710  v = innerTSOS.globalParameters().position();
711  p = innerTSOS.globalParameters().momentum();
712  math::XYZPoint inpos( v.x(), v.y(), v.z() );
713  math::XYZVector inmom( p.x(), p.y(), p.z() );
714 
715  reco::TrackExtra trackExtra(outpos, outmom, true, inpos, inmom, true,
716  outerTSOS.curvilinearError(), outerId,
717  innerTSOS.curvilinearError(), innerId,
718  trajectory.direction(),trajectory.seedRef());
719 
720  return trackExtra;
721 
722 }
virtual bool inside(const Local3DPoint &) const =0
Determine if the point is inside the bounds.
const std::string metname
const CurvilinearTrajectoryError & curvilinearError() const
T y() const
Definition: PV3DBase.h:57
LocalPoint toLocal(const GlobalPoint &gp) const
Conversion to the R.F. of the GeomDet.
Definition: GeomDet.h:64
ConstRecHitPointer recHit() const
ConstRecHitContainer recHits(bool splitting=false) const
Definition: Trajectory.cc:67
PropagationDirection const & direction() const
Definition: Trajectory.cc:195
TrajectoryMeasurement const & lastMeasurement() const
Definition: Trajectory.h:147
T z() const
Definition: PV3DBase.h:58
TrajectoryStateOnSurface updatedState() const
edm::RefToBase< TrajectorySeed > seedRef(void) const
Definition: Trajectory.h:262
#define LogTrace(id)
Definition: DetId.h:20
const Bounds & bounds() const
Definition: BoundSurface.h:89
TrajectoryMeasurement const & firstMeasurement() const
Definition: Trajectory.h:160
const GlobalTrajectoryParameters & globalParameters() const
XYZVectorD XYZVector
spatial vector with cartesian internal representation
Definition: Vector3D.h:31
ConstRecHitContainer RecHitContainer
Definition: Trajectory.h:44
XYZPointD XYZPoint
point in space with cartesian internal representation
Definition: Point3D.h:13
const MuonServiceProxy * theService
T x() const
Definition: PV3DBase.h:56
virtual const BoundPlane & surface() const
The nominal surface of the GeomDet.
Definition: GeomDet.h:37
mathSSE::Vec4< T > v
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 617 of file MuonTrackLoader.cc.

References FreeTrajectoryState::charge(), reco::TrackBase::chi2(), FreeTrajectoryState::curvilinearError(), debug, MuonPatternRecoDumper::dumpFTS(), LogTrace, FreeTrajectoryState::momentum(), reco::TrackBase::ndof(), L1TEmulatorMonitor_cff::p, FreeTrajectoryState::position(), theService, theUpdatorAtVtx, MuonUpdatorAtVertex::update(), PV3DBase< T, PVType, FrameType >::x(), PV3DBase< T, PVType, FrameType >::y(), and PV3DBase< T, PVType, FrameType >::z().

617  {
618 
619  const string metname = "Muon|RecoMuon|MuonTrackLoader";
621 
622  // build the transient track
623  reco::TransientTrack transientTrack(track,
624  &*theService->magneticField(),
625  theService->trackingGeometry());
626 
627  LogTrace(metname) << "Apply the vertex constraint";
628  pair<bool,FreeTrajectoryState> updateResult = theUpdatorAtVtx->update(transientTrack,beamSpot);
629 
630  if(!updateResult.first){
631  return pair<bool,reco::Track>(false,reco::Track());
632  }
633 
634  LogTrace(metname) << "FTS after the vertex constraint";
635  FreeTrajectoryState &ftsAtVtx = updateResult.second;
636 
637  LogTrace(metname) << debug.dumpFTS(ftsAtVtx);
638 
639  GlobalPoint pca = ftsAtVtx.position();
640  math::XYZPoint persistentPCA(pca.x(),pca.y(),pca.z());
641  GlobalVector p = ftsAtVtx.momentum();
642  math::XYZVector persistentMomentum(p.x(),p.y(),p.z());
643 
644  reco::Track updatedTrack(track.chi2(),
645  track.ndof(),
646  persistentPCA,
647  persistentMomentum,
648  ftsAtVtx.charge(),
649  ftsAtVtx.curvilinearError());
650 
651  return pair<bool,reco::Track>(true,updatedTrack);
652 }
const std::string metname
T y() const
Definition: PV3DBase.h:57
TrackCharge charge() const
const CurvilinearTrajectoryError & curvilinearError() const
std::string dumpFTS(const FreeTrajectoryState &fts) const
std::pair< bool, FreeTrajectoryState > update(const reco::TransientTrack &track, const reco::BeamSpot &beamSpot) const
Applies the vertex constraint.
T z() const
Definition: PV3DBase.h:58
MuonUpdatorAtVertex * theUpdatorAtVtx
GlobalVector momentum() const
#define LogTrace(id)
GlobalPoint position() const
XYZVectorD XYZVector
spatial vector with cartesian internal representation
Definition: Vector3D.h:31
XYZPointD XYZPoint
point in space with cartesian internal representation
Definition: Point3D.h:13
const MuonServiceProxy * theService
#define debug
Definition: MEtoEDMFormat.h:34
T x() const
Definition: PV3DBase.h:56
edm::OrphanHandle<reco::TrackCollection> MuonTrackLoader::loadTracks ( const TrajectoryContainer ,
edm::Event ,
const std::string &  = "",
bool  = true 
)

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

Referenced by MuonTrackFinder::load(), and loadTracks().

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

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

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

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

Definition at line 284 of file MuonTrackLoader.cc.

References edm::OrphanHandleBase::isValid(), loadTracks(), LogDebug, LogTrace, position, reco::MuonTrackLinks::setStandAloneTrack(), reco::MuonTrackLinks::setTrackerTrack(), theL2SeededTkLabel, thePutTkTrackFlag, theSmoothTkTrackFlag, and ExpressReco_HICollisions_FallBack::trackCollection.

285  {
286 
287  const string metname = "Muon|RecoMuon|MuonTrackLoader";
288 
289  // the muon collection, it will be loaded in the event
290  auto_ptr<reco::MuonTrackLinksCollection> trackLinksCollection(new reco::MuonTrackLinksCollection());
291 
292  // don't waste any time...
293  if ( muonCands.empty() ) {
294  auto_ptr<reco::TrackExtraCollection> trackExtraCollection(new reco::TrackExtraCollection() );
295  auto_ptr<TrackingRecHitCollection> recHitCollection(new TrackingRecHitCollection() );
296  auto_ptr<reco::TrackCollection> trackCollection( new reco::TrackCollection() );
297 
298  event.put(recHitCollection);
299  event.put(trackExtraCollection);
300  event.put(trackCollection);
301 
302  //need to also put the tracker tracks collection if requested
303  if(thePutTkTrackFlag){
304  //will take care of putting nothing in the event but the empty collection
305  TrajectoryContainer trackerTrajs;
306  loadTracks(trackerTrajs, event, theL2SeededTkLabel, theSmoothTkTrackFlag);
307  }
308 
309  return event.put(trackLinksCollection);
310  }
311 
312  // get combined Trajectories
313  TrajectoryContainer combinedTrajs;
314  TrajectoryContainer trackerTrajs;
315  for (CandidateContainer::const_iterator it = muonCands.begin(); it != muonCands.end(); it++) {
316  LogDebug(metname) << "Loader glbSeedRef " << (*it)->trajectory()->seedRef().isNonnull();
317  if ((*it)->trackerTrajectory() ) LogDebug(metname) << " " << "tkSeedRef " << (*it)->trackerTrajectory()->seedRef().isNonnull();
318 
319  combinedTrajs.push_back((*it)->trajectory());
320  if ( thePutTkTrackFlag ) trackerTrajs.push_back((*it)->trackerTrajectory());
321 
322  else {
323  if ((*it)->trackerTrajectory()) delete ((*it)->trackerTrajectory());
324  }
325 
326  // Create the links between sta and tracker tracks
327  reco::MuonTrackLinks links;
328  links.setStandAloneTrack((*it)->muonTrack());
329  links.setTrackerTrack((*it)->trackerTrack());
330  trackLinksCollection->push_back(links);
331  delete *it;
332  }
333 
334  // create the TrackCollection of combined Trajectories
335  // FIXME: could this be done one track at a time in the previous loop?
336  LogTrace(metname) << "Build combinedTracks";
337  OrphanHandle<reco::TrackCollection> combinedTracks = loadTracks(combinedTrajs, event);
338 
340  if(thePutTkTrackFlag) {
341  LogTrace(metname) << "Build trackerTracks: "
342  << trackerTrajs.size();
343  trackerTracks = loadTracks(trackerTrajs, event, theL2SeededTkLabel, theSmoothTkTrackFlag);
344  } else {
345  for (TrajectoryContainer::iterator it = trackerTrajs.begin(); it != trackerTrajs.end(); ++it) {
346  if(*it) delete *it;
347  }
348  }
349 
350  LogTrace(metname) << "Set the final links in the MuonTrackLinks collection";
351 
352  reco::MuonTrackLinksCollection::iterator links = trackLinksCollection->begin();
353  for ( unsigned int position = 0; position != combinedTracks->size(); ++position, ++links) {
354  reco::TrackRef combinedTR(combinedTracks, position);
355 
356  reco::TrackRef trackerTR;
357  if(thePutTkTrackFlag) trackerTR = reco::TrackRef(trackerTracks, position);
358 
359  // fill the combined information.
360  links->setGlobalTrack(combinedTR);
361  if(thePutTkTrackFlag) links->setTrackerTrack(trackerTR);
362  }
363 
364  if( thePutTkTrackFlag && trackerTracks.isValid() && !(combinedTracks->size() > 0 && trackerTracks->size() > 0 ) )
365  LogWarning(metname)<<"The MuonTrackLinkCollection is incomplete";
366 
367  // put the MuonCollection in the event
368  LogTrace(metname) << "put the MuonCollection in the event" << "\n";
369 
370  return event.put(trackLinksCollection);
371 }
#define LogDebug(id)
const std::string metname
std::vector< Track > TrackCollection
collection of Tracks
Definition: TrackFwd.h:10
static int position[TOTALCHAMBERS][3]
Definition: ReadPGInfo.cc:509
std::vector< MuonTrackLinks > MuonTrackLinksCollection
collection of MuonTrackLinks
Definition: MuonFwd.h:22
#define LogTrace(id)
MuonCandidate::TrajectoryContainer TrajectoryContainer
edm::OrphanHandle< reco::TrackCollection > loadTracks(const TrajectoryContainer &, edm::Event &, const std::string &="", bool=true)
Convert the trajectories into tracks and load the tracks in the event.
std::vector< TrackExtra > TrackExtraCollection
collection of TrackExtra objects
Definition: TrackExtraFwd.h:9
edm::OwnVector< TrackingRecHit > TrackingRecHitCollection
collection of TrackingRecHits
std::string theL2SeededTkLabel
Label for L2SeededTracks.
edm::Ref< TrackCollection > TrackRef
persistent reference to a Track
Definition: TrackFwd.h:14

Member Data Documentation

bool MuonTrackLoader::theAllowNoVtxFlag
private

Definition at line 90 of file MuonTrackLoader.h.

Referenced by buildTrackAtPCA(), and MuonTrackLoader().

edm::InputTag MuonTrackLoader::theBeamSpotInputTag
private

Definition at line 84 of file MuonTrackLoader.h.

Referenced by MuonTrackLoader().

std::string MuonTrackLoader::theL2SeededTkLabel
private

Label for L2SeededTracks.

Definition at line 87 of file MuonTrackLoader.h.

Referenced by loadTracks(), and MuonTrackLoader().

bool MuonTrackLoader::thePutTkTrackFlag
private

Definition at line 88 of file MuonTrackLoader.h.

Referenced by loadTracks(), and MuonTrackLoader().

const MuonServiceProxy* MuonTrackLoader::theService
private

Definition at line 73 of file MuonTrackLoader.h.

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

edm::ESHandle<TrajectorySmoother> MuonTrackLoader::theSmoother
private

Definition at line 82 of file MuonTrackLoader.h.

std::string MuonTrackLoader::theSmootherName
private

Definition at line 81 of file MuonTrackLoader.h.

Referenced by MuonTrackLoader().

bool MuonTrackLoader::theSmoothingStep
private

Definition at line 80 of file MuonTrackLoader.h.

Referenced by MuonTrackLoader().

bool MuonTrackLoader::theSmoothTkTrackFlag
private

Definition at line 89 of file MuonTrackLoader.h.

Referenced by loadTracks(), and MuonTrackLoader().

bool MuonTrackLoader::theTrajectoryFlag
private

Definition at line 78 of file MuonTrackLoader.h.

Referenced by MuonTrackLoader().

bool MuonTrackLoader::theUpdatingAtVtx
private

Definition at line 75 of file MuonTrackLoader.h.

Referenced by MuonTrackLoader().

MuonUpdatorAtVertex* MuonTrackLoader::theUpdatorAtVtx
private