00001 #include "otsdaq-core/ConfigurationPluginDataFormats/ROCToFEConfiguration.h"
00002 #include "otsdaq-core/Macros/ConfigurationPluginMacros.h"
00003
00004 #include <iostream>
00005
00006 using namespace ots;
00007
00008 const std::string ROCToFEConfiguration::staticConfigurationName_ = "ROCToFEConfiguration";
00009
00010 ROCToFEConfiguration::ROCToFEConfiguration(void) :
00011 ConfigurationBase(ROCToFEConfiguration::staticConfigurationName_)
00012 {
00014
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032 }
00033
00034
00035 ROCToFEConfiguration::~ROCToFEConfiguration(void)
00036 {}
00037
00038
00039 void ROCToFEConfiguration::init(ConfigurationManager *configManager)
00040 {
00041 std::string tmpDetectorID;
00042 for(unsigned int row=0; row<ConfigurationBase::activeConfigurationView_->getNumberOfRows(); row++)
00043 {
00044 ConfigurationBase::activeConfigurationView_->getValue(tmpDetectorID ,row,DetectorID);
00045 nameToInfoMap_[tmpDetectorID] = ROCInfo();
00046 ROCInfo& aROCInfo = nameToInfoMap_[tmpDetectorID];
00047 ConfigurationBase::activeConfigurationView_->getValue(aROCInfo.theFEWName_ ,row,FEWName);
00048 ConfigurationBase::activeConfigurationView_->getValue(aROCInfo.theFEWChannel_ ,row,FEWChannel);
00049 ConfigurationBase::activeConfigurationView_->getValue(aROCInfo.theFEWROCAddress_,row,FEWROCAddress);
00050 ConfigurationBase::activeConfigurationView_->getValue(aROCInfo.theFERName_ ,row,FERName);
00051 ConfigurationBase::activeConfigurationView_->getValue(aROCInfo.theFERChannel_ ,row,FEWChannel);
00052 ConfigurationBase::activeConfigurationView_->getValue(aROCInfo.theFERROCAddress_,row,FERROCAddress);
00053 }
00054 }
00055
00056
00057 std::vector<std::string> ROCToFEConfiguration::getFEWROCsList(std::string fECNumber) const
00058 {
00059 std::string tmpDetectorID;
00060 std::string tmpFEWName;
00061 std::vector<std::string> list;
00062 for(unsigned int row=0; row<ConfigurationBase::activeConfigurationView_->getNumberOfRows(); row++)
00063 {
00064 ConfigurationBase::activeConfigurationView_->getValue(tmpFEWName,row,FEWName);
00065 if(tmpFEWName == fECNumber)
00066 {
00067 ConfigurationBase::activeConfigurationView_->getValue(tmpDetectorID,row,DetectorID);
00068 list.push_back(tmpDetectorID);
00069 }
00070 }
00071 return list;
00072 }
00073
00074
00075 std::vector<std::string> ROCToFEConfiguration::getFERROCsList(std::string fEDNumber) const
00076 {
00077 std::string tmpDetectorID;
00078 std::string tmpFERName;
00079 std::vector<std::string> list;
00080 for(unsigned int row=0; row<ConfigurationBase::activeConfigurationView_->getNumberOfRows(); row++)
00081 {
00082 ConfigurationBase::activeConfigurationView_->getValue(tmpFERName,row,FERName);
00083 if(tmpFERName == fEDNumber)
00084 {
00085 ConfigurationBase::activeConfigurationView_->getValue(tmpDetectorID,row,DetectorID);
00086 list.push_back(tmpDetectorID);
00087 }
00088 }
00089 return list;
00090 }
00091
00092
00093 unsigned int ROCToFEConfiguration::getFEWChannel(const std::string& rOCName) const
00094 {
00095 return nameToInfoMap_.find(rOCName)->second.theFEWChannel_;
00096 }
00097
00098
00099 unsigned int ROCToFEConfiguration::getFEWROCAddress(const std::string& rOCName) const
00100 {
00101 return nameToInfoMap_.find(rOCName)->second.theFEWROCAddress_;
00102 }
00103
00104
00105 unsigned int ROCToFEConfiguration::getFERChannel(const std::string& rOCName) const
00106 {
00107 return nameToInfoMap_.find(rOCName)->second.theFERChannel_;
00108 }
00109
00110 DEFINE_OTS_CONFIGURATION(ROCToFEConfiguration)