CMS 3D CMS Logo

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 42 of file TrackProducerAlgorithm.h.

Member Typedef Documentation

◆ AlgoProductCollection

Definition at line 47 of file TrackProducerAlgorithm.h.

◆ Base

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

Definition at line 44 of file TrackProducerAlgorithm.h.

◆ SeedRef

Definition at line 49 of file TrackProducerAlgorithm.h.

◆ TrackCollection

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

Definition at line 45 of file TrackProducerAlgorithm.h.

◆ TrackView

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

Definition at line 46 of file TrackProducerAlgorithm.h.

◆ VtxConstraintAssociationCollection

Definition at line 51 of file TrackProducerAlgorithm.h.

Constructor & Destructor Documentation

◆ TrackProducerAlgorithm()

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

Constructor.

Definition at line 55 of file TrackProducerAlgorithm.h.

56  : algo_(reco::TrackBase::algoByName(conf.getParameter<std::string>("AlgorithmName"))),
58  stopReason_(0),
59  reMatchSplitHits_(false),
60  usePropagatorForPCA_(false) {
61  geometricInnerState_ = (conf.exists("GeometricInnerState") ? conf.getParameter<bool>("GeometricInnerState") : true);
62  if (conf.exists("reMatchSplitHits"))
63  reMatchSplitHits_ = conf.getParameter<bool>("reMatchSplitHits");
64  if (conf.exists("usePropagatorForPCA"))
65  usePropagatorForPCA_ = conf.getParameter<bool>("usePropagatorForPCA");
66  }
T getParameter(std::string const &) const
Definition: ParameterSet.h:307
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

◆ ~TrackProducerAlgorithm()

template<class T>
TrackProducerAlgorithm< T >::~TrackProducerAlgorithm ( )
inline

Destructor.

Definition at line 69 of file TrackProducerAlgorithm.h.

69 {}

Member Function Documentation

◆ buildTrack()

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().

◆ getInitialState()

template<class T>
TrajectoryStateOnSurface TrackProducerAlgorithm< T >::getInitialState ( const T theT,
TransientTrackingRecHit::RecHitContainer hits,
const TrackingGeometry theG,
const MagneticField theMF 
)
private

◆ runWithCandidate()

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

◆ runWithMomentum()

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().

◆ runWithTrack()

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().

◆ runWithTrackParameters()

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().

◆ runWithVertex()

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

◆ algo_

template<class T>
reco::TrackBase::TrackAlgorithm TrackProducerAlgorithm< T >::algo_
private

Definition at line 137 of file TrackProducerAlgorithm.h.

◆ algoMask_

template<class T>
reco::TrackBase::AlgoMask TrackProducerAlgorithm< T >::algoMask_
private

Definition at line 139 of file TrackProducerAlgorithm.h.

◆ geometricInnerState_

template<class T>
bool TrackProducerAlgorithm< T >::geometricInnerState_
private

◆ originalAlgo_

template<class T>
reco::TrackBase::TrackAlgorithm TrackProducerAlgorithm< T >::originalAlgo_
private

Definition at line 138 of file TrackProducerAlgorithm.h.

◆ reMatchSplitHits_

template<class T>
bool TrackProducerAlgorithm< T >::reMatchSplitHits_
private

◆ stopReason_

template<class T>
uint8_t TrackProducerAlgorithm< T >::stopReason_
private

Definition at line 140 of file TrackProducerAlgorithm.h.

◆ usePropagatorForPCA_

template<class T>
bool TrackProducerAlgorithm< T >::usePropagatorForPCA_
private