Analysis Software
Documentation for sPHENIX simulation software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
InttMonConstants.h
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file InttMonConstants.h
1 #ifndef INTT_MON_CONSTANTS_H
2 #define INTT_MON_CONSTANTS_H
3 
4 #include <iostream>
5 
6 namespace INTT
7 {
8  constexpr int LAYER_OFFSET = 0;
9  constexpr int CHIP_OFFSET = 1;
10 
11  const int FELIX = 8;
12  const int FELIX_CHANNEL = 14;
13 
14  constexpr int LAYER = 4;
15  constexpr int LADDER[LAYER] = {12, 12, 16, 16};
16  constexpr int ARM = 2;
17 
18  constexpr int CHIP = 26;
19  constexpr int CHANNEL = 128;
20  constexpr int ADC = 8;
21 
22  constexpr int LADDERS_()
23  {
24  int L = 0;
25 
26  for(int layer = 0; layer < LAYER; layer++)
27  {
28  L += LADDER[layer];
29  }
30 
31  return L;
32  }
33 
34  constexpr int LADDERS = LADDERS_();
35 
36  constexpr int FELIX_CHANNELS = FELIX * FELIX_CHANNEL;
37  constexpr int CHIPS = CHIP * FELIX_CHANNELS;
38  constexpr int CHANNELS = CHANNEL * CHIPS;
39  constexpr int ADCS = CHANNELS * ADC;
40 
41  struct Indexes_s
42  {
43  int lyr = 0;
44  int ldr = 0;
45  int arm = 0;
46  int chp = 0;
47  int chn = 0;
48  int adc = 0;
49  };
50 
51  void GetFelixBinFromIndexes(int&, int, struct Indexes_s const&);
52  void GetFelixIndexesFromBin(int, int&, struct Indexes_s&);
53 
54  void GetGlobalChipBinXYFromIndexes(int&, int&, struct Indexes_s const&);
55  void GetIndexesFromGlobalChipBinXY(int const&, int const&, struct Indexes_s&);
56 
57  void GetLocalChannelBinXYFromIndexes(int&, int&, struct Indexes_s const&);
58  void GetIndexesFromLocalChannelBinXY(int const&, int const&, struct Indexes_s&);
59 
60  void GetGlobalLadderBinXYFromIndexes(int&, int&, struct Indexes_s const&);
61  void GetIndexesFromGlobalLadderBinXY(int const&, int const&, struct Indexes_s&);
62 
63  void GetLocalChipBinXYFromIndexes(int&, int&, struct Indexes_s const&);
64  void GetIndexesFromLocalChipBinXY(int const&, int const&, struct Indexes_s&);
65 }
66 
67 // Ladder Structure //
68 //======================================//
69 // U14 U1 Type B North //
70 // U15 U2 . . //
71 // U16 U3 . . //
72 // U17 U4 . . //
73 // U18 U5 Type B . //
74 //------------------------------ . //
75 // U19 U6 Type A . //
76 // U20 U7 . . //
77 // U21 U8 . . //
78 // U22 U9 . . //
79 // U23 U10 . . //
80 // U24 U11 . . //
81 // U25 U12 . . //
82 // U26 U13 Type A North //
83 //--------------------------------------//
84 // U13 U26 Type A South //
85 // U12 U25 . . //
86 // U11 U24 . . //
87 // U10 U23 . . //
88 // U9 U22 . . //
89 // U8 U21 . . //
90 // U7 U20 . . //
91 // U6 U19 Type A . //
92 //------------------------------ . //
93 // U5 U18 Type B . //
94 // U4 U17 . . //
95 // U3 U16 . . //
96 // U2 U15 . . //
97 // U1 U14 Type B South //
98 //======================================//
99 
100 #endif