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

NPtGainConfigUpdater.cpp

00001 #include "NPtGainConfigUpdater.h"
00002 #include "ConfigUpdaterManager.h"
00003 #include "../SctApiAccessException.h"
00004 #include "../SctApiCall.h"
00005 
00006 #include "Sct_SctApi/Sct_SctApi.hh"
00007 #include "Sct/SctParameters.h"
00008 #include "Sct/SctNames.h"
00009 #include "SctData/NPtGainTestResult.h"
00010 #include "SctData/ResponseCurve.h"
00011 #include "SctData/DefectPrototype.h"
00012 
00013 #include <TF1.h>
00014 
00015 using namespace SctData;
00016 using namespace Sct;
00017 
00018 namespace SctCalibrationController {
00019 
00020 bool NPtGainConfigUpdater::inMap = ConfigUpdaterManager::instance().setUpdater("SctData::NPtGainTestResult", shared_ptr<NPtGainConfigUpdater> (new NPtGainConfigUpdater() ) );
00021 
00022 void NPtGainConfigUpdater::update(const TestResult& testresult, Sct_SctApi_T_SctApi& api) const {
00023     const NPtGainTestResult& t = dynamic_cast<const NPtGainTestResult&> (testresult) ;
00024 
00025     maskChannels(t, UNUSEABLE, api);
00026     if (t.getNScans() < 4) return;  //Don't update RC if it is a 3-pt gain, but do mask channels
00027 
00028     unsigned long mid = getMID(t, api);
00029     SctNames::Mrs() << "CC_UPDATE" << MRS_TEXT("CalibrationController updating response curve") << MRS_PARAM<const char*>("Module", t.getModuleName().c_str()) << MRS_INFORMATION << ENDM;
00030     for (unsigned ichip=0; ichip<Sct::nChipModule; ++ichip) {
00031     shared_ptr<const ResponseCurve> rc = t.getChipData(ichip).rc;
00032     shared_ptr<const TF1> func = rc->getFunction();
00033 /*  SctNames::Mrs() << "CC_UPDATE_INFO" << MRS_TEXT("CalibrationController updating response curve") << MRS_PARAM<long>("ModuleID", mid) << MRS_PARAM<int>("Chip", ichip)
00034                 << MRS_PARAM<int>("Function", rc->getIndex()) << MRS_PARAM<double>("Param0", (double) func->GetParameter(0))
00035             << MRS_PARAM<double>("Param1", (double) func->GetParameter(1)) << MRS_PARAM<double>("Param2", (double) func->GetParameter(2))
00036             << MRS_DIAGNOSTIC << ENDM;*/
00037         APICALL(&api, modifyABCDRC(&st, mid, ichip, rc->getIndex(), func->GetParameter(0), func->GetParameter(1),
00038                                    func->GetParameter(2)), "NPtGainConfigUpdater failed to set rc params")
00039     }
00040 }
00041 }

Generated on Thu Jul 15 09:50:49 2004 for SCT DAQ/DCS Software - C++ by doxygen 1.3.5