CMS 3D CMS Logo

NuclearInteractionFinder.h
Go to the documentation of this file.
1 #ifndef CD_NuclearInteractionFinder_H_
2 #define CD_NuclearInteractionFinder_H_
3 
4 //----------------------------------------------------------------------------
12 //-----------------------------------------------------------------------------
13 
23 
26 
30 
32 
34 
38 
40 
41 
42 #include <boost/shared_ptr.hpp>
43 
45 private:
46 
50  typedef std::vector<Trajectory> TrajectoryContainer;
52 
54  void fillSeeds( const std::pair<TrajectoryMeasurement, std::vector<TrajectoryMeasurement> >& tmPairs );
55 
57  std::vector<TrajectoryMeasurement>
58  findCompatibleMeasurements( const TM& lastMeas, double rescaleFactor, const LayerMeasurements & layerMeasurements) const;
59 
60  std::vector<TrajectoryMeasurement>
61  findMeasurementsFromTSOS(const TSOS& currentState, DetId detid, const LayerMeasurements & layerMeasurements) const;
62 
64  void definePrimaryHelix(std::vector<TrajectoryMeasurement>::const_iterator it_meas);
65 
66 public:
67 
69 
71 
72  virtual ~NuclearInteractionFinder();
73 
75  bool run(const Trajectory& traj, const MeasurementTrackerEvent &event );
76 
78  void improveSeeds( const MeasurementTrackerEvent &event );
79 
81  std::unique_ptr<TrajectorySeedCollection> getPersistentSeeds();
82 
83  TrajectoryStateOnSurface rescaleError(float rescale, const TSOS& state) const;
84 
85  const NavigationSchool* nav() const { return theNavigationSchool; }
86 
87 private:
88 
95 
98  std::vector< SeedFromNuclearInteraction > allSeeds;
100 
101  // parameters
102  double ptMin;
103  unsigned int maxHits;
107 
108 };
109 #endif
std::unique_ptr< TrajectorySeedCollection > getPersistentSeeds()
Fill &#39;output&#39; with persistent nuclear seeds.
bool run(const Trajectory &traj, const MeasurementTrackerEvent &event)
Run the Finder.
std::vector< TrajectoryMeasurement > findMeasurementsFromTSOS(const TSOS &currentState, DetId detid, const LayerMeasurements &layerMeasurements) const
void improveSeeds(const MeasurementTrackerEvent &event)
Improve the seeds with a third RecHit.
const NavigationSchool * nav() const
std::vector< TrajectoryMeasurement > findCompatibleMeasurements(const TM &lastMeas, double rescaleFactor, const LayerMeasurements &layerMeasurements) const
Find compatible TM of a TM with error rescaled by rescaleFactor.
std::vector< SeedFromNuclearInteraction > allSeeds
const MeasurementTracker * theMeasurementTracker
const NavigationSchool * theNavigationSchool
const MeasurementEstimator * theEstimator
Definition: DetId.h:18
Class used to obtain vector of all compatible TMs associated to a trajectory to be used by the Nuclea...
TrajectoryMeasurement::ConstRecHitPointer ConstRecHitPointer
edm::ESHandle< MagneticField > theMagField
TrackingRecHit::ConstRecHitPointer ConstRecHitPointer
const GeometricSearchTracker * theGeomSearchTracker
TrajectoryStateOnSurface TSOS
std::vector< Trajectory > TrajectoryContainer
void fillSeeds(const std::pair< TrajectoryMeasurement, std::vector< TrajectoryMeasurement > > &tmPairs)
get the seeds at the interaction point
Class used to test if a track has interacted nuclearly.
Definition: NuclearTester.h:16
void definePrimaryHelix(std::vector< TrajectoryMeasurement >::const_iterator it_meas)
Calculate the parameters of the circle representing the primary track at the interaction point...
TrajectoryStateOnSurface rescaleError(float rescale, const TSOS &state) const
Definition: event.py:1
SeedFromNuclearInteraction * currentSeed