Main Page   Modules   Namespace List   Class Hierarchy   Data Structures   File List   Namespace Members   Data Fields   Globals   Related Pages  

FitScanResult.cpp

Go to the documentation of this file.
00001 #include "FitScanResult.h"
00002 #include "RawScanResult.h"
00003 #include "ModuleConfiguration.h"
00004 #include "ScanPoints.h"
00005 #include <iostream>
00006 #include "FitObject.h"
00007 #include "GausFitObject.h"
00008 #include "ErfFitObject.h"
00009 #include "ErfcFitObject.h"
00010 #include "TopHatFitObject.h"
00011 #include "ScanHeader.h"
00012 #include <TH1.h>
00013 #include <Sct/SctParameters.h>
00014 
00015 using namespace Sct;
00016 
00017 namespace SctData {
00018 
00019 FitScanResult::FitScanResult() throw() : m_channelFits("ChannelFits"), m_chipFits("ChipFits"), m_linkFits("LinkFits"),
00020                                          m_summaryHist("summaryHist") {}
00021 
00022 FitScanResult::FitScanResult(const ScanHeader& header, const ModuleConfiguration& config, const ScanPoints& points) throw()
00023                             : ScanResult(header, config, points), m_channelFits("ChannelFits"),  m_chipFits("ChipFits"), m_linkFits("LinkFits"),
00024                             m_summaryHist("summaryHist") {}
00025 
00026 FitScanResult::FitScanResult(const RawScanResult& raw) throw () : ScanResult(raw), m_channelFits("ChannelFits"),  m_chipFits("ChipFits"), 
00027                             m_linkFits("LinkFits"), m_summaryHist("summaryHist") {}
00028 
00029 FitScanResult::~FitScanResult() throw() {
00030     for (vector<TH1D*>::iterator ih = m_summaryHist.begin(); ih != m_summaryHist.end(); ++ih ) {
00031         delete *ih;
00032     }
00033 }
00034 
00035 string FitScanResult::getClassName() const throw() {
00036     return "SctData::FitScanResult";
00037 }
00038 
00039 string FitScanResult::getUniqueID() const throw() {
00040     return getHeader().getUniqueID();
00041 }
00042 
00043 string FitScanResult::getUniqueID(const ScanHeader& header) throw() {
00044     return header.getUniqueID();
00045 }
00046 
00047 void FitScanResult::initializeChannelFits(const FitObject& prototype) throw() {
00048     resizeAndFill(m_channelFits, Sct::nChannelModule, prototype);
00049 }
00050 
00051 void FitScanResult::initializeChipFits(const FitObject& prototype) throw() {
00052     resizeAndFill(m_chipFits, Sct::nChipModule, prototype);
00053 }
00054 void FitScanResult::initializeLinkFits(const FitObject& prototype) throw() {
00055     resizeAndFill(m_linkFits, Sct::nLinkModule, prototype);
00056 }
00057 
00058 FitObject& FitScanResult::getLinkFit( const unsigned ilink ) const throw(LogicError) {
00059     return *m_linkFits[ilink] ;
00060 }
00061 
00062 FitObject& FitScanResult::getChipFit( const unsigned ilink, const unsigned ichip ) const throw (LogicError) {
00063     return this->getChipFit( ilink*6+ichip );
00064 }
00065 
00066 FitObject& FitScanResult::getChipFit( const unsigned ichip ) const throw (LogicError) {
00067     return *m_chipFits[ichip] ;
00068 }
00069 
00070 FitObject& FitScanResult::getChannelFit( const unsigned ilink, const unsigned ichannel ) const throw (LogicError ) {
00071     return this->getChannelFit(ilink*nChannelLink+ichannel);
00072 }
00073 
00074 FitObject& FitScanResult::getChannelFit( const unsigned ichannel ) const throw(LogicError) {
00075     return *m_channelFits[ichannel] ;
00076 }
00077 
00078 void FitScanResult::setChannelFit(unsigned int channel, shared_ptr<FitObject> fit) throw(LogicError) {
00079     m_channelFits[channel] = fit;
00080 }
00081     
00082 void FitScanResult::setChipFit(unsigned int chip, shared_ptr<FitObject> fit) throw(LogicError) {
00083     m_chipFits[chip] = fit;
00084 }
00085     
00086 void FitScanResult::setLinkFit(unsigned int link, shared_ptr<FitObject> fit) throw(LogicError) {
00087     m_linkFits[link] = fit;
00088 }
00089 
00090 unsigned FitScanResult::getNLinkFits() const throw() {
00091     return m_linkFits.size();
00092 }
00093 
00094 unsigned FitScanResult::getNChipFits() const throw() {
00095     return m_chipFits.size();
00096 }
00097 
00098 unsigned FitScanResult::getNChannelFits() const throw() {
00099     return m_channelFits.size();
00100 }
00101 
00102 void FitScanResult::setNChannelFits(unsigned int n) throw() {
00103     m_channelFits.resize(n);
00104 }
00105     
00106 void FitScanResult::setNChipFits(unsigned int n) throw() {
00107     m_chipFits.resize(n);    
00108 }
00109     
00110 void FitScanResult::setNLinkFits(unsigned int n) throw() {
00111     m_linkFits.resize(n);    
00112 }
00113 
00114 
00115 const TH1D& FitScanResult::getHist(unsigned i) const throw(LogicError) {
00116     return *(m_summaryHist[i]);
00117 }
00118 
00119 // varies according to ScanType
00120 /*void FitScanResult::createSummaryHistograms() throw(LogicError) {
00121     //deleteAllHist();
00122     const ScanType& type = getHeader().getScanType();
00123 
00124     if (type==ScanType::THRESHOLDSCAN) {
00125     }
00126 }*/
00127 }
00128 
00129 ostream& operator<<(ostream& os, const SctData::FitScanResult& r) throw() {
00130     os << r.getClassName() << "  " << r.getUniqueID();
00131     return os;
00132 }

Generated on Mon Dec 15 19:36:02 2003 for SCT DAQ/DCS Software by doxygen1.3-rc3