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
TrackProducerAlgorithm< T > Class Template Reference

#include <TrackProducerAlgorithm.h>

Inheritance diagram for TrackProducerAlgorithm< T >:
AlgoProductTraits< T >

Public Types

using AlgoProductCollection = typename Base::AlgoProductCollection
 
using Base = AlgoProductTraits< T >
 
using SeedRef = edm::RefToBase< TrajectorySeed >
 
using TrackCollection = typename Base::TrackCollection
 
using TrackView = typename Base::TrackView
 
using VtxConstraintAssociationCollection = edm::AssociationMap< edm::OneToOne< std::vector< T >, std::vector< VertexConstraint > > >
 
- Public Types inherited from AlgoProductTraits< T >
using AlgoProductCollection = std::vector< AlgoProduct >
 
using TrackCollection = std::vector< T >
 
using TrackView = edm::View< T >
 

Public Member Functions

bool buildTrack (const TrajectoryFitter *, const Propagator *, AlgoProductCollection &, TransientTrackingRecHit::RecHitContainer &, TrajectoryStateOnSurface &, const TrajectorySeed &, float, const reco::BeamSpot &, SeedRef seedRef=SeedRef(), int qualityMask=0, signed char nLoops=0)
 Construct Tracks to be put in the event. More...
 
void runWithCandidate (const TrackingGeometry *, const MagneticField *, const TrackCandidateCollection &, const TrajectoryFitter *, const Propagator *, const TransientTrackingRecHitBuilder *, const reco::BeamSpot &, AlgoProductCollection &)
 Run the Final Fit taking TrackCandidates as input. More...
 
void runWithMomentum (const TrackingGeometry *, const MagneticField *, const TrackMomConstraintAssociationCollection &, const TrajectoryFitter *, const Propagator *, const TransientTrackingRecHitBuilder *, const reco::BeamSpot &, AlgoProductCollection &)
 Run the Final Fit taking TrackMomConstraintAssociation as input (Refitter with momentum constraint) More...
 
void runWithTrack (const TrackingGeometry *, const MagneticField *, const TrackView &, const TrajectoryFitter *, const Propagator *, const TransientTrackingRecHitBuilder *, const reco::BeamSpot &, AlgoProductCollection &)
 Run the Final Fit taking Tracks as input (for Refitter) More...
 
void runWithTrackParameters (const TrackingGeometry *, const MagneticField *, const TrackParamConstraintAssociationCollection &, const TrajectoryFitter *, const Propagator *, const TransientTrackingRecHitBuilder *, const reco::BeamSpot &, AlgoProductCollection &)
 
void runWithVertex (const TrackingGeometry *, const MagneticField *, const VtxConstraintAssociationCollection &, const TrajectoryFitter *, const Propagator *, const TransientTrackingRecHitBuilder *, const reco::BeamSpot &, AlgoProductCollection &)
 
 TrackProducerAlgorithm (const edm::ParameterSet &conf)
 Constructor. More...
 
 ~TrackProducerAlgorithm ()
 Destructor. More...
 

Private Member Functions

TrajectoryStateOnSurface getInitialState (const T *theT, TransientTrackingRecHit::RecHitContainer &hits, const TrackingGeometry *theG, const MagneticField *theMF)
 

Private Attributes

reco::TrackBase::TrackAlgorithm algo_
 
reco::TrackBase::AlgoMask algoMask_
 
bool geometricInnerState_
 
reco::TrackBase::TrackAlgorithm originalAlgo_
 
bool reMatchSplitHits_
 
uint8_t stopReason_
 
bool usePropagatorForPCA_
 

Detailed Description

template<class T>
class TrackProducerAlgorithm< T >

This class calls the Final Fit and builds the Tracks then produced by the TrackProducer or by the TrackRefitter

Author
cerati

Definition at line 45 of file TrackProducerAlgorithm.h.

Member Typedef Documentation

Definition at line 50 of file TrackProducerAlgorithm.h.

template<class T>
using TrackProducerAlgorithm< T >::Base = AlgoProductTraits<T>

Definition at line 47 of file TrackProducerAlgorithm.h.

Definition at line 52 of file TrackProducerAlgorithm.h.

template<class T>
using TrackProducerAlgorithm< T >::TrackCollection = typename Base::TrackCollection

Definition at line 48 of file TrackProducerAlgorithm.h.

template<class T>
using TrackProducerAlgorithm< T >::TrackView = typename Base::TrackView

Definition at line 49 of file TrackProducerAlgorithm.h.

Definition at line 53 of file TrackProducerAlgorithm.h.

Constructor & Destructor Documentation

template<class T>
TrackProducerAlgorithm< T >::TrackProducerAlgorithm ( const edm::ParameterSet conf)
inline

Constructor.

Definition at line 58 of file TrackProducerAlgorithm.h.

