Belle II Software  release-05-02-19
KLMLikelihoodParametersImporter Class Reference

This class imports KLMLikelihoodParameters into the database. More...

#include <KLMLikelihoodParametersImporter.h>

Public Member Functions

 KLMLikelihoodParametersImporter ()=default
 Constructor.
 
 ~KLMLikelihoodParametersImporter ()=default
 Destructor.
 
void writeLikelihoodParameters ()
 Write KLMLikelihoodParameters into the database. More...
 
void readLikelihoodParameters ()
 Read KLMLikelihoodParameters from the database.
 

Detailed Description

This class imports KLMLikelihoodParameters into the database.

Definition at line 30 of file KLMLikelihoodParametersImporter.h.

Member Function Documentation

◆ writeLikelihoodParameters()

void writeLikelihoodParameters ( )

Write KLMLikelihoodParameters into the database.

cppcheck-suppress unreachableCode

Definition at line 33 of file KLMLikelihoodParametersImporter.cc.

34 {
35  B2WARNING("The method KLMLikelihoodParametersImporter::writeMuidParameters() is temporary unavailable, sorry! :(");
36  return;
38  DBImportObjPtr<KLMLikelihoodParameters> likelihoodParameters;
39  likelihoodParameters.construct();
40  vector<string> const hypotheses = {"Positron", "Electron" , "Deuteron", "Antideuteron", "Proton", "Antiproton", "PionPlus", "PionMinus", "KaonPlus", "KaonMinus", "MuonPlus", "MuonMinus" };
41  for (unsigned int hypothesis = 0; hypothesis < hypotheses.size(); hypothesis++) {
42  GearDir content("/Detector/Muid/MuidParameters//Experiment[@exp=\"0\"]/");
43  content.append(hypotheses[hypothesis]);
44  for (int outcome = 1; outcome <= MuidElementNumbers::getMaximalOutcome(); ++outcome) {
45  GearDir outcomeContent(content);
46  outcomeContent.append((boost::format("/LayerProfile/Outcome[@outcome=\"%1%\"]/") % (outcome)).str());
47  for (int lastLayer = 0; lastLayer <= MuidElementNumbers::getMaximalBarrelLayer(); ++lastLayer) {
48  if (!(MuidElementNumbers::checkExtrapolationOutcome(outcome, lastLayer)))
49  break;
50  std::vector<double> layerPDF = outcomeContent.getArray((boost::format("LastLayer[@layer=\"%1%\"]") % (lastLayer)).str());
51  likelihoodParameters->setLongitudinalPDF(hypothesis, outcome, lastLayer, layerPDF);
52  }
53  }
54  for (int detector = 0; detector <= MuidElementNumbers::getMaximalDetector(); ++detector) {
55  GearDir detectorContent(content);
56  if (detector == 0) detectorContent.append("/TransversePDF/BarrelAndEndcap");
57  if (detector == 1) detectorContent.append("/TransversePDF/BarrelOnly");
58  if (detector == 2) detectorContent.append("/TransversePDF/EndcapOnly");
59  for (int halfNdof = 1; halfNdof <= MuidElementNumbers::getMaximalHalfNdof(); ++halfNdof) {
60  double reducedChiSquaredThreshold = detectorContent.getDouble((boost::format("DegreesOfFreedom[@ndof=\"%1%\"]/Tail/Threshold") %
61  (2 * halfNdof)).str());
62  double reducedChiSquaredScaleY = detectorContent.getDouble((boost::format("DegreesOfFreedom[@ndof=\"%1%\"]/Tail/ScaleY") %
63  (2 * halfNdof)).str());
64  double reducedChiSquaredScaleX = detectorContent.getDouble((boost::format("DegreesOfFreedom[@ndof=\"%1%\"]/Tail/ScaleX") %
65  (2 * halfNdof)).str());
66  std::vector<double> reducedChiSquaredPDF = detectorContent.getArray((boost::format("DegreesOfFreedom[@ndof=\"%1%\"]/Histogram") %
67  (2 * halfNdof)).str());
68  likelihoodParameters->setTransversePDF(hypothesis, detector, halfNdof * 2, reducedChiSquaredPDF);
69  likelihoodParameters->setTransverseThreshold(hypothesis, detector, halfNdof * 2, reducedChiSquaredThreshold);
70  likelihoodParameters->setTransverseScaleY(hypothesis, detector, halfNdof * 2, reducedChiSquaredScaleY);
71  likelihoodParameters->setTransverseScaleX(hypothesis, detector, halfNdof * 2, reducedChiSquaredScaleX);
72  }
73  }
74  }
75  IntervalOfValidity Iov(0, 0, -1, -1);
76  likelihoodParameters.import(Iov);
77 }

