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 
19 
20 class MagneticField;
21 class TrackingGeometry;
22 class TrajectoryFitter;
23 class Propagator;
24 class Trajectory;
27 
28 
29 template <class T>
31 public:
32  typedef std::vector<T> TrackCollection;
33  typedef std::pair<Trajectory*, std::pair<T*,PropagationDirection> > AlgoProduct;
34  typedef std::vector< AlgoProduct > AlgoProductCollection;
36  typedef edm::AssociationMap<edm::OneToOne<std::vector<T>,std::vector<VertexConstraint> > >
38  public:
39 
42  conf_(conf),
43  algoName_(conf_.getParameter<std::string>( "AlgorithmName" )),
44  algo_(reco::TrackBase::algoByName(algoName_)),
46  {
47  geometricInnerState_ = (conf_.exists("GeometricInnerState") ?
48  conf_.getParameter<bool>( "GeometricInnerState" ) : true);
49  if (conf_.exists("reMatchSplitHits"))
50  reMatchSplitHits_=conf_.getParameter<bool>("reMatchSplitHits");
51  }
52 
55 
57  void runWithCandidate(const TrackingGeometry *,
58  const MagneticField *,
60  const TrajectoryFitter *,
61  const Propagator *,
63  const reco::BeamSpot&,
65 
67  void runWithTrack(const TrackingGeometry *,
68  const MagneticField *,
69  const TrackCollection&,
70  const TrajectoryFitter *,
71  const Propagator *,
73  const reco::BeamSpot&,
75 
77  void runWithMomentum(const TrackingGeometry *,
78  const MagneticField *,
80  const TrajectoryFitter *,
81  const Propagator *,
83  const reco::BeamSpot&,
85 
88  void runWithVertex(const TrackingGeometry *,
89  const MagneticField *,
91  const TrajectoryFitter *,
92  const Propagator *,
94  const reco::BeamSpot&,
96 
100  const MagneticField *,
102  const TrajectoryFitter *,
103  const Propagator *,
105  const reco::BeamSpot&,
107 
109  bool buildTrack(const TrajectoryFitter *,
110  const Propagator *,
114  const TrajectorySeed&,
115  float,
116  const reco::BeamSpot&,
117  SeedRef seedRef = SeedRef(),
118  int qualityMask=0,
119  signed char nLoops=0);
120 
121  private:
127 
130  const TrackingGeometry * theG,
131  const MagneticField * theMF);
132 
133 };
134 
135 #include "RecoTracker/TrackProducer/interface/TrackProducerAlgorithm.icc"
136 
137 template <> bool
139  const Propagator *,
140  AlgoProductCollection& ,
143  const TrajectorySeed&,
144  float,
145  const reco::BeamSpot&,
146  SeedRef seedRef,
147  int qualityMask,
148  signed char nLoops);
149 
150 
151 template <> bool
153  const Propagator *,
154  AlgoProductCollection& ,
157  const TrajectorySeed&,
158  float,
159  const reco::BeamSpot&,
160  SeedRef seedRef,
161  int qualityMask,
162  signed char nLoops);
163 
164 #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:80
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.
volatile std::atomic< bool > shutdown_flag false
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)