Belle II Software  release-08-01-10
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 
18 namespace Belle2 {
28 
29  public:
30 
35 
40 
44  void setIOV(int experimentLow, int runLow, int experimentHigh, int runHigh);
45 
49  void clearElectronicsMap();
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 
102  void importElectronicsMap();
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.