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 #include<cassert>
11 
12 class CkfDebugger;
14 class DetGroup;
17 class LayerMeasurements;
18 class MeasurementTracker;
20 class NavigationSchool;
21 class Propagator;
24 class TrajectorySeed;
25 class TrajectoryContainer;
27 class TrajectoryFitter;
29 class Trajectory;
30 class TempTrajectory;
31 class TrajectoryFilter;
32 class TrackingRegion;
34 class TrajectoryCleaner;
35 
38 
47 protected:
48  // short names
52  typedef std::pair<TSOS,std::vector<const DetLayer*> > StateAndLayers;
53 
54 public:
55 
56  typedef std::vector<Trajectory> TrajectoryContainer;
57  typedef std::vector<TempTrajectory> TempTrajectoryContainer;
58  typedef TrajectoryContainer::iterator TrajectoryIterator;
59 
61  const TrajectoryStateUpdator* updator,
62  const Propagator* propagatorAlong,
63  const Propagator* propagatorOpposite,
64  const Chi2MeasurementEstimatorBase* estimator,
65  const TransientTrackingRecHitBuilder* RecHitBuilder,
66  const MeasurementTracker* measurementTracker,
67  const TrajectoryFilter* filter,
68  const TrajectoryFilter* inOutFilter = 0);
69 
70  virtual ~BaseCkfTrajectoryBuilder();
71 
72  // new interface returning the start Trajectory...
75  const TrajectoryFilter*) const { assert(0==1); return TempTrajectory();}
76 
77 
78  virtual void rebuildTrajectories(TempTrajectory const& startingTraj, const TrajectorySeed& seed,
79  TrajectoryContainer& result) const { assert(0==1);}
80 
81 
82  virtual void setEvent(const edm::Event& event) const;
83  virtual void unset() const;
84 
85  virtual void setDebugger( CkfDebugger * dbg) const {;}
86 
88  // int maxLostHit() {return theMaxLostHit;}
89 
91  // int maxConsecLostHit() {return theMaxConsecLostHit;}
92 
93  protected:
94  //methods for dubugging
95  virtual bool analyzeMeasurementsDebugger(Trajectory& traj, const std::vector<TrajectoryMeasurement>& meas,
99  const TransientTrackingRecHitBuilder * theTTRHBuilder) const {return true;}
100  virtual bool analyzeMeasurementsDebugger(TempTrajectory& traj, const std::vector<TrajectoryMeasurement>& meas,
104  const TransientTrackingRecHitBuilder * theTTRHBuilder) const {return true;}
105  virtual void fillSeedHistoDebugger(std::vector<TrajectoryMeasurement>::iterator begin,
106  std::vector<TrajectoryMeasurement>::iterator end) const {;}
107 
108  protected:
109 
111 
113  // If inOut is true, this is being called part-way through tracking, after the in-out tracking phase is complete.
114  // If inOut is false, it is called at the end of tracking.
115  bool toBeContinued( TempTrajectory& traj, bool inOut = false) const;
116 
118  bool qualityFilter( const TempTrajectory& traj, bool inOut = false) const;
119 
120  void addToResult(boost::shared_ptr<const TrajectorySeed> const & seed, TempTrajectory& traj, TrajectoryContainer& result, bool inOut = false) const;
121  void addToResult( TempTrajectory const& traj, TempTrajectoryContainer& result, bool inOut = false) const;
122  void moveToResult( TempTrajectory&& traj, TempTrajectoryContainer& result, bool inOut = false) const;
123 
124  StateAndLayers findStateAndLayers(const TrajectorySeed& seed, const TempTrajectory& traj) const;
126 
127  private:
128  void seedMeasurements(const TrajectorySeed& seed, TempTrajectory & result) const;
129 
130 
131 
132  protected:
140 
141  // these may change from seed to seed
144 
145  private:
146  // int theMaxLostHit; /**< Maximum number of lost hits per trajectory candidate.*/
147  // int theMaxConsecLostHit; /**< Maximum number of consecutive lost hits
148  // per trajectory candidate. */
149  // int theMinimumNumberOfHits; /**< Minimum number of hits for a trajectory to be returned.*/
150  // float theChargeSignificance; /**< Value to declare (q/p)/sig(q/p) significant. Negative: ignore. */
151 
152  // TrajectoryFilter* theMinPtCondition;
153  // TrajectoryFilter* theMaxHitsCondition;
159 };
160 
161 
162 #endif
TrajectoryStateOnSurface TSOS
const Propagator * theBackwardPropagator
virtual void setEvent(const edm::Event &event) const
virtual bool analyzeMeasurementsDebugger(TempTrajectory &traj, const std::vector< TrajectoryMeasurement > &meas, const MeasurementTracker *theMeasurementTracker, const Propagator *theForwardPropagator, const Chi2MeasurementEstimatorBase *theEstimator, const TransientTrackingRecHitBuilder *theTTRHBuilder) const
const TrajectoryStateUpdator * theUpdator
virtual bool analyzeMeasurementsDebugger(Trajectory &traj, const std::vector< TrajectoryMeasurement > &meas, const MeasurementTracker *theMeasurementTracker, const Propagator *theForwardPropagator, const Chi2MeasurementEstimatorBase *theEstimator, const TransientTrackingRecHitBuilder *theTTRHBuilder) const
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
bool qualityFilter(const TempTrajectory &traj, bool inOut=false) const
const LayerMeasurements * theLayerMeasurements
void seedMeasurements(const TrajectorySeed &seed, TempTrajectory &result) const
virtual void rebuildTrajectories(TempTrajectory const &startingTraj, const TrajectorySeed &seed, TrajectoryContainer &result) const
const TransientTrackingRecHitBuilder * theTTRHBuilder
tuple result
Definition: query.py:137
void addToResult(boost::shared_ptr< const TrajectorySeed > const &seed, TempTrajectory &traj, TrajectoryContainer &result, bool inOut=false) const
#define end
Definition: vmac.h:38
virtual TempTrajectory buildTrajectories(const TrajectorySeed &seed, TrajectoryContainer &ret, const TrajectoryFilter *) const
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
StateAndLayers findStateAndLayers(const TrajectorySeed &seed, const TempTrajectory &traj) const
const MeasurementTracker * theMeasurementTracker
std::vector< TempTrajectory > TempTrajectoryContainer
const Propagator * thePropagatorOpposite
void moveToResult(TempTrajectory &&traj, TempTrajectoryContainer &result, bool inOut=false) const
#define begin
Definition: vmac.h:31
bool toBeContinued(TempTrajectory &traj, bool inOut=false) const
std::pair< TSOS, std::vector< const DetLayer * > > StateAndLayers
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