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