16 double ADC_GEV_EM = 13.55, ADC_GEV_HAD = 0.6;
17 int LSB_EM = 1, LSB_HAD = 5;
18 std::vector <int> fC_TDR;
60 fC_TDR.push_back(102);
61 fC_TDR.push_back(107);
62 fC_TDR.push_back(112);
63 fC_TDR.push_back(117);
64 fC_TDR.push_back(122);
65 fC_TDR.push_back(127);
66 fC_TDR.push_back(132);
67 fC_TDR.push_back(142);
68 fC_TDR.push_back(152);
69 fC_TDR.push_back(162);
70 fC_TDR.push_back(172);
71 fC_TDR.push_back(182);
72 fC_TDR.push_back(192);
73 fC_TDR.push_back(202);
74 fC_TDR.push_back(217);
75 fC_TDR.push_back(232);
76 fC_TDR.push_back(247);
77 fC_TDR.push_back(262);
78 fC_TDR.push_back(282);
79 fC_TDR.push_back(302);
80 fC_TDR.push_back(322);
81 fC_TDR.push_back(347);
82 fC_TDR.push_back(372);
83 fC_TDR.push_back(397);
84 fC_TDR.push_back(372);
85 fC_TDR.push_back(397);
86 fC_TDR.push_back(422);
87 fC_TDR.push_back(447);
88 fC_TDR.push_back(472);
89 fC_TDR.push_back(497);
90 fC_TDR.push_back(522);
91 fC_TDR.push_back(547);
92 fC_TDR.push_back(572);
93 fC_TDR.push_back(597);
94 fC_TDR.push_back(622);
95 fC_TDR.push_back(647);
96 fC_TDR.push_back(672);
97 fC_TDR.push_back(697);
98 fC_TDR.push_back(722);
99 fC_TDR.push_back(772);
100 fC_TDR.push_back(822);
101 fC_TDR.push_back(872);
102 fC_TDR.push_back(922);
103 fC_TDR.push_back(972);
104 fC_TDR.push_back(1022);
105 fC_TDR.push_back(1072);
106 fC_TDR.push_back(1147);
107 fC_TDR.push_back(1222);
108 fC_TDR.push_back(1297);
109 fC_TDR.push_back(1372);
110 fC_TDR.push_back(1472);
111 fC_TDR.push_back(1572);
112 fC_TDR.push_back(1672);
113 fC_TDR.push_back(1797);
114 fC_TDR.push_back(1922);
115 fC_TDR.push_back(2047);
116 fC_TDR.push_back(1922);
117 fC_TDR.push_back(2047);
118 fC_TDR.push_back(2172);
119 fC_TDR.push_back(2297);
120 fC_TDR.push_back(2422);
121 fC_TDR.push_back(2547);
122 fC_TDR.push_back(2672);
123 fC_TDR.push_back(1797);
124 fC_TDR.push_back(2922);
125 fC_TDR.push_back(3047);
126 fC_TDR.push_back(3172);
127 fC_TDR.push_back(3297);
128 fC_TDR.push_back(3422);
129 fC_TDR.push_back(2547);
130 fC_TDR.push_back(3672);
131 fC_TDR.push_back(3922);
132 fC_TDR.push_back(4172);
133 fC_TDR.push_back(4422);
134 fC_TDR.push_back(4672);
135 fC_TDR.push_back(4922);
136 fC_TDR.push_back(5172);
137 fC_TDR.push_back(5422);
138 fC_TDR.push_back(5797);
139 fC_TDR.push_back(6172);
140 fC_TDR.push_back(6547);
141 fC_TDR.push_back(6922);
142 fC_TDR.push_back(7422);
143 fC_TDR.push_back(7922);
144 fC_TDR.push_back(8422);
145 fC_TDR.push_back(9047);
146 fC_TDR.push_back(9672);
147 fC_TDR.push_back(10297);
150 std::vector <int> HADlut(128);
151 std::vector <int> EMlut(128);
153 for(
int zdci = 0; zdci < 128; zdci++)
154 { EMlut[zdci] = (int)((fC_TDR[zdci]/ADC_GEV_EM)/LSB_EM + 0.5);}
155 for(
int zdci = 0; zdci < 128; zdci++)
156 { HADlut[zdci] = (int)((fC_TDR[zdci]/ADC_GEV_HAD)/LSB_HAD + 0.5);}
159 side[0].fiber.resize(3);
160 side[1].fiber.resize(3);
161 side[0].fiber[0].channel.resize(3);
162 side[0].fiber[1].channel.resize(3);
163 side[0].fiber[2].channel.resize(3);
164 side[1].fiber[0].channel.resize(3);
165 side[1].fiber[1].channel.resize(3);
166 side[1].fiber[2].channel.resize(3);
167 side[0].fiber[0].channel[0].LUT = EMlut;
168 side[0].fiber[0].channel[1].LUT = EMlut;
169 side[0].fiber[0].channel[2].LUT = EMlut;
170 side[0].fiber[1].channel[0].LUT = EMlut;
171 side[0].fiber[1].channel[1].LUT = EMlut;
172 side[0].fiber[1].channel[2].LUT = HADlut;
173 side[0].fiber[2].channel[0].LUT = HADlut;
174 side[0].fiber[2].channel[1].LUT = HADlut;
175 side[0].fiber[2].channel[2].LUT = HADlut;
176 side[1].fiber[0].channel[0].LUT = EMlut;
177 side[1].fiber[0].channel[1].LUT = EMlut;
178 side[1].fiber[0].channel[2].LUT = EMlut;
179 side[1].fiber[1].channel[0].LUT = EMlut;
180 side[1].fiber[1].channel[1].LUT = EMlut;
181 side[1].fiber[1].channel[2].LUT = HADlut;
182 side[1].fiber[2].channel[0].LUT = HADlut;
183 side[1].fiber[2].channel[1].LUT = HADlut;
184 side[1].fiber[2].channel[2].LUT = HADlut;
194 for(
unsigned int zdcs = 0; zdcs <
side.size(); zdcs++)
196 for (
unsigned int zdcf = 0; zdcf <
side[zdcs].fiber.size(); zdcf++)
198 for (
unsigned int zdcc = 0; zdcc <
side[zdcs].fiber[zdcf].channel.size(); zdcc++)
200 for (
unsigned int zdcl = 0; zdcl <
side[zdcs].fiber[zdcf].channel[zdcc].LUT.size(); zdcl++)
201 {
std::cout <<
side[zdcs].fiber[zdcf].channel[zdcc].LUT[zdcl] <<
" "; }
215 int side_num = (1-emap_side)/2;
216 int fiber_num = (int)(emap_htr_fiber/4)+(emap_htr_fiber%4);
217 int channel_num = emap_fi_ch;
218 return side[side_num].fiber[fiber_num].channel[channel_num].LUT;
226 int side_num = (1-zdc_side)/2;
228 int channel_num = -1;
229 if (zdc_section.find(
"ZDC EM")!=std::string::npos){
230 fiber_num = (int)(zdc_channel/4);
231 channel_num = (int)((zdc_channel-1)/3) % 3;
233 else if (zdc_section.find(
"ZDC HAD")!=std::string::npos){
238 else if (zdc_channel==2){
242 else if (zdc_channel==3){
246 else if (zdc_channel==4){
251 std::cout << zdc_channel <<
": unknown ZDC channel, exiting..." << std::endl;
256 std::cout << zdc_section <<
": unknown ZDC section, exiting..." << std::endl;
261 return side[side_num].fiber[fiber_num].channel[channel_num].LUT;
263 else return side[side_num].fiber[fiber_num].channel[channel_num].LUT;
std::vector< int > get_lut(int emap_side, int emap_htr_fiber, int emap_fi_ch)
std::vector< ZDC_sides > side