Belle II Software  release-05-01-25
PedeResult.h
1 /**************************************************************************
2  * BASF2 (Belle Analysis Framework 2) *
3  * Copyright(C) 2015 Belle II Collaboration *
4  * *
5  * Author: The Belle II Collaboration *
6  * Contributors: Tadeas Bilka *
7  * *
8  * This software is provided "as is" without any warranty. *
9  **************************************************************************/
10 
11 #pragma once
12 
13 #include <map>
14 #include <string>
15 #include <vector>
16 
17 namespace Belle2 {
22  namespace alignment {
24  class PedeResult {
25  public:
27  PedeResult() : data(), eigenNumbers(), valid(false), labelIndices() {}
30  explicit PedeResult(const std::string& filename);
32  void read(std::string filename = "millepede.res");
34  void readEigenFile(std::string filename = "millepede.eve");
36  bool isValid() {return valid;}
38  void dump();
40  int getNoParameters() const {return data.size();}
42  int getNoDeterminedParameters() const {return noDeterminedParams;}
44  int getParameterIndex(int parameterLabel);
46  unsigned int getParameterLabel(unsigned int parameterIndex);
48  double getParameterCorrection(unsigned int parameterIndex);
50  double getParameterError(unsigned int parameterIndex);
52  double getParameterPresigma(unsigned int parameterIndex);
54  bool isParameterFixed(unsigned int parameterIndex);
56  bool isParameterDetermined(unsigned int parameterIndex);
58  int getNoEigenPairs() const {return eigenNumbers.size();}
60  double getEigenNumber(unsigned int eigenPairIndex);
62  double getEigenVectorElement(unsigned int eigenPairIndex, unsigned int parameterIndex);
63 
64  private:
66  bool outOfBounds(int iparam) {if (iparam < 0) return true; if ((unsigned int)iparam >= data.size()) return true; return false;}
68  public:
70  struct parameterData {
72  parameterData() {}
79  parameterData(int index_, int label_, double correction_, double error_, double presigma_)
80  {
81  index = index_;
82  label = label_;
83  correction = correction_;
84  error = error_;
85  presigma = presigma_;
86  eigenweights.clear();
87  }
89  int index;
91  int label;
93  double correction;
95  double error;
97  double presigma;
99  std::vector<double> eigenweights;
100  };
101  private:
103  std::vector<parameterData> data;
105  std::vector<double> eigenNumbers;
107  bool valid;
109  std::map<int, int> labelIndices;
112  };
113  }
115 }
Belle2::alignment::PedeResult::isValid
bool isValid()
Was the object initialized properly from a result file?
Definition: PedeResult.h:44
Belle2::alignment::PedeResult::getEigenNumber
double getEigenNumber(unsigned int eigenPairIndex)
Get eigennumber at given index.
Definition: PedeResult.cc:163
Belle2::alignment::PedeResult::dump
void dump()
Dump the content to std::cout.
Definition: PedeResult.cc:178
Belle2::alignment::PedeResult::isParameterFixed
bool isParameterFixed(unsigned int parameterIndex)
Is parameter at given index fixed?
Definition: PedeResult.cc:153
Belle2::alignment::PedeResult::data
std::vector< parameterData > data
Vector with all the parameter data.
Definition: PedeResult.h:111
Belle2::alignment::PedeResult::readEigenFile
void readEigenFile(std::string filename="millepede.eve")
Reads file with eigen-vector/numbers.
Definition: PedeResult.cc:37
Belle2::alignment::PedeResult::getParameterCorrection
double getParameterCorrection(unsigned int parameterIndex)
Get determined correction of parameter at index.
Definition: PedeResult.cc:138
Belle2::alignment::PedeResult::parameterData::error
double error
param error
Definition: PedeResult.h:103
Belle2::alignment::PedeResult::getParameterLabel
unsigned int getParameterLabel(unsigned int parameterIndex)
Get label of parameter at index.
Definition: PedeResult.cc:133
Belle2::alignment::PedeResult::isParameterDetermined
bool isParameterDetermined(unsigned int parameterIndex)
Is parameter at given index determined?
Definition: PedeResult.cc:158
Belle2::alignment::PedeResult::getParameterPresigma
double getParameterPresigma(unsigned int parameterIndex)
Get presigma of parameter at index.
Definition: PedeResult.cc:148
Belle2::alignment::PedeResult::read
void read(std::string filename="millepede.res")
Reads the result file and inits the object.
Definition: PedeResult.cc:97
Belle2::alignment::PedeResult::getParameterIndex
int getParameterIndex(int parameterLabel)
Get index of parameter with given label.
Definition: PedeResult.cc:29
Belle2
Abstract base class for different kinds of events.
Definition: MillepedeAlgorithm.h:19
Belle2::alignment::PedeResult::getNoEigenPairs
int getNoEigenPairs() const
Get the number of eigenvectors(numbers) in eigen file.
Definition: PedeResult.h:66
Belle2::alignment::PedeResult::parameterData::parameterData
parameterData()
Constructor.
Definition: PedeResult.h:80
Belle2::alignment::PedeResult::getParameterError
double getParameterError(unsigned int parameterIndex)
Get correction error of parameter at index.
Definition: PedeResult.cc:143
Belle2::alignment::PedeResult::parameterData::index
int index
param index
Definition: PedeResult.h:97
Belle2::alignment::PedeResult::PedeResult
PedeResult()
Default constructor, use read(...) to init the object.
Definition: PedeResult.h:35
Belle2::alignment::PedeResult::noDeterminedParams
int noDeterminedParams
Number of parameters actually determined.
Definition: PedeResult.h:119
Belle2::alignment::PedeResult::parameterData::correction
double correction
param correction
Definition: PedeResult.h:101
Belle2::alignment::PedeResult::valid
bool valid
Flag to check if data wa loaded.
Definition: PedeResult.h:115
Belle2::alignment::PedeResult::parameterData::eigenweights
std::vector< double > eigenweights
Weights of this param in eigenvectors.
Definition: PedeResult.h:107
Belle2::alignment::PedeResult::parameterData::presigma
double presigma
param presigma
Definition: PedeResult.h:105
Belle2::alignment::PedeResult::eigenNumbers
std::vector< double > eigenNumbers
Vector of loaded eigennumbers.
Definition: PedeResult.h:113
Belle2::alignment::PedeResult::getEigenVectorElement
double getEigenVectorElement(unsigned int eigenPairIndex, unsigned int parameterIndex)
Get eigenvector at given index.
Definition: PedeResult.cc:168
Belle2::alignment::PedeResult::labelIndices
std::map< int, int > labelIndices
Map to link parameter labels and their indices in result.
Definition: PedeResult.h:117
Belle2::alignment::PedeResult::parameterData::label
int label
param label
Definition: PedeResult.h:99
Belle2::alignment::PedeResult::getNoDeterminedParameters
int getNoDeterminedParameters() const
Get number of determined parameters (with correction)
Definition: PedeResult.h:50
Belle2::alignment::PedeResult::getNoParameters
int getNoParameters() const
Get number of parameters in result (for looping over)
Definition: PedeResult.h:48
Belle2::alignment::PedeResult::outOfBounds
bool outOfBounds(int iparam)
Is index out of valid range?
Definition: PedeResult.h:74