Main Page   Modules   Namespace List   Class Hierarchy   Data Structures   File List   Namespace Members   Data Fields   Globals   Related Pages  

FitObjectStreamer.cpp

Go to the documentation of this file.
00001 #include "FitObjectStreamer.h"
00002 #include "../FitObject.h"
00003 #include "../AllFitObject.h"
00004 #include <is/isinfo.h>
00005 
00006 using namespace Sct;
00007 
00008 namespace SctData {
00009 namespace IO {
00010 
00011 void FitObjectStreamer::write(OStream& out, const Streamable& ob, const IOManager& manager) const throw(LogicError, IoError) {
00012     //Dynamic cast should always be safe
00013     const FitObject& fo = dynamic_cast<const FitObject&>(ob);
00014 
00015     //out << fo.getNPar() << fo.getNDim();
00016     out << fo.getChiSquared() << fo.getNDF();
00017     //out << fo.getFormula();
00018     for (int i=0; i<fo.getNPar(); ++i) {
00019         out << fo.getParameter(i) << fo.getParError(i) << fo.isFixed(i);
00020         //out << fo.getParName(i);
00021     }
00022 
00023     for (int i=0; i<fo.getNDim(); ++i) {
00024         out << fo.getVarMin(i) << fo.getVarMax(i);
00025     }
00026 }
00027 
00029 void FitObjectStreamer::read(IStream& in, Streamable& ob, const IOManager& manager) const throw(LogicError, IoError) {
00030     //Dynamic cast should always be safe
00031     FitObject& fo = dynamic_cast<FitObject&>(ob);
00032     helper.set(fo);
00033 
00034     int npar, ndim;
00035     int ndf;
00036     double chi2;
00037     bool fixed;
00038     //string formula;
00039     //in >> npar >> ndim;
00040     ndim = fo.getNDim();
00041     npar = fo.getNPar();
00042     in >> chi2 >> ndf;
00043     //in >> formula;
00044     //helper.setNDim(ndim);
00045     //helper.setNPar(npar);
00046     helper.setChiSquared(chi2);
00047     helper.setNDF(ndf);
00048     //helper.setFormula(formula);
00049 
00050     for (int i=0; i<npar; i++) {
00051         double param, paramError;
00052         //string name;
00053         in >> param >> paramError >> fixed;
00054     //in >> name;
00055         fo.setParameter(i, param);
00056         fo.setParError(i, paramError);
00057     fo.fixParameter(i, fixed);
00058         //fo.setParName(i, name);
00059     }
00060 
00061     
00062     for (int i=0; i<ndim; i++) {
00063         double varMin, varMax;
00064         in >> varMin >> varMax;
00065         fo.setVarMin(i, varMin);
00066         fo.setVarMax(i, varMax);
00067     }
00068 }
00069 
00070 bool ErfcFitObjectStreamer::inMap = IOManager::addToMap("SctData::ErfcFitObject", auto_ptr<Streamer>(new ErfcFitObjectStreamer()));
00071 
00072 shared_ptr<Streamable> ErfcFitObjectStreamer::read(IStream& in, const IOManager& manager) const throw(LogicError, IoError) {
00073     shared_ptr<Streamable> f (new ErfcFitObject());
00074     read(in, *f, manager);
00075     return f;
00076 }
00077 
00078 void ErfcFitObjectStreamer::read(IStream& in, Streamable& ob, const IOManager& manager) const throw(LogicError, IoError) {
00079     FitObjectStreamer::read(in, ob, manager);
00080 }
00081 
00082 
00083 bool ErfFitObjectStreamer::inMap = IOManager::addToMap("SctData::ErfFitObject", auto_ptr<Streamer>(new ErfFitObjectStreamer()));
00084 
00085 shared_ptr<Streamable> ErfFitObjectStreamer::read(IStream& in, const IOManager& manager) const throw(LogicError, IoError) {
00086     shared_ptr<Streamable> f (new ErfFitObject());
00087     read(in, *f, manager);
00088     return f;
00089 }
00090 
00091 void ErfFitObjectStreamer::read(IStream& in, Streamable& ob, const IOManager& manager) const throw(LogicError, IoError) {
00092     FitObjectStreamer::read(in, ob, manager);
00093 }
00094 
00095 
00096 
00097 bool GausFitObjectStreamer::inMap = IOManager::addToMap("SctData::GausFitObject", auto_ptr<Streamer>(new GausFitObjectStreamer()));
00098 
00099 shared_ptr<Streamable> GausFitObjectStreamer::read(IStream& in, const IOManager& manager) const throw(LogicError, IoError) {
00100     shared_ptr<Streamable> f (new GausFitObject());
00101     read(in, *f, manager);
00102     return f;
00103 }
00104 
00105 void GausFitObjectStreamer::read(IStream& in, Streamable& ob, const IOManager& manager) const throw(LogicError, IoError) {
00106     FitObjectStreamer::read(in, ob, manager);
00107 }
00108 
00109 
00110 
00111 bool TopHatFitObjectStreamer::inMap = IOManager::addToMap("SctData::TopHatFitObject", auto_ptr<Streamer>(new TopHatFitObjectStreamer()));
00112 
00113 shared_ptr<Streamable> TopHatFitObjectStreamer::read(IStream& in, const IOManager& manager) const throw(LogicError, IoError) {
00114     shared_ptr<Streamable> f (new TopHatFitObject());
00115     read(in, *f, manager);
00116     return f;
00117 }
00118 
00119 void TopHatFitObjectStreamer::read(IStream& in, Streamable& ob, const IOManager& manager) const throw(LogicError, IoError) {
00120     FitObjectStreamer::read(in, ob, manager);
00121 }
00122 
00123 }
00124 }

Generated on Mon Dec 15 19:36:01 2003 for SCT DAQ/DCS Software by doxygen1.3-rc3