00001
00002
00003
00004 #include <stdexcept>
00005 #include "StiGenericDetectorGroup.h"
00006 #include "Sti/StiDetectorBuilder.h"
00007
00008
00009 StiGenericDetectorGroup::StiGenericDetectorGroup(const string & name)
00010 : Named(name),
00011 _detectorBuilder(0),
00012 _elossCalculator(0),
00013 _groupId(-1)
00014 {
00015
00016 }
00017
00018
00019 StiGenericDetectorGroup::StiGenericDetectorGroup(const string & name,
00020 StiDetectorBuilder * detectorBuilder,
00021 StiElossCalculator * elossCalculator)
00022 : Named(name),
00023 _detectorBuilder(detectorBuilder),
00024 _elossCalculator(elossCalculator),
00025 _groupId(-1)
00026 {
00027 }
00028
00029
00030 StiGenericDetectorGroup::~StiGenericDetectorGroup()
00031 {
00032 delete _detectorBuilder;
00033 }
00034
00035 StiDetectorBuilder *StiGenericDetectorGroup::getDetectorBuilder()
00036 {
00037 if (_detectorBuilder==0)
00038 {
00039 string message = "StiDetectorGroup::getDetectorBuilder() - ERROR - builder == 0 for detector:";
00040 message += getName();
00041 throw logic_error(message.c_str());
00042 }
00043 return _detectorBuilder;
00044 }
00045
00046
00047 StiElossCalculator *StiGenericDetectorGroup::getElossCalculator()
00048 {
00049 if (_elossCalculator==0)
00050 {
00051 string message = "StiDetectorGroup::getElossCalculator() - ERROR - elossCalculator == 0 for detector:";
00052 message += getName();
00053 throw logic_error(message.c_str());
00054 }
00055 return _elossCalculator;
00056 }
00057
00058
00059 void StiGenericDetectorGroup::setGroupId(int id)
00060 {
00061 if (_detectorBuilder) _detectorBuilder->setGroupId(id);
00062 _groupId = id;
00063 }
00064
00065
00066 int StiGenericDetectorGroup::getGroupId() const
00067 {
00068 return _groupId;
00069 }