58  :
61  stopReason_(0),
62  reMatchSplitHits_(false),
64  {
65  geometricInnerState_ = (conf.exists("GeometricInnerState") ?
66  conf.getParameter<bool>( "GeometricInnerState" ) : true);
67  if (conf.exists("reMatchSplitHits"))
68  reMatchSplitHits_=conf.getParameter<bool>("reMatchSplitHits");
69  if (conf.exists("usePropagatorForPCA"))
70  usePropagatorForPCA_ = conf.getParameter<bool>("usePropagatorForPCA");
71  }
T getParameter(std::string const &) const
reco::TrackBase::TrackAlgorithm originalAlgo_
bool exists(std::string const &parameterName) const
checks if a parameter exists
reco::TrackBase::TrackAlgorithm algo_
static TrackAlgorithm algoByName(const std::string &name)
Definition: TrackBase.cc:137
template<class T>
TrackProducerAlgorithm< T >::~TrackProducerAlgorithm ( )
inline

Destructor.

Definition at line 74 of file TrackProducerAlgorithm.h.

74 {}

Member Function Documentation

template<class T>
bool TrackProducerAlgorithm< T >::buildTrack ( const TrajectoryFitter ,
const Propagator ,
AlgoProductCollection ,
TransientTrackingRecHit::RecHitContainer ,
TrajectoryStateOnSurface ,
const TrajectorySeed ,
float  ,
const reco::BeamSpot ,
SeedRef  seedRef = SeedRef(),
int  qualityMask = 0,
signed char  nLoops = 0 
)

Construct Tracks to be put in the event.

Referenced by NuclearTrackCorrector::getTrackFromTrajectory(), and TrackProducerWithSCAssociation::produce().

template<class T>
TrajectoryStateOnSurface TrackProducerAlgorithm< T >::getInitialState ( const T theT,
TransientTrackingRecHit::RecHitContainer hits,
const TrackingGeometry theG,
const MagneticField theMF 
)
private
template<class T>
void TrackProducerAlgorithm< T >::runWithCandidate ( const TrackingGeometry ,
const MagneticField ,
const TrackCandidateCollection ,
const TrajectoryFitter ,
const Propagator ,
const TransientTrackingRecHitBuilder ,
const reco::BeamSpot ,
AlgoProductCollection  
)
template<class T>
void TrackProducerAlgorithm< T >::runWithMomentum ( const TrackingGeometry ,
const MagneticField ,
const TrackMomConstraintAssociationCollection ,
const TrajectoryFitter ,
const Propagator ,
const TransientTrackingRecHitBuilder ,
const reco::BeamSpot ,
AlgoProductCollection  
)

Run the Final Fit taking TrackMomConstraintAssociation as input (Refitter with momentum constraint)

Referenced by TrackRefitter::produce().

template<class T>
void TrackProducerAlgorithm< T >::runWithTrack ( const TrackingGeometry ,
const MagneticField ,
const TrackView ,
const TrajectoryFitter ,
const Propagator ,
const TransientTrackingRecHitBuilder ,
const reco::BeamSpot ,
AlgoProductCollection  
)

Run the Final Fit taking Tracks as input (for Refitter)

Referenced by GsfTrackRefitter::produce(), and TrackRefitter::produce().

template<class T>
void TrackProducerAlgorithm< T >::runWithTrackParameters ( const TrackingGeometry ,
const MagneticField ,
const TrackParamConstraintAssociationCollection ,
const TrajectoryFitter ,
const Propagator ,
const TransientTrackingRecHitBuilder ,
const reco::BeamSpot ,
AlgoProductCollection  
)

Run the Final Fit taking TrackParamConstraintAssociation as input (Refitter with complete track parameters constraint) currently hit sorting is disabled - will work (only) with standard tracks

Referenced by TrackRefitter::produce().

template<class T>
void TrackProducerAlgorithm< T >::runWithVertex ( const TrackingGeometry ,
const MagneticField ,
const VtxConstraintAssociationCollection ,
const TrajectoryFitter ,
const Propagator ,
const TransientTrackingRecHitBuilder ,
const reco::BeamSpot ,
AlgoProductCollection  
)

Run the Final Fit taking TrackVtxConstraintAssociation as input (Refitter with vertex constraint) currently hit sorting is disabled - will work (only) with standard tracks

Referenced by GsfTrackRefitter::produce(), and TrackRefitter::produce().

Member Data Documentation

template<class T>
reco::TrackBase::TrackAlgorithm TrackProducerAlgorithm< T >::algo_
private
template<class T>
reco::TrackBase::AlgoMask TrackProducerAlgorithm< T >::algoMask_
private
template<class T>
bool TrackProducerAlgorithm< T >::geometricInnerState_
private
template<class T>
reco::TrackBase::TrackAlgorithm TrackProducerAlgorithm< T >::originalAlgo_
private
template<class T>
bool TrackProducerAlgorithm< T >::reMatchSplitHits_
private
template<class T>
uint8_t TrackProducerAlgorithm< T >::stopReason_
private
template<class T>
bool TrackProducerAlgorithm< T >::usePropagatorForPCA_
private