CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
DAFTrackProducerAlgorithm.h
Go to the documentation of this file.
1 
8 #ifndef DAFTrackProducerAlgorithm_h
9 #define DAFTrackProducerAlgorithm_h
10 
18 
19 class MagneticField;
20 class TrackingGeometry;
21 class TrajAnnealing;
22 class TrajectoryFitter;
23 class Trajectory;
28 namespace reco{
29  class Track;
30 }
31 
33 
34  typedef std::pair<Trajectory*, std::pair<reco::Track*,PropagationDirection> > AlgoProduct;
35  typedef std::vector< AlgoProduct > AlgoProductCollection;
36  typedef std::vector<TrajAnnealing> TrajAnnealingCollection;
37 
38  public:
39 
42 
44  void runWithCandidate(const TrackingGeometry *,
45  const MagneticField *,
46  //const TrackCandidateCollection&,
48  const MeasurementTrackerEvent *measTk,
49  const TrajectoryFitter *,
53  const reco::BeamSpot&,
56  bool ,
58  AlgoProductCollection&) const;
59 
60  private:
62  bool buildTrack(const Trajectory,
63  AlgoProductCollection& algoResults,
64  float,
65  const reco::BeamSpot&,
66  const reco::TrackRef* ) const;
67 
71  const TrajectoryFitter * theFitter,
72  Trajectory vtraj) const;
73 
74  //calculates the ndof according to the DAF prescription
75  float calculateNdof(const Trajectory vtraj) const;
76 
77  //creates MultiRecHits out of a KF trajectory
78  std::pair<TransientTrackingRecHit::RecHitContainer, TrajectoryStateOnSurface> collectHits(
79  const Trajectory vtraj,
80  const MultiRecHitCollector* measurementCollector,
81  const MeasurementTrackerEvent *measTk ) const;
82 
83  //updates the hits with the specified annealing factor
84  std::pair<TransientTrackingRecHit::RecHitContainer, TrajectoryStateOnSurface> updateHits(
85  const Trajectory vtraj,
87  const MeasurementTrackerEvent* theMTE,
88  double annealing) const;
89 
90  //removes from the trajectory isolated hits with very low weight
91  void filter(const TrajectoryFitter* fitter,
92  std::vector<Trajectory>& input,
93  int minhits, std::vector<Trajectory>& output,
94  const TransientTrackingRecHitBuilder* builder) const;
95 
96  int countingGoodHits(const Trajectory traj) const;
97 
98  int checkHits( Trajectory iInitTraj, const Trajectory iFinalTraj) const;
99 
100  void PrintHit(const TrackingRecHit* const& hit, TrajectoryStateOnSurface& tsos) const;
101 
103  int minHits_;
104 };
105 
106 #endif
int countingGoodHits(const Trajectory traj) const
std::pair< Trajectory *, std::pair< reco::Track *, PropagationDirection > > AlgoProduct
std::pair< TransientTrackingRecHit::RecHitContainer, TrajectoryStateOnSurface > updateHits(const Trajectory vtraj, const SiTrackerMultiRecHitUpdator *updator, const MeasurementTrackerEvent *theMTE, double annealing) const
void runWithCandidate(const TrackingGeometry *, const MagneticField *, const TrajTrackAssociationCollection &, const MeasurementTrackerEvent *measTk, const TrajectoryFitter *, const TransientTrackingRecHitBuilder *, const MultiRecHitCollector *measurementTracker, const SiTrackerMultiRecHitUpdator *, const reco::BeamSpot &, AlgoProductCollection &, TrajAnnealingCollection &, bool, AlgoProductCollection &, AlgoProductCollection &) const
Run the Final Fit taking TrackCandidates as input.
std::vector< ConstRecHitPointer > RecHitContainer
int checkHits(Trajectory iInitTraj, const Trajectory iFinalTraj) const
bool buildTrack(const Trajectory, AlgoProductCollection &algoResults, float, const reco::BeamSpot &, const reco::TrackRef *) const
Construct Tracks to be put in the event.
std::vector< TrajAnnealing > TrajAnnealingCollection
Definition: TrajAnnealing.h:42
std::vector< TrajAnnealing > TrajAnnealingCollection
static std::string const input
Definition: EdmProvDump.cc:43
void filter(const TrajectoryFitter *fitter, std::vector< Trajectory > &input, int minhits, std::vector< Trajectory > &output, const TransientTrackingRecHitBuilder *builder) const
std::vector< AlgoProduct > AlgoProductCollection
Trajectory fit(const std::pair< TransientTrackingRecHit::RecHitContainer, TrajectoryStateOnSurface > &hits, const TrajectoryFitter *theFitter, Trajectory vtraj) const
accomplishes the fitting-smoothing step for each annealing value
void PrintHit(const TrackingRecHit *const &hit, TrajectoryStateOnSurface &tsos) const
tuple conf
Definition: dbtoconf.py:185
std::pair< TransientTrackingRecHit::RecHitContainer, TrajectoryStateOnSurface > collectHits(const Trajectory vtraj, const MultiRecHitCollector *measurementCollector, const MeasurementTrackerEvent *measTk) const
float calculateNdof(const Trajectory vtraj) const
DAFTrackProducerAlgorithm(const edm::ParameterSet &conf)