00001 #include "ModuleDefect.h"
00002
00003 namespace SctData {
00004
00005 map<int, ModuleDefect*> ModuleDefect::defectMap;
00006
00007 const ModuleDefect ModuleDefect::DEAD(1, true, "DEAD", "Dead channel - output always <1%%", 0.01);
00008 const ModuleDefect ModuleDefect::STUCKON(2, true, "STUCKON", "Dead channel - output always > 98%% occupancy", 0.98);
00009 const ModuleDefect ModuleDefect::UNDER(3, false, "UNDER", "Occupancy never reaches 100%%", 1.);
00010 const ModuleDefect ModuleDefect::OVER(4, false, "OVER", "Occupancy greater than 100%%", 1.);
00011 const ModuleDefect ModuleDefect::FIT_UNDER(5, true, "FIT_UNDER", "Fitted mean out of bounds low", 0);
00012 const ModuleDefect ModuleDefect::FIT_OVER(6, true, "FIT_OVER", "Fitted mean out of bounds high", 0);
00013 const ModuleDefect ModuleDefect::SIG_UNDER(7, true, "SIG_UNDER", "Fitted sigma out of bounds low", 0);
00014 const ModuleDefect ModuleDefect::SIG_OVER(8, true, "SIG_OVER", "Fitted sigma out of bounds high", 0);
00015 const ModuleDefect ModuleDefect::LO_GAIN(9, true, "LO_GAIN", "Gain is less than %g*chip average", 0.75);
00016 const ModuleDefect ModuleDefect::HI_GAIN(10, true, "HI_GAIN", "Gain is higher than %g*chip average", 1.25);
00017 const ModuleDefect ModuleDefect::LO_OFFSET(11, true, "LO_OFFSET", "Offset is less than %g", -100);
00018 const ModuleDefect ModuleDefect::HI_OFFSET(12, true, "HI_OFFSET", "Offset is higher than %g", 120);
00019 const ModuleDefect ModuleDefect::UNBONDED(13, true, "UNBONDED", "Noise is less than %g", 750);
00020 const ModuleDefect ModuleDefect::PARTBONDED(14, false, "PARTBONDED", "Noise is less than %g", 1100);
00021 const ModuleDefect ModuleDefect::NOISY(15, false, "NOISY", "Noise is > %g*chip average", 1.15);
00022 const ModuleDefect ModuleDefect::MEAN_ERROR(16, true, "MEAN_ERROR", "Error in the mean", 0);
00023 const ModuleDefect ModuleDefect::SIG_ERROR(17, true, "SIG_ERROR", "Error in the sigma", 0);
00024 const ModuleDefect ModuleDefect::NOINIT(18, false, "NOINIT", "Couldn't initialize fit", 0);
00025 const ModuleDefect ModuleDefect::NO_HI(19, false, "NO_HI", "High noise occupancy", 0.0005);
00026 const ModuleDefect ModuleDefect::DEAD_CELL(20, false, "DEAD_CELL","Dead cell in the pipeline",0.);
00027 const ModuleDefect ModuleDefect::STUCK_CELL(21, false, "STUCK_CELL","Stuck cell in the pipeline",0.);
00028 const ModuleDefect ModuleDefect::TR_RANGE(22, false, "TR_RANGE","Unusual chip trim step size",0.);
00029 const ModuleDefect ModuleDefect::TR_STEP(23, false, "TR_STEP","Channel trim step size different from chip",4.);
00030 const ModuleDefect ModuleDefect::TR_OFFSET(24, false, "TR_OFFSET","Channel trim range offset different from chip",4.);
00031 const ModuleDefect ModuleDefect::TR_NOTRIM(25, false, "TR_NOTRIM","Untrimmable channel",0.);
00032 const ModuleDefect ModuleDefect::TOKEN(26, false, "TOKEN","Direct token fails",0.);
00033 const ModuleDefect ModuleDefect::RTOKEN(27, false, "RTOKEN","Bypass token fails",0.);
00034 const ModuleDefect ModuleDefect::TW_HI(28, false, "TW_HI","Time walk too big",16.);
00035 const ModuleDefect ModuleDefect::TW_LO(29, false, "TW_LO","Time walk too small",5.);
00036 const ModuleDefect ModuleDefect::SD_LO(30, true, "SD_LO", "Strobe delay not between 0 and %i", 35);
00037 const ModuleDefect ModuleDefect::SD_HI(31, true, "SD_HI", "Strobe delay greater than %i", 63);
00038 }
00039
00040