The documentation for this class was generated from the following files:
Belle2::IntervalOfValidity
A class that describes the interval of experiments/runs for which an object in the database is valid.
Definition: IntervalOfValidity.h:35
Belle2::MuidElementNumbers::getMaximalOutcome
static constexpr int getMaximalOutcome()
Get maximal value of the track extrapolation outcome.
Definition: MuidElementNumbers.h:164
Belle2::MuidElementNumbers::getMaximalHalfNdof
static constexpr int getMaximalHalfNdof()
Get maximal value of NDof/2 (for transverse scattering).
Definition: MuidElementNumbers.h:180
Belle2::MuidElementNumbers::checkExtrapolationOutcome
static bool checkExtrapolationOutcome(unsigned int outcome, int lastLayer)
Check the track extrapolation outcome.
Definition: MuidElementNumbers.cc:27
Belle2::KLMLikelihoodParameters::setTransverseThreshold
void setTransverseThreshold(int hypothesis, int detector, int degreesOfFreedom, const double threshold)
Set the transverse probability density function (analytical): threshold for specific hypothesis,...
Definition: KLMLikelihoodParameters.h:89
Belle2::DBImportObjPtr::construct
void construct(Args &&... params)
Construct an object of type T in this DBImportObjPtr using the provided constructor arguments.
Definition: DBImportObjPtr.h:57
Belle2::DBImportBase::import
bool import(const IntervalOfValidity &iov)
Import the object to database.
Definition: DBImportBase.cc:38
Belle2::MuidElementNumbers::getMaximalBarrelLayer
static constexpr int getMaximalBarrelLayer()
Get maximal barrel layer number (0-based).
Definition: MuidElementNumbers.h:140
Belle2::KLMLikelihoodParameters::setTransversePDF
void setTransversePDF(int hypothesis, int detector, int degreesOfFreedom, const std::vector< double > &params)
Set the transverse probability density function for specific hypothesis, detector and degrees of free...
Definition: KLMLikelihoodParameters.h:76
Belle2::GearDir
GearDir is the basic class used for accessing the parameter store.
Definition: GearDir.h:41
Belle2::DBImportObjPtr
Class for importing a single object to the database.
Definition: DBImportObjPtr.h:33
Belle2::MuidElementNumbers::getMaximalDetector
static constexpr int getMaximalDetector()
Get maximal value of the detector selector (for transverse scattering).
Definition: MuidElementNumbers.h:172
Belle2::KLMLikelihoodParameters::setLongitudinalPDF
void setLongitudinalPDF(int hypothesis, int outcome, int lastLayer, const std::vector< double > &params)
Set the longitudinal probability density function for specific hypothesis, outcome and last layer.
Definition: KLMLikelihoodParameters.h:63
Belle2::KLMLikelihoodParameters::setTransverseScaleX
void setTransverseScaleX(int hypothesis, int detector, int degreesOfFreedom, const double scaleX)
Set the transverse probability density function (analytical): horizontal scale for specific hypothesi...
Definition: KLMLikelihoodParameters.h:102
Belle2::KLMLikelihoodParameters::setTransverseScaleY
void setTransverseScaleY(int hypothesis, int detector, int degreesOfFreedom, const double scaleY)
Set the transverse probability density function (analytical): vertical scale for specific hypothesis,...
Definition: KLMLikelihoodParameters.h:115