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 
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 = 0;
72 
73  virtual void setDebugger( CkfDebugger * dbg) const {;}
74 
76  // int maxLostHit() {return theMaxLostHit;}
77 
79  // int maxConsecLostHit() {return theMaxConsecLostHit;}
80 
81  protected:
82  //methods for dubugging
83  virtual bool analyzeMeasurementsDebugger(Trajectory& traj, std::vector<TrajectoryMeasurement> meas,
87  const TransientTrackingRecHitBuilder * theTTRHBuilder) const {return true;}
88  virtual bool analyzeMeasurementsDebugger(TempTrajectory& traj, std::vector<TrajectoryMeasurement> meas,
92  const TransientTrackingRecHitBuilder * theTTRHBuilder) const {return true;}
93  virtual void fillSeedHistoDebugger(std::vector<TrajectoryMeasurement>::iterator begin,
94  std::vector<TrajectoryMeasurement>::iterator end) const {;}
95 
96  protected:
97 
99 
101  // If inOut is true, this is being called part-way through tracking, after the in-out tracking phase is complete.
102  // If inOut is false, it is called at the end of tracking.
103  bool toBeContinued( TempTrajectory& traj, bool inOut = false) const;
104 
106  bool qualityFilter( const TempTrajectory& traj, bool inOut = false) const;
107 
108  void addToResult( TempTrajectory& traj, TrajectoryContainer& result, bool inOut = false) const;
109  void addToResult( TempTrajectory& traj, TempTrajectoryContainer& result, bool inOut = false) const;
110 
112 
113  private:
114  void seedMeasurements(const TrajectorySeed& seed, std::vector<TrajectoryMeasurement> & result) const;
115 
116 
117 
118  protected:
126 
127  // these may change from seed to seed
130 
131  private:
132  // int theMaxLostHit; /**< Maximum number of lost hits per trajectory candidate.*/
133  // int theMaxConsecLostHit; /**< Maximum number of consecutive lost hits
134  // per trajectory candidate. */
135  // int theMinimumNumberOfHits; /**< Minimum number of hits for a trajectory to be returned.*/
136  // float theChargeSignificance; /**< Value to declare (q/p)/sig(q/p) significant. Negative: ignore. */
137 
138  // TrajectoryFilter* theMinPtCondition;
139  // TrajectoryFilter* theMaxHitsCondition;
144 };
145 
146 
147 #endif
TrajectoryStateOnSurface TSOS
const Propagator * theBackwardPropagator
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
tuple filter
USE THIS FOR SKIMMED TRACKS process.p = cms.Path(process.hltLevel1GTSeed*process.skimming*process.offlineBeamSpot*process.TrackRefitter2) OTHERWISE USE THIS.
Definition: align_tpl.py:86
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 void setEvent(const edm::Event &event) const =0
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