Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

AlgAdapt.h

Go to the documentation of this file.
00001 #ifndef ANP_ALGADAPT_H
00002 #define ANP_ALGADAPT_H
00003 
00004 //
00005 // ABC for algorithm changes true or reco quantities in a fit
00006 
00007 // Inheriting algorithms have 4 vectors<double> arrays:
00008 //    CurErr: current error estimates
00009 //    CurPar: current parameter estimate
00010 //    DefErr: default error estimates
00011 //    DefPar: default parameter values
00012 
00013 // C++
00014 #include <iostream>
00015 #include <string>
00016 #include <vector>
00017 
00018 // Local
00019 #include "Handle.h"
00020 #include "RecoNu.h"
00021 #include "Truth.h"
00022 
00023 class Registry;
00024 class TDirectory;
00025 
00026 namespace Anp
00027 {
00028    class AlgAdapt: public virtual Base
00029    {      
00030    public:      
00031       
00032       AlgAdapt();
00033       virtual ~AlgAdapt();
00034 
00035       virtual bool Init() = 0;
00036 
00037       virtual void InitReco(RecoNu &) const;
00038       virtual void InitTrue(Truth &) const;
00039 
00040       virtual double GetPT() const = 0;
00041 
00042       virtual double GetReco(RecoNu &) const = 0;
00043       virtual double GetTrue(const Truth &) const = 0;
00044 
00045       virtual const std::vector<double>& GetCurErr() const = 0;
00046       virtual const std::vector<double>& GetCurPar() const = 0;
00047       virtual const std::vector<double>& GetDefErr() const = 0;
00048       virtual const std::vector<double>& GetDefPar() const = 0;
00049 
00050       virtual void SetCurErr(const std::vector<double> &) = 0;
00051       virtual void SetCurPar(const std::vector<double> &) = 0;
00052       virtual void SetDefErr(const std::vector<double> &) = 0;
00053       virtual void SetDefPar(const std::vector<double> &) = 0;
00054 
00055       virtual void Config(const Registry &) = 0;
00056      
00057       virtual void Set(TDirectory *);
00058 
00059       void Name(const std::string &value);
00060       const std::string& Name() const;
00061 
00062    protected:
00063 
00064       const std::vector<double> GetVec(const std::string &key, const Registry &reg) const;
00065 
00066       void PrintVec(const std::vector<double> &v, std::ostream &o, unsigned int w = 7, unsigned int p = 5) const;
00067 
00068    private:
00069 
00070       std::string fName;
00071    };
00072 
00073    typedef Anp::Handle<Anp::AlgAdapt> AlgAdaptPtr;
00074 
00075    //
00076    // Inlined member functions
00077    //
00078    inline void AlgAdapt::Name(const std::string &value) { fName = value; }  
00079    inline const std::string& AlgAdapt::Name() const { return fName; }
00080 
00081    inline void AlgAdapt::InitReco(RecoNu &) const {}
00082    inline void AlgAdapt::InitTrue(Truth &) const {}
00083 
00084    inline void AlgAdapt::Set(TDirectory *) {}
00085 }
00086 
00087 #endif

Generated on Thu Nov 1 11:49:02 2007 for loon by  doxygen 1.3.9.1