CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
BaseCkfTrajectoryBuilder.h
Go to the documentation of this file.
1 #ifndef RecoTracker_CkfPattern_BaseCkfTrajectoryBuilder_h
2 #define RecoTracker_CkfPattern_BaseCkfTrajectoryBuilder_h
3 
8 
9 class CkfDebugger;
11 class DetGroup;
14 class LayerMeasurements;
15 class MeasurementTracker;
17 class NavigationSchool;
18 class Propagator;
21 class TrajectorySeed;
22 class TrajectoryContainer;
24 class TrajectoryFitter;
26 class Trajectory;
27 class TempTrajectory;
28 class TrajectoryFilter;
29 class TrackingRegion;
31 class TrajectoryCleaner;
32 
35 
44 protected:
45  // short names
49  typedef std::pair<TSOS,std::vector<const DetLayer*> > StateAndLayers;
50 
51 public:
52 
53  typedef std::vector<Trajectory> TrajectoryContainer;
54  typedef std::vector<TempTrajectory> TempTrajectoryContainer;
55  typedef TrajectoryContainer::iterator TrajectoryIterator;
56 
58  const TrajectoryStateUpdator* updator,
59  const Propagator* propagatorAlong,
60  const Propagator* propagatorOpposite,
61  const Chi2MeasurementEstimatorBase* estimator,
62  const TransientTrackingRecHitBuilder* RecHitBuilder,
63  const MeasurementTracker* measurementTracker,
64  const TrajectoryFilter* filter,
65  const TrajectoryFilter* inOutFilter = 0);
66 
67  virtual ~BaseCkfTrajectoryBuilder();
68 
69  virtual TrajectoryContainer trajectories(const TrajectorySeed&) const = 0;
70 
71  virtual void setEvent(const edm::Event& event) const;
72  virtual void unset() const;
73 
74  virtual void setDebugger( CkfDebugger * dbg) const {;}
75 
77  // int maxLostHit() {return theMaxLostHit;}
78 
80  // int maxConsecLostHit() {return theMaxConsecLostHit;}
81 
82  protected:
83  //methods for dubugging
84  virtual bool analyzeMeasurementsDebugger(Trajectory& traj, std::vector<TrajectoryMeasurement> meas,
88  const TransientTrackingRecHitBuilder * theTTRHBuilder) const {return true;}
89  virtual bool analyzeMeasurementsDebugger(TempTrajectory& traj, std::vector<TrajectoryMeasurement> meas,
93  const TransientTrackingRecHitBuilder * theTTRHBuilder) const {return true;}
94  virtual void fillSeedHistoDebugger(std::vector<TrajectoryMeasurement>::iterator begin,
95  std::vector<TrajectoryMeasurement>::iterator end) const {;}
96 
97  protected:
98 
100 
102  // If inOut is true, this is being called part-way through tracking, after the in-out tracking phase is complete.
103  // If inOut is false, it is called at the end of tracking.
104  bool toBeContinued( TempTrajectory& traj, bool inOut = false) const;
105 
107  bool qualityFilter( const TempTrajectory& traj, bool inOut = false) const;
108 
109  void addToResult( TempTrajectory& traj, TrajectoryContainer& result, bool inOut = false) const;
110  void addToResult( TempTrajectory& traj, TempTrajectoryContainer& result, bool inOut = false) const;
111 
113 
114  private:
115  void seedMeasurements(const TrajectorySeed& seed, std::vector<TrajectoryMeasurement> & result) const;
116 
117 
118 
119  protected:
127 
128  // these may change from seed to seed
131 
132  private:
133  // int theMaxLostHit; /**< Maximum number of lost hits per trajectory candidate.*/
134  // int theMaxConsecLostHit; /**< Maximum number of consecutive lost hits
135  // per trajectory candidate. */
136  // int theMinimumNumberOfHits; /**< Minimum number of hits for a trajectory to be returned.*/
137  // float theChargeSignificance; /**< Value to declare (q/p)/sig(q/p) significant. Negative: ignore. */
138 
139  // TrajectoryFilter* theMinPtCondition;
140  // TrajectoryFilter* theMaxHitsCondition;
146 };
147 
148 
149 #endif
TrajectoryStateOnSurface TSOS
const Propagator * theBackwardPropagator
virtual void setEvent(const edm::Event &event) const
void addToResult(TempTrajectory &traj, TrajectoryContainer &result, bool inOut=false) const
const TrajectoryStateUpdator * theUpdator
BaseCkfTrajectoryBuilder(const edm::ParameterSet &conf, const TrajectoryStateUpdator *updator, const Propagator *propagatorAlong, const Propagator *propagatorOpposite, const Chi2MeasurementEstimatorBase *estimator, const TransientTrackingRecHitBuilder *RecHitBuilder, const MeasurementTracker *measurementTracker, const TrajectoryFilter *filter, const TrajectoryFilter *inOutFilter=0)
const TrajectoryFilter * theFilter
TrajectoryContainer::iterator TrajectoryIterator
void seedMeasurements(const TrajectorySeed &seed, std::vector< TrajectoryMeasurement > &result) const
bool qualityFilter(const TempTrajectory &traj, bool inOut=false) const
const LayerMeasurements * theLayerMeasurements
virtual TrajectoryContainer trajectories(const TrajectorySeed &) const =0
const TransientTrackingRecHitBuilder * theTTRHBuilder
tuple result
Definition: query.py:137
#define end
Definition: vmac.h:38
How EventSelector::AcceptEvent() decides whether to accept an event for output otherwise it is excluding the probing of A single or multiple positive and the trigger will pass if any such matching triggers are PASS or EXCEPTION[A criterion thatmatches no triggers at all is detected and causes a throw.] A single negative with an expectation of appropriate bit checking in the decision and the trigger will pass if any such matching triggers are FAIL or EXCEPTION A wildcarded negative criterion that matches more than one trigger in the trigger but the state exists so we define the behavior If all triggers are the negative crieriion will lead to accepting the event(this again matches the behavior of"!*"before the partial wildcard feature was incorporated).The per-event"cost"of each negative criterion with multiple relevant triggers is about the same as!*was in the past
tuple conf
Definition: dbtoconf.py:185
const MeasurementTracker * theMeasurementTracker
std::vector< TempTrajectory > TempTrajectoryContainer
const Propagator * thePropagatorOpposite
#define begin
Definition: vmac.h:31
bool toBeContinued(TempTrajectory &traj, bool inOut=false) const
std::pair< TSOS, std::vector< const DetLayer * > > StateAndLayers
StateAndLayers findStateAndLayers(const TempTrajectory &traj) const
virtual bool analyzeMeasurementsDebugger(TempTrajectory &traj, std::vector< TrajectoryMeasurement > meas, const MeasurementTracker *theMeasurementTracker, const Propagator *theForwardPropagator, const Chi2MeasurementEstimatorBase *theEstimator, const TransientTrackingRecHitBuilder *theTTRHBuilder) const
virtual bool analyzeMeasurementsDebugger(Trajectory &traj, std::vector< TrajectoryMeasurement > meas, const MeasurementTracker *theMeasurementTracker, const Propagator *theForwardPropagator, const Chi2MeasurementEstimatorBase *theEstimator, const TransientTrackingRecHitBuilder *theTTRHBuilder) const
const TrajectoryFilter * theInOutFilter
virtual void setDebugger(CkfDebugger *dbg) const
virtual void fillSeedHistoDebugger(std::vector< TrajectoryMeasurement >::iterator begin, std::vector< TrajectoryMeasurement >::iterator end) const
std::vector< Trajectory > TrajectoryContainer
const Chi2MeasurementEstimatorBase * theEstimator
TempTrajectory createStartingTrajectory(const TrajectorySeed &seed) const
const Propagator * theForwardPropagator