otsdaq  v1_01_02
 All Classes Namespaces Functions
FSSRData.cc
1 #include "otsdaq-core/DataDecoders/FSSRData.h"
2 
3 #include <iostream>
4 
5 using namespace ots;
6 
7 
8 //========================================================================================================================
9 FSSRData::FSSRData(void)
10 {
11 }
12 
13 //========================================================================================================================
14 FSSRData::~FSSRData(void)
15 {
16 }
17 
18 //========================================================================================================================
19 bool FSSRData::isFSSR(uint32_t data)
20 {
21  return data & 0x1;//1 true 0 false
22 }
23 
24 //========================================================================================================================
25 FSSRData& FSSRData::decode(uint32_t data)
26 {
27  stibId_ = (data >> 30) & 0x03;
28  channelNumber_ = (data >> 27) & 0x07;
29  chipId_ = (data >> 24) & 0x07;
30  set_ = (data >> 12) & 0x1f;
31  stripNumber_ = (data >> 17) & 0x0f;
32  bco_ = (data >> 4) & 0xff;
33  adc_ = (data >> 1) & 0x7;
34  //std::cout << __COUT_HDR_FL__ << __PRETTY_FUNCTION__ << " Chan: " << chan << " chipId: " << (int)chipId_
35  // << " set: " << (unsigned int)set_ << " strip: " << (int)stripNumber_ << " bco: " << (int)bco_ << std::endl;
36 
37  return *this;
38 }
39 
40 //========================================================================================================================
41 unsigned int FSSRData::getStibId(void)
42 {
43  return (unsigned int)stibId_;
44 }
45 
46 //========================================================================================================================
47 unsigned int FSSRData::getChannelNumber(void)
48 {
49  return (unsigned int)channelNumber_;
50 }
51 
52 //========================================================================================================================
53 unsigned int FSSRData::getChipId(void)
54 {
55  return (unsigned int)chipId_;
56 }
57 
58 //========================================================================================================================
59 unsigned int FSSRData::getStripNumber(void)
60 {
61  return (unsigned int)stripNumber_;
62 }
63 
64 //========================================================================================================================
65 unsigned int FSSRData::getBco(void)
66 {
67  return (unsigned int)bco_;
68 }
69 
70 //========================================================================================================================
71 unsigned int FSSRData::getAdc(void)
72 {
73  return (unsigned int)adc_;
74 }
75 
76 //========================================================================================================================
77 unsigned int FSSRData::getSensorStrip()
78 {
79  static unsigned char set_number[] = { 255, 255, 255, 255, 255, 255, 255, 255,
80  255, 255, 0, 1, 4, 5, 3, 2,
81  255, 255, 12, 13, 8, 9, 11, 10,
82  255, 255, 15, 14, 7, 6, 255, 255 };
83  static unsigned char strip_number[] = { 255, 255, 255, 255,
84  255, 0, 2, 1,
85  255, 6, 4, 5,
86  255, 7, 3, 255 };
87 
88  return 128*((int)chipId_-1)+set_number[(int)set_]*8+strip_number[(int)stripNumber_];
89 }
90