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;
21 class NavigationSchool;
22 class Propagator;
25 class TrajectorySeed;
26 class TrajectoryContainer;
28 class TrajectoryFitter;
30 class Trajectory;
31 class TempTrajectory;
32 class TrajectoryFilter;
33 class TrackingRegion;
35 class TrajectoryCleaner;
36 
39 
48 protected:
49  // short names
53  typedef std::pair<TSOS,std::vector<const DetLayer*> > StateAndLayers;
54 
55 public:
56 
57  typedef std::vector<Trajectory> TrajectoryContainer;
58  typedef std::vector<TempTrajectory> TempTrajectoryContainer;
59  typedef TrajectoryContainer::iterator TrajectoryIterator;
60 
62  const TrajectoryStateUpdator* updator,
63  const Propagator* propagatorAlong,
64  const Propagator* propagatorOpposite,
65  const Chi2MeasurementEstimatorBase* estimator,
66  const TransientTrackingRecHitBuilder* RecHitBuilder,
67  const TrajectoryFilter* filter,
68  const TrajectoryFilter* inOutFilter = 0);
69 
71  virtual ~BaseCkfTrajectoryBuilder();
72 
73  // new interface returning the start Trajectory...
76  const TrajectoryFilter*) const { assert(0==1); return TempTrajectory();}
77 
78 
79  virtual void rebuildTrajectories(TempTrajectory const& startingTraj, const TrajectorySeed& seed,
80  TrajectoryContainer& result) const { assert(0==1);}
81 
82 
83  virtual void setEvent(const edm::Event& event) const ;
84  virtual void unset() const;
85 
86  // Return a clone of this, with the data pointer set
87  virtual BaseCkfTrajectoryBuilder * clone(const MeasurementTrackerEvent *data) const = 0;
88 
89  virtual void setDebugger( CkfDebugger * dbg) const {;}
90 
92  // int maxLostHit() {return theMaxLostHit;}
93 
95  // int maxConsecLostHit() {return theMaxConsecLostHit;}
96 
97  protected:
98  //methods for dubugging
99  virtual bool analyzeMeasurementsDebugger(Trajectory& traj, const std::vector<TrajectoryMeasurement>& meas,
103  const TransientTrackingRecHitBuilder * theTTRHBuilder) const {return true;}
104  virtual bool analyzeMeasurementsDebugger(TempTrajectory& traj, const std::vector<TrajectoryMeasurement>& meas,
108  const TransientTrackingRecHitBuilder * theTTRHBuilder) const {return true;}
109  virtual void fillSeedHistoDebugger(std::vector<TrajectoryMeasurement>::iterator begin,
110  std::vector<TrajectoryMeasurement>::iterator end) const {;}
111 
112  protected:
113 
115 
117  // If inOut is true, this is being called part-way through tracking, after the in-out tracking phase is complete.
118  // If inOut is false, it is called at the end of tracking.
119  bool toBeContinued( TempTrajectory& traj, bool inOut = false) const;
120 
122  bool qualityFilter( const TempTrajectory& traj, bool inOut = false) const;
123 
124  void addToResult(boost::shared_ptr<const TrajectorySeed> const & seed, TempTrajectory& traj, TrajectoryContainer& result, bool inOut = false) const;
125  void addToResult( TempTrajectory const& traj, TempTrajectoryContainer& result, bool inOut = false) const;
126  void moveToResult( TempTrajectory&& traj, TempTrajectoryContainer& result, bool inOut = false) const;
127 
128  StateAndLayers findStateAndLayers(const TrajectorySeed& seed, const TempTrajectory& traj) const;
130 
131  private:
132  void seedMeasurements(const TrajectorySeed& seed, TempTrajectory & result) const;
133 
134  protected:
135  void setData(const MeasurementTrackerEvent *data) ;
136 
137  protected:
144 
145  // these may change from seed to seed
148 
149  private:
150  // int theMaxLostHit; /**< Maximum number of lost hits per trajectory candidate.*/
151  // int theMaxConsecLostHit; /**< Maximum number of consecutive lost hits
152  // per trajectory candidate. */
153  // int theMinimumNumberOfHits; /**< Minimum number of hits for a trajectory to be returned.*/
154  // float theChargeSignificance; /**< Value to declare (q/p)/sig(q/p) significant. Negative: ignore. */
155 
156  // TrajectoryFilter* theMinPtCondition;
157  // TrajectoryFilter* theMaxHitsCondition;
160 };
161 
162 
163 #endif
TrajectoryStateOnSurface TSOS
const Propagator * theBackwardPropagator
void setData(const MeasurementTrackerEvent *data)
virtual void setEvent(const edm::Event &event) const
virtual bool analyzeMeasurementsDebugger(Trajectory &traj, const std::vector< TrajectoryMeasurement > &meas, const MeasurementTrackerEvent *theMeasurementTracker, const Propagator *theForwardPropagator, const Chi2MeasurementEstimatorBase *theEstimator, const TransientTrackingRecHitBuilder *theTTRHBuilder) const
const TrajectoryStateUpdator * theUpdator
const TrajectoryFilter * theFilter
TrajectoryContainer::iterator TrajectoryIterator
bool qualityFilter(const TempTrajectory &traj, bool inOut=false) const
void seedMeasurements(const TrajectorySeed &seed, TempTrajectory &result) const
virtual void rebuildTrajectories(TempTrajectory const &startingTraj, const TrajectorySeed &seed, TrajectoryContainer &result) const
BaseCkfTrajectoryBuilder(const edm::ParameterSet &conf, const TrajectoryStateUpdator *updator, const Propagator *propagatorAlong, const Propagator *propagatorOpposite, const Chi2MeasurementEstimatorBase *estimator, const TransientTrackingRecHitBuilder *RecHitBuilder, const TrajectoryFilter *filter, const TrajectoryFilter *inOutFilter=0)
const TransientTrackingRecHitBuilder * theTTRHBuilder
tuple result
Definition: query.py:137
virtual bool analyzeMeasurementsDebugger(TempTrajectory &traj, const std::vector< TrajectoryMeasurement > &meas, const MeasurementTrackerEvent *theMeasurementTracker, const Propagator *theForwardPropagator, const Chi2MeasurementEstimatorBase *theEstimator, const TransientTrackingRecHitBuilder *theTTRHBuilder) const
void addToResult(boost::shared_ptr< const TrajectorySeed > const &seed, TempTrajectory &traj, TrajectoryContainer &result, bool inOut=false) const
#define end
Definition: vmac.h:37
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 MeasurementTrackerEvent * theMeasurementTracker
std::vector< TempTrajectory > TempTrajectoryContainer
const Propagator * thePropagatorOpposite
void moveToResult(TempTrajectory &&traj, TempTrajectoryContainer &result, bool inOut=false) const
#define begin
Definition: vmac.h:30
char data[epos_bytes_allocation]
Definition: EPOS_Wrapper.h:82
bool toBeContinued(TempTrajectory &traj, bool inOut=false) const
std::pair< TSOS, std::vector< const DetLayer * > > StateAndLayers
virtual BaseCkfTrajectoryBuilder * clone(const MeasurementTrackerEvent *data) const =0
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