23 std::string mthn =
"[PixelFEDCard::PixelFEDCard()]\t\t ";
24 vector<string>
ins = tableMat[0];
25 map<string, int> colM;
26 vector<string> colNames;
128 colNames.push_back(
"BUSYWHENBEHIND");
129 colNames.push_back(
"FEATUREREGISTER");
130 colNames.push_back(
"FIFO2LIMIT");
131 colNames.push_back(
"TIMEOUTOROOSLIMIT");
132 colNames.push_back(
"LASTDACOFF");
133 colNames.push_back(
"SIMHITSPERROC");
134 colNames.push_back(
"BUSYHOLDMIN");
135 colNames.push_back(
"SPARE1");
136 colNames.push_back(
"SPARE2");
137 colNames.push_back(
"SPARE3");
138 colNames.push_back(
"SPARE4");
139 colNames.push_back(
"SPARE5");
140 colNames.push_back(
"SPARE6");
141 colNames.push_back(
"SPARE7");
142 colNames.push_back(
"SPARE8");
143 colNames.push_back(
"SPARE9");
144 colNames.push_back(
"SPARE10");
145 colNames.push_back(
"CONFIG_KEY");
146 colNames.push_back(
"KEY_TYPE");
147 colNames.push_back(
"KEY_ALIAS_ID");
148 colNames.push_back(
"KEY_ALIAS");
149 colNames.push_back(
"VERSION");
150 colNames.push_back(
"KIND_OF_COND");
151 colNames.push_back(
"CRATE_LABEL");
152 colNames.push_back(
"CRATE_NUMBER");
153 colNames.push_back(
"SLOT_NUMBER");
154 colNames.push_back(
"VME_ADDRS_HEX");
155 colNames.push_back(
"PIXEL_FED");
156 colNames.push_back(
"CHANNEL_ID");
157 colNames.push_back(
"NUM_ROCS");
158 colNames.push_back(
"CHAN_OFFST_DAC");
159 colNames.push_back(
"CHAN_DELAY");
160 colNames.push_back(
"CHAN_BHIGH");
161 colNames.push_back(
"CHAN_BLOW");
162 colNames.push_back(
"CHAN_UB");
163 colNames.push_back(
"OPT1_CAP");
164 colNames.push_back(
"OPT2_CAP");
165 colNames.push_back(
"OPT3_CAP");
166 colNames.push_back(
"OPT1_INP");
167 colNames.push_back(
"OPT2_INP");
168 colNames.push_back(
"OPT3_INP");
169 colNames.push_back(
"OPT1_OUT");
170 colNames.push_back(
"OPT2_OUT");
171 colNames.push_back(
"OPT3_OUT");
172 colNames.push_back(
"NORTH_CLKPHB");
173 colNames.push_back(
"NORTHCENTER_CLKPHB");
174 colNames.push_back(
"SOUTHCENTER_CLKPHB");
175 colNames.push_back(
"SOUTH_CLKPHB");
176 colNames.push_back(
"NORTH_CTRL");
177 colNames.push_back(
"NORTHCENTER_CTRL");
178 colNames.push_back(
"SOUTHCENTER_CTRL");
179 colNames.push_back(
"SOUTH_CTRL");
180 colNames.push_back(
"REG0_TTCRX_FDLA");
181 colNames.push_back(
"REG1_TTCRX_FDLA");
182 colNames.push_back(
"REG2_TTCRX_CDLA");
183 colNames.push_back(
"REG3_TTCRX_CLKD2");
184 colNames.push_back(
"CENTER_CTRL");
185 colNames.push_back(
"CENTER_MODE");
186 colNames.push_back(
"B1_ADCGN");
187 colNames.push_back(
"B2_ADCGN");
188 colNames.push_back(
"B3_ADCGN");
189 colNames.push_back(
"B4_ADCGN");
190 colNames.push_back(
"NORTH_BADJ");
191 colNames.push_back(
"NORTHCENTER_BADJ");
192 colNames.push_back(
"SOUTHCENTER_BADJ");
193 colNames.push_back(
"SOUTH_BADJ");
194 colNames.push_back(
"NORTH_TBMMASK");
195 colNames.push_back(
"NORTHCENTER_TBMMASK");
196 colNames.push_back(
"SOUTHCENTER_TBMMASK");
197 colNames.push_back(
"SOUTH_TBMMASK");
198 colNames.push_back(
"NORTH_PWORD");
199 colNames.push_back(
"NORTHCENTER_PWORD");
200 colNames.push_back(
"SOUTH_PWORD");
201 colNames.push_back(
"SOUTHCENTER_PWORD");
202 colNames.push_back(
"SPECDAC");
203 colNames.push_back(
"OOS_LVL");
204 colNames.push_back(
"ERR_LVL");
205 colNames.push_back(
"NORTH_FIFO1_BZ_LVL");
206 colNames.push_back(
"NORTHCENTER_FIFO1_BZ_LVL");
207 colNames.push_back(
"SOUTHCENTER_FIFO1_BZ_LVL");
208 colNames.push_back(
"SOUTH_FIFO1_BZ_LVL");
209 colNames.push_back(
"FIFO3_WRN_LVL");
210 colNames.push_back(
"FED_MASTER_DELAY");
211 colNames.push_back(
"NO_HITLIMIT");
212 colNames.push_back(
"NC_HITLIMIT");
213 colNames.push_back(
"SC_HITLIMIT");
214 colNames.push_back(
"SO_HITLIMIT");
215 colNames.push_back(
"NO_TESTREG");
216 colNames.push_back(
"NC_TESTREG");
217 colNames.push_back(
"SC_TESTREG");
218 colNames.push_back(
"SO_TESTREG");
219 colNames.push_back(
"TRIGGERHOLDOFF");
221 for (
unsigned int c = 0;
c < ins.size();
c++) {
222 for (
unsigned int n = 0;
n < colNames.size();
n++) {
223 if (tableMat[0][
c] == colNames[
n]) {
224 colM[colNames[
n]] =
c;
229 for (
unsigned int n = 0;
n < colNames.size();
n++) {
230 if (colM.find(colNames[
n]) == colM.end()) {
231 std::cerr << __LINE__ <<
"]\t[PixelFEDCard::PixelFEDCard]\tCouldn't find in the database the column with name " 232 << colNames[
n] << std::endl;
239 for (
unsigned int r = 0;
r < tableMat.size();
r++) {
240 if (tableMat[
r].
empty()) {
247 for (vector<string>::iterator it = tableMat[
r].
begin(); it != tableMat[
r].end(); ++it) {
259 sscanf(tableMat[1][colM[
"VME_ADDRS_HEX"]].c_str(),
"%lx", &
FEDBASE_0);
261 fedNumber = atoi(tableMat[1][colM[
"PIXEL_FED"]].c_str());
263 opt_cap[0] = atoi(tableMat[1][colM[
"OPT1_CAP"]].c_str());
264 opt_cap[1] = atoi(tableMat[1][colM[
"OPT2_CAP"]].c_str());
265 opt_cap[2] = atoi(tableMat[1][colM[
"OPT3_CAP"]].c_str());
266 opt_inadj[0] = atoi(tableMat[1][colM[
"OPT1_INP"]].c_str());
267 opt_inadj[1] = atoi(tableMat[1][colM[
"OPT2_INP"]].c_str());
268 opt_inadj[2] = atoi(tableMat[1][colM[
"OPT3_INP"]].c_str());
269 opt_ouadj[0] = atoi(tableMat[1][colM[
"OPT1_OUT"]].c_str());
270 opt_ouadj[1] = atoi(tableMat[1][colM[
"OPT2_OUT"]].c_str());
271 opt_ouadj[2] = atoi(tableMat[1][colM[
"OPT3_OUT"]].c_str());
274 clkphs1_9 = atoi(tableMat[1][colM[
"NORTH_CLKPHB"]].c_str());
275 clkphs10_18 = atoi(tableMat[1][colM[
"NORTHCENTER_CLKPHB"]].c_str());
276 clkphs19_27 = atoi(tableMat[1][colM[
"SOUTHCENTER_CLKPHB"]].c_str());
277 clkphs28_36 = atoi(tableMat[1][colM[
"SOUTH_CLKPHB"]].c_str());
280 FineDes1Del = atoi(tableMat[1][colM[
"REG0_TTCRX_FDLA"]].c_str());
281 FineDes2Del = atoi(tableMat[1][colM[
"REG1_TTCRX_FDLA"]].c_str());
282 CoarseDel = atoi(tableMat[1][colM[
"REG2_TTCRX_CDLA"]].c_str());
283 ClkDes2 = atoi(tableMat[1][colM[
"REG3_TTCRX_CLKD2"]].c_str());
285 Ccntrl = atoi(tableMat[1][colM[
"CENTER_CTRL"]].c_str());
286 modeRegister = atoi(tableMat[1][colM[
"CENTER_MODE"]].c_str());
289 Nfifo1Bzlvl = atoi(tableMat[1][colM[
"NORTH_FIFO1_BZ_LVL"]].c_str());
290 NCfifo1Bzlvl = atoi(tableMat[1][colM[
"NORTHCENTER_FIFO1_BZ_LVL"]].c_str());
291 SCfifo1Bzlvl = atoi(tableMat[1][colM[
"SOUTHCENTER_FIFO1_BZ_LVL"]].c_str());
292 Sfifo1Bzlvl = atoi(tableMat[1][colM[
"SOUTH_FIFO1_BZ_LVL"]].c_str());
295 N_TBMmask = atoi(tableMat[1][colM[
"NORTH_TBMMASK"]].c_str());
296 NC_TBMmask = atoi(tableMat[1][colM[
"NORTHCENTER_TBMMASK"]].c_str());
297 SC_TBMmask = atoi(tableMat[1][colM[
"SOUTHCENTER_TBMMASK"]].c_str());
298 S_TBMmask = atoi(tableMat[1][colM[
"SOUTH_TBMMASK"]].c_str());
301 N_Pword = atoi(tableMat[1][colM[
"NORTH_PWORD"]].c_str());
302 NC_Pword = atoi(tableMat[1][colM[
"NORTHCENTER_PWORD"]].c_str());
303 SC_Pword = atoi(tableMat[1][colM[
"SOUTHCENTER_PWORD"]].c_str());
304 S_Pword = atoi(tableMat[1][colM[
"SOUTH_PWORD"]].c_str());
306 Nbaseln = atoi(tableMat[1][colM[
"NORTH_BADJ"]].c_str());
307 NCbaseln = atoi(tableMat[1][colM[
"NORTHCENTER_BADJ"]].c_str());
308 SCbaseln = atoi(tableMat[1][colM[
"SOUTHCENTER_BADJ"]].c_str());
309 Sbaseln = atoi(tableMat[1][colM[
"SOUTH_BADJ"]].c_str());
311 Ncntrl = atoi(tableMat[1][colM[
"NORTH_CTRL"]].c_str());
312 NCcntrl = atoi(tableMat[1][colM[
"NORTHCENTER_CTRL"]].c_str());
313 SCcntrl = atoi(tableMat[1][colM[
"SOUTHCENTER_CTRL"]].c_str());
314 Scntrl = atoi(tableMat[1][colM[
"SOUTH_CTRL"]].c_str());
317 SpecialDac = atoi(tableMat[1][colM[
"SPECDAC"]].c_str());
320 Ooslvl = atoi(tableMat[1][colM[
"OOS_LVL"]].c_str());
322 Errlvl = atoi(tableMat[1][colM[
"ERR_LVL"]].c_str());
325 Nadcg = atoi(tableMat[1][colM[
"B1_ADCGN"]].c_str());
326 NCadcg = atoi(tableMat[1][colM[
"B2_ADCGN"]].c_str());
327 SCadcg = atoi(tableMat[1][colM[
"B3_ADCGN"]].c_str());
328 Sadcg = atoi(tableMat[1][colM[
"B4_ADCGN"]].c_str());
329 fifo3Wrnlvl = atoi(tableMat[1][colM[
"FIFO3_WRN_LVL"]].c_str());
330 FedTTCDelay = atoi(tableMat[1][colM[
"FED_MASTER_DELAY"]].c_str());
331 N_hitlimit = atoi(tableMat[1][colM[
"NO_HITLIMIT"]].c_str());
332 NC_hitlimit = atoi(tableMat[1][colM[
"NC_HITLIMIT"]].c_str());
333 SC_hitlimit = atoi(tableMat[1][colM[
"SC_HITLIMIT"]].c_str());
334 S_hitlimit = atoi(tableMat[1][colM[
"SO_HITLIMIT"]].c_str());
335 N_testreg = atoi(tableMat[1][colM[
"NO_TESTREG"]].c_str());
336 NC_testreg = atoi(tableMat[1][colM[
"NC_TESTREG"]].c_str());
337 SC_testreg = atoi(tableMat[1][colM[
"SC_TESTREG"]].c_str());
338 S_testreg = atoi(tableMat[1][colM[
"SO_TESTREG"]].c_str());
339 BusyHoldMin = atoi(tableMat[1][colM[
"BUSYHOLDMIN"]].c_str());
340 BusyWhenBehind = atoi(tableMat[1][colM[
"BUSYWHENBEHIND"]].c_str());
342 FIFO2Limit = atoi(tableMat[1][colM[
"FIFO2LIMIT"]].c_str());
343 LastDacOff = atoi(tableMat[1][colM[
"LASTDACOFF"]].c_str());
344 SimHitsPerRoc = atoi(tableMat[1][colM[
"SIMHITSPERROC"]].c_str());
346 TriggerHoldoff = atoi(tableMat[1][colM[
"TRIGGERHOLDOFF"]].c_str());
348 SPARE1 = atoi(tableMat[1][colM[
"SPARE1"]].c_str());
349 SPARE2 = atoi(tableMat[1][colM[
"SPARE2"]].c_str());
350 SPARE3 = atoi(tableMat[1][colM[
"SPARE3"]].c_str());
351 SPARE4 = atoi(tableMat[1][colM[
"SPARE4"]].c_str());
352 SPARE5 = atoi(tableMat[1][colM[
"SPARE5"]].c_str());
353 SPARE6 = atoi(tableMat[1][colM[
"SPARE6"]].c_str());
354 SPARE7 = atoi(tableMat[1][colM[
"SPARE7"]].c_str());
355 SPARE8 = atoi(tableMat[1][colM[
"SPARE8"]].c_str());
356 SPARE9 = atoi(tableMat[1][colM[
"SPARE9"]].c_str());
357 SPARE10 = atoi(tableMat[1][colM[
"SPARE10"]].c_str());
360 for (
int r = 1;
r < size[0];
r++)
363 NRocs[atoi(tableMat[
r][colM[
"CHANNEL_ID"]].c_str()) - 1] = atoi(tableMat[
r][colM[
"NUM_ROCS"]].c_str());
365 offs_dac[atoi(tableMat[
r][colM[
"CHANNEL_ID"]].c_str()) - 1] = atoi(tableMat[
r][colM[
"CHAN_OFFST_DAC"]].c_str());
367 DelayCh[atoi(tableMat[
r][colM[
"CHANNEL_ID"]].c_str()) - 1] = atoi(tableMat[
r][colM[
"CHAN_DELAY"]].c_str());
369 BlackHi[atoi(tableMat[
r][colM[
"CHANNEL_ID"]].c_str()) - 1] = atoi(tableMat[
r][colM[
"CHAN_BHIGH"]].c_str());
370 BlackLo[atoi(tableMat[
r][colM[
"CHANNEL_ID"]].c_str()) - 1] = atoi(tableMat[
r][colM[
"CHAN_BLOW"]].c_str());
371 Ublack[atoi(tableMat[
r][colM[
"CHANNEL_ID"]].c_str()) - 1] = atoi(tableMat[
r][colM[
"CHAN_UB"]].c_str());
396 string mthn =
"[PixelFEDCard::readDBTBMLevels()] ";
397 vector<string>
ins = tableMat[firstRow];
398 map<string, int> colM;
399 vector<string> colNames;
429 colNames.push_back(
"CONFIG_KEY");
430 colNames.push_back(
"KEY_TYPE");
431 colNames.push_back(
"KEY_ALIAS");
432 colNames.push_back(
"VERSION");
433 colNames.push_back(
"KIND_OF_COND");
434 colNames.push_back(
"TBM_NAME");
435 colNames.push_back(
"PIXEL_FED");
436 colNames.push_back(
"FED_CHAN");
437 colNames.push_back(
"TBMA_HEAD_L0");
438 colNames.push_back(
"TBMA_HEAD_L1");
439 colNames.push_back(
"TBMA_HEAD_L2");
440 colNames.push_back(
"TBMA_HEAD_L3");
441 colNames.push_back(
"TBMA_HEAD_L4");
442 colNames.push_back(
"TBMA_TRAIL_L0");
443 colNames.push_back(
"TBMA_TRAIL_L1");
444 colNames.push_back(
"TBMA_TRAIL_L2");
445 colNames.push_back(
"TBMA_TRAIL_L3");
446 colNames.push_back(
"TBMA_TRAIL_L4");
447 colNames.push_back(
"TBMA_HEAD_B");
448 colNames.push_back(
"TBMA_HEAD_UB");
449 colNames.push_back(
"TBMA_TRAIL_B");
450 colNames.push_back(
"TBMA_TRAIL_UB");
476 for (
unsigned int c = 0;
c < ins.size();
c++) {
477 for (
unsigned int n = 0;
n < colNames.size();
n++) {
478 if (tableMat[firstRow][
c] == colNames[
n]) {
479 colM[colNames[
n]] =
c;
484 for (
unsigned int n = 0;
n < colNames.size();
n++) {
485 if (colM.find(colNames[
n]) == colM.end()) {
486 std::cerr << mthn <<
"\tCouldn't find in the database the column with name " << colNames[
n] << std::endl;
490 for (
int r = firstRow + 1;
r < lastRow;
r++)
493 TBM_L0[atoi(tableMat[
r][colM[
"FED_CHAN"]].c_str()) - 1] = atoi(tableMat[
r][colM[
"TBMA_HEAD_L0"]].c_str());
494 TBM_L1[atoi(tableMat[
r][colM[
"FED_CHAN"]].c_str()) - 1] = atoi(tableMat[
r][colM[
"TBMA_HEAD_L1"]].c_str());
495 TBM_L2[atoi(tableMat[
r][colM[
"FED_CHAN"]].c_str()) - 1] = atoi(tableMat[
r][colM[
"TBMA_HEAD_L2"]].c_str());
496 TBM_L3[atoi(tableMat[
r][colM[
"FED_CHAN"]].c_str()) - 1] = atoi(tableMat[
r][colM[
"TBMA_HEAD_L3"]].c_str());
497 TBM_L4[atoi(tableMat[
r][colM[
"FED_CHAN"]].c_str()) - 1] = atoi(tableMat[
r][colM[
"TBMA_HEAD_L4"]].c_str());
498 TRL_L0[atoi(tableMat[
r][colM[
"FED_CHAN"]].c_str()) - 1] = atoi(tableMat[
r][colM[
"TBMA_TRAIL_L0"]].c_str());
499 TRL_L1[atoi(tableMat[
r][colM[
"FED_CHAN"]].c_str()) - 1] = atoi(tableMat[
r][colM[
"TBMA_TRAIL_L1"]].c_str());
500 TRL_L2[atoi(tableMat[
r][colM[
"FED_CHAN"]].c_str()) - 1] = atoi(tableMat[
r][colM[
"TBMA_TRAIL_L2"]].c_str());
501 TRL_L3[atoi(tableMat[
r][colM[
"FED_CHAN"]].c_str()) - 1] = atoi(tableMat[
r][colM[
"TBMA_TRAIL_L3"]].c_str());
502 TRL_L4[atoi(tableMat[
r][colM[
"FED_CHAN"]].c_str()) - 1] = atoi(tableMat[
r][colM[
"TBMA_TRAIL_L4"]].c_str());
507 string mthn =
"[PixelFEDCard::readDBROCLevels()] ";
508 map<string, int> colM;
509 vector<string> colNames;
533 colNames.push_back(
"CONFIG_KEY");
534 colNames.push_back(
"KEY_TYPE");
535 colNames.push_back(
"KEY_ALIAS");
536 colNames.push_back(
"VERSION");
537 colNames.push_back(
"KIND_OF_COND");
538 colNames.push_back(
"ROC_NAME");
539 colNames.push_back(
"FED_ROC_NUM");
540 colNames.push_back(
"PIXEL_FED");
541 colNames.push_back(
"FED_CHAN");
542 colNames.push_back(
"ROC_L0");
543 colNames.push_back(
"ROC_L1");
544 colNames.push_back(
"ROC_L2");
545 colNames.push_back(
"ROC_L3");
546 colNames.push_back(
"ROC_L4");
547 colNames.push_back(
"ROC_B");
548 colNames.push_back(
"ROC_UB");
570 for (
unsigned int c = 0;
c < tableMat[firstRow].size();
c++) {
571 for (
unsigned int n = 0;
n < colNames.size();
n++) {
572 if (tableMat[firstRow][
c] == colNames[
n]) {
573 colM[colNames[
n]] =
c;
578 for (
unsigned int n = 0;
n < colNames.size();
n++) {
579 if (colM.find(colNames[
n]) == colM.end()) {
580 std::cerr << mthn <<
"\tCouldn't find in the database the column with name " << colNames[
n] << std::endl;
587 for (
int r = firstRow + 1;
r < lastRow;
r++)
589 ROC_L0[atoi(tableMat[
r][colM[
"FED_CHAN"]].c_str()) - 1][atoi(tableMat[
r][colM[
"FED_ROC_NUM"]].c_str())] =
590 atoi(tableMat[
r][colM[
"ROC_L0"]].c_str());
591 ROC_L1[atoi(tableMat[
r][colM[
"FED_CHAN"]].c_str()) - 1][atoi(tableMat[
r][colM[
"FED_ROC_NUM"]].c_str())] =
592 atoi(tableMat[
r][colM[
"ROC_L1"]].c_str());
593 ROC_L2[atoi(tableMat[
r][colM[
"FED_CHAN"]].c_str()) - 1][atoi(tableMat[
r][colM[
"FED_ROC_NUM"]].c_str())] =
594 atoi(tableMat[
r][colM[
"ROC_L2"]].c_str());
595 ROC_L3[atoi(tableMat[
r][colM[
"FED_CHAN"]].c_str()) - 1][atoi(tableMat[
r][colM[
"FED_ROC_NUM"]].c_str())] =
596 atoi(tableMat[
r][colM[
"ROC_L3"]].c_str());
597 ROC_L4[atoi(tableMat[
r][colM[
"FED_CHAN"]].c_str()) - 1][atoi(tableMat[
r][colM[
"FED_ROC_NUM"]].c_str())] =
598 atoi(tableMat[
r][colM[
"ROC_L4"]].c_str());
604 std::string mthn =
"]\t[PixelFEDCard::PixelFEDCard()]\t\t\t\t ";
606 const bool localDEBUG =
false;
613 if (infile ==
nullptr)
614 throw std::runtime_error(
"Failed to open FED Card parameter file: " +
fileName);
617 fscanf(infile,
"FED Base address :%lx\n", &
FEDBASE_0);
618 fscanf(infile,
"FEDID Number :%lx\n", &
fedNumber);
628 for (
int i = 0;
i < 36;
i++) {
630 fscanf(infile,
"Number of ROCs Chnl %d:%d \n", &ijx, &
NRocs[
i]);
632 printf(
"Number of ROCs per Chnl %d:%d \n", ijx,
NRocs[i]);
636 fscanf(infile,
"Optical reciever 1 Capacitor Adjust(0-3):%d\n", &
opt_cap[0]);
637 fscanf(infile,
"Optical reciever 2 Capacitor Adjust(0-3):%d\n", &
opt_cap[1]);
638 fscanf(infile,
"Optical reciever 3 Capacitor Adjust(0-3):%d\n", &
opt_cap[2]);
639 fscanf(infile,
"Optical reciever 1 Input Offset (0-15) :%d\n", &
opt_inadj[0]);
640 fscanf(infile,
"Optical reciever 2 Input Offset (0-15) :%d\n", &
opt_inadj[1]);
641 fscanf(infile,
"Optical reciever 3 Input Offset (0-15) :%d\n", &
opt_inadj[2]);
642 fscanf(infile,
"Optical reciever 1 Output Offset (0-3) :%d\n", &
opt_ouadj[0]);
643 fscanf(infile,
"Optical reciever 2 Output Offset (0-3) :%d\n", &
opt_ouadj[1]);
644 fscanf(infile,
"Optical reciever 3 Output Offset (0-3) :%d\n", &
opt_ouadj[2]);
647 printf(
"Optical reciever 1 Capacitor Adjust(0-3):%d\n",
opt_cap[0]);
648 printf(
"Optical reciever 2 Capacitor Adjust(0-3):%d\n",
opt_cap[1]);
649 printf(
"Optical reciever 3 Capacitor Adjust(0-3):%d\n",
opt_cap[2]);
650 printf(
"Optical reciever 1 Input Offset (0-15) :%d\n",
opt_inadj[0]);
651 printf(
"Optical reciever 2 Input Offset (0-15) :%d\n",
opt_inadj[1]);
652 printf(
"Optical reciever 3 Input Offset (0-15) :%d\n",
opt_inadj[2]);
653 printf(
"Optical reciever 1 Output Offset (0-3) :%d\n",
opt_ouadj[0]);
654 printf(
"Optical reciever 2 Output Offset (0-3) :%d\n",
opt_ouadj[1]);
655 printf(
"Optical reciever 3 Output Offset (0-3) :%d\n",
opt_ouadj[2]);
659 for (
int i = 0;
i < 36;
i++) {
660 fscanf(infile,
"Offset DAC channel %d:%d\n", &ijx, &
offs_dac[
i]);
662 printf(
"Offset DAC channel %d:%d\n", i + 1,
offs_dac[i]);
666 fscanf(infile,
"Clock Phase Bits ch 1-9:%x\n", &
clkphs1_9);
667 fscanf(infile,
"Clock Phase Bits ch 10-18:%x\n", &
clkphs10_18);
668 fscanf(infile,
"Clock Phase Bits ch 19-27:%x\n", &
clkphs19_27);
669 fscanf(infile,
"Clock Phase Bits ch 28-36:%x\n", &
clkphs28_36);
671 printf(
"Clock Phase Bits ch 1-9:%x\n",
clkphs1_9);
673 printf(
"Clock Phase Bits ch 10-18:%x\n",
clkphs10_18);
675 printf(
"Clock Phase Bits ch 19-27:%x\n",
clkphs19_27);
677 printf(
"Clock Phase Bits ch 28-36:%x\n",
clkphs28_36);
680 for (
int i = 0;
i < 36;
i++) {
681 fscanf(infile,
"Black HiThold ch %d:%d \n", &ijx, &
BlackHi[
i]);
682 fscanf(infile,
"Black LoThold ch %d:%d \n", &ijx, &
BlackLo[i]);
683 fscanf(infile,
"ULblack Thold ch %d:%d \n", &ijx, &
Ublack[i]);
685 printf(
"Black HiThold ch %d:%d\n", ijx,
BlackHi[i]);
687 printf(
"Black LoThold ch %d:%d\n", ijx,
BlackLo[i]);
689 printf(
"ULblack Thold ch %d:%d\n", ijx,
Ublack[i]);
693 for (
int i = 0;
i < 36;
i++) {
694 fscanf(infile,
"Delay channel %d(0-15):%d\n", &ijx, &
DelayCh[
i]);
696 printf(
"Delay channel %d(0-15):%d\n", i + 1,
DelayCh[i]);
700 for (
int i = 0;
i < 36;
i++) {
701 fscanf(infile,
"TBM level 0 Channel %d:%d\n", &ijx, &
TBM_L0[
i]);
702 fscanf(infile,
"TBM level 1 Channel %d:%d\n", &ijx, &
TBM_L1[i]);
703 fscanf(infile,
"TBM level 2 Channel %d:%d\n", &ijx, &
TBM_L2[i]);
704 fscanf(infile,
"TBM level 3 Channel %d:%d\n", &ijx, &
TBM_L3[i]);
705 fscanf(infile,
"TBM level 4 Channel %d:%d\n", &ijx, &
TBM_L4[i]);
707 printf(
"TBM level 0 Channel %d:%d\n", ijx,
TBM_L0[i]);
709 printf(
"TBM level 1 Channel %d:%d\n", ijx,
TBM_L1[i]);
711 printf(
"TBM level 2 Channel %d:%d\n", ijx,
TBM_L2[i]);
713 printf(
"TBM level 3 Channel %d:%d\n", ijx,
TBM_L3[i]);
715 printf(
"TBM level 4 Channel %d:%d\n", ijx,
TBM_L4[i]);
719 fscanf(infile,
"ROC%d level 0 Channel %d :%d\n", &ijy, &ijx, &
ROC_L0[i][
j]);
720 fscanf(infile,
"ROC%d level 1 Channel %d :%d\n", &ijy, &ijx, &
ROC_L1[i][j]);
721 fscanf(infile,
"ROC%d level 2 Channel %d :%d\n", &ijy, &ijx, &
ROC_L2[i][j]);
722 fscanf(infile,
"ROC%d level 3 Channel %d :%d\n", &ijy, &ijx, &
ROC_L3[i][j]);
723 fscanf(infile,
"ROC%d level 4 Channel %d :%d\n", &ijy, &ijx, &
ROC_L4[i][j]);
725 printf(
"ROC%d level 0 Channel %d :%d\n", ijy, ijx,
ROC_L0[i][j]);
727 printf(
"ROC%d level 1 Channel %d :%d\n", ijy, ijx,
ROC_L1[i][j]);
729 printf(
"ROC%d level 2 Channel %d :%d\n", ijy, ijx,
ROC_L2[i][j]);
731 printf(
"ROC%d level 3 Channel %d :%d\n", ijy, ijx,
ROC_L3[i][j]);
733 printf(
"ROC%d level 4 Channel %d :%d\n", ijy, ijx,
ROC_L4[i][j]);
736 fscanf(infile,
"TRLR level 0 Channel %d:%d\n", &ijx, &
TRL_L0[i]);
737 fscanf(infile,
"TRLR level 1 Channel %d:%d\n", &ijx, &
TRL_L1[i]);
738 fscanf(infile,
"TRLR level 2 Channel %d:%d\n", &ijx, &
TRL_L2[i]);
739 fscanf(infile,
"TRLR level 3 Channel %d:%d\n", &ijx, &
TRL_L3[i]);
740 fscanf(infile,
"TRLR level 4 Channel %d:%d\n", &ijx, &
TRL_L4[i]);
742 printf(
"TRLR level 0 Channel %d:%d\n", ijx,
TRL_L0[i]);
744 printf(
"TRLR level 1 Channel %d:%d\n", ijx,
TRL_L1[i]);
746 printf(
"TRLR level 2 Channel %d:%d\n", ijx,
TRL_L2[i]);
748 printf(
"TRLR level 3 Channel %d:%d\n", ijx,
TRL_L3[i]);
750 printf(
"TRLR level 4 Channel %d:%d\n", ijx,
TRL_L4[i]);
754 fscanf(infile,
"Channel Enbable bits chnls 1-9 (on = 0):%x\n", &
Ncntrl);
755 fscanf(infile,
"Channel Enbable bits chnls 10-18(on = 0):%x\n", &
NCcntrl);
756 fscanf(infile,
"Channel Enbable bits chnls 19-27(on = 0):%x\n", &
SCcntrl);
757 fscanf(infile,
"Channel Enbable bits chnls 28-36(on = 0):%x\n", &
Scntrl);
759 printf(
"Channel Enbable bits chnls 1-9 (on = 0):%x\n",
Ncntrl);
761 printf(
"Channel Enbable bits chnls 10-18(on = 0):%x\n",
NCcntrl);
763 printf(
"Channel Enbable bits chnls 19-27(on = 0):%x\n",
SCcntrl);
765 printf(
"Channel Enbable bits chnls 28-36(on = 0):%x\n",
Scntrl);
768 fscanf(infile,
"TTCrx Coarse Delay Register 2:%d\n", &
CoarseDel);
769 fscanf(infile,
"TTCrc ClkDes2 Register 3:%x\n", &
ClkDes2);
770 fscanf(infile,
"TTCrc Fine Dlay ClkDes2 Reg 1:%d\n", &
FineDes2Del);
772 printf(
"TTCrx Coarse Delay Register 2:%d\n",
CoarseDel);
774 printf(
"TTCrc ClkDes2 Register 3:%x\n",
ClkDes2);
776 printf(
"TTCrc Fine Dlay ClkDes2 Reg 1:%d\n",
FineDes2Del);
779 fscanf(infile,
"Center Chip Control Reg:%x\n", &
Ccntrl);
781 printf(
"Control Reg:0x%x\n",
Ccntrl);
782 fscanf(infile,
"Initial Slink DAQ mode:%d\n", &
modeRegister);
787 fscanf(infile,
"Channel ADC Gain bits chnls 1-12(1Vpp = 0):%x\n", &
Nadcg);
788 fscanf(infile,
"Channel ADC Gain bits chnls 13-20(1Vpp = 0):%x\n", &
NCadcg);
789 fscanf(infile,
"Channel ADC Gain bits chnls 21-28(1Vpp = 0):%x\n", &
SCadcg);
790 fscanf(infile,
"Channel ADC Gain bits chnls 29-36(1Vpp = 0):%x\n", &
Sadcg);
792 printf(
"Channel ADC Gain bits chnls 1-12(1Vpp = 0):%x\n",
Nadcg);
794 printf(
"Channel ADC Gain bits chnls 13-20(1Vpp = 0):%x\n",
NCadcg);
796 printf(
"Channel ADC Gain bits chnls 21-28(1Vpp = 0):%x\n",
SCadcg);
798 printf(
"Channel ADC Gain bits chnls 29-36(1Vpp = 0):%x\n",
Sadcg);
801 fscanf(infile,
"Channel Baseline Enbable chnls 1-9 (on = (0x1ff<<16)+):%x\n", &
Nbaseln);
802 fscanf(infile,
"Channel Baseline Enbable chnls 10-18(on = (0x1ff<<16)+):%x\n", &
NCbaseln);
803 fscanf(infile,
"Channel Baseline Enbable chnls 19-27(on = (0x1ff<<16)+):%x\n", &
SCbaseln);
804 fscanf(infile,
"Channel Baseline Enbable chnls 28-36(on = (0x1ff<<16)+):%x\n", &
Sbaseln);
806 printf(
"Channel Baseline Enbable chnls 1-9 (on = (0x1ff<<16)+):%x\n",
Nbaseln);
808 printf(
"Channel Baseline Enbable chnls 10-18(on = (0x1ff<<16)+):%x\n",
NCbaseln);
810 printf(
"Channel Baseline Enbable chnls 19-27(on = (0x1ff<<16)+):%x\n",
SCbaseln);
812 printf(
"Channel Baseline Enbable chnls 28-36(on = (0x1ff<<16)+):%x\n",
Sbaseln);
815 fscanf(infile,
"TBM trailer mask chnls 1-9 (0xff = all masked):%x\n", &
N_TBMmask);
816 fscanf(infile,
"TBM trailer mask chnls 10-18(0xff = all masked):%x\n", &
NC_TBMmask);
817 fscanf(infile,
"TBM trailer mask chnls 19-27(0xff = all masked):%x\n", &
SC_TBMmask);
818 fscanf(infile,
"TBM trailer mask chnls 28-36(0xff = all masked):%x\n", &
S_TBMmask);
820 printf(
"TBM trailer mask chnls 1-9 (0xff = all masked):%x\n",
N_TBMmask);
822 printf(
"TBM trailer mask chnls 10-18(0xff = all masked):%x\n",
NC_TBMmask);
824 printf(
"TBM trailer mask chnls 19-27(0xff = all masked):%x\n",
SC_TBMmask);
826 printf(
"TBM trailer mask chnls 28-36(0xff = all masked):%x\n",
S_TBMmask);
829 fscanf(infile,
"Private 8 bit word chnls 1-9 :%x\n", &
N_Pword);
830 fscanf(infile,
"Private 8 bit word chnls 10-18:%x\n", &
NC_Pword);
831 fscanf(infile,
"Private 8 bit word chnls 19-27:%x\n", &
SC_Pword);
832 fscanf(infile,
"Private 8 bit word chnls 28-36:%x\n", &
S_Pword);
834 printf(
"Private 8 bit word chnls 1-9 :%x\n",
N_Pword);
836 printf(
"Private 8 bit word chnls 10-18:%x\n",
NC_Pword);
838 printf(
"Private 8 bit word chnls 19-27:%x\n",
SC_Pword);
840 printf(
"Private 8 bit word chnls 28-36:%x\n",
S_Pword);
843 fscanf(infile,
"Special Random testDAC mode (on = 0x1, off=0x0):%x\n", &
SpecialDac);
845 printf(
"Special Random testDAC mode (on = 0x1, off=0x0):%x\n",
SpecialDac);
848 fscanf(infile,
"Number of Consecutive (max 1023) Out of Syncs till TTs OOS set:%d\n", &
Ooslvl);
850 printf(
"Number of Consecutive (max 1023) Out of Syncs till TTs OOS set:%d\n",
Ooslvl);
853 fscanf(infile,
"Number of Consecutive (max 1023) Empty events till TTs ERR set:%d\n", &
Errlvl);
855 printf(
"Number of Consecutive (max 1023) Empty events till TTs ERR set:%d\n",
Errlvl);
858 fscanf(infile,
"N Fifo-1 almost full level,sets TTs BUSY (max 1023):%d\n", &
Nfifo1Bzlvl);
860 printf(
"N Fifo-1 almost full level,sets TTs BUSY (max 1023):%d\n",
Nfifo1Bzlvl);
863 fscanf(infile,
"NC Fifo-1 almost full level,sets TTs BUSY (max 1023):%d\n", &
NCfifo1Bzlvl);
865 printf(
"NC Fifo-1 almost full level,sets TTs BUSY (max 1023):%d\n",
NCfifo1Bzlvl);
868 fscanf(infile,
"SC Fifo-1 almost full level,sets TTs BUSY (max 1023):%d\n", &
SCfifo1Bzlvl);
870 printf(
"SC Fifo-1 almost full level,sets TTs BUSY (max 1023):%d\n",
SCfifo1Bzlvl);
873 fscanf(infile,
"S Fifo-1 almost full level,sets TTs BUSY (max 1023):%d\n", &
Sfifo1Bzlvl);
875 printf(
"S Fifo-1 almost full level,sets TTs BUSY (max 1023):%d\n",
Sfifo1Bzlvl);
878 fscanf(infile,
"Fifo-3 almost full level,sets TTs WARN (max 8191):%d\n", &
fifo3Wrnlvl);
880 printf(
"Fifo-3 almost full level,sets TTs WARN (max 8191):%d\n",
fifo3Wrnlvl);
882 fscanf(infile,
"FED Master delay 0=0,1=32,2=48,3=64:%d\n", &
FedTTCDelay);
884 printf(
"FED Master delay 0=0,1=32,2=48,3=64:%d\n",
FedTTCDelay);
886 fscanf(infile,
"TTCrx Register 0 fine delay ClkDes1:%d\n", &
FineDes1Del);
888 printf(
"TTCrx Register 0 fine delay ClkDes1:%d\n",
FineDes1Del);
891 fscanf(infile,
"Params FED file check word:%d\n", &checkword);
892 if (checkword != 90508 && checkword != 91509 && checkword != 20211)
893 cout << __LINE__ <<
"]\t" << mthn <<
"FEDID: " <<
fedNumber <<
" Params FED File read error. Checkword read " 894 << checkword <<
" check word expected 090508 or 91509 or 20211" << endl;
895 assert((checkword == 90508) | (checkword == 91509) | (checkword == 20211));
898 cout << __LINE__ <<
"]\t" << mthn <<
"Params FED file check word: " << checkword << endl;
902 if (checkword == 20211) {
904 fscanf(infile,
"N fifo-1 hit limit (max 1023 (hard) 900 (soft):%d\n", &
N_hitlimit);
906 printf(
"N fifo-1 hit limit (max 1023 (hard) 900 (soft):%d\n",
N_hitlimit);
907 fscanf(infile,
"NC fifo-1 hit limit (max 1023 (hard) 900 (soft):%d\n", &
NC_hitlimit);
909 printf(
"NC fifo-1 hit limit (max 1023 (hard) 900 (soft):%d\n",
NC_hitlimit);
910 fscanf(infile,
"SC fifo-1 hit limit (max 1023 (hard) 900 (soft):%d\n", &
SC_hitlimit);
912 printf(
"SC fifo-1 hit limit (max 1023 (hard) 900 (soft):%d\n",
SC_hitlimit);
913 fscanf(infile,
"S fifo-1 hit limit (max 1023 (hard) 900 (soft):%d\n", &
S_hitlimit);
915 printf(
"S fifo-1 hit limit (max 1023 (hard) 900 (soft):%d\n",
S_hitlimit);
918 fscanf(infile,
"Skip a ROC in ch 1-9, bits 10-5 chnl, bits 0-4 ROC-1:%d\n", &
N_testreg);
920 printf(
"Skip a ROC in ch 1-9, bits 10-5 chnl, bits 0-4 ROC-1:%d\n",
N_testreg);
921 fscanf(infile,
"Skip a ROC in ch 10-18, bits 10-5 chnl, bits 0-4 ROC-1:%d\n", &
NC_testreg);
923 printf(
"Skip a ROC in ch 10-18, bits 10-5 chnl, bits 0-4 ROC-1:%d\n",
NC_testreg);
924 fscanf(infile,
"Skip a ROC in ch 19-27, bits 10-5 chnl, bits 0-4 ROC-1:%d\n", &
SC_testreg);
926 printf(
"Skip a ROC in ch 19-27, bits 10-5 chnl, bits 0-4 ROC-1:%d\n",
SC_testreg);
927 fscanf(infile,
"Skip a ROC in ch 28-36, bits 10-5 chnl, bits 0-4 ROC-1:%d\n", &
S_testreg);
929 printf(
"Skip a ROC in ch 28-36, bits 10-5 chnl, bits 0-4 ROC-1:%d\n",
S_testreg);
931 fscanf(infile,
"Set BUSYWHENBEHIND by this many triggers with timeouts:%d\n", &
BusyWhenBehind);
933 printf(
"Set BUSYWHENBEHIND by this many triggers with timeouts:%d\n",
BusyWhenBehind);
935 fscanf(infile,
"D[0]=1 enable fed-stuck reset D[1]=1 disable ev# protect(dont):%x\n", &
FeatureRegister);
937 printf(
"D[0]=1 enable fed-stuck reset D[1]=1 disable ev# protect(dont):%x\n",
FeatureRegister);
939 fscanf(infile,
"Limit for fifo-2 almost full (point for the TTS flag):%x\n", &
FIFO2Limit);
941 printf(
"Limit for fifo-2 almost full (point for the TTS flag):%x\n",
FIFO2Limit);
943 fscanf(infile,
"Limit for consecutive timeout OR OOSs:%d\n", &
TimeoutOROOSLimit);
947 fscanf(infile,
"Turn off filling of lastdac fifos(exc 1st ROC):%d\n", &
LastDacOff);
949 printf(
"Turn off filling of lastdac fifos(exc 1st ROC):%d\n",
LastDacOff);
951 fscanf(infile,
"Number of simulated hits per ROC for internal generator:%d\n", &
SimHitsPerRoc);
953 printf(
"Number of simulated hits per ROC for internal generator:%d\n",
SimHitsPerRoc);
955 fscanf(infile,
"Miniumum hold time for busy (changing definition):%d\n", &
BusyHoldMin);
957 printf(
"Miniumum hold time for busy (changing definition):%d\n",
BusyHoldMin);
959 fscanf(infile,
"Trigger Holdoff in units of 25us(0=none):%d\n", &
TriggerHoldoff);
961 printf(
"Trigger Holdoff in units of 25us(0=none):%d\n",
TriggerHoldoff);
963 fscanf(infile,
"Spare fedcard input 1:%d\n", &
SPARE1);
965 printf(
"Spare fedcard input 1:%d\n",
SPARE1);
966 fscanf(infile,
"Spare fedcard input 2:%d\n", &
SPARE2);
968 printf(
"Spare fedcard input 2:%d\n",
SPARE2);
969 fscanf(infile,
"Spare fedcard input 3:%d\n", &
SPARE3);
971 printf(
"Spare fedcard input 3:%d\n",
SPARE3);
972 fscanf(infile,
"Spare fedcard input 4:%d\n", &
SPARE4);
974 printf(
"Spare fedcard input 4:%d\n",
SPARE4);
975 fscanf(infile,
"Spare fedcard input 5:%d\n", &
SPARE5);
977 printf(
"Spare fedcard input 5:%d\n",
SPARE5);
978 fscanf(infile,
"Spare fedcard input 6:%d\n", &
SPARE6);
980 printf(
"Spare fedcard input 6:%d\n",
SPARE6);
981 fscanf(infile,
"Spare fedcard input 7:%d\n", &
SPARE7);
983 printf(
"Spare fedcard input 7:%d\n",
SPARE7);
984 fscanf(infile,
"Spare fedcard input 8:%d\n", &
SPARE8);
986 printf(
"Spare fedcard input 8:%d\n",
SPARE8);
987 fscanf(infile,
"Spare fedcard input 9:%d\n", &
SPARE9);
989 printf(
"Spare fedcard input 9:%d\n",
SPARE9);
990 fscanf(infile,
"Spare fedcard input 10:%d\n", &
SPARE10);
992 printf(
"Spare fedcard input 10:%d\n",
SPARE10);
994 }
else if (checkword == 91509) {
996 fscanf(infile,
"N fifo-1 hit limit (max 1023 (hard) 900 (soft):%d\n", &
N_hitlimit);
998 printf(
"N fifo-1 hit limit (max 1023 (hard) 900 (soft):%d\n",
N_hitlimit);
999 fscanf(infile,
"NC fifo-1 hit limit (max 1023 (hard) 900 (soft):%d\n", &
NC_hitlimit);
1001 printf(
"NC fifo-1 hit limit (max 1023 (hard) 900 (soft):%d\n",
NC_hitlimit);
1002 fscanf(infile,
"SC fifo-1 hit limit (max 1023 (hard) 900 (soft):%d\n", &
SC_hitlimit);
1004 printf(
"SC fifo-1 hit limit (max 1023 (hard) 900 (soft):%d\n",
SC_hitlimit);
1005 fscanf(infile,
"S fifo-1 hit limit (max 1023 (hard) 900 (soft):%d\n", &
S_hitlimit);
1007 printf(
"S fifo-1 hit limit (max 1023 (hard) 900 (soft):%d\n",
S_hitlimit);
1010 fscanf(infile,
"Skip a ROC in ch 1-9, bits 10-5 chnl, bits 0-4 ROC-1:%d\n", &
N_testreg);
1012 printf(
"Skip a ROC in ch 1-9, bits 10-5 chnl, bits 0-4 ROC-1:%d\n",
N_testreg);
1013 fscanf(infile,
"Skip a ROC in ch 10-18, bits 10-5 chnl, bits 0-4 ROC-1:%d\n", &
NC_testreg);
1015 printf(
"Skip a ROC in ch 10-18, bits 10-5 chnl, bits 0-4 ROC-1:%d\n",
NC_testreg);
1016 fscanf(infile,
"Skip a ROC in ch 19-27, bits 10-5 chnl, bits 0-4 ROC-1:%d\n", &
SC_testreg);
1018 printf(
"Skip a ROC in ch 19-27, bits 10-5 chnl, bits 0-4 ROC-1:%d\n",
SC_testreg);
1019 fscanf(infile,
"Skip a ROC in ch 28-36, bits 10-5 chnl, bits 0-4 ROC-1:%d\n", &
S_testreg);
1021 printf(
"Skip a ROC in ch 28-36, bits 10-5 chnl, bits 0-4 ROC-1:%d\n",
S_testreg);
1096 for (
int i = 0;
i < 36;
i++) {
1114 for (
int i = 0;
i < 3;
i++) {
1124 for (
int i = 0;
i < 36;
i++) {
1125 for (
int j = 0;
j < 26;
j++) {
1191 std::string mthn =
"[PixelFEDCard::writeASCII()]\t\t\t\t ";
1202 FILE *
outfile = fopen((filename.c_str()),
"w");
1203 if (outfile ==
nullptr) {
1204 cout << __LINE__ <<
"]\t" << mthn <<
"Could not open file: " << filename <<
" for writing" << endl;
1209 fprintf(outfile,
"FED Base address :0x%lx\n",
FEDBASE_0);
1210 fprintf(outfile,
"FEDID Number :0x%lx\n", fedNumber);
1214 for (
int i = 0;
i < 36;
i++) {
1216 fprintf(outfile,
"Number of ROCs Chnl %d:%d\n", ijx,
NRocs[
i]);
1220 fprintf(outfile,
"Optical reciever 1 Capacitor Adjust(0-3):%d\n",
opt_cap[0]);
1221 fprintf(outfile,
"Optical reciever 2 Capacitor Adjust(0-3):%d\n",
opt_cap[1]);
1222 fprintf(outfile,
"Optical reciever 3 Capacitor Adjust(0-3):%d\n",
opt_cap[2]);
1223 fprintf(outfile,
"Optical reciever 1 Input Offset (0-15) :%d\n",
opt_inadj[0]);
1224 fprintf(outfile,
"Optical reciever 2 Input Offset (0-15) :%d\n",
opt_inadj[1]);
1225 fprintf(outfile,
"Optical reciever 3 Input Offset (0-15) :%d\n",
opt_inadj[2]);
1226 fprintf(outfile,
"Optical reciever 1 Output Offset (0-3) :%d\n",
opt_ouadj[0]);
1227 fprintf(outfile,
"Optical reciever 2 Output Offset (0-3) :%d\n",
opt_ouadj[1]);
1228 fprintf(outfile,
"Optical reciever 3 Output Offset (0-3) :%d\n",
opt_ouadj[2]);
1231 for (
int i = 0;
i < 36;
i++) {
1232 fprintf(outfile,
"Offset DAC channel %d:%d\n",
i + 1,
offs_dac[
i]);
1236 fprintf(outfile,
"Clock Phase Bits ch 1-9:0x%x\n",
clkphs1_9);
1237 fprintf(outfile,
"Clock Phase Bits ch 10-18:0x%x\n",
clkphs10_18);
1238 fprintf(outfile,
"Clock Phase Bits ch 19-27:0x%x\n",
clkphs19_27);
1239 fprintf(outfile,
"Clock Phase Bits ch 28-36:0x%x\n",
clkphs28_36);
1242 for (
int i = 0;
i < 36;
i++) {
1243 fprintf(outfile,
"Black HiThold ch %d:%d \n",
i + 1,
BlackHi[
i]);
1244 fprintf(outfile,
"Black LoThold ch %d:%d \n", i + 1,
BlackLo[i]);
1245 fprintf(outfile,
"ULblack Thold ch %d:%d \n", i + 1,
Ublack[i]);
1249 for (
int i = 0;
i < 36;
i++) {
1250 fprintf(outfile,
"Delay channel %d(0-15):%d\n",
i + 1,
DelayCh[
i]);
1254 for (
int i = 0;
i < 36;
i++) {
1255 fprintf(outfile,
"TBM level 0 Channel %d:%d\n",
i + 1,
TBM_L0[
i]);
1256 fprintf(outfile,
"TBM level 1 Channel %d:%d\n", i + 1,
TBM_L1[i]);
1257 fprintf(outfile,
"TBM level 2 Channel %d:%d\n", i + 1,
TBM_L2[i]);
1258 fprintf(outfile,
"TBM level 3 Channel %d:%d\n", i + 1,
TBM_L3[i]);
1259 fprintf(outfile,
"TBM level 4 Channel %d:%d\n", i + 1,
TBM_L4[i]);
1262 fprintf(outfile,
"ROC%d level 0 Channel %d :%d\n",
j, i + 1,
ROC_L0[i][
j]);
1263 fprintf(outfile,
"ROC%d level 1 Channel %d :%d\n", j, i + 1,
ROC_L1[i][j]);
1264 fprintf(outfile,
"ROC%d level 2 Channel %d :%d\n", j, i + 1,
ROC_L2[i][j]);
1265 fprintf(outfile,
"ROC%d level 3 Channel %d :%d\n", j, i + 1,
ROC_L3[i][j]);
1266 fprintf(outfile,
"ROC%d level 4 Channel %d :%d\n", j, i + 1,
ROC_L4[i][j]);
1269 fprintf(outfile,
"TRLR level 0 Channel %d:%d\n", i + 1,
TRL_L0[i]);
1270 fprintf(outfile,
"TRLR level 1 Channel %d:%d\n", i + 1,
TRL_L1[i]);
1271 fprintf(outfile,
"TRLR level 2 Channel %d:%d\n", i + 1,
TRL_L2[i]);
1272 fprintf(outfile,
"TRLR level 3 Channel %d:%d\n", i + 1,
TRL_L3[i]);
1273 fprintf(outfile,
"TRLR level 4 Channel %d:%d\n", i + 1,
TRL_L4[i]);
1277 fprintf(outfile,
"Channel Enbable bits chnls 1-9 (on = 0):0x%x\n",
Ncntrl);
1278 fprintf(outfile,
"Channel Enbable bits chnls 10-18(on = 0):0x%x\n",
NCcntrl);
1279 fprintf(outfile,
"Channel Enbable bits chnls 19-27(on = 0):0x%x\n",
SCcntrl);
1280 fprintf(outfile,
"Channel Enbable bits chnls 28-36(on = 0):0x%x\n",
Scntrl);
1283 fprintf(outfile,
"TTCrx Coarse Delay Register 2:%d\n",
CoarseDel);
1284 fprintf(outfile,
"TTCrc ClkDes2 Register 3:0x%x\n",
ClkDes2);
1285 fprintf(outfile,
"TTCrc Fine Dlay ClkDes2 Reg 1:%d\n",
FineDes2Del);
1288 fprintf(outfile,
"Center Chip Control Reg:0x%x\n",
Ccntrl);
1289 fprintf(outfile,
"Initial Slink DAQ mode:%d\n",
modeRegister);
1292 fprintf(outfile,
"Channel ADC Gain bits chnls 1-12(1Vpp = 0):0x%x\n",
Nadcg);
1293 fprintf(outfile,
"Channel ADC Gain bits chnls 13-20(1Vpp = 0):0x%x\n",
NCadcg);
1294 fprintf(outfile,
"Channel ADC Gain bits chnls 21-28(1Vpp = 0):0x%x\n",
SCadcg);
1295 fprintf(outfile,
"Channel ADC Gain bits chnls 29-36(1Vpp = 0):0x%x\n",
Sadcg);
1298 fprintf(outfile,
"Channel Baseline Enbable chnls 1-9 (on = (0x1ff<<16)+):0x%x\n",
Nbaseln);
1299 fprintf(outfile,
"Channel Baseline Enbable chnls 10-18(on = (0x1ff<<16)+):0x%x\n",
NCbaseln);
1300 fprintf(outfile,
"Channel Baseline Enbable chnls 19-27(on = (0x1ff<<16)+):0x%x\n",
SCbaseln);
1301 fprintf(outfile,
"Channel Baseline Enbable chnls 28-36(on = (0x1ff<<16)+):0x%x\n",
Sbaseln);
1304 fprintf(outfile,
"TBM trailer mask chnls 1-9 (0xff = all masked):0x%x\n",
N_TBMmask);
1305 fprintf(outfile,
"TBM trailer mask chnls 10-18(0xff = all masked):0x%x\n",
NC_TBMmask);
1306 fprintf(outfile,
"TBM trailer mask chnls 19-27(0xff = all masked):0x%x\n",
SC_TBMmask);
1307 fprintf(outfile,
"TBM trailer mask chnls 28-36(0xff = all masked):0x%x\n",
S_TBMmask);
1310 fprintf(outfile,
"Private 8 bit word chnls 1-9 :0x%x\n",
N_Pword);
1311 fprintf(outfile,
"Private 8 bit word chnls 10-18:0x%x\n",
NC_Pword);
1312 fprintf(outfile,
"Private 8 bit word chnls 19-27:0x%x\n",
SC_Pword);
1313 fprintf(outfile,
"Private 8 bit word chnls 28-36:0x%x\n",
S_Pword);
1316 fprintf(outfile,
"Special Random testDAC mode (on = 0x1, off=0x0):0x%x\n",
SpecialDac);
1319 fprintf(outfile,
"Number of Consecutive (max 1023) Out of Syncs till TTs OOS set:%d\n",
Ooslvl);
1322 fprintf(outfile,
"Number of Consecutive (max 1023) Empty events till TTs ERR set:%d\n",
Errlvl);
1325 fprintf(outfile,
"N Fifo-1 almost full level,sets TTs BUSY (max 1023):%d\n",
Nfifo1Bzlvl);
1328 fprintf(outfile,
"NC Fifo-1 almost full level,sets TTs BUSY (max 1023):%d\n",
NCfifo1Bzlvl);
1331 fprintf(outfile,
"SC Fifo-1 almost full level,sets TTs BUSY (max 1023):%d\n",
SCfifo1Bzlvl);
1334 fprintf(outfile,
"S Fifo-1 almost full level,sets TTs BUSY (max 1023):%d\n",
Sfifo1Bzlvl);
1337 fprintf(outfile,
"Fifo-3 almost full level,sets TTs WARN (max 8191):%d\n",
fifo3Wrnlvl);
1339 fprintf(outfile,
"FED Master delay 0=0,1=32,2=48,3=64:%d\n",
FedTTCDelay);
1341 fprintf(outfile,
"TTCrx Register 0 fine delay ClkDes1:%d\n",
FineDes1Del);
1343 int checkword = 20211;
1345 fprintf(outfile,
"Params FED file check word:%d\n", checkword);
1348 fprintf(outfile,
"N fifo-1 hit limit (max 1023 (hard) 900 (soft):%d\n",
1351 fprintf(outfile,
"NC fifo-1 hit limit (max 1023 (hard) 900 (soft):%d\n",
1354 fprintf(outfile,
"SC fifo-1 hit limit (max 1023 (hard) 900 (soft):%d\n",
1357 fprintf(outfile,
"S fifo-1 hit limit (max 1023 (hard) 900 (soft):%d\n",
1361 fprintf(outfile,
"Skip a ROC in ch 1-9, bits 10-5 chnl, bits 0-4 ROC-1:%d\n",
N_testreg);
1363 fprintf(outfile,
"Skip a ROC in ch 10-18, bits 10-5 chnl, bits 0-4 ROC-1:%d\n",
NC_testreg);
1365 fprintf(outfile,
"Skip a ROC in ch 19-27, bits 10-5 chnl, bits 0-4 ROC-1:%d\n",
SC_testreg);
1367 fprintf(outfile,
"Skip a ROC in ch 28-36, bits 10-5 chnl, bits 0-4 ROC-1:%d\n",
S_testreg);
1369 fprintf(outfile,
"Set BUSYWHENBEHIND by this many triggers with timeouts:%d\n",
BusyWhenBehind);
1371 fprintf(outfile,
"D[0]=1 enable fed-stuck reset D[1]=1 disable ev# protect(dont):0x%x\n",
FeatureRegister);
1373 fprintf(outfile,
"Limit for fifo-2 almost full (point for the TTS flag):0x%x\n",
FIFO2Limit);
1375 fprintf(outfile,
"Limit for consecutive timeout OR OOSs:%d\n",
TimeoutOROOSLimit);
1377 fprintf(outfile,
"Turn off filling of lastdac fifos(exc 1st ROC):%d\n",
LastDacOff);
1379 fprintf(outfile,
"Number of simulated hits per ROC for internal generator:%d\n",
SimHitsPerRoc);
1381 fprintf(outfile,
"Miniumum hold time for busy (changing definition):%d\n",
BusyHoldMin);
1383 fprintf(outfile,
"Trigger Holdoff in units of 25us(0=none):%d\n",
TriggerHoldoff);
1385 fprintf(outfile,
"Spare fedcard input 1:%d\n",
SPARE1);
1386 fprintf(outfile,
"Spare fedcard input 2:%d\n",
SPARE2);
1387 fprintf(outfile,
"Spare fedcard input 3:%d\n",
SPARE3);
1388 fprintf(outfile,
"Spare fedcard input 4:%d\n",
SPARE4);
1389 fprintf(outfile,
"Spare fedcard input 5:%d\n",
SPARE5);
1390 fprintf(outfile,
"Spare fedcard input 6:%d\n",
SPARE6);
1391 fprintf(outfile,
"Spare fedcard input 7:%d\n",
SPARE7);
1392 fprintf(outfile,
"Spare fedcard input 8:%d\n",
SPARE8);
1393 fprintf(outfile,
"Spare fedcard input 9:%d\n",
SPARE9);
1394 fprintf(outfile,
"Spare fedcard input 10:%d\n",
SPARE10);
1403 std::ofstream *fedstream,
1404 std::ofstream *rocstream,
1405 std::ofstream *tbmstream)
const {
1406 std::string mthn =
"[PixelFEDCard::writeXMLHeader()]\t\t\t ";
1407 std::stringstream fedfullPath;
1408 std::stringstream rocfullPath;
1409 std::stringstream tbmfullPath;
1414 std::cout << __LINE__ <<
"]\t" << mthn <<
"Writing to: " << fedfullPath.str() <<
"" << std::endl;
1416 fedstream->open(fedfullPath.str().c_str());
1418 *fedstream <<
"<?xml version='1.0' encoding='UTF-8' standalone='yes'?>" << std::endl;
1419 *fedstream <<
"<ROOT xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'>" << std::endl;
1420 *fedstream <<
"" << std::endl;
1421 *fedstream <<
" <HEADER>" << std::endl;
1422 *fedstream <<
" <HINTS mode='load-as-group' /> " << std::endl;
1423 *fedstream <<
" <TYPE>" << std::endl;
1424 *fedstream <<
" <EXTENSION_TABLE_NAME>FED_CONFIGURATION</EXTENSION_TABLE_NAME>" << std::endl;
1425 *fedstream <<
" <NAME>Pixel FED Configuration</NAME>" << std::endl;
1426 *fedstream <<
" </TYPE>" << std::endl;
1427 *fedstream <<
" <RUN>" << std::endl;
1428 *fedstream <<
" <RUN_TYPE>Pixel FED Configuration</RUN_TYPE>" << std::endl;
1429 *fedstream <<
" <RUN_NUMBER>1</RUN_NUMBER>" << std::endl;
1431 *fedstream <<
" <LOCATION>CERN P5</LOCATION>" << std::endl;
1432 *fedstream <<
" </RUN>" << std::endl;
1433 *fedstream <<
" </HEADER>" << std::endl;
1434 *fedstream <<
"" << std::endl;
1435 *fedstream <<
" <DATA_SET>" << std::endl;
1436 *fedstream <<
"" << std::endl;
1437 *fedstream <<
" <VERSION>" << version <<
"</VERSION>" << std::endl;
1438 *fedstream <<
" <COMMENT_DESCRIPTION>" <<
getComment() <<
"</COMMENT_DESCRIPTION>" << std::endl;
1439 *fedstream <<
" <CREATED_BY_USER>" <<
getAuthor() <<
"</CREATED_BY_USER>" << std::endl;
1440 *fedstream <<
"" << std::endl;
1441 *fedstream <<
" <PART>" << std::endl;
1442 *fedstream <<
" <NAME_LABEL>CMS-PIXEL-ROOT</NAME_LABEL>" << std::endl;
1443 *fedstream <<
" <KIND_OF_PART>Detector ROOT</KIND_OF_PART>" << std::endl;
1444 *fedstream <<
" </PART>" << std::endl;
1448 std::cout << __LINE__ <<
"]\t" << mthn <<
"Writing to: " << rocfullPath.str() <<
"" << std::endl;
1450 rocstream->open(rocfullPath.str().c_str());
1452 *rocstream <<
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>" << std::endl;
1453 *rocstream <<
"<ROOT xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\">" << std::endl;
1454 *rocstream <<
"" << std::endl;
1455 *rocstream <<
" <HEADER>" << std::endl;
1456 *rocstream <<
" <HINTS mode='only-det-root,load-as-group'/>" << std::endl;
1457 *rocstream <<
" <TYPE>" << std::endl;
1458 *rocstream <<
" <EXTENSION_TABLE_NAME>ROC_ANALOG_LEVELS</EXTENSION_TABLE_NAME>" << std::endl;
1459 *rocstream <<
" <NAME>ROC Analog Levels</NAME>" << std::endl;
1460 *rocstream <<
" </TYPE>" << std::endl;
1461 *rocstream <<
" <RUN>" << std::endl;
1462 *rocstream <<
" <RUN_TYPE>ROC Analog Levels</RUN_TYPE>" << std::endl;
1463 *rocstream <<
" <RUN_NUMBER>1</RUN_NUMBER> " << std::endl;
1465 *rocstream <<
" <CREATED_BY_USER>Umesh Joshi</CREATED_BY_USER> " << std::endl;
1466 *rocstream <<
" <LOCATION>CERN</LOCATION> " << std::endl;
1467 *rocstream <<
" <COMMENT_DESCRIPTION>ROC Analog Levels Template</COMMENT_DESCRIPTION>" << std::endl;
1468 *rocstream <<
" </RUN>" << std::endl;
1469 *rocstream <<
" </HEADER>" << std::endl;
1470 *rocstream <<
"" << std::endl;
1471 *rocstream <<
" <DATA_SET>" << std::endl;
1472 *rocstream <<
" <COMMENT_DESCRIPTION>ROC Analog Levels Template</COMMENT_DESCRIPTION>" << std::endl;
1473 *rocstream <<
" <VERSION>" << version <<
"</VERSION>" << std::endl;
1474 *rocstream <<
" " << std::endl;
1475 *rocstream <<
" <PART>" << std::endl;
1476 *rocstream <<
" <SERIAL_NUMBER>CMS-PIXEL-ROOT</SERIAL_NUMBER>" << std::endl;
1477 *rocstream <<
" <KIND_OF_PART>Detector ROOT</KIND_OF_PART>" << std::endl;
1478 *rocstream <<
" </PART>" << std::endl;
1482 std::cout << __LINE__ <<
"]\t" << mthn <<
"Writing to: " << tbmfullPath.str() <<
"" << std::endl;
1484 tbmstream->open(tbmfullPath.str().c_str());
1486 *tbmstream <<
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>" << std::endl;
1487 *tbmstream <<
"<ROOT xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\">" << std::endl;
1488 *tbmstream <<
"" << std::endl;
1489 *tbmstream <<
" <HEADER>" << std::endl;
1490 *tbmstream <<
" <HINTS mode='only-det-root,load-as-group' />" << std::endl;
1491 *tbmstream <<
" <TYPE>" << std::endl;
1492 *tbmstream <<
" <EXTENSION_TABLE_NAME>TBM_ANALOG_LEVELS</EXTENSION_TABLE_NAME>" << std::endl;
1493 *tbmstream <<
" <NAME>TBM Analog Levels</NAME>" << std::endl;
1494 *tbmstream <<
" </TYPE>" << std::endl;
1495 *tbmstream <<
" <RUN>" << std::endl;
1496 *tbmstream <<
" <RUN_TYPE>TBM Analog Levels</RUN_TYPE>" << std::endl;
1497 *tbmstream <<
" <RUN_NUMBER>1</RUN_NUMBER>" << std::endl;
1499 *tbmstream <<
" <CREATED_BY_USER>Umesh Joshi</CREATED_BY_USER> " << std::endl;
1500 *tbmstream <<
" <LOCATION>CERN</LOCATION> " << std::endl;
1501 *tbmstream <<
" <COMMENT_DESCRIPTION>TBM Analog Levels</COMMENT_DESCRIPTION>" << std::endl;
1502 *tbmstream <<
" </RUN>" << std::endl;
1503 *tbmstream <<
" </HEADER>" << std::endl;
1504 *tbmstream <<
"" << std::endl;
1505 *tbmstream <<
" <DATA_SET>" << std::endl;
1506 *tbmstream <<
" <VERSION>" << version <<
"</VERSION>" << std::endl;
1507 *tbmstream <<
" " << std::endl;
1508 *tbmstream <<
" <PART>" << std::endl;
1509 *tbmstream <<
" <SERIAL_NUMBER>CMS-PIXEL-ROOT</SERIAL_NUMBER>" << std::endl;
1510 *tbmstream <<
" <KIND_OF_PART>Detector ROOT</KIND_OF_PART>" << std::endl;
1511 *tbmstream <<
" </PART>" << std::endl;
1516 std::string mthn =
"[PixelFEDCard::writeXMLHeader()]\t\t\t ";
1520 std::cout << __LINE__ <<
"]\t" << mthn <<
"Writing to: " << fullPath.str() <<
"" << std::endl;
1522 out->open(fullPath.str().c_str());
1524 *out <<
"<?xml version='1.0' encoding='UTF-8' standalone='yes'?>" << std::endl;
1525 *out <<
"<ROOT>" << std::endl;
1526 *out <<
"" << std::endl;
1527 *out <<
" <HEADER>" << std::endl;
1528 *out <<
" <TYPE>" << std::endl;
1529 *out <<
" <EXTENSION_TABLE_NAME>FED_CONFIGURATION</EXTENSION_TABLE_NAME>" << std::endl;
1530 *out <<
" <NAME>Pixel FED Configuration</NAME>" << std::endl;
1531 *out <<
" </TYPE>" << std::endl;
1532 *out <<
" <RUN>" << std::endl;
1533 *out <<
" <RUN_TYPE>Pixel FED Configuration</RUN_TYPE>" << std::endl;
1534 *out <<
" <RUN_NUMBER>1</RUN_NUMBER>" << std::endl;
1536 *out <<
" <COMMENT_DESCRIPTION>Pixel FED Configuration</COMMENT_DESCRIPTION>" << std::endl;
1537 *out <<
" <LOCATION>CERN TAC</LOCATION>" << std::endl;
1538 *out <<
" <CREATED_BY_USER>Dario Menasce</CREATED_BY_USER>" << std::endl;
1539 *out <<
" </RUN>" << std::endl;
1540 *out <<
" </HEADER>" << std::endl;
1541 *out <<
"" << std::endl;
1542 *out <<
" <DATA_SET>" << std::endl;
1543 *out <<
"" << std::endl;
1544 *out <<
" <VERSION>" << version <<
"</VERSION>" << std::endl;
1545 *out <<
" <COMMENT_DESCRIPTION>Pixel FED Configuration</COMMENT_DESCRIPTION>" << std::endl;
1546 *out <<
"" << std::endl;
1547 *out <<
" <PART>" << std::endl;
1548 *out <<
" <NAME_LABEL>CMS-PIXEL-ROOT</NAME_LABEL>" << std::endl;
1549 *out <<
" <KIND_OF_PART>Detector ROOT</KIND_OF_PART>" << std::endl;
1550 *out <<
" </PART>" << std::endl;
1554 std::string mthn =
"[PixelFEDCard::writeXML()]\t\t\t ";
1556 *out <<
" <DATA>" << std::endl;
1557 *out <<
" " << std::endl;
1558 *out <<
" <PXLFED_NAME>PxlFED_" <<
fedNumber <<
"</PXLFED_NAME>" << std::endl;
1559 *out <<
" <VME_ADDRESS>268435456</VME_ADDRESS>" << std::endl;
1564 *out <<
"" << std::endl;
1565 *out <<
" <CHANNEL_ID>1</CHANNEL_ID>" << std::endl;
1566 *out <<
" <NUMBER_OF_ROCS>21</NUMBER_OF_ROCS>" << std::endl;
1567 *out <<
" <CHANNEL_OFFSET_DAC_SETTINGS>0</CHANNEL_OFFSET_DAC_SETTINGS>" << std::endl;
1568 *out <<
" <CHANNEL_DELAY_SETTINGS>3</CHANNEL_DELAY_SETTINGS>" << std::endl;
1569 *out <<
" <CHANNEL_BLACK_HIGH>400</CHANNEL_BLACK_HIGH>" << std::endl;
1570 *out <<
" <CHANNEL_BLACK_LOW>150</CHANNEL_BLACK_LOW>" << std::endl;
1571 *out <<
" <CHANNEL_ULTRA_BLACK>120</CHANNEL_ULTRA_BLACK>" << std::endl;
1572 *out <<
"" << std::endl;
1573 *out <<
" <OPT1_CAP>0</OPT1_CAP>" << std::endl;
1574 *out <<
" <OPT2_CAP>0</OPT2_CAP>" << std::endl;
1575 *out <<
" <OPT3_CAP>0</OPT3_CAP>" << std::endl;
1576 *out <<
" <OPT1_INP>0</OPT1_INP>" << std::endl;
1577 *out <<
" <OPT2_INP>0</OPT2_INP>" << std::endl;
1578 *out <<
" <OPT3_INP>0</OPT3_INP>" << std::endl;
1579 *out <<
" <OPT1_OUT>0</OPT1_OUT>" << std::endl;
1580 *out <<
" <OPT2_OUT>0</OPT2_OUT>" << std::endl;
1581 *out <<
" <OPT3_OUT>0</OPT3_OUT>" << std::endl;
1582 *out <<
" <NORTH_CLKPHB>511</NORTH_CLKPHB>" << std::endl;
1583 *out <<
" <NORTHCENTER_CLKPHB>511</NORTHCENTER_CLKPHB>" << std::endl;
1584 *out <<
" <SOUTHCENTER_CLKPHB>511</SOUTHCENTER_CLKPHB>" << std::endl;
1585 *out <<
" <SOUTH_CLKPHB>511</SOUTH_CLKPHB>" << std::endl;
1586 *out <<
" <NORTH_CTRL>0</NORTH_CTRL> " << std::endl;
1587 *out <<
" <NORTHCENTER_CTRL>0</NORTHCENTER_CTRL>" << std::endl;
1588 *out <<
" <SOUTHCENTER_CTRL>0</SOUTHCENTER_CTRL>" << std::endl;
1589 *out <<
" <SOUTH_CTRL>0</SOUTH_CTRL>" << std::endl;
1590 *out <<
" <REG1_TTCRX_FDLA>5</REG1_TTCRX_FDLA>" << std::endl;
1591 *out <<
" <REG2_TTCRX_CDLA>0</REG2_TTCRX_CDLA>" << std::endl;
1592 *out <<
" <REG3_TTCRX_CLKD2>155</REG3_TTCRX_CLKD2>" << std::endl;
1593 *out <<
" <CENTER_CTRL>0</CENTER_CTRL>" << std::endl;
1594 *out <<
" <CENTER_MODE>0</CENTER_MODE>" << std::endl;
1595 *out <<
" <B1_ADCGN>0</B1_ADCGN>" << std::endl;
1596 *out <<
" <B2_ADCGN>0</B2_ADCGN>" << std::endl;
1597 *out <<
" <B3_ADCGN>0</B3_ADCGN>" << std::endl;
1598 *out <<
" <B4_ADCGN>0</B4_ADCGN>" << std::endl;
1599 *out <<
" <NORTH_BADJ>330</NORTH_BADJ>" << std::endl;
1600 *out <<
" <NORTHCENTER_BADJ>330</NORTHCENTER_BADJ>" << std::endl;
1601 *out <<
" <SOUTHCENTER_BADJ>330</SOUTHCENTER_BADJ>" << std::endl;
1602 *out <<
" <SOUTH_BADJ>330</SOUTH_BADJ>" << std::endl;
1603 *out <<
" <NORTH_TBMMASK>2</NORTH_TBMMASK>" << std::endl;
1604 *out <<
" <NORTHCENTER_TBMMASK>2</NORTHCENTER_TBMMASK>" << std::endl;
1605 *out <<
" <SOUTHCENTER_TBMMASK>2</SOUTHCENTER_TBMMASK>" << std::endl;
1606 *out <<
" <SOUTH_TBMMASK>2</SOUTH_TBMMASK>" << std::endl;
1607 *out <<
" <NORTH_PWORD>177</NORTH_PWORD>" << std::endl;
1608 *out <<
" <NORTHCENTER_PWORD>178</NORTHCENTER_PWORD>" << std::endl;
1609 *out <<
" <SOUTHCENTER_PWORD>179</SOUTHCENTER_PWORD>" << std::endl;
1610 *out <<
" <SOUTH_PWORD>180</SOUTH_PWORD>" << std::endl;
1611 *out <<
" <SPECDAC>0</SPECDAC>" << std::endl;
1612 *out <<
" <OOS_LVL>0</OOS_LVL>" << std::endl;
1613 *out <<
" <ERR_LVL>0</ERR_LVL>" << std::endl;
1614 *out <<
" <NORTH_FIFO1_BZ_LVL>900</NORTH_FIFO1_BZ_LVL>" << std::endl;
1615 *out <<
" <NORTHCENTER_FIFO1_BZ_LVL>900</NORTHCENTER_FIFO1_BZ_LVL>" << std::endl;
1616 *out <<
" <SOUTHCENTER_FIFO1_BZ_LVL>900</SOUTHCENTER_FIFO1_BZ_LVL>" << std::endl;
1617 *out <<
" <SOUTH_FIFO1_BZ_LVL>900</SOUTH_FIFO1_BZ_LVL>" << std::endl;
1618 *out <<
" <FIFO3_WRN_LVL>7680</FIFO3_WRN_LVL> " << std::endl;
1619 *out <<
" <FED_MASTER_DELAY>0</FED_MASTER_DELAY>" << std::endl;
1620 *out <<
" <NO_HITLIMIT>0</NO_HITLIMIT>" << std::endl;
1621 *out <<
" <NC_HITLIMIT>0</NC_HITLIMIT>" << std::endl;
1622 *out <<
" <SC_HITLIMIT>0</SC_HITLIMIT>" << std::endl;
1623 *out <<
" <SO_HITLIMIT>0</SO_HITLIMIT>" << std::endl;
1624 *out <<
" <NO_TESTREG>0</NO_TESTREG>" << std::endl;
1625 *out <<
" <NC_TESTREG>0</NC_TESTREG>" << std::endl;
1626 *out <<
" <SC_TESTREG>0</SC_TESTREG>" << std::endl;
1627 *out <<
" <SO_TESTREG>0</SO_TESTREG>" << std::endl;
1628 *out <<
" <BUSYWHENBEHIND>4</BUSYWHENBEHIND>" << std::endl;
1629 *out <<
" <FEATUREREGISTER>0X1234</FEATUREREGISTER>" << std::endl;
1630 *out <<
" <FIFO2LIMIT>0X1C00</FIFO2LIMIT>" << std::endl;
1631 *out <<
" <TIMEOUTOROOSLIMIT>0</TIMEOUTOROOSLIMIT>" << std::endl;
1632 *out <<
" <LASTDACOFF>0</LASTDACOFF>" << std::endl;
1633 *out <<
" <SIMHITSPERROC>0</SIMHITSPERROC>" << std::endl;
1634 *out <<
" <BUSYHOLDMIN>0</BUSYHOLDMIN>" << std::endl;
1635 *out <<
" <SPARE1>0</SPARE1>" << std::endl;
1636 *out <<
" <SPARE2>0</SPARE2>" << std::endl;
1637 *out <<
" <SPARE3>0</SPARE3>" << std::endl;
1638 *out <<
" <SPARE4>0</SPARE4>" << std::endl;
1639 *out <<
" <SPARE5>0</SPARE5>" << std::endl;
1640 *out <<
" <SPARE6>0</SPARE6>" << std::endl;
1641 *out <<
" <SPARE7>0</SPARE7>" << std::endl;
1642 *out <<
" <SPARE8>0</SPARE8>" << std::endl;
1643 *out <<
" <SPARE9>0</SPARE9>" << std::endl;
1644 *out <<
" <SPARE10>0</SPARE10>" << std::endl;
1645 *out <<
" " << std::endl;
1646 *out <<
" </DATA>" << std::endl;
1647 *out <<
" " << std::endl;
1652 std::string mthn =
"[PixelFEDCard::writeXML()]\t\t\t ";
1654 for (
int i = 0;
i < 36;
i++) {
1655 *fedstream <<
" <DATA>" << std::endl;
1656 *fedstream <<
" " << std::endl;
1657 *fedstream <<
" <PIXEL_FED>" <<
fedNumber <<
"</PIXEL_FED>" << std::endl;
1658 *fedstream <<
" <VME_ADDRS_HEX>0x" << hex <<
FEDBASE_0 <<
dec <<
"</VME_ADDRS_HEX>" << std::endl;
1659 *fedstream <<
"" << std::endl;
1660 *fedstream <<
" <CHANNEL_ID>" <<
i + 1 <<
"</CHANNEL_ID>" << std::endl;
1661 *fedstream <<
" <NUM_ROCS>" <<
NRocs[
i] <<
"</NUM_ROCS>" << std::endl;
1662 *fedstream <<
" <CHAN_OFFST_DAC>" <<
offs_dac[
i] <<
"</CHAN_OFFST_DAC>" << std::endl;
1663 *fedstream <<
" <CHAN_DELAY>" <<
DelayCh[
i] <<
"</CHAN_DELAY>" << std::endl;
1664 *fedstream <<
" <CHAN_BHIGH>" <<
BlackHi[
i] <<
"</CHAN_BHIGH>" << std::endl;
1665 *fedstream <<
" <CHAN_BLOW>" <<
BlackLo[
i] <<
"</CHAN_BLOW>" << std::endl;
1666 *fedstream <<
" <CHAN_UB>" <<
Ublack[
i] <<
"</CHAN_UB>" << std::endl;
1667 *fedstream <<
"" << std::endl;
1668 *fedstream <<
" <OPT1_CAP>" <<
opt_cap[0] <<
"</OPT1_CAP>" << std::endl;
1669 *fedstream <<
" <OPT2_CAP>" <<
opt_cap[1] <<
"</OPT2_CAP>" << std::endl;
1670 *fedstream <<
" <OPT3_CAP>" <<
opt_cap[2] <<
"</OPT3_CAP>" << std::endl;
1671 *fedstream <<
" <OPT1_INP>" <<
opt_inadj[0] <<
"</OPT1_INP>" << std::endl;
1672 *fedstream <<
" <OPT2_INP>" <<
opt_inadj[1] <<
"</OPT2_INP>" << std::endl;
1673 *fedstream <<
" <OPT3_INP>" <<
opt_inadj[2] <<
"</OPT3_INP>" << std::endl;
1674 *fedstream <<
" <OPT1_OUT>" <<
opt_ouadj[0] <<
"</OPT1_OUT>" << std::endl;
1675 *fedstream <<
" <OPT2_OUT>" <<
opt_ouadj[1] <<
"</OPT2_OUT>" << std::endl;
1676 *fedstream <<
" <OPT3_OUT>" <<
opt_ouadj[2] <<
"</OPT3_OUT>" << std::endl;
1677 *fedstream <<
" <NORTH_CLKPHB>" <<
clkphs1_9 <<
"</NORTH_CLKPHB>" << std::endl;
1678 *fedstream <<
" <NORTHCENTER_CLKPHB>" <<
clkphs10_18 <<
"</NORTHCENTER_CLKPHB>" << std::endl;
1679 *fedstream <<
" <SOUTHCENTER_CLKPHB>" <<
clkphs19_27 <<
"</SOUTHCENTER_CLKPHB>" << std::endl;
1680 *fedstream <<
" <SOUTH_CLKPHB>" <<
clkphs28_36 <<
"</SOUTH_CLKPHB>" << std::endl;
1681 *fedstream <<
" <NORTH_CTRL>" <<
Ncntrl <<
"</NORTH_CTRL> " << std::endl;
1682 *fedstream <<
" <NORTHCENTER_CTRL>" <<
NCcntrl <<
"</NORTHCENTER_CTRL>" << std::endl;
1683 *fedstream <<
" <SOUTHCENTER_CTRL>" <<
SCcntrl <<
"</SOUTHCENTER_CTRL>" << std::endl;
1684 *fedstream <<
" <SOUTH_CTRL>" <<
Scntrl <<
"</SOUTH_CTRL>" << std::endl;
1685 *fedstream <<
" <REG0_TTCRX_FDLA>" <<
FineDes1Del <<
"</REG0_TTCRX_FDLA>" << std::endl;
1686 *fedstream <<
" <REG1_TTCRX_FDLA>" <<
FineDes2Del <<
"</REG1_TTCRX_FDLA>" << std::endl;
1687 *fedstream <<
" <REG2_TTCRX_CDLA>" <<
CoarseDel <<
"</REG2_TTCRX_CDLA>" << std::endl;
1688 *fedstream <<
" <REG3_TTCRX_CLKD2>" <<
ClkDes2 <<
"</REG3_TTCRX_CLKD2>" << std::endl;
1689 *fedstream <<
" <CENTER_CTRL>" <<
Ccntrl <<
"</CENTER_CTRL>" << std::endl;
1690 *fedstream <<
" <CENTER_MODE>" <<
modeRegister <<
"</CENTER_MODE>" << std::endl;
1691 *fedstream <<
" <B1_ADCGN>" <<
Nadcg <<
"</B1_ADCGN>" << std::endl;
1692 *fedstream <<
" <B2_ADCGN>" <<
NCadcg <<
"</B2_ADCGN>" << std::endl;
1693 *fedstream <<
" <B3_ADCGN>" <<
SCadcg <<
"</B3_ADCGN>" << std::endl;
1694 *fedstream <<
" <B4_ADCGN>" <<
Sadcg <<
"</B4_ADCGN>" << std::endl;
1697 *fedstream <<
" <NORTH_BADJ>" <<
Nbaseln <<
"</NORTH_BADJ>" << std::endl;
1698 *fedstream <<
" <NORTHCENTER_BADJ>" <<
NCbaseln <<
"</NORTHCENTER_BADJ>" << std::endl;
1699 *fedstream <<
" <SOUTHCENTER_BADJ>" <<
SCbaseln <<
"</SOUTHCENTER_BADJ>" << std::endl;
1700 *fedstream <<
" <SOUTH_BADJ>" <<
Sbaseln <<
"</SOUTH_BADJ>" << std::endl;
1701 *fedstream <<
" <NORTH_TBMMASK>" <<
N_TBMmask <<
"</NORTH_TBMMASK>" << std::endl;
1702 *fedstream <<
" <NORTHCENTER_TBMMASK>" <<
NC_TBMmask <<
"</NORTHCENTER_TBMMASK>" << std::endl;
1703 *fedstream <<
" <SOUTHCENTER_TBMMASK>" <<
SC_TBMmask <<
"</SOUTHCENTER_TBMMASK>" << std::endl;
1704 *fedstream <<
" <SOUTH_TBMMASK>" <<
S_TBMmask <<
"</SOUTH_TBMMASK>" << std::endl;
1705 *fedstream <<
" <NORTH_PWORD>" <<
N_Pword <<
"</NORTH_PWORD>" << std::endl;
1706 *fedstream <<
" <NORTHCENTER_PWORD>" <<
NC_Pword <<
"</NORTHCENTER_PWORD>" << std::endl;
1707 *fedstream <<
" <SOUTHCENTER_PWORD>" <<
SC_Pword <<
"</SOUTHCENTER_PWORD>" << std::endl;
1708 *fedstream <<
" <SOUTH_PWORD>" <<
S_Pword <<
"</SOUTH_PWORD>" << std::endl;
1709 *fedstream <<
" <SPECDAC>" <<
SpecialDac <<
"</SPECDAC>" << std::endl;
1710 *fedstream <<
" <OOS_LVL>" <<
Ooslvl <<
"</OOS_LVL>" << std::endl;
1711 *fedstream <<
" <ERR_LVL>" <<
Errlvl <<
"</ERR_LVL>" << std::endl;
1712 *fedstream <<
" <NORTH_FIFO1_BZ_LVL>" <<
Nfifo1Bzlvl <<
"</NORTH_FIFO1_BZ_LVL>" << std::endl;
1713 *fedstream <<
" <NORTHCENTER_FIFO1_BZ_LVL>" <<
NCfifo1Bzlvl <<
"</NORTHCENTER_FIFO1_BZ_LVL>" << std::endl;
1714 *fedstream <<
" <SOUTHCENTER_FIFO1_BZ_LVL>" <<
SCfifo1Bzlvl <<
"</SOUTHCENTER_FIFO1_BZ_LVL>" << std::endl;
1715 *fedstream <<
" <SOUTH_FIFO1_BZ_LVL>" <<
Sfifo1Bzlvl <<
"</SOUTH_FIFO1_BZ_LVL>" << std::endl;
1716 *fedstream <<
" <FIFO3_WRN_LVL>" <<
fifo3Wrnlvl <<
"</FIFO3_WRN_LVL>" << std::endl;
1717 *fedstream <<
" <FED_MASTER_DELAY>" <<
FedTTCDelay <<
"</FED_MASTER_DELAY>" << std::endl;
1718 *fedstream <<
" <NO_HITLIMIT>" <<
N_hitlimit <<
"</NO_HITLIMIT>" << std::endl;
1719 *fedstream <<
" <NC_HITLIMIT>" <<
NC_hitlimit <<
"</NC_HITLIMIT>" << std::endl;
1720 *fedstream <<
" <SC_HITLIMIT>" <<
SC_hitlimit <<
"</SC_HITLIMIT>" << std::endl;
1721 *fedstream <<
" <SO_HITLIMIT>" <<
S_hitlimit <<
"</SO_HITLIMIT>" << std::endl;
1722 *fedstream <<
" <NO_TESTREG>" <<
N_testreg <<
"</NO_TESTREG>" << std::endl;
1723 *fedstream <<
" <NC_TESTREG>" <<
NC_testreg <<
"</NC_TESTREG>" << std::endl;
1724 *fedstream <<
" <SC_TESTREG>" <<
SC_testreg <<
"</SC_TESTREG>" << std::endl;
1725 *fedstream <<
" <SO_TESTREG>" <<
S_testreg <<
"</SO_TESTREG>" << std::endl;
1726 *fedstream <<
" <BUSYWHENBEHIND>" <<
BusyWhenBehind <<
"</BUSYWHENBEHIND>" << std::endl;
1727 *fedstream <<
" <BUSYHOLDMIN>" <<
BusyHoldMin <<
"</BUSYHOLDMIN>" << std::endl;
1728 *fedstream <<
" <FEATUREREGISTER>" <<
FeatureRegister <<
"</FEATUREREGISTER>" << std::endl;
1729 *fedstream <<
" <FIFO2LIMIT>" <<
FIFO2Limit <<
"</FIFO2LIMIT>" << std::endl;
1730 *fedstream <<
" <LASTDACOFF>" <<
LastDacOff <<
"</LASTDACOFF>" << std::endl;
1731 *fedstream <<
" <SIMHITSPERROC>" <<
SimHitsPerRoc <<
"</SIMHITSPERROC>" << std::endl;
1732 *fedstream <<
" <TIMEOUTOROOSLIMIT>" <<
TimeoutOROOSLimit <<
"</TIMEOUTOROOSLIMIT>" << std::endl;
1733 *fedstream <<
" <TRIGGERHOLDOFF>" <<
TriggerHoldoff <<
"</TRIGGERHOLDOFF>" << std::endl;
1734 *fedstream <<
" <SPARE1>" <<
SPARE1 <<
"</SPARE1>" << std::endl;
1735 *fedstream <<
" <SPARE2>" <<
SPARE2 <<
"</SPARE2>" << std::endl;
1736 *fedstream <<
" <SPARE3>" <<
SPARE3 <<
"</SPARE3>" << std::endl;
1737 *fedstream <<
" <SPARE4>" <<
SPARE4 <<
"</SPARE4>" << std::endl;
1738 *fedstream <<
" <SPARE5>" <<
SPARE5 <<
"</SPARE5>" << std::endl;
1739 *fedstream <<
" <SPARE6>" <<
SPARE6 <<
"</SPARE6>" << std::endl;
1740 *fedstream <<
" <SPARE7>" <<
SPARE7 <<
"</SPARE7>" << std::endl;
1741 *fedstream <<
" <SPARE8>" <<
SPARE8 <<
"</SPARE8>" << std::endl;
1742 *fedstream <<
" <SPARE9>" <<
SPARE9 <<
"</SPARE9>" << std::endl;
1743 *fedstream <<
" <SPARE10>" <<
SPARE10 <<
"</SPARE10>" << std::endl;
1744 *fedstream <<
" " << std::endl;
1745 *fedstream <<
" </DATA>" << std::endl;
1746 *fedstream <<
" " << std::endl;
1750 for (
int i = 0;
i < 36;
i++) {
1752 *rocstream <<
"" << std::endl;
1753 *rocstream <<
" <DATA>" << std::endl;
1754 *rocstream <<
" <PIXEL_FED>" <<
fedNumber <<
"</PIXEL_FED>" << std::endl;
1755 *rocstream <<
" <FED_CHAN>" <<
i + 1 <<
"</FED_CHAN>" << std::endl;
1756 *rocstream <<
" <FED_ROC_NUM>" <<
j <<
"</FED_ROC_NUM>" << std::endl;
1757 *rocstream <<
" <ROC_L0>" <<
ROC_L0[
i][
j] <<
"</ROC_L0>" << std::endl;
1758 *rocstream <<
" <ROC_L1>" <<
ROC_L1[
i][
j] <<
"</ROC_L1>" << std::endl;
1759 *rocstream <<
" <ROC_L2>" <<
ROC_L2[
i][
j] <<
"</ROC_L2>" << std::endl;
1760 *rocstream <<
" <ROC_L3>" <<
ROC_L3[
i][
j] <<
"</ROC_L3>" << std::endl;
1761 *rocstream <<
" <ROC_L4>" <<
ROC_L4[
i][
j] <<
"</ROC_L4>" << std::endl;
1762 *rocstream <<
" </DATA>" << std::endl << std::endl;
1763 *rocstream <<
" " << std::endl;
1766 *tbmstream <<
"" << std::endl;
1767 *tbmstream <<
" <DATA>" << std::endl;
1768 *tbmstream <<
" <PIXEL_FED>" <<
fedNumber <<
"</PIXEL_FED>" << std::endl;
1769 *tbmstream <<
" <FED_CHAN>" <<
i + 1 <<
"</FED_CHAN>" << std::endl;
1770 *tbmstream <<
" <TBMA_HEAD_L0>" <<
TBM_L0[
i] <<
"</TBMA_HEAD_L0>" << std::endl;
1771 *tbmstream <<
" <TBMA_HEAD_L1>" <<
TBM_L1[
i] <<
"</TBMA_HEAD_L1>" << std::endl;
1772 *tbmstream <<
" <TBMA_HEAD_L2>" <<
TBM_L2[
i] <<
"</TBMA_HEAD_L2>" << std::endl;
1773 *tbmstream <<
" <TBMA_HEAD_L3>" <<
TBM_L3[
i] <<
"</TBMA_HEAD_L3>" << std::endl;
1774 *tbmstream <<
" <TBMA_HEAD_L4>" <<
TBM_L4[
i] <<
"</TBMA_HEAD_L4>" << std::endl;
1775 *tbmstream <<
" <TBMA_TRAIL_L0>" <<
TRL_L0[
i] <<
"</TBMA_TRAIL_L0>" << std::endl;
1776 *tbmstream <<
" <TBMA_TRAIL_L1>" <<
TRL_L1[
i] <<
"</TBMA_TRAIL_L1>" << std::endl;
1777 *tbmstream <<
" <TBMA_TRAIL_L2>" <<
TRL_L2[
i] <<
"</TBMA_TRAIL_L2>" << std::endl;
1778 *tbmstream <<
" <TBMA_TRAIL_L3>" <<
TRL_L3[
i] <<
"</TBMA_TRAIL_L3>" << std::endl;
1779 *tbmstream <<
" <TBMA_TRAIL_L4>" <<
TRL_L4[
i] <<
"</TBMA_TRAIL_L4>" << std::endl;
1780 *tbmstream <<
" </DATA>" << std::endl << std::endl;
1781 *tbmstream <<
"" << std::endl;
1787 std::string mthn =
"[PixelFEDCard::writeXMLTrailer()]\t\t\t ";
1790 *fedstream <<
" </DATA_SET>" << std::endl;
1791 *fedstream <<
"</ROOT>" << std::endl;
1794 std::cout << __LINE__ <<
"]\t" << mthn <<
"Data written for main fed" << std::endl;
1797 *rocstream <<
" </DATA_SET>" << std::endl;
1798 *rocstream <<
"</ROOT>" << std::endl;
1801 std::cout << __LINE__ <<
"]\t" << mthn <<
"Data written for roc analog levels" << std::endl;
1804 *tbmstream <<
" </DATA_SET>" << std::endl;
1805 *tbmstream <<
"</ROOT>" << std::endl;
1808 std::cout << __LINE__ <<
"]\t" << mthn <<
"Data written for tbm analog levels" << std::endl;
1813 std::string mthn =
"[PixelFEDCard::writeXMLTrailer()]\t\t\t ";
1815 *out <<
" </DATA_SET>" << std::endl;
1816 *out <<
"</ROOT>" << std::endl;
1819 std::cout << __LINE__ <<
"]\t" << mthn <<
"Data written" << std::endl;
1824 std::string mthn =
"[PixelFEDCard::writeXML()]\t\t\t ";
1827 fullPath << path <<
"/fedcard.xml";
1828 std::cout << __LINE__ <<
"]\t" << mthn <<
"Writing to: |" << fullPath.str() <<
"|" << std::endl;
1830 std::ofstream
out(fullPath.str().c_str());
1832 out <<
"<ROOT>" << std::endl;
1833 out <<
"" << std::endl;
1834 out <<
" <HEADER>" << std::endl;
1835 out <<
" <TYPE>" << std::endl;
1836 out <<
" <EXTENSION_TABLE_NAME>FED_CONFIGURATION</EXTENSION_TABLE_NAME>" << std::endl;
1837 out <<
" <NAME>Pixel FED Configuration</NAME>" << std::endl;
1838 out <<
" </TYPE>" << std::endl;
1839 out <<
" <RUN>" << std::endl;
1840 out <<
" <RUN_TYPE>Pixel FED Configuration</RUN_TYPE>" << std::endl;
1841 out <<
" <RUN_NUMBER>1</RUN_NUMBER>" << std::endl;
1843 out <<
" <COMMENT_DESCRIPTION>Pixel FED Configuration</COMMENT_DESCRIPTION>" << std::endl;
1844 out <<
" <LOCATION>CERN TAC</LOCATION>" << std::endl;
1845 out <<
" <CREATED_BY_USER>Dario Menasce</CREATED_BY_USER>" << std::endl;
1846 out <<
" </RUN>" << std::endl;
1847 out <<
" </HEADER>" << std::endl;
1848 out <<
"" << std::endl;
1849 out <<
" <DATA_SET>" << std::endl;
1850 out <<
"" << std::endl;
1851 out <<
" <VERSION>T_E_S_T</VERSION>" << std::endl;
1852 out <<
" <COMMENT_DESCRIPTION>Pixel FED Configuration</COMMENT_DESCRIPTION>" << std::endl;
1853 out <<
"" << std::endl;
1854 out <<
" <PART>" << std::endl;
1855 out <<
" <NAME_LABEL>CMS-PIXEL-ROOT</NAME_LABEL>" << std::endl;
1856 out <<
" <KIND_OF_PART>Detector ROOT</KIND_OF_PART>" << std::endl;
1857 out <<
" </PART>" << std::endl;
1858 out <<
"" << std::endl;
1859 out <<
" <DATA>" << std::endl;
1860 out <<
" <PXLFED_NAME>PxlFED_32</PXLFED_NAME>" << std::endl;
1861 out <<
" <CRATE_NUMBER>1</CRATE_NUMBER>" << std::endl;
1862 out <<
" <SLOT_NUMBER>5</SLOT_NUMBER> " << std::endl;
1863 out <<
" <VME_ADDRESS>268435456</VME_ADDRESS>" << std::endl;
1864 out <<
" <CRATE_LABEL>S1G03e</CRATE_LABEL>" << std::endl;
1865 out <<
"" << std::endl;
1866 out <<
" <CHANNEL_ID>1</CHANNEL_ID>" << std::endl;
1867 out <<
" <NUMBER_OF_ROCS>21</NUMBER_OF_ROCS>" << std::endl;
1868 out <<
" <CHANNEL_OFFSET_DAC_SETTINGS>0</CHANNEL_OFFSET_DAC_SETTINGS>" << std::endl;
1869 out <<
" <CHANNEL_DELAY_SETTINGS>3</CHANNEL_DELAY_SETTINGS>" << std::endl;
1870 out <<
" <CHANNEL_BLACK_HIGH>400</CHANNEL_BLACK_HIGH>" << std::endl;
1871 out <<
" <CHANNEL_BLACK_LOW>150</CHANNEL_BLACK_LOW>" << std::endl;
1872 out <<
" <CHANNEL_ULTRA_BLACK>120</CHANNEL_ULTRA_BLACK>" << std::endl;
1873 out <<
"" << std::endl;
1874 out <<
" <OPT1_CAP>0</OPT1_CAP>" << std::endl;
1875 out <<
" <OPT2_CAP>0</OPT2_CAP>" << std::endl;
1876 out <<
" <OPT3_CAP>0</OPT3_CAP>" << std::endl;
1877 out <<
" <OPT1_INP>0</OPT1_INP>" << std::endl;
1878 out <<
" <OPT2_INP>0</OPT2_INP>" << std::endl;
1879 out <<
" <OPT3_INP>0</OPT3_INP>" << std::endl;
1880 out <<
" <OPT1_OUT>0</OPT1_OUT>" << std::endl;
1881 out <<
" <OPT2_OUT>0</OPT2_OUT>" << std::endl;
1882 out <<
" <OPT3_OUT>0</OPT3_OUT>" << std::endl;
1883 out <<
" <NORTH_CLKPHB>511</NORTH_CLKPHB>" << std::endl;
1884 out <<
" <NORTHCENTER_CLKPHB>511</NORTHCENTER_CLKPHB>" << std::endl;
1885 out <<
" <SOUTHCENTER_CLKPHB>511</SOUTHCENTER_CLKPHB>" << std::endl;
1886 out <<
" <SOUTH_CLKPHB>511</SOUTH_CLKPHB>" << std::endl;
1887 out <<
" <NORTH_CTRL>0</NORTH_CTRL> " << std::endl;
1888 out <<
" <NORTHCENTER_CTRL>0</NORTHCENTER_CTRL>" << std::endl;
1889 out <<
" <SOUTHCENTER_CTRL>0</SOUTHCENTER_CTRL>" << std::endl;
1890 out <<
" <SOUTH_CTRL>0</SOUTH_CTRL>" << std::endl;
1891 out <<
" <REG1_TTCRX_FDLA>5</REG1_TTCRX_FDLA>" << std::endl;
1892 out <<
" <REG2_TTCRX_CDLA>0</REG2_TTCRX_CDLA>" << std::endl;
1893 out <<
" <REG3_TTCRX_CLKD2>155</REG3_TTCRX_CLKD2>" << std::endl;
1894 out <<
" <CENTER_CTRL>0</CENTER_CTRL>" << std::endl;
1895 out <<
" <CENTER_MODE>0</CENTER_MODE>" << std::endl;
1896 out <<
" <B1_ADCGN>0</B1_ADCGN>" << std::endl;
1897 out <<
" <B2_ADCGN>0</B2_ADCGN>" << std::endl;
1898 out <<
" <B3_ADCGN>0</B3_ADCGN>" << std::endl;
1899 out <<
" <B4_ADCGN>0</B4_ADCGN>" << std::endl;
1900 out <<
" <NORTH_BADJ>330</NORTH_BADJ>" << std::endl;
1901 out <<
" <NORTHCENTER_BADJ>330</NORTHCENTER_BADJ>" << std::endl;
1902 out <<
" <SOUTHCENTER_BADJ>330</SOUTHCENTER_BADJ>" << std::endl;
1903 out <<
" <SOUTH_BADJ>330</SOUTH_BADJ>" << std::endl;
1904 out <<
" <NORTH_TBMMASK>2</NORTH_TBMMASK>" << std::endl;
1905 out <<
" <NORTHCENTER_TBMMASK>2</NORTHCENTER_TBMMASK>" << std::endl;
1906 out <<
" <SOUTHCENTER_TBMMASK>2</SOUTHCENTER_TBMMASK>" << std::endl;
1907 out <<
" <SOUTH_TBMMASK>2</SOUTH_TBMMASK>" << std::endl;
1908 out <<
" <NORTH_PWORD>177</NORTH_PWORD>" << std::endl;
1909 out <<
" <NORTHCENTER_PWORD>178</NORTHCENTER_PWORD>" << std::endl;
1910 out <<
" <SOUTHCENTER_PWORD>179</SOUTHCENTER_PWORD>" << std::endl;
1911 out <<
" <SOUTH_PWORD>180</SOUTH_PWORD>" << std::endl;
1912 out <<
" <SPECDAC>0</SPECDAC>" << std::endl;
1913 out <<
" <OOS_LVL>0</OOS_LVL>" << std::endl;
1914 out <<
" <ERR_LVL>0</ERR_LVL>" << std::endl;
1915 out <<
" <NORTH_FIFO1_BZ_LVL>900</NORTH_FIFO1_BZ_LVL>" << std::endl;
1916 out <<
" <NORTHCENTER_FIFO1_BZ_LVL>900</NORTHCENTER_FIFO1_BZ_LVL>" << std::endl;
1917 out <<
" <SOUTHCENTER_FIFO1_BZ_LVL>900</SOUTHCENTER_FIFO1_BZ_LVL>" << std::endl;
1918 out <<
" <SOUTH_FIFO1_BZ_LVL>900</SOUTH_FIFO1_BZ_LVL>" << std::endl;
1919 out <<
" <FIFO3_WRN_LVL>7680</FIFO3_WRN_LVL> " << std::endl;
1920 out <<
" <FED_MASTER_DELAY>0</FED_MASTER_DELAY>" << std::endl;
1921 out <<
" <NO_HITLIMIT>0</NO_HITLIMIT>" << std::endl;
1922 out <<
" <NC_HITLIMIT>0</NC_HITLIMIT>" << std::endl;
1923 out <<
" <SC_HITLIMIT>0</SC_HITLIMIT>" << std::endl;
1924 out <<
" <SO_HITLIMIT>0</SO_HITLIMIT>" << std::endl;
1925 out <<
" <NO_TESTREG>0</NO_TESTREG>" << std::endl;
1926 out <<
" <NC_TESTREG>0</NC_TESTREG>" << std::endl;
1927 out <<
" <SC_TESTREG>0</SC_TESTREG>" << std::endl;
1928 out <<
" <SO_TESTREG>0</SO_TESTREG>" << std::endl;
1929 out <<
" <BUSYWHENBEHIND>4</BUSYWHENBEHIND>" << std::endl;
1930 out <<
" <FEATUREREGISTER>0X1234</FEATUREREGISTER>" << std::endl;
1931 out <<
" <FIFO2LIMIT>0X1C00</FIFO2LIMIT>" << std::endl;
1932 out <<
" <TIMEOUTOROOSLIMIT>0</TIMEOUTOROOSLIMIT>" << std::endl;
1933 out <<
" <LASTDACOFF>0</LASTDACOFF>" << std::endl;
1934 out <<
" <SIMHITSPERROC>0</SIMHITSPERROC>" << std::endl;
1935 out <<
" <BUSYHOLDMIN>0</BUSYHOLDMIN>" << std::endl;
1936 out <<
" <SPARE1>0</SPARE1>" << std::endl;
1937 out <<
" <SPARE2>0</SPARE2>" << std::endl;
1938 out <<
" <SPARE3>0</SPARE3>" << std::endl;
1939 out <<
" <SPARE4>0</SPARE4>" << std::endl;
1940 out <<
" <SPARE5>0</SPARE5>" << std::endl;
1941 out <<
" <SPARE6>0</SPARE6>" << std::endl;
1942 out <<
" <SPARE7>0</SPARE7>" << std::endl;
1943 out <<
" <SPARE8>0</SPARE8>" << std::endl;
1944 out <<
" <SPARE9>0</SPARE9>" << std::endl;
1945 out <<
" <SPARE10>0</SPARE10>" << std::endl;
1946 out <<
" </DATA>" << std::endl;
2003 std::cout << __LINE__ <<
"]\t" << mthn <<
"Data written" << std::endl;
2015 channels += (
Scntrl & 0x1ff
LL) << 27;
2020 assert(iChannel > 0 && iChannel < 37);
2025 assert(iChannel > 0 && iChannel < 37);
2027 long long bit = 0x1
LL << (iChannel - 1);
This file contains the base class for "pixel configuration data" management.
void restoreBaselinAndChannelMasks()
void restoreControlAndModeRegister()
void writeXMLTrailer(std::ofstream *out) const override
void writeXMLHeader(pos::PixelConfigKey key, int version, std::string path, std::ofstream *out) const override
void readDBROCLevels(std::vector< std::vector< std::string > > &tableMat, int first, int last)
void writeASCII(std::string dir="") const override
bool useChannel(unsigned int iChannel)
void readDBTBMLevels(std::vector< std::vector< std::string > > &tableMat, int first, int last)
std::string getComment() const
std::string getAuthor() const
void writeXML(pos::PixelConfigKey key, int version, std::string path) const override
unsigned int NCcntrl_original
int modeRegister_original
unsigned long long uint64_t
unsigned int Ncntrl_original
uint64_t enabledChannels()
void setChannel(unsigned int iChannel, bool mode)
unsigned int Scntrl_original
PixelConfigBase(std::string description, std::string creator, std::string date)
unsigned int SCcntrl_original