ModuleConfiguration.cpp

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

Generated on Mon Feb 6 14:01:23 2006 for SCT DAQ/DCS Software - C++ by  doxygen 1.4.6