![]() |
![]() |
#include <TrackingTools/TrackFitters/interface/KFSplittingFitter.h>
Public Member Functions | |
virtual KFSplittingFitter * | clone () const |
virtual std::vector< Trajectory > | fit (const TrajectorySeed &aSeed, const RecHitContainer &hits, const TSOS &firstPredTsos) const |
virtual std::vector< Trajectory > | fit (const Trajectory &aTraj) const |
KFSplittingFitter (const Propagator *aPropagator, const TrajectoryStateUpdator *aUpdator, const MeasurementEstimator *aEstimator) | |
KFSplittingFitter (const Propagator &aPropagator, const TrajectoryStateUpdator &aUpdator, const MeasurementEstimator &aEstimator) | |
Private Types | |
typedef FreeTrajectoryState | FTS |
typedef TrajectoryMeasurement | TM |
typedef TrajectoryStateOnSurface | TSOS |
Definition at line 15 of file KFSplittingFitter.h.
typedef FreeTrajectoryState KFSplittingFitter::FTS [private] |
typedef TrajectoryMeasurement KFSplittingFitter::TM [private] |
typedef TrajectoryStateOnSurface KFSplittingFitter::TSOS [private] |
KFSplittingFitter::KFSplittingFitter | ( | const Propagator & | aPropagator, | |
const TrajectoryStateUpdator & | aUpdator, | |||
const MeasurementEstimator & | aEstimator | |||
) | [inline] |
Definition at line 25 of file KFSplittingFitter.h.
Referenced by clone().
00027 : 00028 KFTrajectoryFitter(aPropagator, aUpdator, aEstimator) {}
KFSplittingFitter::KFSplittingFitter | ( | const Propagator * | aPropagator, | |
const TrajectoryStateUpdator * | aUpdator, | |||
const MeasurementEstimator * | aEstimator | |||
) | [inline] |
Definition at line 31 of file KFSplittingFitter.h.
00033 : 00034 KFTrajectoryFitter(aPropagator, aUpdator, aEstimator) {}
virtual KFSplittingFitter* KFSplittingFitter::clone | ( | void | ) | const [inline, virtual] |
Reimplemented from KFTrajectoryFitter.
Definition at line 36 of file KFSplittingFitter.h.
References KFTrajectoryFitter::estimator(), KFSplittingFitter(), KFTrajectoryFitter::propagator(), and KFTrajectoryFitter::updator().
00036 { 00037 return new KFSplittingFitter(propagator(),updator(),estimator()); 00038 }
std::vector< Trajectory > KFSplittingFitter::fit | ( | const TrajectorySeed & | aSeed, | |
const RecHitContainer & | hits, | |||
const TSOS & | firstPredTsos | |||
) | const [virtual] |
Reimplemented from KFTrajectoryFitter.
Definition at line 40 of file KFSplittingFitter.cc.
References TrajectorySeed::direction(), KFTrajectoryFitter::fit(), and HLT_VtxMuL3::result.
00042 { 00043 00044 RecHitContainer result; 00045 result.reserve(hits.size()); 00046 for(RecHitContainer::const_iterator ihit = hits.begin(); ihit != hits.end(); 00047 ihit++) { 00048 if(!(**ihit).isValid()) result.push_back(*ihit); 00049 else if((**ihit).transientHits().size() == 1) result.push_back(*ihit); 00050 else { 00051 RecHitContainer splitted = RecHitSplitter().split((**ihit).transientHits()); 00052 RecHitContainer sorted = 00053 RecHitSorter().sortHits(splitted, aSeed.direction()); 00054 for (RecHitContainer::iterator srt = sorted.begin(); srt != sorted.end(); srt++) { 00055 result.push_back(*srt); 00056 // result.insert(result.end(), sorted.begin(), sorted.end()); 00057 } 00058 } 00059 } 00060 00061 return KFTrajectoryFitter::fit(aSeed, result, firstPredTsos); 00062 00063 }
std::vector< Trajectory > KFSplittingFitter::fit | ( | const Trajectory & | aTraj | ) | const [virtual] |
Reimplemented from KFTrajectoryFitter.
Definition at line 7 of file KFSplittingFitter.cc.
References Trajectory::direction(), Trajectory::empty(), Trajectory::firstMeasurement(), KFTrajectoryFitter::fit(), TrajectoryMeasurement::predictedState(), Trajectory::recHits(), HLT_VtxMuL3::result, and Trajectory::seed().
00007 { 00008 00009 typedef RecHitSplitter::RecHitContainer RecHitContainer; 00010 00011 if(aTraj.empty()) return std::vector<Trajectory>(); 00012 00013 TM firstTM = aTraj.firstMeasurement(); 00014 TSOS firstTsos = 00015 TrajectoryStateWithArbitraryError()(firstTM.predictedState()); 00016 00017 RecHitContainer hits = aTraj.recHits(); 00018 RecHitContainer result; 00019 result.reserve(hits.size()); 00020 for(RecHitContainer::iterator ihit = hits.begin(); ihit != hits.end(); 00021 ihit++) { 00022 if(!(**ihit).isValid()) result.push_back(*ihit); 00023 else if((**ihit).transientHits().size() == 1) result.push_back(*ihit); 00024 else { 00025 RecHitContainer splitted = RecHitSplitter().split((**ihit).transientHits()); 00026 RecHitContainer sorted = 00027 RecHitSorter().sortHits(splitted, aTraj.direction()); 00028 for (RecHitContainer::iterator srt = sorted.begin(); srt != sorted.end(); srt++) { 00029 result.push_back(*srt); 00030 // result.insert(result.end(), sorted.begin(), sorted.end()); 00031 } 00032 } 00033 } 00034 00035 00036 return KFTrajectoryFitter::fit(aTraj.seed(), result, firstTsos); 00037 00038 }