#ifndef ROOT_TMVA_MethodSeedDistance
#define ROOT_TMVA_MethodSeedDistance
#ifndef ROOT_TMVA_MethodBase
#include "TMVA/MethodBase.h"
#endif
#ifndef ROOT_TMVA_IFitterTarget
#include "TMVA/IFitterTarget.h"
#endif
class TFormula;
namespace TMVA {
   class Interval;
   class Event;
   class FitterBase;
   class SeedDistance;
   class IMetric;
   class MethodSeedDistance : public MethodBase, public IFitterTarget {
   public:
      MethodSeedDistance( TString jobName, 
                 TString methodTitle, 
                 DataSet& theData,
                 TString theOption = "",
                 TDirectory* theTargetDir = 0 );
      
      MethodSeedDistance( DataSet& theData, 
                 TString theWeightFile,  
                 TDirectory* theTargetDir = NULL );
      
      virtual ~MethodSeedDistance( void );
    
      
      virtual void Train( void );
      using MethodBase::WriteWeightsToStream;
      using MethodBase::ReadWeightsFromStream;
      
      virtual void WriteWeightsToStream( ostream& o ) const;
      
      virtual void ReadWeightsFromStream( istream& istr );
      
      virtual Double_t GetMvaValue();
      void InitSeedDistance( void );
      
      const Ranking* CreateRanking() { return 0; }
      Double_t EstimatorFunction( std::vector<Double_t>& );
   protected:
      
      virtual void MakeClassSpecific( std::ostream&, const TString& ) const;
      
      void GetHelpMessage() const;
      void MakeListFromStructure( std::vector<Double_t>& linear, 
                                  std::vector< std::vector< Double_t > >& seeds,
                                  std::vector<Double_t>& metricParams );
      void MakeStructureFromList( std::vector<Double_t>& linear, 
                                  std::vector< std::vector< Double_t > >& seeds,
                                  std::vector<Double_t>& metricParams );
   private:
      
      Double_t InterpretFormula( const Event&, std::vector<Double_t>& pars );
      
      void ClearAll();
      
      void PrintResults( const TString&, std::vector<Double_t>&, const Double_t ) const;
      
      virtual void DeclareOptions();
      virtual void ProcessOptions();
      TString                fSeedRangeStringP;    
      TString                fSeedRangeStringT;    
      Bool_t                 fScalingFactor;
      IMetric*               fMetric;
      SeedDistance*          fSeedDistance;
      std::vector< std::vector< Double_t > > fSeeds;    
      std::vector<Double_t>  fMetricPars;         
      std::vector<Double_t>  fPars;           
      Int_t                  fDataSeeds;
      Int_t                  fBackSeeds;
      TString                fMetricType;
      Bool_t                 fPow2Estimator;
      Int_t                  fNPars;              
      std::vector<Interval*> fParRange;           
      TString                fFitMethod;          
      TString                fConverger;          
      FitterBase*            fFitter;             
      IFitterTarget*         fIntermediateFitter; 
      
      std::vector<const Event*>    fEventsSig;          
      std::vector<const Event*>    fEventsBkg;          
      
      Double_t               fSumOfWeightsSig;    
      Double_t               fSumOfWeightsBkg;    
      ClassDef(MethodSeedDistance,0)  
   };
} 
#endif // MethodSeedDistance_H
This page has been automatically generated. If you have any comments or suggestions about the page layout send a mail to ROOT support, or contact the developers with any questions or problems regarding ROOT.