12#ifndef PIXELDEDXDATA_H
13#define PIXELDEDXDATA_H
18#include <unordered_map>
25 void setPar(
const int i,
const double param);
31 double dEdxPdf(
const double dedx,
const double signedP,
const double mass,
const std::array<double,9> & par,
const int offset)
const;
32 double fdEdxZero(
const double x,
const std::array<double,9> & par)
const;
34 double getPar(
const int i,
const int j)
const;
35 std::array<double, 3>
getP(
const double dedxArg,
const double signedP,
const int nGoodPixels)
const;
36 std::array<double,9>
getFirstNPar(
const double p,
const int nGoodPixels,
const int np)
const;
37 double getMass(
const double dedx,
const double signedP,
const int nGoodPixels)
const;
38 double getdEdx(
const double p,
const double mass,
const int nGoodPixels)
const;
39 double getdEdx(
const double p,
const double mass,
const std::array<double,9> & par)
const;
42 static double crystalBall(
const double x,
const double x0,
const double sig,
const double alp,
const double n) ;
44 static double asymGaus(
const double x,
const double x0,
const double sig,
const double asym) ;
46 static double moyal(
const double x,
const double Ep,
const double R) ;
48 static double dEdx_5p_BG_aleph(
const double xbg,
const std::array<double,9>& pp) ;
49 static double dEdx_5p_aleph(
const double p,
double mass,
const std::array<double,9>& pp) ;
50 static double dEdx_5p_BG(
const double xbg,
const std::array<double,9>& pp) ;
51 static double dEdx_5p(
const double p,
const double mass,
const std::array<double,9>& pp) ;
52 static double dEdx_BG(
const double xbg,
const std::array<double,9>& pp) ;
53 static double dEdx_def(
const double p,
const double mass,
const std::array<double,9>& pp) ;
54 static double dEdx_3p(
const double p,
const double mass,
const std::array<double,9>& pp) ;
56 std::vector<float>
getLikelihoods(
const double dedx2,
const double p2,
const int nGoodPixels)
const;
60 static constexpr double m_kMass = 0.49368;
61 static constexpr double m_pMass = 0.93827;
63 std::unordered_map<uint32_t,std::vector<double>>
m_par;
Hold mappings of ranges to condition objects.
#define CONDCONT_DEF(...)
macros to associate a CLID to a type
#define CLASS_DEF(NAME, CID, VERSION)
associate a clid and a version to a type eg
static double crystalBall(const double x, const double x0, const double sig, const double alp, const double n)
double getdEdx(const double p, const double mass, const int nGoodPixels) const
std::vector< float > getLikelihoods(const double dedx2, const double p2, const int nGoodPixels) const
static double dEdx_5p_BG(const double xbg, const std::array< double, 9 > &pp)
static double dEdx_BG(const double xbg, const std::array< double, 9 > &pp)
static constexpr double m_kMass
double getMass(const double dedx, const double signedP, const int nGoodPixels) const
void setMinimumdEdxForMass(const double mindedxMass)
void setBetheBlochType(const std::string &bb)
void setFunctionType(const std::string &fun)
static double dEdx_5p_aleph(const double p, double mass, const std::array< double, 9 > &pp)
static double dEdx_5p(const double p, const double mass, const std::array< double, 9 > &pp)
double getPar(const int i, const int j) const
double dEdxPdf(const double dedx, const double signedP, const double mass, const std::array< double, 9 > &par, const int offset) const
static double dEdx_def(const double p, const double mass, const std::array< double, 9 > &pp)
static constexpr double m_piMass
std::unordered_map< uint32_t, std::vector< double > > m_par
std::array< double, 9 > getFirstNPar(const double p, const int nGoodPixels, const int np) const
static double asymGaus(const double x, const double x0, const double sig, const double asym)
void setPar(const int i, const double param)
static double dEdx_5p_BG_aleph(const double xbg, const std::array< double, 9 > &pp)
static constexpr double m_pMass
double fdEdxZero(const double x, const std::array< double, 9 > &par) const
void setPosNeg(const bool posneg)
std::array< double, 3 > getP(const double dedxArg, const double signedP, const int nGoodPixels) const
static double moyal(const double x, const double Ep, const double R)
static double dEdx_3p(const double p, const double mass, const std::array< double, 9 > &pp)