CMS 3D CMS Logo

KFSplittingFitter Class Reference

#include <TrackingTools/TrackFitters/interface/KFSplittingFitter.h>

Inheritance diagram for KFSplittingFitter:

KFTrajectoryFitter TrajectoryFitter

List of all members.

Public Member Functions

virtual KFSplittingFitterclone () const
virtual std::vector< Trajectoryfit (const TrajectorySeed &aSeed, const RecHitContainer &hits, const TSOS &firstPredTsos) const
virtual std::vector< Trajectoryfit (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


Detailed Description

Definition at line 15 of file KFSplittingFitter.h.


Member Typedef Documentation

typedef FreeTrajectoryState KFSplittingFitter::FTS [private]

Reimplemented from KFTrajectoryFitter.

Definition at line 20 of file KFSplittingFitter.h.

typedef TrajectoryMeasurement KFSplittingFitter::TM [private]

Reimplemented from KFTrajectoryFitter.

Definition at line 21 of file KFSplittingFitter.h.

typedef TrajectoryStateOnSurface KFSplittingFitter::TSOS [private]

Reimplemented from KFTrajectoryFitter.

Definition at line 19 of file KFSplittingFitter.h.


Constructor & Destructor Documentation

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) {}


Member Function Documentation

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 }


The documentation for this class was generated from the following files:
Generated on Tue Jun 9 18:26:17 2009 for CMSSW by  doxygen 1.5.4