CMS 3D CMS Logo

DAFTrackProducerAlgorithm.h
Go to the documentation of this file.
1 
8 #ifndef DAFTrackProducerAlgorithm_h
9 #define DAFTrackProducerAlgorithm_h
10 
11 #include "AlgoProductTraits.h"
12 
20 
21 class MagneticField;
22 class TrackingGeometry;
23 class TrajAnnealing;
24 class TrajectoryFitter;
25 class Trajectory;
30 namespace reco {
31  class Track;
32 }
33 
34 class DAFTrackProducerAlgorithm : public AlgoProductTraits<reco::Track> {
35 public:
39 
40  using TrajAnnealingCollection = std::vector<TrajAnnealing>;
41 
42 public:
45 
48  const MagneticField*,
49  //const TrackCandidateCollection&,
51  const MeasurementTrackerEvent* measTk,
52  const TrajectoryFitter*,
56  const reco::BeamSpot&,
59  bool,
61  AlgoProductCollection&) const;
62 
63 private:
65  bool buildTrack(
66  const Trajectory, AlgoProductCollection& algoResults, float, const reco::BeamSpot&, const reco::TrackRef*) const;
67 
69  Trajectory fit(const std::pair<TransientTrackingRecHit::RecHitContainer, TrajectoryStateOnSurface>& hits,
70  const TrajectoryFitter* theFitter,
71  Trajectory vtraj) const;
72 
73  //calculates the ndof according to the DAF prescription
74  float calculateNdof(const Trajectory vtraj) const;
75 
76  //creates MultiRecHits out of a KF trajectory
77  std::pair<TransientTrackingRecHit::RecHitContainer, TrajectoryStateOnSurface> collectHits(
78  const Trajectory vtraj,
79  const MultiRecHitCollector* measurementCollector,
80  const MeasurementTrackerEvent* measTk) const;
81 
82  //updates the hits with the specified annealing factor
83  std::pair<TransientTrackingRecHit::RecHitContainer, TrajectoryStateOnSurface> updateHits(
84  const Trajectory vtraj,
86  const MeasurementTrackerEvent* theMTE,
87  double annealing) const;
88 
89  //removes from the trajectory isolated hits with very low weight
90  void filter(const TrajectoryFitter* fitter,
91  std::vector<Trajectory>& input,
92  int minhits,
93  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
TrajAnnealing
Definition: TrajAnnealing.h:13
TrajAnnealingCollection
std::vector< TrajAnnealing > TrajAnnealingCollection
Definition: TrajAnnealing.h:36
MeasurementTrackerEvent.h
input
static const std::string input
Definition: EdmProvDump.cc:48
DAFTrackProducerAlgorithm::minHits_
int minHits_
Definition: DAFTrackProducerAlgorithm.h:103
TrackingGeometry
Definition: TrackingGeometry.h:26
TrackCandidateCollection.h
hfClusterShapes_cfi.hits
hits
Definition: hfClusterShapes_cfi.py:5
AlgoProductTraits
Definition: AlgoProductTraits.h:10
HLTSiStripMonitoring_cff.measurementTracker
measurementTracker
Definition: HLTSiStripMonitoring_cff.py:178
DAFTrackProducerAlgorithm::TrajAnnealingCollection
std::vector< TrajAnnealing > TrajAnnealingCollection
Definition: DAFTrackProducerAlgorithm.h:40
convertSQLitetoXML_cfg.output
output
Definition: convertSQLitetoXML_cfg.py:32
DAFTrackProducerAlgorithm::DAFTrackProducerAlgorithm
DAFTrackProducerAlgorithm(const edm::ParameterSet &conf)
Definition: DAFTrackProducerAlgorithm.cc:27
DAFTrackProducerAlgorithm::filter
void filter(const TrajectoryFitter *fitter, std::vector< Trajectory > &input, int minhits, std::vector< Trajectory > &output, const TransientTrackingRecHitBuilder *builder) const
Definition: DAFTrackProducerAlgorithm.cc:315
TransientTrackingRecHit.h
DAFTrackProducerAlgorithm::AlgoProductCollection
typename Base::AlgoProductCollection AlgoProductCollection
Definition: DAFTrackProducerAlgorithm.h:38
DAFTrackProducerAlgorithm::buildTrack
bool buildTrack(const Trajectory, AlgoProductCollection &algoResults, float, const reco::BeamSpot &, const reco::TrackRef *) const
Construct Tracks to be put in the event.
Definition: DAFTrackProducerAlgorithm.cc:232
reco
fixed size matrix
Definition: AlignmentAlgorithmBase.h:45
AlgoProductTraits< reco::Track >::AlgoProductCollection
std::vector< AlgoProduct > AlgoProductCollection
Definition: AlgoProductTraits.h:20
edm::Ref< TrackCollection >
DAFTrackProducerAlgorithm
Definition: DAFTrackProducerAlgorithm.h:34
SiTrackerMultiRecHitUpdator
Definition: SiTrackerMultiRecHitUpdator.h:27
TrajectoryStateOnSurface
Definition: TrajectoryStateOnSurface.h:16
BeamSpot.h
HLT_2018_cff.updator
updator
Definition: HLT_2018_cff.py:123
MultiRecHitCollector
Definition: MultiRecHitCollector.h:10
reco::BeamSpot
Definition: BeamSpot.h:21
DAFTrackProducerAlgorithm::countingGoodHits
int countingGoodHits(const Trajectory traj) const
Definition: DAFTrackProducerAlgorithm.cc:285
TrajTrackAssociation.h
DAFTrackProducerAlgorithm::collectHits
std::pair< TransientTrackingRecHit::RecHitContainer, TrajectoryStateOnSurface > collectHits(const Trajectory vtraj, const MultiRecHitCollector *measurementCollector, const MeasurementTrackerEvent *measTk) const
Definition: DAFTrackProducerAlgorithm.cc:137
MeasurementTrackerEvent
Definition: MeasurementTrackerEvent.h:15
edm::ParameterSet
Definition: ParameterSet.h:36
edm::AssociationMap< edm::OneToOne< std::vector< Trajectory >, reco::TrackCollection, unsigned short > >
DAFTrackProducerAlgorithm::PrintHit
void PrintHit(const TrackingRecHit *const &hit, TrajectoryStateOnSurface &tsos) const
Definition: DAFTrackProducerAlgorithm.cc:478
DAFTrackProducerAlgorithm::calculateNdof
float calculateNdof(const Trajectory vtraj) const
Definition: DAFTrackProducerAlgorithm.cc:380
DAFTrackProducerAlgorithm::runWithCandidate
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.
Definition: DAFTrackProducerAlgorithm.cc:30
DAFTrackProducerAlgorithm::checkHits
int checkHits(Trajectory iInitTraj, const Trajectory iFinalTraj) const
Definition: DAFTrackProducerAlgorithm.cc:401
PropagationDirection.h
DAFTrackProducerAlgorithm::~DAFTrackProducerAlgorithm
~DAFTrackProducerAlgorithm()
Definition: DAFTrackProducerAlgorithm.h:44
TrackingRecHit
Definition: TrackingRecHit.h:21
DAFTrackProducerAlgorithm::updateHits
std::pair< TransientTrackingRecHit::RecHitContainer, TrajectoryStateOnSurface > updateHits(const Trajectory vtraj, const SiTrackerMultiRecHitUpdator *updator, const MeasurementTrackerEvent *theMTE, double annealing) const
Definition: DAFTrackProducerAlgorithm.cc:172
TrajectoryFitter
Definition: TrajectoryFitter.h:19
Trajectory
Definition: Trajectory.h:38
AlgoProductTraits.h
AlgoProductTraits< reco::Track >::TrackCollection
std::vector< reco::Track > TrackCollection
Definition: AlgoProductTraits.h:12
DAFTrackProducerAlgorithm::TrackCollection
typename Base::TrackCollection TrackCollection
Definition: DAFTrackProducerAlgorithm.h:37
DAFTrackProducerAlgorithm::fit
Trajectory fit(const std::pair< TransientTrackingRecHit::RecHitContainer, TrajectoryStateOnSurface > &hits, const TrajectoryFitter *theFitter, Trajectory vtraj) const
accomplishes the fitting-smoothing step for each annealing value
Definition: DAFTrackProducerAlgorithm.cc:214
ParameterSet.h
MagneticField
Definition: MagneticField.h:19
TransientTrackingRecHitBuilder
Definition: TransientTrackingRecHitBuilder.h:6
hit
Definition: SiStripHitEffFromCalibTree.cc:88
DAFTrackProducerAlgorithm::conf_
edm::ParameterSet conf_
Definition: DAFTrackProducerAlgorithm.h:102