00001
00002
00004
00005 #if !defined(AFX_SHAREDBFACTORNETWORKMINIMIZABLE_H__8F38BFB2_7B39_41DB_A979_3A20AD69180D__INCLUDED_)
00006 #define AFX_SHAREDBFACTORNETWORKMINIMIZABLE_H__8F38BFB2_7B39_41DB_A979_3A20AD69180D__INCLUDED_
00007
00008 #if _MSC_VER > 1000
00009 #pragma once
00010 #endif // _MSC_VER > 1000
00011
00012 #include <iomanip>
00013 #include <cmath>
00014 #include <assert.h>
00015 #include "SubjectObserver.h"
00016 #include "NLLSMinimizable.h"
00017 #include "Experiment.h"
00018 #include "ReactionMover.h"
00019 #include "CellAverageObserver.h"
00020 #include "ConversionFactor.h"
00021 #include "NetworkMinimizable.h"
00022
00023 class SharedBFactorNetworkMinimizable : public NetworkMinimizable
00024 {
00025 public:
00026
00027 SharedBFactorNetworkMinimizable();
00028 SharedBFactorNetworkMinimizable(std::vector<Experiment *> experiments,std::vector<CReactionMover *> reactionMovers,bool rateConstantsOptimizable,bool initialChemConcOptimizable,bool logsInObjectiveFunction,double timeSeriesWeight,double rateConstantsWeight,double initialChemConcWeight,int nCells=1);
00029 void Initialize(std::vector<Experiment *> experiments, std::vector<CReactionMover *> reactionMovers, int nCells, bool rateConstantsOptimizable, bool initialChemConcOptimizable, bool logsInObjectiveFunction, double timeSeriesWeight, double rateConstantsWeight, double initialChemConcWeight);
00030 virtual ~SharedBFactorNetworkMinimizable();
00031
00032 Experiment *GetExperiment(int expNum) {return experiments[expNum];}
00033 CellAverageObserver *GetCellObserver(int coNum) {return cellObservers[coNum];}
00034
00035 double GetParameter(int parIndex);
00036 int GetNExp() {return this->nExp;}
00037
00038 int GetNParameters();
00039 double ComputeResiduals(double *parameters);
00040 virtual double ComputeES(double *parameters, double T);
00041
00042 virtual double F(double *parameters, double T);
00043 virtual double F0(double *parameters, double T);
00044 private:
00045 std::vector<Experiment *> experiments;
00046 std::vector<CReactionMover *> reactionMovers;
00047 std::vector<CellAverageObserver *> cellObservers;
00048 std::vector<std::vector<double *> *> initialNetworkData;
00049 std::vector<std::vector<double *> *> currentNetworkData;
00050 int nExp;
00051 };
00052
00053 #endif // !defined(AFX_SHAREDBFACTORNETWORKMINIMIZABLE_H__8F38BFB2_7B39_41DB_A979_3A20AD69180D__INCLUDED_)