Belle II Software development
KLMElectronicsMapImporter.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/* KLM headers. */
12#include <klm/dataobjects/KLMElementNumbers.h>
13#include <klm/dbobjects/KLMElectronicsChannel.h>
14
15/* C++ headers. */
16#include <map>
17
18namespace Belle2 {
28
29 public:
30
35
40
44 void setIOV(int experimentLow, int runLow, int experimentHigh, int runHigh);
45
50
59 void loadBKLMElectronicsMap(int version);
60
74 void loadEKLMElectronicsMap(int version, bool mc);
75
84 void setLane(
85 int subdetector, int section, int sector, int layer, int lane);
86
96 void setLane(
97 int subdetector, int section, int sector, int layer, int plane, int lane);
98
103
104 private:
105
110 int getEKLMStripFirmwareBySoftware(int stripSoftware) const;
111
122 int section, int sector, int layer, int plane, int segment,
123 int firmwareSegment);
124
134 void addEKLMLane(
135 int section, int sector, int layer, int copper, int slot, int lane);
136
139
141 std::map<KLMChannelNumber, KLMElectronicsChannel> m_ChannelMap;
142
145
147 int m_RunLow = 0;
148
151
153 int m_RunHigh = -1;
154
155 };
156
158}
const KLMElementNumbers * m_ElementNumbers
Element numbers.
void setChannelsEKLMSegment(int section, int sector, int layer, int plane, int segment, int firmwareSegment)
Set channels for EKLM segment.
void setIOV(int experimentLow, int runLow, int experimentHigh, int runHigh)
Set interval of validity.
void clearElectronicsMap()
Clear electronics map (to be able to import its multiple versions).
void addEKLMLane(int section, int sector, int layer, int copper, int slot, int lane)
Add EKLM electronics map lane.
void setLane(int subdetector, int section, int sector, int layer, int lane)
Set non-default lane for all channels in a module.
void loadEKLMElectronicsMap(int version, bool mc)
Load EKLM electronics map.
void loadBKLMElectronicsMap(int version)
Load BKLM electronics map.
std::map< KLMChannelNumber, KLMElectronicsChannel > m_ChannelMap
Data for creation of the electronics map.
void importElectronicsMap()
Import electronics map.
int getEKLMStripFirmwareBySoftware(int stripSoftware) const
Get EKLM firmware strip number by software strip number.
KLM element numbers.
Abstract base class for different kinds of events.