Belle II Software  release-05-02-19
CDCCrossTalkClasses.h
1 /**************************************************************************
2  * BASF2 (Belle Analysis Framework 2) *
3  * Copyright(C) 2016 - Belle II Collaboration *
4  * *
5  * Author: The Belle II Collaboration *
6  * Contributors: Tracking, CDC group *
7  * *
8  * This software is provided "as is" without any warranty. *
9  **************************************************************************/
10 #pragma once
11 
12 // Convenience classes used by CDCCrossTalkLibrary DB object
13 
14 using std::array;
15 
16 namespace Belle2 {
22  struct asicChannel {
24  Short_t TDC;
25  Short_t ADC;
26  Short_t TOT;
27  };
28 
30  typedef array<asicChannel, 8> asicChannels;
31 
33  struct adcChannelPair {
34  Short_t ADC;
35  Short_t Channel;
36  };
37 
39  struct adcAsicTuple {
40  Short_t ADC;
41  Short_t Channel;
43  };
44 
45 
47  struct adc_search {
49  bool operator()(const adcAsicTuple& lhs, const adcAsicTuple& rhs)
50  {
51  if (lhs.Channel == rhs.Channel) {
52  return lhs.ADC < rhs.ADC;
53  } else {
54  return lhs.Channel < rhs.Channel;
55  }
56  }
57 
59  bool operator()(const adcChannelPair& lhs, const adcAsicTuple& rhs)
60  {
61  if (lhs.Channel == rhs.Channel) {
62  return lhs.ADC < rhs.ADC;
63  } else {
64  return lhs.Channel < rhs.Channel;
65  }
66  }
67 
69  bool operator()(const adcAsicTuple& lhs, const adcChannelPair& rhs)
70  {
71  if (lhs.Channel == rhs.Channel) {
72  return lhs.ADC < rhs.ADC;
73  } else {
74  return lhs.Channel < rhs.Channel;
75  }
76  }
77  };
79 } // end namespace Belle2
Belle2::adcChannelPair::Channel
Short_t Channel
Channel number info (between 0 and 8)
Definition: CDCCrossTalkClasses.h:35
Belle2::adc_search::operator()
bool operator()(const adcChannelPair &lhs, const adcAsicTuple &rhs)
Order accroding to channel/ADC value.
Definition: CDCCrossTalkClasses.h:59
Belle2::adcAsicTuple
tuple to store ADC,Channel -> 8 asicChannels
Definition: CDCCrossTalkClasses.h:39
Belle2::asicChannel::ADC
Short_t ADC
ADC info
Definition: CDCCrossTalkClasses.h:25
Belle2::adcChannelPair::ADC
Short_t ADC
ADC info.
Definition: CDCCrossTalkClasses.h:34
Belle2::adcAsicTuple::Channel
Short_t Channel
Channel number info (between 0 and 8)
Definition: CDCCrossTalkClasses.h:41
Belle2::asicChannels
array< asicChannel, 8 > asicChannels
fixed sized array of ASIC channels
Definition: CDCCrossTalkClasses.h:30
Belle2
Abstract base class for different kinds of events.
Definition: MillepedeAlgorithm.h:19
Belle2::asicChannel::TOT
Short_t TOT
Time over threshold.
Definition: CDCCrossTalkClasses.h:26
Belle2::adc_search::operator()
bool operator()(const adcAsicTuple &lhs, const adcChannelPair &rhs)
Order accroding to channel/ADC value.
Definition: CDCCrossTalkClasses.h:69
Belle2::adcAsicTuple::record
asicChannels record
8-channel record
Definition: CDCCrossTalkClasses.h:42
Belle2::adcChannelPair
pair ADC, channel
Definition: CDCCrossTalkClasses.h:33
Belle2::adc_search::operator()
bool operator()(const adcAsicTuple &lhs, const adcAsicTuple &rhs)
Order accroding to channel/ADC value.
Definition: CDCCrossTalkClasses.h:49
Belle2::adc_search
functions to search in the sorted list of tuples
Definition: CDCCrossTalkClasses.h:47
Belle2::adcAsicTuple::ADC
Short_t ADC
ADC info.
Definition: CDCCrossTalkClasses.h:40
Belle2::asicChannel::TDC
Short_t TDC
TDC info
Definition: CDCCrossTalkClasses.h:24