otsdaq  v2_00_00
ROCToFEConfiguration_configuration.cc
1 #include "otsdaq-core/ConfigurationPluginDataFormats/ROCToFEConfiguration.h"
2 #include "otsdaq-core/Macros/ConfigurationPluginMacros.h"
3 
4 #include <iostream>
5 
6 using namespace ots;
7 
8 const std::string ROCToFEConfiguration::staticConfigurationName_ = "ROCToFEConfiguration";
9 //==============================================================================
10 ROCToFEConfiguration::ROCToFEConfiguration(void) :
11  ConfigurationBase(ROCToFEConfiguration::staticConfigurationName_)
12 {
14  //WARNING: the names and the order MUST match the ones in the enum //
16  //ROCToFEConfigurationInfo.xml
17  //<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
18  //<ROOT xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="ConfigurationInfo.xsd">
19  // <CONFIGURATION Name="ROCToFEConfiguration">
20  // <VIEW Name="ROC_TO_FE_CONFIGURATION" Type="File,Database,DatabaseTest">
21  // <COLUMN Name="DetectorID" StorageName="DETECTOR_ID" DataType="VARCHAR2" />
22  // <COLUMN Name="FEWName" StorageName="FEW_NAME" DataType="NUMBER" />
23  // <COLUMN Name="FEWChannel" StorageName="FEW_CHANNEL" DataType="NUMBER" />
24  // <COLUMN Name="FEWROCAddress" StorageName="FEW_ROC_ADDRESS" DataType="NUMBER" />
25  // <COLUMN Name="FERName" StorageName="FER_NAME" DataType="NUMBER" />
26  // <COLUMN Name="FERChannel" StorageName="FER_CHANNEL" DataType="NUMBER" />
27  // <COLUMN Name="FERROCAddress" StorageName="FER_ROC_ADDRESS" DataType="NUMBER" />
28  // </VIEW>
29  // </CONFIGURATION>
30  //</ROOT>
31 
32 }
33 
34 //==============================================================================
35 ROCToFEConfiguration::~ROCToFEConfiguration(void)
36 {}
37 
38 //==============================================================================
39 void ROCToFEConfiguration::init(ConfigurationManager *configManager)
40 {
41  std::string tmpDetectorID;
42  for(unsigned int row=0; row<ConfigurationBase::activeConfigurationView_->getNumberOfRows(); row++)
43  {
44  ConfigurationBase::activeConfigurationView_->getValue(tmpDetectorID ,row,DetectorID);
45  nameToInfoMap_[tmpDetectorID] = ROCInfo();
46  ROCInfo& aROCInfo = nameToInfoMap_[tmpDetectorID];
47  ConfigurationBase::activeConfigurationView_->getValue(aROCInfo.theFEWName_ ,row,FEWName);
48  ConfigurationBase::activeConfigurationView_->getValue(aROCInfo.theFEWChannel_ ,row,FEWChannel);
49  ConfigurationBase::activeConfigurationView_->getValue(aROCInfo.theFEWROCAddress_,row,FEWROCAddress);
50  ConfigurationBase::activeConfigurationView_->getValue(aROCInfo.theFERName_ ,row,FERName);
51  ConfigurationBase::activeConfigurationView_->getValue(aROCInfo.theFERChannel_ ,row,FEWChannel);
52  ConfigurationBase::activeConfigurationView_->getValue(aROCInfo.theFERROCAddress_,row,FERROCAddress);
53  }
54 }
55 
56 //==============================================================================
57 std::vector<std::string> ROCToFEConfiguration::getFEWROCsList(std::string fECNumber) const
58 {
59  std::string tmpDetectorID;
60  std::string tmpFEWName;
61  std::vector<std::string> list;
62  for(unsigned int row=0; row<ConfigurationBase::activeConfigurationView_->getNumberOfRows(); row++)
63  {
64  ConfigurationBase::activeConfigurationView_->getValue(tmpFEWName,row,FEWName);
65  if(tmpFEWName == fECNumber)
66  {
67  ConfigurationBase::activeConfigurationView_->getValue(tmpDetectorID,row,DetectorID);
68  list.push_back(tmpDetectorID);
69  }
70  }
71  return list;
72 }
73 
74 //==============================================================================
75 std::vector<std::string> ROCToFEConfiguration::getFERROCsList(std::string fEDNumber) const
76 {
77  std::string tmpDetectorID;
78  std::string tmpFERName;
79  std::vector<std::string> list;
80  for(unsigned int row=0; row<ConfigurationBase::activeConfigurationView_->getNumberOfRows(); row++)
81  {
82  ConfigurationBase::activeConfigurationView_->getValue(tmpFERName,row,FERName);
83  if(tmpFERName == fEDNumber)
84  {
85  ConfigurationBase::activeConfigurationView_->getValue(tmpDetectorID,row,DetectorID);
86  list.push_back(tmpDetectorID);
87  }
88  }
89  return list;
90 }
91 
92 //==============================================================================
93 unsigned int ROCToFEConfiguration::getFEWChannel(const std::string& rOCName) const
94 {
95  return nameToInfoMap_.find(rOCName)->second.theFEWChannel_;
96 }
97 
98 //==============================================================================
99 unsigned int ROCToFEConfiguration::getFEWROCAddress(const std::string& rOCName) const
100 {
101  return nameToInfoMap_.find(rOCName)->second.theFEWROCAddress_;
102 }
103 
104 //==============================================================================
105 unsigned int ROCToFEConfiguration::getFERChannel(const std::string& rOCName) const
106 {
107  return nameToInfoMap_.find(rOCName)->second.theFERChannel_;
108 }
109 
110 DEFINE_OTS_CONFIGURATION(ROCToFEConfiguration)