#ifndef FITSTATE_H_
#define FITSTATE_H_
//_____________________________________________________________________________
///
/// \class FitState
///
/// FitState is the State part of the State design pattern, used 
/// to implement the track fitter. This is an abstract base class, 
/// that defines interface of concrete FitState classes. 
///
/// \author Sergei avva@fnal.gov
///

class FitContext;

class FitState {

public:
    virtual ~FitState() {};
    
    ///
    /// Iterate
    ///
    virtual void Iterate(FitContext& context) const = 0;

    ///
    /// Name() - return name of the state 
    ///
    virtual const std::string& Name() const = 0;    
};

#endif // FITSTATE_H_
