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 
27 
29 
33 
35 
37 private:
41  typedef std::vector<Trajectory> TrajectoryContainer;
43 
45  void fillSeeds(const std::pair<TrajectoryMeasurement, std::vector<TrajectoryMeasurement> >& tmPairs);
46 
48  std::vector<TrajectoryMeasurement> findCompatibleMeasurements(const TM& lastMeas,
49  double rescaleFactor,
50  const LayerMeasurements& layerMeasurements) const;
51 
52  std::vector<TrajectoryMeasurement> findMeasurementsFromTSOS(const TSOS& currentState,
53  DetId detid,
54  const LayerMeasurements& layerMeasurements) const;
55 
57  void definePrimaryHelix(std::vector<TrajectoryMeasurement>::const_iterator it_meas);
58 
59 public:
60  struct Config {
62  double ptMin; //passed to SeedFromNuclearInteraction
63  unsigned int maxHits;
65  };
66 
67  NuclearInteractionFinder(const Config& iConfig,
68  const TrackerGeometry* theTrckerGeom,
74 
76  bool run(const Trajectory& traj, const MeasurementTrackerEvent& event);
77 
80 
82  std::unique_ptr<TrajectorySeedCollection> getPersistentSeeds();
83 
84  TrajectoryStateOnSurface rescaleError(float rescale, const TSOS& state) const;
85 
86  const NavigationSchool* nav() const { return theNavigationSchool; }
87 
88 private:
94 
95  std::unique_ptr<NuclearTester> nuclTester;
96  std::unique_ptr<SeedFromNuclearInteraction> currentSeed;
97  std::vector<SeedFromNuclearInteraction> allSeeds;
98  std::unique_ptr<TangentHelix> thePrimaryHelix;
99 
100  // parameters
101  unsigned int maxHits;
104 };
105 #endif
std::unique_ptr< TangentHelix > thePrimaryHelix
const NavigationSchool * nav() const
std::unique_ptr< TrajectorySeedCollection > getPersistentSeeds()
Fill &#39;output&#39; with persistent nuclear seeds.
bool run(const Trajectory &traj, const MeasurementTrackerEvent &event)
Run the Finder.
void improveSeeds(const MeasurementTrackerEvent &event)
Improve the seeds with a third RecHit.
std::unique_ptr< SeedFromNuclearInteraction > currentSeed
std::unique_ptr< NuclearTester > nuclTester
const MeasurementTracker * theMeasurementTracker
const NavigationSchool * theNavigationSchool
const MeasurementEstimator * theEstimator
std::vector< SeedFromNuclearInteraction > allSeeds
std::vector< TrajectoryMeasurement > findMeasurementsFromTSOS(const TSOS &currentState, DetId detid, const LayerMeasurements &layerMeasurements) const
Definition: DetId.h:17
std::vector< TrajectoryMeasurement > findCompatibleMeasurements(const TM &lastMeas, double rescaleFactor, const LayerMeasurements &layerMeasurements) const
Find compatible TM of a TM with error rescaled by rescaleFactor.
Class used to obtain vector of all compatible TMs associated to a trajectory to be used by the Nuclea...
TrajectoryMeasurement::ConstRecHitPointer ConstRecHitPointer
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
Definition: Config.py:1
NuclearInteractionFinder(const Config &iConfig, const TrackerGeometry *theTrckerGeom, const Propagator *thePropagator, const MeasurementEstimator *theEstimator, const MeasurementTracker *theMeasurementTracker, const GeometricSearchTracker *theGeomSearchTracker, const NavigationSchool *theNavigationSchool)
TrajectoryStateOnSurface rescaleError(float rescale, const TSOS &state) const
void definePrimaryHelix(std::vector< TrajectoryMeasurement >::const_iterator it_meas)
Calculate the parameters of the circle representing the primary track at the interaction point...
Definition: event.py:1