Belle II Software  release-05-01-25
ARICHMergerMapping.h
1 /**************************************************************************
2  * BASF2 (Belle Analysis Framework 2) *
3  * Copyright(C) 2010 - Belle II Collaboration *
4  * *
5  * Author: The Belle II Collaboration *
6  * Contributors: Luka Santelj, Manca Mrvar *
7  * *
8  * This software is provided "as is" without any warranty. *
9  **************************************************************************/
10 
11 #pragma once
12 
13 #include <vector>
14 #include <map>
15 #include <TObject.h>
16 
17 //number of channels per HAPD
18 #define N_MERGERS 72
19 #define N_FEB2MERGER 6
20 
21 namespace Belle2 {
26 
31  class ARICHMergerMapping : public TObject {
32 
33  public:
34 
37 
44  unsigned getModuleID(unsigned mergerID, unsigned febSlot) const;
45 
51  unsigned getMergerID(unsigned moduleID) const;
52 
58  unsigned getFEBSlot(unsigned moduleID) const;
59 
65  unsigned getMergerIDfromSN(unsigned mergerSN) const;
66 
72  unsigned getMergerSN(unsigned mergerID) const;
73 
81  void addMapping(unsigned moduleID, unsigned mergerID, unsigned febSlot, unsigned mergerSN);
82 
86  void print() const;
87 
88  private:
89 
90  std::vector<uint16_t> m_merger2module;
91  std::vector<uint16_t> m_module2merger;
93  std::vector<bool> m_isMapped;
94  std::map<unsigned, unsigned> m_mergerID;
98  };
99 
101 } // namespace
Belle2::ARICHMergerMapping::ClassDef
ClassDef(ARICHMergerMapping, 2)
ClassDef, must be the last term before the closing {}.
Belle2::ARICHMergerMapping::m_isMapped
std::vector< bool > m_isMapped
vector of mapped modules
Definition: ARICHMergerMapping.h:93
Belle2::ARICHMergerMapping::getMergerIDfromSN
unsigned getMergerIDfromSN(unsigned mergerSN) const
Get ID of merger from serial number.
Definition: ARICHMergerMapping.cc:53
Belle2::ARICHMergerMapping::getFEBSlot
unsigned getFEBSlot(unsigned moduleID) const
Get FEB slot to which module is connected.
Definition: ARICHMergerMapping.cc:40
Belle2::ARICHMergerMapping::getModuleID
unsigned getModuleID(unsigned mergerID, unsigned febSlot) const
Get ID of module connected to merger at FEB slot.
Definition: ARICHMergerMapping.cc:26
Belle2::ARICHMergerMapping::m_mergerID
std::map< unsigned, unsigned > m_mergerID
map mergers ID to SN
Definition: ARICHMergerMapping.h:94
Belle2::ARICHMergerMapping::m_module2merger
std::vector< uint16_t > m_module2merger
map of modules to mergers
Definition: ARICHMergerMapping.h:91
Belle2
Abstract base class for different kinds of events.
Definition: MillepedeAlgorithm.h:19
Belle2::ARICHMergerMapping::print
void print() const
Pring mapping.
Definition: ARICHMergerMapping.cc:73
Belle2::ARICHMergerMapping::getMergerSN
unsigned getMergerSN(unsigned mergerID) const
Get serial number of marger from its ID.
Definition: ARICHMergerMapping.cc:47
Belle2::ARICHMergerMapping::m_merger2module
std::vector< uint16_t > m_merger2module
map of mergers to modules
Definition: ARICHMergerMapping.h:90
Belle2::ARICHMergerMapping::getMergerID
unsigned getMergerID(unsigned moduleID) const
Get ID of merger to which module is connected.
Definition: ARICHMergerMapping.cc:33
Belle2::ARICHMergerMapping::addMapping
void addMapping(unsigned moduleID, unsigned mergerID, unsigned febSlot, unsigned mergerSN)
Add mapping entry.
Definition: ARICHMergerMapping.cc:61
Belle2::ARICHMergerMapping::ARICHMergerMapping
ARICHMergerMapping()
Default constructor.
Definition: ARICHMergerMapping.cc:19
Belle2::ARICHMergerMapping
The Class for ARICH mapping of modules to merger boards.
Definition: ARICHMergerMapping.h:31