Update of /cvsroot/nsclspectcl/SpecTcl/Sorter In directory sc8-pr-cvs7.sourceforge.net:/tmp/cvs-serv24453 Modified Files: CSpectrum2Dm.cpp CSpectrum2Dm.h CSpectrum2DmB.h CSpectrum2DmW.h SpectrumFactory.cpp SpectrumFactory.h Log Message: Added 2d multiply incremented spectra to the spectrum factory Index: SpectrumFactory.h =================================================================== RCS file: /cvsroot/nsclspectcl/SpecTcl/Sorter/SpectrumFactory.h,v retrieving revision 5.3 retrieving revision 5.4 diff -C2 -d -r5.3 -r5.4 *** SpectrumFactory.h 20 Sep 2006 10:57:59 -0000 5.3 --- SpectrumFactory.h 26 Sep 2006 11:06:56 -0000 5.4 *************** *** 33,36 **** --- 33,39 ---- /* Change log: $Log$ + Revision 5.4 2006/09/26 11:06:56 ron-fox + Added 2d multiply incremented spectra to the spectrum factory + Revision 5.3 2006/09/20 10:57:59 ron-fox Modify more licenses to short form *************** *** 220,223 **** --- 223,233 ---- STD(vector)<CParameter>& rParameters, UInt_t nyChannels, Float_t fyLow, Float_t fyHigh); + CSpectrum* Create2DMultiple(STD(string) name, DataType_t eType, + STD(vector)<CParameter>& parameters, + UInt_t xChans, + Float_t xLow, Float_t xHigh, + UInt_t yChans, + Float_t yLow, Float_t yHigh); + UInt_t NextId () ; Bool_t ExceptionMode() const { return m_fExceptions; } Index: CSpectrum2Dm.h =================================================================== RCS file: /cvsroot/nsclspectcl/SpecTcl/Sorter/CSpectrum2Dm.h,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** CSpectrum2Dm.h 26 Sep 2006 10:11:31 -0000 1.3 --- CSpectrum2Dm.h 26 Sep 2006 11:06:55 -0000 1.4 *************** *** 104,107 **** --- 104,108 ---- virtual void GetResolutions(STD(vector)<UInt_t>& rvResolutions); virtual CSpectrum::SpectrumDefinition& GetDefinition(); + virtual SpectrumType_t getSpectrumType(); Index: CSpectrum2DmW.h =================================================================== RCS file: /cvsroot/nsclspectcl/SpecTcl/Sorter/CSpectrum2DmW.h,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** CSpectrum2DmW.h 26 Sep 2006 10:16:09 -0000 1.2 --- CSpectrum2DmW.h 26 Sep 2006 11:06:56 -0000 1.3 *************** *** 15,20 **** */ ! #ifndef __CSPECTRUM2DML_H ! #define __CSPECTRUM2DML_H #ifndef __CSPECTRUM2DM_H --- 15,20 ---- */ ! #ifndef __CSPECTRUM2DMW_H ! #define __CSPECTRUM2DMW_H #ifndef __CSPECTRUM2DM_H Index: CSpectrum2DmB.h =================================================================== RCS file: /cvsroot/nsclspectcl/SpecTcl/Sorter/CSpectrum2DmB.h,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** CSpectrum2DmB.h 26 Sep 2006 10:30:39 -0000 1.2 --- CSpectrum2DmB.h 26 Sep 2006 11:06:56 -0000 1.3 *************** *** 15,20 **** */ ! #ifndef __CSPECTRUM2DML_H ! #define __CSPECTRUM2DML_H #ifndef __CSPECTRUM2DM_H --- 15,20 ---- */ ! #ifndef __CSPECTRUM2DMB_H ! #define __CSPECTRUM2DMB_H #ifndef __CSPECTRUM2DM_H Index: CSpectrum2Dm.cpp =================================================================== RCS file: /cvsroot/nsclspectcl/SpecTcl/Sorter/CSpectrum2Dm.cpp,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** CSpectrum2Dm.cpp 26 Sep 2006 10:11:31 -0000 1.3 --- CSpectrum2Dm.cpp 26 Sep 2006 11:06:55 -0000 1.4 *************** *** 155,158 **** --- 155,166 ---- return def; } + /*! + Returns the type of the spectrum. + */ + SpectrumType_t + CSpectrum2Dm::getSpectrumType() + { + return ke2Dm; + } Index: SpectrumFactory.cpp =================================================================== RCS file: /cvsroot/nsclspectcl/SpecTcl/Sorter/SpectrumFactory.cpp,v retrieving revision 5.4 retrieving revision 5.5 diff -C2 -d -r5.4 -r5.5 *** SpectrumFactory.cpp 28 Jun 2006 20:00:31 -0000 5.4 --- SpectrumFactory.cpp 26 Sep 2006 11:06:56 -0000 5.5 *************** *** 43,46 **** --- 43,49 ---- Change log: $Log$ + Revision 5.5 2006/09/26 11:06:56 ron-fox + Added 2d multiply incremented spectra to the spectrum factory + Revision 5.4 2006/06/28 20:00:31 ron-fox Fix g1 with empty parameter list crash (defect 211) and issues with gui *************** *** 107,110 **** --- 110,117 ---- #include "Gamma2DL.h" #include "SpectrumS.h" + #include "CSpectrum2DmL.h" + #include "CSpectrum2DmW.h" + #include "CSpectrum2DmB.h" + #include "Histogrammer.h" *************** *** 399,403 **** --- 406,451 ---- } + case ke2Dm: + { + // Require an even number of parameters: + + if((ParameterList.size() % 2) != 0) { + throw CSpectrumFactoryException(eDataType, ke2Dm, rName, + CSpectrumFactoryException::keBadParameterCount, + "2m spectra need an even number of parameters"); + } + Float_t fxLow, fxHigh; + Float_t fyLow, fyHigh; + + // figure out the low/high values.. using defaults if needed? + + if (pLows == static_cast<vector<Float_t>* >(kpNULL)) { + fxLow = 0.0; // Default lows. + fyLow = 0.0; + fxHigh = DefaultAxisLength(rChannels[0], ParameterList[0]); // Default highs too. + fyHigh = DefaultAxisLength(rChannels[1], ParameterList[1]); + + } + else { + fxLow = (*pLows)[0]; // Lows from vector... + fyLow = (*pLows)[1]; + fxHigh= (*pHighs)[0]; + fyHigh= (*pHighs)[1]; + + if (fxLow == fxHigh) { // Default the x axis: + fxLow = 0.0; + fxHigh = DefaultAxisLength(rChannels[0], ParameterList[0]); + } + if(fyLow == fyHigh) { // Default y axis... + fyLow =0.0; + fyHigh = DefaultAxisLength(rChannels[1], ParameterList[1]); + } + + } + return Create2DMultiple(rName, eDataType, ParameterList, + rChannels[0], fxLow, fxHigh, + rChannels[1], fyLow, fyHigh); + } default: throw CSpectrumFactoryException(eDataType, eSpecType, *************** *** 1051,1054 **** --- 1099,1149 ---- } + + /*! + Create a 2d multiply incremented spectrum. This is just a matter of + invoking the right constructor depending on the requested data type: + \param name : std::string + Name of the spectrum to create. + \param eType : DataType_t + Data type to create. + \param parameters std::vector<CParameter> parameters. + Parameters for the spectrum. + \param xChans : UInt_t + Number of channels on the x axis. + \param xlow, xhigh : Float_t + Limits for the x axis. + \param yChans : UInt_t + Number of y channel axes. + \param ylow, yhigh : Flaot_t + Limits for the y axis. + */ + CSpectrum* + CSpectrumFactory::Create2DMultiple(STD(string) name, DataType_t eType, + STD(vector)<CParameter>& parameters, + UInt_t xChans, + Float_t xLow, Float_t xHigh, + UInt_t yChans, + Float_t yLow, Float_t yHigh) + { + switch (eType) { + case keByte: + return new CSpectrum2DmB(name, NextId(), parameters, xChans, yChans, + xLow, xHigh, yLow, yHigh); + case keWord: + return new CSpectrum2DmW(name, NextId(), parameters, xChans, yChans, + xLow, xHigh, yLow, yHigh); + + case keLong: + return new CSpectrum2DmL(name, NextId(), parameters, xChans, yChans, + xLow, xHigh, yLow, yHigh); + + default: + throw CSpectrumFactoryException(eType, ke2Dm, name, + CSpectrumFactoryException::keBadDataType, + "Creating 2d multiply incremented spectrum"); + } + return (CSpectrum*)kpNULL; // Acutally a bad error. + } + ////////////////////////////////////////////////////////////////////////// // |