CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_5_3_0/src/RecoVertex/GhostTrackFitter/interface/AnnealingGhostTrackFitter.h

Go to the documentation of this file.
00001 #ifndef RecoBTag_AnnealingGhostTrackFitter_h
00002 #define RecoBTag_AnnealingGhostTrackFitter_h
00003 
00004 #include <vector>
00005 #include <memory>
00006 
00007 #include "RecoVertex/VertexTools/interface/AnnealingSchedule.h"
00008 
00009 #include "RecoVertex/GhostTrackFitter/interface/GhostTrackFitter.h"
00010 #include "RecoVertex/GhostTrackFitter/interface/SequentialGhostTrackFitter.h"
00011 
00012 namespace reco {
00013 
00014 class GhostTrackPrediction;
00015 class GhostTrackState;
00016 
00017 class AnnealingGhostTrackFitter : public SequentialGhostTrackFitter {
00018     public:
00019         AnnealingGhostTrackFitter();
00020         AnnealingGhostTrackFitter(const AnnealingGhostTrackFitter &orig) :
00021                 annealing(orig.annealing->clone()),
00022                 firstStep(orig.firstStep) {}
00023         ~AnnealingGhostTrackFitter() {}
00024 
00025     private:
00026         virtual FitterImpl *clone() const
00027         { return new AnnealingGhostTrackFitter(*this); }
00028 
00029         virtual bool stable(const GhostTrackPrediction &before,
00030                             const GhostTrackPrediction &after) const
00031         {
00032                 return SequentialGhostTrackFitter::stable(before, after) &&
00033                        annealing->isAnnealed();
00034         }
00035 
00036         virtual void reset() { annealing->resetAnnealing(); firstStep = true; }
00037         virtual void postFit(
00038                         const GhostTrackFitter::PredictionUpdater &updater,
00039                         const GhostTrackPrediction &pred,
00040                         std::vector<GhostTrackState> &states);
00041 
00042         std::auto_ptr<AnnealingSchedule>        annealing;
00043         bool                                    firstStep;
00044 };
00045 
00046 }
00047 
00048 #endif // RecoBTag_AnnealingGhostTrackFitter_h