otsdaq_components  v2_04_01
FSSRDACsConfiguration.cc
1 #include "otsdaq-components/DetectorConfiguration/FSSRDACsConfiguration.h"
2 #include "otsdaq-core/ConfigurationInterface/ConfigurationTree.h"
3 
4 #include <iostream>
5 
6 using namespace ots;
7 
8 //==============================================================================
9 FSSRDACsConfiguration::FSSRDACsConfiguration(void)
10 {
12  // WARNING: the names and the order MUST match the ones in the enum //
14  // FSSRDACsConfigurationInfo.xml
15  //<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
16  //<ROOT xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
17  // xsi:noNamespaceSchemaLocation="TableInfo.xsd">
18  // <CONFIGURATION Name="FSSRDACsConfiguration">
19  // <VIEW Name="FSSR_DACS_CONFIGURATION" Type="File,Database,DatabaseTest">
20  // <COLUMN Name="ROCName" StorageName="ROC_NAME" DataType="VARCHAR2"
21  // /> <COLUMN Name="PulserData" StorageName="PULSER_DATA" DataType="NUMBER"
22  // /> <COLUMN Name="PulserControl" StorageName="PULSER_CONTROL" DataType="NUMBER"
23  // /> <COLUMN Name="IntegratorVbn" StorageName="INTEGRATOR_VBN" DataType="NUMBER"
24  // /> <COLUMN Name="ShaperVbp2" StorageName="SHAPER_VBP2" DataType="NUMBER"
25  // /> <COLUMN Name="ShaperVbp1" StorageName="SHAPER_VBP1" DataType="NUMBER"
26  // /> <COLUMN Name="BLRestorer" StorageName="BL_RESTORER" DataType="NUMBER"
27  // />
28  // <COLUMN Name="VTn" StorageName="VTN" DataType="NUMBER" />
29  // <COLUMN Name="VTp0" StorageName="VTP0" DataType="NUMBER" />
30  // <COLUMN Name="VTp1" StorageName="VTP1" DataType="NUMBER" />
31  // <COLUMN Name="VTp2" StorageName="VTP2" DataType="NUMBER" />
32  // <COLUMN Name="VTp3" StorageName="VTP3" DataType="NUMBER" />
33  // <COLUMN Name="VTp4" StorageName="VTP4" DataType="NUMBER" />
34  // <COLUMN Name="VTp5" StorageName="VTP5" DataType="NUMBER" />
35  // <COLUMN Name="VTp6" StorageName="VTP6" DataType="NUMBER" />
36  // <COLUMN Name="VTp7" StorageName="VTP7" DataType="NUMBER" />
37  // <COLUMN Name="ActiveLines" StorageName="ACTIVE_LINES" DataType="NUMBER" />
38  // <COLUMN Name="SendData" StorageName="SEND_DATA" DataType="NUMBER" />
39  // <COLUMN Name="RejectHits" StorageName="REJECT_HITS" DataType="NUMBER" />
40  // <COLUMN Name="DigContrReg" StorageNanameToROCDACsMap_me="DIG_CONTR_REG"
41  // DataType="NUMBER" /> <COLUMN Name="AqBCO" StorageName="AQ_BCO"
42  // DataType="NUMBER" />
43  // </VIEW>
44  // </CONFIGURATION>
45  //</ROOT>
46 
47  // FIXME We need a FSSRDefinitions class and use it to get the registers addresses
48  dacNameToDACAddress_["PulserData"] = 1;
49  dacNameToDACAddress_["PulserControl"] = 2;
50  dacNameToDACAddress_["IntegratorVbn"] = 3;
51  dacNameToDACAddress_["ShaperVbp2"] = 4;
52  dacNameToDACAddress_["ShaperVbp1"] = 5;
53  dacNameToDACAddress_["BLRestorer"] = 6;
54  dacNameToDACAddress_["VTn"] = 7;
55  dacNameToDACAddress_["VTp0"] = 8;
56  dacNameToDACAddress_["VTp1"] = 9;
57  dacNameToDACAddress_["VTp2"] = 10;
58  dacNameToDACAddress_["VTp3"] = 11;
59  dacNameToDACAddress_["VTp4"] = 12;
60  dacNameToDACAddress_["VTp5"] = 13;
61  dacNameToDACAddress_["VTp6"] = 14;
62  dacNameToDACAddress_["VTp7"] = 15;
63  dacNameToDACAddress_["ActiveLines"] = 16;
64  dacNameToDACAddress_["SendData"] = 19;
65  dacNameToDACAddress_["RejectHits"] = 20;
66  dacNameToDACAddress_["DigContrReg"] = 27;
67  dacNameToDACAddress_["AqBCO"] = 30;
68 }
69 
70 //==============================================================================
71 FSSRDACsConfiguration::~FSSRDACsConfiguration(void) {}
72 
73 //==============================================================================
74 const ROCDACs FSSRDACsConfiguration::getROCDACs(
75  const ConfigurationTree& dacsConfiguration)
76 {
77  ROCDACs rocDACs;
78  for(auto& it : dacNameToDACAddress_)
79  {
80  rocDACs.setDAC(it.first,
81  it.second,
82  dacsConfiguration.getNode(it.first).getValue<unsigned int>());
83  // __COUT__ << "DAC. Name: " << it.first << " addr: " << it.second << " val: " <<
84  // dacsConfiguration.getNode(it.first).getValue<unsigned int>() << " size: " <<
85  // rocDACs.getDACList().size()<< std::endl;
86  }
87  //__COUT__ << "Size: " << rocDACs.getDACList().size()<< std::endl;
88  return rocDACs;
89 }