00001 // Experiment.h: interface for the Experiment class. 00002 // 00004 00005 #if !defined(AFX_EXPERIMENT_H__0C8658DA_AB00_4608_A352_7200321D66D1__INCLUDED_) 00006 #define AFX_EXPERIMENT_H__0C8658DA_AB00_4608_A352_7200321D66D1__INCLUDED_ 00007 00008 #if _MSC_VER > 1000 00009 #pragma once 00010 #endif // _MSC_VER > 1000 00011 00012 // this turns off template inside template warnings - should be in a common 00013 // header file 00014 #pragma warning(disable:4786) 00015 00016 #include <stdexcept> 00017 #include <vector> 00018 #include "ReactionNetwork.h" 00019 #include "ChemicalTimeSeriesData.h" 00020 #include "ForcingData.h" 00021 00022 class Experiment 00023 { 00024 public: 00025 Experiment(); 00026 Experiment(ReactionNetwork *reactionNetwork,std::string experimentName=""); 00027 virtual ~Experiment(); 00028 void AddDataFileToList(std::string fileName); 00029 void AddForcingFileToList(std::string fileName); 00030 void ReadData(); 00031 void ReadForcingData(); 00032 std::string GetExperimentName() const {return _experimentName;} 00033 ReactionNetwork* GetReactionNetwork() {return _reactionNetwork;} 00034 ChemicalTimeSeriesData* GetChemicalTimeSeriesData() {return _data;} 00035 CForcingData* GetForcingData() {return _forcingData;} 00036 private: 00037 std::string _experimentName; 00038 std::vector<std::string> _fileList; 00039 std::vector<std::string> _forcingFileList; 00040 ReactionNetwork* _reactionNetwork; 00041 ChemicalTimeSeriesData* _data; 00042 CForcingData* _forcingData; 00043 }; 00044 00045 #endif // !defined(AFX_EXPERIMENT_H__0C8658DA_AB00_4608_A352_7200321D66D1__INCLUDED_)