9#include <analysis/dbobjects/ECLPhotonEnergyResolution.h>
10#include <analysis/dbobjects/ParticleWeightingBinLimits.h>
11#include <framework/logging/Logger.h>
21 {
"RelativeEnergyResolution", -1.},
22 {
"RelativeEnergyResolutionUncertUp", -1.},
23 {
"RelativeEnergyResolutionUncertDown", -1.}
35 {
"RelativeEnergyResolution", energyResolution.at(0)},
36 {
"RelativeEnergyResolutionUncertUp", energyResolution.at(1)},
37 {
"RelativeEnergyResolutionUncertDown", energyResolution.at(2)}
47 NDBin energyBinning = {{
"Energy", energyBinValues}, {
"Theta", thetaBinValues}, {
"Phi", phiBinValues}};
60 std::map<std::string, double> binning = {{
"Energy", energy}, {
"Theta", theta}, {
"Phi", phi}};
67 if (energyResolutionInfo.at(
"RelativeEnergyResolution") == -1.) {
68 B2DEBUG(20,
"Energy resolution was returned as -1 since provided energy was not within energy resolution binning.");
71 return energyResolutionInfo.at(
"RelativeEnergyResolution");
81 {
"ThetaResolution", thetaResolution.at(0)},
82 {
"ThetaResolutionUncertUp", thetaResolution.at(1)},
83 {
"ThetaResolutionUncertDown", thetaResolution.at(2)},
84 {
"PhiResolution", phiResolution.at(0)},
85 {
"PhiResolutionUncertUp", phiResolution.at(1)},
86 {
"PhiResolutionUncertDown", phiResolution.at(2)}
96 NDBin energyBinning = {{
"Energy", energyBinValues}, {
"Theta", thetaBinValues}, {
"Phi", phiBinValues}};
109 std::map<std::string, double> binning = {{
"Energy", energy}, {
"Theta", theta}, {
"Phi", phi}};
117 if (resolutionInfo.at(
"PhiResolution") == -1.) {
118 B2DEBUG(20,
"Phi resolution was returned as -1 since provided energy was not within theta resolution binning.");
120 return resolutionInfo.at(
"PhiResolution");
122 if (resolutionInfo.at(
"ThetaResolution") == -1.) {
123 B2DEBUG(20,
"Theta resolution was returned as -1 since provided energy was not within theta resolution binning.");
125 return resolutionInfo.at(
"ThetaResolution");
void addThetaPhiResolution(std::vector< double > thetaResolution, std::vector< double > phiResolution, Binning binning)
For neutral hadrons Add theta resolution [vector of three values] and phi resolution [vector of three...
double getRelativeEnergyResolution(double energy, double theta, double phi) const
Get energy resolution for given energy, theta, phi.
ECLPhotonEnergyResolution()
!
void addRelativeEnergyResolution(std::vector< double > energyResolution, Binning binning)
Add energy bin [vector of three pairs] and energy resolution [vector of three values] Energy resoluti...
ParticleWeightingLookUpTable m_resolutionBinningTable
Utilise ParticleWeighting modules as holders for binning of energy resolution.
double getThetaPhiResolution(double energy, double theta, double phi, bool thetaOrPhi) const
Get theta or phi resolution for given energy, theta, phi.
Just pair of numbers - min and max values of bin border.
std::map< std::string, ParticleWeightingBinLimits * > NDBin
N-dim bin: pairs of bin limits with name of the axis variable.
std::map< std::string, double > WeightInfo
Weight information: a line from the weight lookup table.
std::vector< std::pair< double, double > > Binning
Bin holder as vector for bin limit pairs: [energy limits, theta limits, phi limits].
Abstract base class for different kinds of events.