CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
TrackProducerAlgorithm.h
Go to the documentation of this file.
1 #ifndef TrackProducerAlgorithm_h
2 #define TrackProducerAlgorithm_h
3 
21 
22 class MagneticField;
23 class TrackingGeometry;
24 class TrajectoryFitter;
25 class Propagator;
26 class Trajectory;
29 
30 
31 template <class T>
33 public:
34  typedef std::vector<T> TrackCollection;
35  typedef std::pair<Trajectory*, std::pair<T*,PropagationDirection> > AlgoProduct;
36  typedef std::vector< AlgoProduct > AlgoProductCollection;
38  typedef edm::AssociationMap<edm::OneToOne<std::vector<T>,std::vector<VertexConstraint> > >
40  public:
41 
44  conf_(conf),
45  algoName_(conf_.getParameter<std::string>( "AlgorithmName" )),
46  algo_(reco::TrackBase::algoByName(algoName_)),
48  {
49  geometricInnerState_ = (conf_.exists("GeometricInnerState") ?
50  conf_.getParameter<bool>( "GeometricInnerState" ) : true);
51  if (conf_.exists("reMatchSplitHits"))
52  reMatchSplitHits_=conf_.getParameter<bool>("reMatchSplitHits");
53  }
54 
57 
59  void runWithCandidate(const TrackingGeometry *,
60  const MagneticField *,
62  const TrajectoryFitter *,
63  const Propagator *,
65  const reco::BeamSpot&,
67 
69  void runWithTrack(const TrackingGeometry *,
70  const MagneticField *,
71  const TrackCollection&,
72  const TrajectoryFitter *,
73  const Propagator *,
75  const reco::BeamSpot&,
77 
79  void runWithMomentum(const TrackingGeometry *,
80  const MagneticField *,
82  const TrajectoryFitter *,
83  const Propagator *,
85  const reco::BeamSpot&,
87 
90  void runWithVertex(const TrackingGeometry *,
91  const MagneticField *,
93  const TrajectoryFitter *,
94  const Propagator *,
96  const reco::BeamSpot&,
98 
102  const MagneticField *,
104  const TrajectoryFitter *,
105  const Propagator *,
107  const reco::BeamSpot&,
109 
111  bool buildTrack(const TrajectoryFitter *,
112  const Propagator *,
116  const TrajectorySeed&,
117  float,
118  const reco::BeamSpot&,
119  SeedRef seedRef = SeedRef(),
120  int qualityMask=0,
121  signed char nLoops=0);
122 
123  private:
129 
132  const TrackingGeometry * theG,
133  const MagneticField * theMF);
134 
135 };
136 
137 #include "RecoTracker/TrackProducer/interface/TrackProducerAlgorithm.icc"
138 
139 template <> bool
141  const Propagator *,
142  AlgoProductCollection& ,
145  const TrajectorySeed&,
146  float,
147  const reco::BeamSpot&,
148  SeedRef seedRef,
149  int qualityMask,
150  signed char nLoops);
151 
152 
153 template <> bool
155  const Propagator *,
156  AlgoProductCollection& ,
159  const TrajectorySeed&,
160  float,
161  const reco::BeamSpot&,
162  SeedRef seedRef,
163  int qualityMask,
164  signed char nLoops);
165 
166 #endif
T getParameter(std::string const &) const
std::vector< TrackCandidate > TrackCandidateCollection
edm::AssociationMap< edm::OneToOne< std::vector< T >, std::vector< VertexConstraint > > > VtxConstraintAssociationCollection
bool exists(std::string const &parameterName) const
checks if a parameter exists
TrackProducerAlgorithm(const edm::ParameterSet &conf)
Constructor.
std::vector< AlgoProduct > AlgoProductCollection
std::vector< ConstRecHitPointer > RecHitContainer
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.
TrackAlgorithm
track algorithm
Definition: TrackBase.h:82
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) ...
TrajectoryStateOnSurface getInitialState(const T *theT, TransientTrackingRecHit::RecHitContainer &hits, const TrackingGeometry *theG, const MagneticField *theMF)
std::pair< Trajectory *, std::pair< T *, PropagationDirection > > AlgoProduct
tuple conf
Definition: dbtoconf.py:185
void runWithVertex(const TrackingGeometry *, const MagneticField *, const VtxConstraintAssociationCollection &, const TrajectoryFitter *, const Propagator *, const TransientTrackingRecHitBuilder *, const reco::BeamSpot &, AlgoProductCollection &)
void runWithTrackParameters(const TrackingGeometry *, const MagneticField *, const TrackParamConstraintAssociationCollection &, const TrajectoryFitter *, const Propagator *, const TransientTrackingRecHitBuilder *, const reco::BeamSpot &, AlgoProductCollection &)
reco::TrackBase::TrackAlgorithm algo_
edm::RefToBase< TrajectorySeed > SeedRef
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.
long double T
std::vector< T > TrackCollection
void runWithTrack(const TrackingGeometry *, const MagneticField *, const TrackCollection &, const TrajectoryFitter *, const Propagator *, const TransientTrackingRecHitBuilder *, const reco::BeamSpot &, AlgoProductCollection &)
Run the Final Fit taking Tracks as input (for Refitter)