00001 #ifndef CkfDebugTrajectoryBuilder_H
00002 #define CkfDebugTrajectoryBuilder_H
00003
00004 #include "RecoTracker/CkfPattern/interface/CkfTrajectoryBuilder.h"
00005 #include "RecoTracker/DebugTools/interface/CkfDebugger.h"
00006 #include "TrackingTools/PatternTools/interface/TempTrajectory.h"
00007
00008
00009 class CkfDebugTrajectoryBuilder: public CkfTrajectoryBuilder{
00010 public:
00011
00012 CkfDebugTrajectoryBuilder(const edm::ParameterSet& conf,
00013 const TrajectoryStateUpdator* updator,
00014 const Propagator* propagatorAlong,
00015 const Propagator* propagatorOpposite,
00016 const Chi2MeasurementEstimatorBase* estimator,
00017 const TransientTrackingRecHitBuilder* RecHitBuilder,
00018 const MeasurementTracker* measurementTracker) :
00019 CkfTrajectoryBuilder( conf,updator,propagatorAlong,propagatorOpposite,estimator,RecHitBuilder,measurementTracker,0)
00020 {
00021
00022 }
00023
00024 virtual void setDebugger( CkfDebugger * dbg) const { theDbg = dbg;}
00025 virtual CkfDebugger * debugger() const{ return theDbg;}
00026
00027 private:
00028 mutable CkfDebugger * theDbg;
00029 bool analyzeMeasurementsDebugger(TempTrajectory& traj, std::vector<TM> meas,
00030 const MeasurementTracker* theMeasurementTracker, const Propagator* theForwardPropagator,
00031 const Chi2MeasurementEstimatorBase* theEstimator,
00032 const TransientTrackingRecHitBuilder * theTTRHBuilder) const {
00033 return theDbg->analyseCompatibleMeasurements(traj.toTrajectory(),meas,theMeasurementTracker,theForwardPropagator,theEstimator,theTTRHBuilder);
00034 };
00035 bool analyzeMeasurementsDebugger(Trajectory& traj, std::vector<TM> meas,
00036 const MeasurementTracker* theMeasurementTracker, const Propagator* theForwardPropagator,
00037 const Chi2MeasurementEstimatorBase* theEstimator,
00038 const TransientTrackingRecHitBuilder * theTTRHBuilder) const {
00039 return theDbg->analyseCompatibleMeasurements(traj,meas,theMeasurementTracker,theForwardPropagator,theEstimator,theTTRHBuilder);
00040 };
00041 void fillSeedHistoDebugger(std::vector<TrajectoryMeasurement>::iterator begin,
00042 std::vector<TrajectoryMeasurement>::iterator end) const {
00043
00044 if (end-begin>=2)
00045 theDbg->fillSeedHist(begin->recHit(),(begin+1)->recHit(),(begin+1)->updatedState());
00046 };
00047
00048 };
00049 #endif