00001 #include "ModuleConfiguration.h"
00002 #include <string>
00003 #include <algorithm>
00004 #include "Sct/SctParameters.h"
00005
00006 using std::string;
00007 using namespace Sct;
00008
00009 namespace SctData {
00010
00011 ModuleConfiguration::ModuleConfiguration() throw() {
00012
00013 std::fill_n((char*)&configuration, sizeof(configuration), 0);
00014
00015 for (unsigned int i=0; i<Sct::nChipModule; ++i) {
00016 shared_ptr<ChipConfiguration> chipConfig (new ChipConfiguration(configuration.chip[i]));
00017 chipConfigs.push_back(chipConfig);
00018 }
00019 }
00020
00021 ModuleConfiguration::~ModuleConfiguration() throw() {
00022 }
00023
00024 ModuleConfiguration::ModuleConfiguration(const ModuleConfiguration& config) throw() {
00025 this->configuration = config.configuration;
00026
00027 for (unsigned int i=0; i<Sct::nChipModule; ++i) {
00028 shared_ptr<ChipConfiguration> chipConfig (new ChipConfiguration(configuration.chip[i]));
00029 chipConfigs.push_back(chipConfig);
00030 }
00031 }
00032
00033 ModuleConfiguration& ModuleConfiguration::operator=(const ModuleConfiguration& config) throw() {
00034 this->configuration = config.configuration;
00035 return *this;
00036 }
00037
00038 bool ModuleConfiguration::channelIsMasked(const unsigned int ichannel) const throw(){
00039 return getChipConfiguration(ichannel/nChannelChip).isMasked(ichannel%nChannelChip);
00040 }
00041
00042
00043 string ModuleConfiguration::getClassName() const throw() {
00044 return string("SctData::ModuleConfiguration");
00045 }
00046
00047 ChipConfiguration& ModuleConfiguration::getChipConfiguration(const unsigned int chip) throw() {
00048 return *chipConfigs[chip];
00049 }
00050
00051 const ChipConfiguration& ModuleConfiguration::getChipConfiguration(const unsigned int chip) const throw() {
00052 return *chipConfigs[chip];
00053 }
00054
00055 const ABCDModule& ModuleConfiguration::getABCDModule() const {
00056 return configuration;
00057 }
00058
00059 ABCDModule& ModuleConfiguration::getABCDModule() {
00060 return configuration;
00061 }
00062
00063 }
00064