Belle II Software  release-06-00-14
EKLMSegmentAlignment.h
1 /**************************************************************************
2  * basf2 (Belle II Analysis Software Framework) *
3  * Author: The Belle II Collaboration *
4  * *
5  * See git log for contributors and copyright holders. *
6  * This file is licensed under LGPL-3.0, see LICENSE.md. *
7  **************************************************************************/
8 
9 #pragma once
10 
11 /* Belle 2 headers. */
12 #include <klm/dataobjects/KLMElementNumberDefinitions.h>
13 #include <klm/dbobjects/KLMAlignmentData.h>
14 
15 /* ROOT headers. */
16 #include <TObject.h>
17 
18 /* C++ headers. */
19 #include <cstdint>
20 #include <map>
21 
22 namespace Belle2 {
31  class EKLMSegmentAlignment : public TObject {
32 
33  public:
34 
39 
44 
51 
57 
58  /* Interface to global Millepede calibration. */
59 
64  static unsigned short getGlobalUniqueID()
65  {
66  return 41;
67  }
68 
75  double getGlobalParam(unsigned short element, unsigned short param) const;
76 
83  void setGlobalParam(double value, unsigned short element,
84  unsigned short param);
85 
89  std::vector<std::pair<unsigned short, unsigned short>> listGlobalParams();
90 
91  private:
92 
94  std::map<EKLMSegmentNumber, KLMAlignmentData> m_SegmentAlignment;
95 
98 
99  };
100 
102 }
Class to store EKLM alignment data in the database.
std::vector< std::pair< unsigned short, unsigned short > > listGlobalParams()
Get a list of stored global parameters.
static unsigned short getGlobalUniqueID()
Get global unique identifier.
double getGlobalParam(unsigned short element, unsigned short param) const
Get global parameter.
const KLMAlignmentData * getSegmentAlignment(EKLMSegmentNumber segment) const
Get segment alignment data.
void setSegmentAlignment(EKLMSegmentNumber segment, KLMAlignmentData *dat)
Set segment alignment data.
void setGlobalParam(double value, unsigned short element, unsigned short param)
Set global parameter.
std::map< EKLMSegmentNumber, KLMAlignmentData > m_SegmentAlignment
Segment alignment.
ClassDef(Belle2::EKLMSegmentAlignment, 1)
Class version.
KLM Alignment data.
uint16_t EKLMSegmentNumber
EKLM segment number.
Abstract base class for different kinds of events.