mirror of
https://github.com/aportelli/LatAnalyze.git
synced 2024-11-10 00:45:36 +00:00
minor fixes in new physics classes
This commit is contained in:
parent
1bde8822b1
commit
685d433032
@ -128,17 +128,17 @@ CorrelatorModels::ModelPar CorrelatorModels::parseModel(const string s)
|
|||||||
if (regex_match(s, sm, regex("exp([0-9]+)")))
|
if (regex_match(s, sm, regex("exp([0-9]+)")))
|
||||||
{
|
{
|
||||||
par.type = CorrelatorType::exp;
|
par.type = CorrelatorType::exp;
|
||||||
par.nState = strTo<Index>(sm[0].str());
|
par.nState = strTo<Index>(sm[1].str());
|
||||||
}
|
}
|
||||||
else if (regex_match(s, sm, regex("cosh([0-9]+)")))
|
else if (regex_match(s, sm, regex("cosh([0-9]+)")))
|
||||||
{
|
{
|
||||||
par.type = CorrelatorType::cosh;
|
par.type = CorrelatorType::cosh;
|
||||||
par.nState = strTo<Index>(sm[0].str());
|
par.nState = strTo<Index>(sm[1].str());
|
||||||
}
|
}
|
||||||
else if (regex_match(s, sm, regex("sinh([0-9]+)")))
|
else if (regex_match(s, sm, regex("sinh([0-9]+)")))
|
||||||
{
|
{
|
||||||
par.type = CorrelatorType::sinh;
|
par.type = CorrelatorType::sinh;
|
||||||
par.nState = strTo<Index>(sm[0].str());
|
par.nState = strTo<Index>(sm[1].str());
|
||||||
}
|
}
|
||||||
else if (s == "linear")
|
else if (s == "linear")
|
||||||
{
|
{
|
||||||
@ -189,7 +189,7 @@ DVec CorrelatorModels::parameterGuess(const DMatSample &corr,
|
|||||||
const ModelPar par)
|
const ModelPar par)
|
||||||
{
|
{
|
||||||
DVec init;
|
DVec init;
|
||||||
Index nt = corr.size();
|
Index nt = corr[central].size();
|
||||||
|
|
||||||
switch (par.type)
|
switch (par.type)
|
||||||
{
|
{
|
||||||
@ -234,6 +234,11 @@ CorrelatorFitter::CorrelatorFitter(const std::vector<DMatSample> &corr)
|
|||||||
setCorrelators(corr);
|
setCorrelators(corr);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
XYSampleData & CorrelatorFitter::data(void)
|
||||||
|
{
|
||||||
|
return *data_;
|
||||||
|
}
|
||||||
|
|
||||||
void CorrelatorFitter::setCorrelator(const DMatSample &corr)
|
void CorrelatorFitter::setCorrelator(const DMatSample &corr)
|
||||||
{
|
{
|
||||||
std::vector<DMatSample> vec;
|
std::vector<DMatSample> vec;
|
||||||
|
@ -51,6 +51,8 @@ class CorrelatorFitter
|
|||||||
public:
|
public:
|
||||||
CorrelatorFitter(const DMatSample &corr);
|
CorrelatorFitter(const DMatSample &corr);
|
||||||
CorrelatorFitter(const std::vector<DMatSample> &corr);
|
CorrelatorFitter(const std::vector<DMatSample> &corr);
|
||||||
|
virtual ~CorrelatorFitter(void) = default;
|
||||||
|
XYSampleData & data(void);
|
||||||
void setCorrelator(const DMatSample &corr);
|
void setCorrelator(const DMatSample &corr);
|
||||||
void setCorrelators(const std::vector<DMatSample> &corr);
|
void setCorrelators(const std::vector<DMatSample> &corr);
|
||||||
const DMatSample & getCorrelator(const Index i = 0) const;
|
const DMatSample & getCorrelator(const Index i = 0) const;
|
||||||
|
@ -25,8 +25,9 @@ using namespace Latan;
|
|||||||
|
|
||||||
// constructors ////////////////////////////////////////////////////////////////
|
// constructors ////////////////////////////////////////////////////////////////
|
||||||
EffectiveMass::EffectiveMass(const CorrelatorType type)
|
EffectiveMass::EffectiveMass(const CorrelatorType type)
|
||||||
: type_(type)
|
{
|
||||||
{}
|
setType(type);
|
||||||
|
}
|
||||||
|
|
||||||
// access //////////////////////////////////////////////////////////////////////
|
// access //////////////////////////////////////////////////////////////////////
|
||||||
CorrelatorType EffectiveMass::getType(void) const
|
CorrelatorType EffectiveMass::getType(void) const
|
||||||
@ -39,6 +40,31 @@ void EffectiveMass::setType(const CorrelatorType type)
|
|||||||
type_ = type;
|
type_ = type;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
DVec EffectiveMass::getTime(const Index nt) const
|
||||||
|
{
|
||||||
|
DVec tvec;
|
||||||
|
|
||||||
|
switch (type_)
|
||||||
|
{
|
||||||
|
case CorrelatorType::undefined:
|
||||||
|
LATAN_ERROR(Argument, "correlator type is undefined");
|
||||||
|
break;
|
||||||
|
case CorrelatorType::exp:
|
||||||
|
case CorrelatorType::linear:
|
||||||
|
tvec = DVec::LinSpaced(nt - 1, 0, nt - 2);
|
||||||
|
break;
|
||||||
|
case CorrelatorType::cosh:
|
||||||
|
case CorrelatorType::sinh:
|
||||||
|
tvec = DVec::LinSpaced(nt - 2, 1, nt - 2);
|
||||||
|
break;
|
||||||
|
case CorrelatorType::cst:
|
||||||
|
tvec = DVec::LinSpaced(nt, 0, nt - 1);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
return tvec;
|
||||||
|
}
|
||||||
|
|
||||||
// compute effective mass //////////////////////////////////////////////////////
|
// compute effective mass //////////////////////////////////////////////////////
|
||||||
DVec EffectiveMass::operator()(const DVec &corr) const
|
DVec EffectiveMass::operator()(const DVec &corr) const
|
||||||
{
|
{
|
||||||
|
@ -37,6 +37,7 @@ public:
|
|||||||
// access
|
// access
|
||||||
CorrelatorType getType(void) const;
|
CorrelatorType getType(void) const;
|
||||||
void setType(const CorrelatorType type);
|
void setType(const CorrelatorType type);
|
||||||
|
DVec getTime(const Index nt) const;
|
||||||
// compute effective mass
|
// compute effective mass
|
||||||
DVec operator()(const DVec &corr) const;
|
DVec operator()(const DVec &corr) const;
|
||||||
DMatSample operator()(const DMatSample &corr) const;
|
DMatSample operator()(const DMatSample &corr) const;
|
||||||
|
Loading…
Reference in New Issue
Block a user