DCMHardwareConfig.cpp
Go to the documentation of this file.
1 #include <DatabaseUtils/DAQConfig/DCMHardwareConfig.h>
2 #include <DatabaseUtils/DAQConfig/ConfigDataTree.h>
3 #include <DatabaseUtils/DAQConfig/DBColumnParams.h>
4 #include <DatabaseUtils/DAQConfig/GlobalNameSpec.h>
5 #include <DatabaseUtils/DAQConfig/NamedConfigUtils.h>
6 #include <DatabaseUtils/DAQConfig/SubsystemNameSpec.h>
7 
8 namespace dbutils {
9 namespace daqconfig {
10 
13 
16 
17 /**
18  * Creates a DCM hardware configuration object from the specified
19  * list of subsystem configuration IDs.
20  *
21  * @param subsystemConfigIdList The list of subsystem
22  * configuration IDs.
23  * @param dcmName The name of the DCM of interest.
24  */
26 DCMHardwareConfig(const std::vector<int64_t>& subsystemConfigIdList,
27  const std::string& dcmName, bool loadDataImmediately) :
28  _dcmName(dcmName), _subsystemConfigIdList(subsystemConfigIdList),
29  _hasValidData(false), _primarySubsystemConfigId(-1)
30 {
31  if (loadDataImmediately) {loadData();}
32 }
33 
34 /**
35  * Creates a DCM hardware configuration object from the specified
36  * subsystem configuration specification.
37  *
38  * @param nameSpec The named configuration of interest.
39  * @param dcmName The name of the DCM of interest.
40  */
43  const std::string& dcmName, bool loadDataImmediately) :
44  _dcmName(dcmName), _hasValidData(false),
46 {
48  if (loadDataImmediately) {loadData();}
49 }
50 
51 /**
52  * Creates a DCM hardware configuration object from the specified
53  * global configuration specification.
54  *
55  * @param nameSpec The named configuration of interest.
56  * @param dcmName The name of the DCM of interest.
57  */
60  const std::string& dcmName, bool loadDataImmediately) :
61  _dcmName(dcmName), _hasValidData(false),
63 {
65  if (loadDataImmediately) {loadData();}
66 }
67 
68 /**
69  * Creates a DCM hardware configuration object from the specified
70  * global configuration ID.
71  *
72  * @param globalConfigId The ID of the global configuration of interest.
73  * @param dcmName The name of the DCM of interest.
74  */
76 DCMHardwareConfig(const int64_t& globalConfigId,
77  const std::string& dcmName, bool loadDataImmediately) :
78 
79  _dcmName(dcmName), _hasValidData(false),
81 {
82  IDSpec idSpec(globalConfigId, IDSpec::GLOBAL, IDSpec::DAQ);
86  DCM_SUBSYSTEM_NAME,
88  HARDWARE_CONFIG_TYPE,
90  if (loadDataImmediately) {loadData();}
91 }
92 
93 /**
94  * Loads DCM hardware configuration data from the database into this
95  * object. Before this method is called, an instance of this class
96  * will *not* have valid data.
97  */
99 {
100  boost::mutex::scoped_lock sl(_dataMutex);
101 
102  if (_subsystemConfigIdList.size() > 0) {
105  }
106 }
107 
108 /**
109  * Returns the number of enabled pixels on this DCM.
110  */
112 {
113  boost::mutex::scoped_lock sl(_dataMutex);
114  int count = 0;
115 
116  for (uint16_t fdx = LOW_FEB_ID; fdx <= HIGH_FEB_ID; ++fdx) {
117  int64_t sixtyFourBitOne = 1;
118 
119  if ((_febEnableMask & (sixtyFourBitOne << fdx)) == 0) {continue;}
120 
121  if (fdx < _pixelEnableList.size()) {
122  int32_t pixelMask = _pixelEnableList[fdx];
123  for (int ipix = 0; ipix < 32; ++ipix) {
124  if ((pixelMask & (1 << ipix)) != 0) {
125  ++count;
126  }
127  }
128  }
129  }
130 
131  return count;
132 }
133 
134 /**
135  * Fetches the list of named configuration IDs that correspond to the
136  * input named configuration.
137  *
138  * The list contains the single named configuration ID that is identified
139  * by the input parameters as its first element. The second element is
140  * the parent named configuration (if any), followed by the grandparent
141  * named configuration, etc.
142  *
143  * @param nameSpec The named configuration of interest.
144  * @param idList The resulting list of named subsystem configuration IDs
145  * [output parameter].
146  *
147  * @returns true if the list was successfully fetched, false if not
148  */
151  std::vector<int64_t>& idList)
152 {
153  return NamedConfigUtils::
154  getSubsystemConfigIdAncestry(nameSpec, idList);
155 }
156 
157 /**
158  * Fetches the list of named configuration IDs that correspond to the
159  * input named configuration.
160  *
161  * The list contains the single named configuration ID that is identified
162  * by the input parameters as its first element. The second element is
163  * the parent named configuration (if any), followed by the grandparent
164  * named configuration, etc.
165  *
166  * @param nameSpec The named configuration of interest.
167  * @param idList The resulting list of named subsystem configuration IDs
168  * [output parameter].
169  *
170  * @returns true if the list was successfully fetched, false if not
171  */
174  std::vector<int64_t>& idList)
175 {
176  int64_t subsystemConfigId;
180  DCM_SUBSYSTEM_NAME,
182  HARDWARE_CONFIG_TYPE,
183  subsystemConfigId);
184 
185  if (status) {
186  IDSpec idSpec(subsystemConfigId, IDSpec::SUBSYSTEM, IDSpec::DAQ);
187  status = NamedConfigUtils::getConfigIdAncestry(idSpec, idList);
188  }
189 
190  return status;
191 }
192 
194 _fetchAllData(const std::vector<int64_t>& subsystemConfigIdList,
195  const std::string& dcmName)
196 {
197  bool status = true;
198 
199  // system-wide data
200  if (status) {
201  status = _fetchDCMSystemParams(subsystemConfigIdList);
202  }
203 
204  // dcm-specific data
205  if (status) {
206  status = _fetchDCMFirmwareLocations(subsystemConfigIdList, dcmName);
207  }
208  if (status) {
209  status = _fetchFEBFirmwareLocations(subsystemConfigIdList, dcmName);
210  }
211  if (status) {
212  status = _fetchFEBEnableMasks(subsystemConfigIdList, dcmName);
213  }
214  if (status) {
215  status = _fetchDCMDataDevValues(subsystemConfigIdList, dcmName);
216  }
217  if (status) {
218  status = _fetchTimingSystemValues(subsystemConfigIdList, dcmName);
219  }
220  if (status) {
221  status = _fetchDCMFPGAParams(subsystemConfigIdList, dcmName);
222  }
223  if (status) {
224  status = _fetchDCMApplicationParams(subsystemConfigIdList, dcmName);
225  }
226 
227  // feb-specific data
228  if (status) {
229  status = _fetchPixelEnableMasks(subsystemConfigIdList, dcmName);
230  }
231  if (status) {
232  status = _fetchASICRegisterValues(subsystemConfigIdList, dcmName);
233  }
234  if (status) {
235  status = _fetchDSODataRegulatorValues(subsystemConfigIdList, dcmName);
236  }
237  if (status) {
238  status = _fetchFEBPulserValues(subsystemConfigIdList, dcmName);
239  }
240 
241  // pixel-specific data
242  if (status) {
243  status = _fetchPixelOffsets(subsystemConfigIdList, dcmName);
244  }
245  if (status) {
246  status = _fetchPixelThresholds(subsystemConfigIdList, dcmName);
247  }
248 
249  return status;
250 }
251 
253 _fetchDCMSystemParams(const std::vector<int64_t>& subsystemConfigIdList)
254 {
255  ConfigDataSelector cfgSelector;
256 
257  std::vector<std::string> dataColumnsOfInterest;
258  dataColumnsOfInterest.push_back("fpgaMode");
259  dataColumnsOfInterest.push_back("microSliceDT");
260 
262  dcmSystemParamDataSet("NovaDatabase/tables/DAQConfig/DCMSystemParameters.xml",
263  subsystemConfigIdList, cfgSelector,
264  dataColumnsOfInterest);
265 
266  if (! dcmSystemParamDataSet.getTrueValue("fpgaMode", _dcmFPGAMode)) {
267  return false;
268  }
269  if (! dcmSystemParamDataSet.getTrueValue("microSliceDT",
271  return false;
272  }
273  return true;
274 }
275 
277 _fetchDCMFirmwareLocations(const std::vector<int64_t>& subsystemConfigIdList,
278  const std::string& dcmName)
279 {
280  ConfigDataSelector cfgSelector;
282  dcmName, dcmName);
283 
284  std::vector<std::string> dataColumnsOfInterest;
285  dataColumnsOfInterest.push_back("location");
286  dataColumnsOfInterest.push_back("forceProgramming");
287 
289  dcmFirmwareDataSet("NovaDatabase/tables/DAQConfig/DCMFPGAFirmwareLocations.xml",
290  subsystemConfigIdList, cfgSelector,
291  dataColumnsOfInterest);
292  if (! dcmFirmwareDataSet.getEffectiveValueFor1Key(dcmName, "location",
294  return false;
295  }
296  if (! dcmFirmwareDataSet.getEffectiveValueFor1Key(dcmName,
297  "forceProgramming",
299  return false;
300  }
301  return true;
302 }
303 
305 _fetchFEBFirmwareLocations(const std::vector<int64_t>& subsystemConfigIdList,
306  const std::string& dcmName)
307 {
308  ConfigDataSelector cfgSelector;
310  dcmName, dcmName);
311 
312  std::vector<std::string> dataColumnsOfInterest;
313  dataColumnsOfInterest.push_back("location");
314  dataColumnsOfInterest.push_back("forceProgramming");
315 
317  febFirmwareDataSet("NovaDatabase/tables/DAQConfig/FEBFPGAFirmwareLocations.xml",
318  subsystemConfigIdList, cfgSelector,
319  dataColumnsOfInterest);
320  if (! febFirmwareDataSet.getEffectiveValueFor1Key(dcmName, "location",
322  return false;
323  }
324  if (! febFirmwareDataSet.getEffectiveValueFor1Key(dcmName,
325  "forceProgramming",
327  return false;
328  }
329  return true;
330 }
331 
333 _fetchFEBEnableMasks(const std::vector<int64_t>& subsystemConfigIdList,
334  const std::string& dcmName)
335 {
336  ConfigDataSelector cfgSelector;
338  dcmName, dcmName);
339 
340  std::vector<std::string> dataColumnsOfInterest;
341  dataColumnsOfInterest.push_back("mask");
342 
344  febEnableMaskDataSet("NovaDatabase/tables/DAQConfig/FEBEnableMasks.xml",
345  subsystemConfigIdList, cfgSelector,
346  dataColumnsOfInterest);
347  return febEnableMaskDataSet.getEffectiveValueFor1Key(dcmName, "mask",
349 }
350 
352 _fetchDCMDataDevValues(const std::vector<int64_t>& subsystemConfigIdList,
353  const std::string& dcmName)
354 {
355  ConfigDataSelector cfgSelector;
357  dcmName, dcmName);
358 
359  std::vector<std::string> dataColumnsOfInterest;
360  dataColumnsOfInterest.push_back("readTimeout");
361  dataColumnsOfInterest.push_back("useMemoryMappedBuffer");
362 
364  dcmDataDevDataSet("NovaDatabase/tables/DAQConfig/DCMDataDevParameters.xml",
365  subsystemConfigIdList, cfgSelector,
366  dataColumnsOfInterest);
367 
368  if (! dcmDataDevDataSet.getEffectiveValueFor1Key(dcmName, "readTimeout",
369  _dcmReadTimeout)) {
370  return false;
371  }
372  if (! dcmDataDevDataSet.getEffectiveValueFor1Key(dcmName,
373  "useMemoryMappedBuffer",
375  return false;
376  }
377  return true;
378 }
379 
381 _fetchTimingSystemValues(const std::vector<int64_t>& subsystemConfigIdList,
382  const std::string& dcmName)
383 {
384  ConfigDataSelector cfgSelector;
386  dcmName, dcmName);
387 
388  std::vector<std::string> dataColumnsOfInterest;
389  dataColumnsOfInterest.push_back("enable");
390  dataColumnsOfInterest.push_back("port");
391  dataColumnsOfInterest.push_back("tduFirmwareVersion");
392  dataColumnsOfInterest.push_back("historyEnable");
393 
395  timingSystemDataSet("NovaDatabase/tables/DAQConfig/TimingSystemSettings.xml",
396  subsystemConfigIdList, cfgSelector,
397  dataColumnsOfInterest);
398 
399  if (! timingSystemDataSet.getEffectiveValueFor1Key(dcmName, "enable",
401  return false;
402  }
403  if (! timingSystemDataSet.getEffectiveValueFor1Key(dcmName, "port",
405  return false;
406  }
407  if (! timingSystemDataSet.getEffectiveValueFor1Key(dcmName,
408  "tduFirmwareVersion",
410  return false;
411  }
412  if (! timingSystemDataSet.getEffectiveValueFor1Key(dcmName,
413  "historyEnable",
415  return false;
416  }
417  return true;
418 }
419 
421 _fetchDCMFPGAParams(const std::vector<int64_t>& subsystemConfigIdList,
422  const std::string& dcmName)
423 {
424  ConfigDataSelector cfgSelector;
426  dcmName, dcmName);
427 
428  std::vector<std::string> dataColumnsOfInterest;
429  dataColumnsOfInterest.push_back("linkTimeout");
430  dataColumnsOfInterest.push_back("doReset");
431  dataColumnsOfInterest.push_back("nanoSliceVersion");
432 
434  dcmParamDataSet("NovaDatabase/tables/DAQConfig/DCMFPGAParameters.xml",
435  subsystemConfigIdList, cfgSelector,
436  dataColumnsOfInterest);
437  if (! dcmParamDataSet.getEffectiveValueFor1Key(dcmName, "linkTimeout",
438  _fpgaLinkTimeout)) {
439  return false;
440  }
441  if (! dcmParamDataSet.getEffectiveValueFor1Key(dcmName, "doReset",
442  _doDCMFPGAReset)) {
443  return false;
444  }
445  if (! dcmParamDataSet.getEffectiveValueFor1Key(dcmName, "nanoSliceVersion",
447  return false;
448  }
449  return true;
450 }
451 
453 _fetchDCMApplicationParams(const std::vector<int64_t>& subsystemConfigIdList,
454  const std::string& dcmName)
455 {
456  ConfigDataSelector cfgSelector;
458  dcmName, dcmName);
459 
460  std::vector<std::string> dataColumnsOfInterest;
461  dataColumnsOfInterest.push_back("numberOfHwConfigAttempts");
462 
464  dcmParamDataSet("NovaDatabase/tables/DAQConfig/DCMApplicationParameters.xml",
465  subsystemConfigIdList, cfgSelector,
466  dataColumnsOfInterest);
467  return dcmParamDataSet.getEffectiveValueFor1Key(dcmName,
468  "numberOfHwConfigAttempts",
470 }
471 
473 _fetchPixelEnableMasks(const std::vector<int64_t>& subsystemConfigIdList,
474  const std::string& dcmName)
475 {
476  ConfigDataSelector cfgSelector;
478  dcmName, dcmName);
480 
481  std::vector<std::string> dataColumnsOfInterest;
482  dataColumnsOfInterest.push_back("mask");
483 
485  pixelEnableDataSet("NovaDatabase/tables/DAQConfig/PixelEnableMasks.xml",
486  subsystemConfigIdList, cfgSelector,
487  dataColumnsOfInterest);
488 
489  for (uint16_t fdx = LOW_FEB_ID; fdx <= HIGH_FEB_ID; ++fdx) {
490  int32_t value;
491  if (! pixelEnableDataSet.getEffectiveValueFor2Keys(dcmName, fdx,
492  "mask", value)) {
493  return false;
494  }
495  _pixelEnableList.push_back(value);
496  }
497 
498  return true;
499 }
500 
502 _fetchASICRegisterValues(const std::vector<int64_t>& subsystemConfigIdList,
503  const std::string& dcmName)
504 {
505  ConfigDataSelector cfgSelector;
507  dcmName, dcmName);
509 
510  std::vector<std::string> dataColumnsOfInterest;
511  dataColumnsOfInterest.push_back("spare");
512  dataColumnsOfInterest.push_back("vtsel");
513  dataColumnsOfInterest.push_back("refsel");
514  dataColumnsOfInterest.push_back("isel");
515  dataColumnsOfInterest.push_back("bwsel");
516  dataColumnsOfInterest.push_back("gsel");
517  dataColumnsOfInterest.push_back("tfsel");
518  dataColumnsOfInterest.push_back("mux2to1");
519  dataColumnsOfInterest.push_back("mux8to1");
520  dataColumnsOfInterest.push_back("qInjPixelMask");
521 
523  pixelEnableDataSet("NovaDatabase/tables/DAQConfig/ASICRegisterSettings.xml",
524  subsystemConfigIdList, cfgSelector,
525  dataColumnsOfInterest);
526 
527  for (uint16_t fdx = LOW_FEB_ID; fdx <= HIGH_FEB_ID; ++fdx) {
528  int16_t asicSpareValue;
529  if (! pixelEnableDataSet.getEffectiveValueFor2Keys(dcmName, fdx,
530  "spare",
531  asicSpareValue)) {
532  return false;
533  }
534  int16_t asicVtSelValue;
535  if (! pixelEnableDataSet.getEffectiveValueFor2Keys(dcmName, fdx,
536  "vtsel",
537  asicVtSelValue)) {
538  return false;
539  }
540  int16_t asicRefSelValue;
541  if (! pixelEnableDataSet.getEffectiveValueFor2Keys(dcmName, fdx,
542  "refsel",
543  asicRefSelValue)) {
544  return false;
545  }
546  int16_t asicISelValue;
547  if (! pixelEnableDataSet.getEffectiveValueFor2Keys(dcmName, fdx,
548  "isel",
549  asicISelValue)) {
550  return false;
551  }
552  int16_t asicBWSelValue;
553  if (! pixelEnableDataSet.getEffectiveValueFor2Keys(dcmName, fdx,
554  "bwsel",
555  asicBWSelValue)) {
556  return false;
557  }
558  int16_t asicGSelValue;
559  if (! pixelEnableDataSet.getEffectiveValueFor2Keys(dcmName, fdx,
560  "gsel",
561  asicGSelValue)) {
562  return false;
563  }
564  int16_t asicTfSelValue;
565  if (! pixelEnableDataSet.getEffectiveValueFor2Keys(dcmName, fdx,
566  "tfsel",
567  asicTfSelValue)) {
568  return false;
569  }
570  int16_t asicMux2to1Value;
571  if (! pixelEnableDataSet.getEffectiveValueFor2Keys(dcmName, fdx,
572  "mux2to1",
573  asicMux2to1Value)) {
574  return false;
575  }
576  int16_t asicMux8to1Value;
577  if (! pixelEnableDataSet.getEffectiveValueFor2Keys(dcmName, fdx,
578  "mux8to1",
579  asicMux8to1Value)) {
580  return false;
581  }
582  int32_t asicQInjPixelMask;
583  if (! pixelEnableDataSet.getEffectiveValueFor2Keys(dcmName, fdx,
584  "qInjPixelMask",
585  asicQInjPixelMask)) {
586  return false;
587  }
588 
589  ASICRegisterValueSet theSet(asicSpareValue,
590  asicVtSelValue,
591  asicRefSelValue,
592  asicISelValue,
593  asicBWSelValue,
594  asicGSelValue,
595  asicTfSelValue,
596  asicMux2to1Value,
597  asicMux8to1Value,
598  asicQInjPixelMask);
599  _asicRegisterValueList.push_back(theSet);
600  }
601 
602  return true;
603 }
604 
606 _fetchDSODataRegulatorValues(const std::vector<int64_t>& subsystemConfigIdList,
607  const std::string& dcmName)
608 {
609  ConfigDataSelector cfgSelector;
611  dcmName, dcmName);
613 
614  std::vector<std::string> dataColumnsOfInterest;
615  dataColumnsOfInterest.push_back("pointsPerPixel");
616 
618  dsoDataRegulatorDataSet("NovaDatabase/tables/DAQConfig/DSODataRegulatorSettings.xml",
619  subsystemConfigIdList, cfgSelector,
620  dataColumnsOfInterest);
621 
622  for (uint16_t fdx = LOW_FEB_ID; fdx <= HIGH_FEB_ID; ++fdx) {
623  int16_t value;
624  if (! dsoDataRegulatorDataSet.
625  getEffectiveValueFor2Keys(dcmName, fdx,
626  "pointsPerPixel", value)) {
627  return false;
628  }
629  _dsoPointsPerPixelList.push_back(value);
630  }
631 
632  return true;
633 }
634 
636 _fetchFEBPulserValues(const std::vector<int64_t>& subsystemConfigIdList,
637  const std::string& dcmName)
638 {
639  ConfigDataSelector cfgSelector;
641  dcmName, dcmName);
643 
644  std::vector<std::string> dataColumnsOfInterest;
645  dataColumnsOfInterest.push_back("pulserEnable");
646  dataColumnsOfInterest.push_back("pulserPeriod");
647  dataColumnsOfInterest.push_back("pulserWidth");
648 
650  febPulserDataSet("NovaDatabase/tables/DAQConfig/FEBPulserParameters.xml",
651  subsystemConfigIdList, cfgSelector,
652  dataColumnsOfInterest);
653 
654  for (uint16_t fdx = LOW_FEB_ID; fdx <= HIGH_FEB_ID; ++fdx) {
655  int16_t pulserEnable;
656  if (! febPulserDataSet.getEffectiveValueFor2Keys(dcmName, fdx,
657  "pulserEnable",
658  pulserEnable)) {
659  return false;
660  }
661  int32_t pulserPeriod;
662  if (! febPulserDataSet.getEffectiveValueFor2Keys(dcmName, fdx,
663  "pulserPeriod",
664  pulserPeriod)) {
665  return false;
666  }
667  int32_t pulserWidth;
668  if (! febPulserDataSet.getEffectiveValueFor2Keys(dcmName, fdx,
669  "pulserWidth",
670  pulserWidth)) {
671  return false;
672  }
673 
674  FEBPulserParameterSet theSet(pulserEnable,
675  pulserPeriod,
676  pulserWidth);
677  _pulserParameterList.push_back(theSet);
678  }
679 
680  return true;
681 }
682 
684 _fetchPixelOffsets(const std::vector<int64_t>& subsystemConfigIdList,
685  const std::string& dcmName)
686 {
687  ConfigDataSelector cfgSelector;
689  dcmName, dcmName);
692 
693  std::vector<std::string> dataColumnsOfInterest;
694  dataColumnsOfInterest.push_back("offsetValue");
695 
697  pixelOffsetDataSet("NovaDatabase/tables/DAQConfig/PixelOffsets.xml",
698  subsystemConfigIdList, cfgSelector,
699  dataColumnsOfInterest);
700 
701  for (uint16_t fdx = LOW_FEB_ID; fdx <= HIGH_FEB_ID; ++fdx) {
702  boost::shared_ptr<std::vector<int16_t> >
703  offsetList(new std::vector<int16_t>());
704  for (uint16_t pdx = LOW_PIXEL_ID; pdx <= HIGH_PIXEL_ID; ++pdx) {
705  int16_t value;
706  if (! pixelOffsetDataSet.
707  getEffectiveValueFor3Keys(dcmName, fdx, pdx,
708  "offsetValue", value)) {
709  return false;
710  }
711  offsetList->push_back(value);
712  }
713  _pixelOffsetArray.push_back(offsetList);
714  }
715 
716  return true;
717 }
718 
720 _fetchPixelThresholds(const std::vector<int64_t>& subsystemConfigIdList,
721  const std::string& dcmName)
722 {
723  ConfigDataSelector cfgSelector;
725  dcmName, dcmName);
728 
729  std::vector<std::string> dataColumnsOfInterest;
730  dataColumnsOfInterest.push_back("threshold");
731 
733  pixelThresholdDataSet("NovaDatabase/tables/DAQConfig/PixelThresholds.xml",
734  subsystemConfigIdList, cfgSelector,
735  dataColumnsOfInterest);
736 
737  for (uint16_t fdx = LOW_FEB_ID; fdx <= HIGH_FEB_ID; ++fdx) {
738  boost::shared_ptr<std::vector<int16_t> >
739  thresholdList(new std::vector<int16_t>());
740  for (uint16_t pdx = LOW_PIXEL_ID; pdx <= HIGH_PIXEL_ID; ++pdx) {
741  int16_t value;
742  if (! pixelThresholdDataSet.
743  getEffectiveValueFor3Keys(dcmName, fdx, pdx,
744  "threshold", value)) {
745  return false;
746  }
747  thresholdList->push_back(value);
748  }
749  _pixelThresholdArray.push_back(thresholdList);
750  }
751 
752  return true;
753 }
754 
755 } // end of namespace daqconfig
756 } // end of namespace dbutils
bool _fetchPixelOffsets(const std::vector< int64_t > &subsystemConfigIdList, const std::string &dcmName)
bool getEffectiveValueFor2Keys(const U &primarySelectionValue, const V &secondarySelectionValue, const std::string &dataColumnName, T &resultValue)
DCMHardwareConfig(const std::vector< int64_t > &subsystemConfigIdList, const std::string &dcmName, bool loadDataImmediately=true)
bool _fetchDCMFPGAParams(const std::vector< int64_t > &subsystemConfigIdList, const std::string &dcmName)
const uint16_t HIGH_FEB_ID
void addSelectionColumn(std::string columnName)
int status
Definition: fabricate.py:1613
bool _fetchDCMFirmwareLocations(const std::vector< int64_t > &subsystemConfigIdList, const std::string &dcmName)
static bool getConfigIdAncestry(const IDSpec &idSpec, std::vector< int64_t > &idList, const std::string &tableFile=DEFAULT_GLOBAL_NAMES_TABLE_FILE)
bool _fetchNamedConfigList(const SubsystemNameSpec &nameSpec, std::vector< int64_t > &idList)
static const uint16_t LOW_PIXEL_ID
bool _fetchDSODataRegulatorValues(const std::vector< int64_t > &subsystemConfigIdList, const std::string &dcmName)
std::vector< boost::shared_ptr< std::vector< int16_t > > > _pixelOffsetArray
bool _fetchPixelEnableMasks(const std::vector< int64_t > &subsystemConfigIdList, const std::string &dcmName)
const uint16_t HIGH_PIXEL_ID
static bool getSubsystemConfigIdAncestry(const SubsystemNameSpec &subsystemNameSpec, std::vector< int64_t > &idList, const std::string &subsystemNamesTableFile=DEFAULT_SUBSYSTEM_NAMES_TABLE_FILE)
static const uint16_t HIGH_FEB_ID
std::vector< dbutils::daqconfig::FEBPulserParameterSet > _pulserParameterList
bool getTrueValue(const std::string &dataColumnName, T &resultValue)
const XML_Char int const XML_Char * value
Definition: expat.h:331
bool getEffectiveValueFor1Key(const U &primarySelectionValue, const std::string &dataColumnName, T &resultValue)
bool _fetchAllData(const std::vector< int64_t > &subsystemConfigIdList, const std::string &dcmName)
std::vector< int16_t > _dsoPointsPerPixelList
static const std::string PIXELID_COLUMN_NAME
bool _fetchFEBEnableMasks(const std::vector< int64_t > &subsystemConfigIdList, const std::string &dcmName)
bool _fetchFEBPulserValues(const std::vector< int64_t > &subsystemConfigIdList, const std::string &dcmName)
static bool getSubsystemConfigIdFromGlobalName(const GlobalNameSpec &globalNameSpec, const std::string &subsystemName, const std::string &subsystemConfigType, int64_t &subsystemConfigId, const std::string &globalNamesTableFile=DEFAULT_GLOBAL_NAMES_TABLE_FILE, const std::string &subsystemNamesTableFile=DEFAULT_SUBSYSTEM_NAMES_TABLE_FILE)
static const uint16_t LOW_FEB_ID
bool _fetchPixelThresholds(const std::vector< int64_t > &subsystemConfigIdList, const std::string &dcmName)
::xsd::cxx::tree::string< char, simple_type > string
Definition: Database.h:154
const uint16_t LOW_FEB_ID
static const std::string DCMID_COLUMN_NAME
std::vector< boost::shared_ptr< std::vector< int16_t > > > _pixelThresholdArray
const uint16_t LOW_PIXEL_ID
std::vector< int64_t > _subsystemConfigIdList
bool _fetchASICRegisterValues(const std::vector< int64_t > &subsystemConfigIdList, const std::string &dcmName)
bool _fetchDCMApplicationParams(const std::vector< int64_t > &subsystemConfigIdList, const std::string &dcmName)
static const std::string FEBID_COLUMN_NAME
std::vector< dbutils::daqconfig::ASICRegisterValueSet > _asicRegisterValueList
static const uint16_t HIGH_PIXEL_ID
bool _fetchDCMDataDevValues(const std::vector< int64_t > &subsystemConfigIdList, const std::string &dcmName)
bool _fetchTimingSystemValues(const std::vector< int64_t > &subsystemConfigIdList, const std::string &dcmName)
bool _fetchFEBFirmwareLocations(const std::vector< int64_t > &subsystemConfigIdList, const std::string &dcmName)
bool _fetchDCMSystemParams(const std::vector< int64_t > &subsystemConfigIdList)
static bool getSubsystemConfigIdAncestryFromGlobalId(const IDSpec &globalConfigId, const std::string &subsystemName, const std::string &subsystemConfigType, std::vector< int64_t > &idList, const std::string &globalNamesTableFile=DEFAULT_GLOBAL_NAMES_TABLE_FILE, const std::string &subsystemNamesTableFile=DEFAULT_SUBSYSTEM_NAMES_TABLE_FILE)