00001 #include "ISNoiseOccupancySummaryData.h"
00002 #include "ISSummaryManager.h"
00003 #include "ISNoiseOccupancySummaryWriter.h"
00004 #include "Sct/ISUtilities.h"
00005 #include "Sct/SctParameters.h"
00006
00007 #include "SctData/NoiseOccupancyTestResult.h"
00008
00009 #include <TF1.h>
00010
00011 #include <iomanip>
00012
00013 namespace SctData {
00014 namespace ISTestSummary{
00015 using namespace std;
00016
00017 void ISNoiseOccupancySummaryWriter::write(const TestResult& t) const
00018 {
00019 const NoiseOccupancyTestResult& result = dynamic_cast<const NoiseOccupancyTestResult&>(t);
00020
00021 ISNoiseOccupancySummaryData summary;
00022
00023 writeHeader(result, summary);
00024
00025 summary.offsetByChip_size = Sct::nChipModule;
00026 summary.offsetByChip = new double[Sct::nChipModule];
00027
00028 summary.occupancyByChip_size = Sct::nChipModule;
00029 summary.occupancyByChip = new double[Sct::nChipModule];
00030 summary.occupancyRMSByChip_size = Sct::nChipModule;
00031 summary.occupancyRMSByChip = new double[Sct::nChipModule];
00032
00033 summary.noiseByChip_size = Sct::nChipModule;
00034 summary.noiseByChip = new double[Sct::nChipModule];
00035
00036 for (unsigned ichip=0; ichip<nChipModule; ++ichip){
00037 const SctData::ChipNOResult& c = result.getChipResult(ichip);
00038
00039 summary.offsetByChip[ichip] = c.offset;
00040 summary.occupancyByChip[ichip] = c.mean;
00041 summary.occupancyRMSByChip[ichip] = c.rms;
00042 summary.noiseByChip[ichip] = c.getNoise();
00043 }
00044
00045 string name = "ISSummaryData.ISNoiseOccupancySummaryData.";
00046 name += result.getHeader().getModuleName();
00047
00048
00049
00050
00051 Sct::ISUtilities::addOrUpdateOrThrow(name,summary,__FILE__,__LINE__, MRS_WARNING );
00052
00053 }
00054
00055
00056 bool ISNoiseOccupancySummaryWriter::inMap = ISSummaryManager::instance().addWriter("SctData::NoiseOccupancyTestResult", shared_ptr<ISSummaryWriter>(new ISNoiseOccupancySummaryWriter()));
00057 }
00058 }