Belle II Software  release-05-01-25
BKLMAlignment.cc
1 /**************************************************************************
2  * BASF2 (Belle Analysis Framework 2) *
3  * Copyright(C) 2015 Belle II Collaboration *
4  * *
5  * Author: The Belle II Collaboration *
6  * Contributors: Kirill Chilikin *
7  * *
8  * This software is provided "as is" without any warranty. *
9  **************************************************************************/
10 
11 /* Own header. */
12 #include <klm/dbobjects/bklm/BKLMAlignment.h>
13 
14 using namespace Belle2;
15 
17 {
18 }
19 
21 {
22 }
23 
24 void BKLMAlignment::setModuleAlignment(uint16_t module,
25  KLMAlignmentData* dat)
26 {
27  std::map<uint16_t, KLMAlignmentData>::iterator it;
28  it = m_ModuleAlignment.find(module);
29  if (it == m_ModuleAlignment.end()) {
30  m_ModuleAlignment.insert(
31  std::pair<uint16_t, KLMAlignmentData>(module, *dat));
32  } else {
33  it->second = *dat;
34  }
35 }
36 
38  uint16_t module) const
39 {
40  std::map<uint16_t, KLMAlignmentData>::const_iterator it;
41  it = m_ModuleAlignment.find(module);
42  if (it == m_ModuleAlignment.end())
43  return nullptr;
44  return &(it->second);
45 }
46 
47 double BKLMAlignment::getGlobalParam(unsigned short element,
48  unsigned short param) const
49 {
50  const KLMAlignmentData* alignmentData = getModuleAlignment(element);
51  if (alignmentData == nullptr)
52  return 0;
53  return alignmentData->getParameter(
54  static_cast<enum KLMAlignmentData::ParameterNumbers>(param));
55 }
56 
57 void BKLMAlignment::setGlobalParam(double value, unsigned short element,
58  unsigned short param)
59 {
60  KLMAlignmentData* alignmentData =
61  const_cast<KLMAlignmentData*>(getModuleAlignment(element));
62  /*
63  * Create alignment data if it does not exist.
64  * This is necessary for errors and corrections.
65  */
66  if (alignmentData == nullptr) {
67  KLMAlignmentData newAlignmentData(0, 0, 0, 0, 0, 0);
68  newAlignmentData.setParameter(
69  static_cast<enum KLMAlignmentData::ParameterNumbers>(param), value);
70  m_ModuleAlignment.insert(
71  std::pair<uint16_t, KLMAlignmentData>(element, newAlignmentData));
72  } else {
73  alignmentData->setParameter(
74  static_cast<enum KLMAlignmentData::ParameterNumbers>(param), value);
75  }
76 }
77 
78 /* TODO: this function is not implemented. */
79 std::vector< std::pair<unsigned short, unsigned short> >
81 {
82  return {};
83 }
Belle2::KLMAlignmentData::ParameterNumbers
ParameterNumbers
Alignment parameter numbers.
Definition: KLMAlignmentData.h:40
Belle2::BKLMAlignment::getGlobalParam
double getGlobalParam(unsigned short element, unsigned short param) const
Get global parameter.
Definition: BKLMAlignment.cc:47
Belle2::BKLMAlignment::~BKLMAlignment
~BKLMAlignment()
Destructor.
Definition: BKLMAlignment.cc:20
Belle2::BKLMAlignment::setGlobalParam
void setGlobalParam(double value, unsigned short element, unsigned short param)
Set global parameter.
Definition: BKLMAlignment.cc:57
Belle2::KLMAlignmentData::setParameter
void setParameter(enum ParameterNumbers number, float value)
Set parameter by number.
Definition: KLMAlignmentData.cc:65
Belle2
Abstract base class for different kinds of events.
Definition: MillepedeAlgorithm.h:19
Belle2::BKLMAlignment::BKLMAlignment
BKLMAlignment()
Constructor.
Definition: BKLMAlignment.cc:16
Belle2::BKLMAlignment::m_ModuleAlignment
std::map< uint16_t, KLMAlignmentData > m_ModuleAlignment
Module alignment.
Definition: BKLMAlignment.h:102
Belle2::BKLMAlignment::setModuleAlignment
void setModuleAlignment(uint16_t module, KLMAlignmentData *dat)
Set module alignment data.
Definition: BKLMAlignment.cc:24
Belle2::BKLMAlignment::listGlobalParams
std::vector< std::pair< unsigned short, unsigned short > > listGlobalParams()
Get a list of stored global parameters.
Definition: BKLMAlignment.cc:80
Belle2::KLMAlignmentData
KLM Alignment data.
Definition: KLMAlignmentData.h:33
Belle2::BKLMAlignment::getModuleAlignment
const KLMAlignmentData * getModuleAlignment(uint16_t module) const
Get module alignment data.
Definition: BKLMAlignment.cc:37