Page MenuHomeHEPForge

AbsFilter1DBuilder.cc
No OneTemporary

Size
1 KB
Referenced Files
None
Subscribers
None

AbsFilter1DBuilder.cc

#include <cassert>
#include "geners/CPP11_auto_ptr.hh"
#include "geners/binaryIO.hh"
#include "geners/IOException.hh"
#include "npstat/stat/AbsFilter1DBuilder.hh"
#include "npstat/nm/OrthoPoly1D.hh"
namespace npstat {
PolyFilter1D* OrthoPolyFilter1DBuilder::makeFilter(
const double* taper, const unsigned maxDegree,
const unsigned binnum, const unsigned datalen) const
{
assert(taper);
unsigned filterCenter;
CPP11_auto_ptr<OrthoPoly1D> poly(this->makeOrthoPoly(
maxDegree, binnum, datalen, &filterCenter));
CPP11_auto_ptr<PolyFilter1D> f(new PolyFilter1D(filterCenter));
const unsigned filterLen = poly->length();
f->resize(filterLen);
poly->linearFilter(taper, maxDegree, filterCenter, &(*f)[0], filterLen);
return f.release();
}
bool PolyFilter1D::write(std::ostream& os) const
{
gs::write_pod(os, peak_);
gs::write_pod_vector(os, static_cast<const std::vector<long double>&>(*this));
return !os.fail();
}
PolyFilter1D* PolyFilter1D::read(const gs::ClassId& id, std::istream& in)
{
static const gs::ClassId current(gs::ClassId::makeId<PolyFilter1D>());
current.ensureSameId(id);
unsigned peak = 0U;
gs::read_pod(in, &peak);
PolyFilter1D* f = 0;
if (!in.fail())
{
f = new PolyFilter1D(peak);
gs::read_pod_vector(in, static_cast<std::vector<long double>*>(f));
}
if (in.fail())
{
delete f; f = 0;
throw gs::IOReadFailure("In npstat::PolyFilter1D::read: "
"input stream failure");
}
return f;
}
}

File Metadata

Mime Type
text/x-c
Expires
Tue, Sep 30, 6:08 AM (1 d, 9 h)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
6560402
Default Alt Text
AbsFilter1DBuilder.cc (1 KB)

Event Timeline