#include "RootStuff.h" #include "OptClass.h" #include "StdTestWin.h" #include "CDatabase.h" #include "DataStuff.h" #include "verauth.h" #include #include #include #ifdef PIXEL_ROD // can link to PixScan #include #endif optClass::optClass(bool haveGUI){ // define password encryption key int i; // plotting style options - default m_SCmode = false; m_splitnsp = true; m_splitthr = false; m_showwarn = true; m_plotfitopt = 0; m_showchipid = 0; m_showAxisLabels = false; m_projlogy = 0; m_hitcut = 1; m_totcut = 200000; m_masklong = 0; m_maskgang = 0; m_diffcut = 110; m_noisecut = 360; m_showcutpix = false; m_xtfrcut = 2.5; m_xtnoisecut = 1.5; m_noisetab = 0; m_zerotab = 1; m_MCCdelay = 0; m_QhighTW = 100000; m_ChipTarget = 3000; m_doChipTarget = 0; m_doFixedTarget = 0; m_rec2DFit = true; m_keep1d = true; m_DACdoFit = true; m_FitGauss = 1; m_ToggleMask = 0; m_ToTPlotPnt = 20; m_fixedToTSwitch = true; m_ToTSwitch = 30; m_QPlotPnt = 8; m_UsrMin = 0; m_UsrMax = 10000; m_doUsrRg = false; m_doTotRelcal = true; m_minToT = 0; m_peakMinHit = 1; m_showChipCuts = false; m_pdbPlots = false; m_pdbRemove = false; m_pdbClear = false; for(i=0;i=(int)PixLib::PixScan::RAW_DATA_REF && i<=(int)PixLib::PixScan::RAW_DATA_DIFF_2) || i==(int)PixLib::PixScan::TOT || i==(int)PixLib::PixScan::CLUSTER_SIZE || i==(int)PixLib::PixScan::CLSIZE_TOT || i==(int)PixLib::PixScan::DCS_DATA || i==(int)PixLib::PixScan::CLUSTER_TOT || i==(int)PixLib::PixScan::SEED_TOT || i==(int)PixLib::PixScan::SEED_LVL1|| i==(int)PixLib::PixScan::NSEEDS || i==(int)PixLib::PixScan::LVL1 || i==(int)PixLib::PixScan::DSP_ERRORS) m_PLplotType[i] = 0; else m_PLplotType[i] = 2; if(i<(int)PixLib::PixScan::MAX_HISTO_TYPES) m_PLhistoExists[i] = true; else m_PLhistoExists[i] = false; m_PLUsrIMin[i] = -9999; m_PLUsrIMax[i] = -9999; m_PLUsrIUse[i] = false; if(i==(int)PixLib::PixScan::SCURVE_MEAN || i==(int)PixLib::PixScan::SCURVE_SIGMA || i==(int)PixLib::PixScan::TDAC_THR || i==(int)PixLib::PixScan::GDAC_THR) m_PLPltZero[i] = false; else m_PLPltZero[i] = true; } m_PLplotTypeLabels.push_back("Simple map/graph"); m_PLplotTypeLabels.push_back("Module-like colour map"); m_PLplotTypeLabels.push_back("Module-Map/histo/scatter (as sel.)"); m_PLplotTypeLabels.push_back("Module-Map/2xhisto/scatter (as sel.)"); // CRGG m_PLplotTypeLabels.push_back("Simple map/histo/scatter (as sel.)"); m_PLplotTypeLabels.push_back("Simple map/2xhisto/scatter (as sel.)"); // CRGG m_PLplotTypeLabels.push_back("Module-Map/2xhisto(VNCAP)/scatter (as sel.)"); // CRGG m_PLplotTypeLabels.push_back("Simple map/2xhisto(VNCAP)/scatter (as sel.)"); // CRGG m_colourScale = 0; m_doBlackBg = false; m_srcMin = -1; m_srcRestrict = false; m_srcRecalcPeak = false; m_cfgUsrdefNames = false; m_VbiasMin = 145; m_VbiasMax = 155; m_IbiasCorr = true; m_chiCutmT = 50; m_nseCutmT = -1; m_nseCutmT_long = -1; m_nseCutmT_ganged = -1; m_nseCutmT_inter = -1; m_runCombToTfit = false; m_runBadFitsIntime = false; m_runBadFitsTzero = false; m_runBadFitsThresh = false; m_runBadFitsXtalk = false; RMain::ColourScale(m_colourScale); // supply channel default m_DDchan = 1; m_DDAchan = 0; m_BIASchan = 0; m_DDsupp = 0; m_DDAsupp = 0; m_BIASsupp = 0; m_absValIV = false; m_ambushStart = 30; m_ambushStop = 120; // std paths m_DefDataPath = "."; m_UseMname = false; m_DefMacroPath = "."; m_DefCutPaths = "."; m_pdbpath = "."; m_userPDB = ""; m_passwdPDB = ""; m_webUploadOpt = 0; m_delT0_twalk = 20; m_totcheckVar = 7; m_totcheckValue = 45; m_totcheckKeep = true; m_corPlotOpt = "LEGO"; m_occPlotHisto = false; // std file names // get NSLOTS from StdTestWin int NSLOTS=23; if(haveGUI){ StdTestWin tmpwin(NULL,"tmptestwin"); NSLOTS = tmpwin.NSLOTS; } m_StdFname.resize(NSLOTS,""); m_StdFname[ 0] = "DigitalInj"; m_StdFname[ 1] = "HV_off"; m_StdFname[ 2] = "HV_on"; m_StdFname[ 3] = "IVcurve"; m_StdFname[ 4] = "Tuning_roomT"; m_StdFname[ 5] = "Tuned_thres"; m_StdFname[ 6] = ""; m_StdFname[ 7] = "xtalk"; m_StdFname[ 8] = "ToT_CLow"; m_StdFname[ 9] = "ToT_CHigh"; m_StdFname[10] = "leakage_150V"; m_StdFname[11] = "twalk_CLow"; m_StdFname[12] = "twalk_CHigh"; m_StdFname[13] = "HotPixel"; m_StdFname[14] = "Source"; m_StdFname[15] = ""; m_StdFname[16] = "TuningF_roomT"; m_StdFname[17] = "leakage_600V"; m_StdFname[18] = ""; m_StdFname[19] = ""; m_StdFname[20] = "ChipCurr"; m_StdFname[21] = "in_time_thres"; m_StdFname[22] = "StuckPixel"; // cut panel genral options m_CutCreateRoot= false; m_CutIgnoreBad = true; m_CutWebCopy = false; m_CutWebRemove = false; // not used anymore m_CutWebPath = ""; m_CutWebUser = ""; m_CutWebCmd = ""; // histogram names/titles for automated plotting for(i=0;iLOAD && idLOAD && idLOAD && id=0 && id=0 && id=0 && id=0 && id=0 && id=0 && id<(int)m_StdFname.size()) m_StdFname[id] = line; if(m_StdFname[id]=="NONE") m_StdFname[id] = ""; } if(sline.find("CutCreateRoot")!=std::string::npos){ sscanf(line,"CutCreateRoot: %d",&tmpint); m_CutCreateRoot = (bool) tmpint; } if(sline.find("CutIgnoreBad")!=std::string::npos){ sscanf(line,"CutIgnoreBad: %d",&tmpint); m_CutIgnoreBad = (bool) tmpint; } if(sline.find("CutWebCopy")!=std::string::npos){ sscanf(line,"CutWebCopy: %d",&tmpint); m_CutWebCopy = (bool) tmpint; } // if(sline.find("CutWebRemove")!=std::string::npos){ // sscanf(line,"CutWebRemove: %d",&tmpint); // m_CutWebRemove = (bool) tmpint; // } -- obsolete if(sline.find("CutWebPath")!=std::string::npos){ sline.erase(0,12); sline.erase(sline.length()-1,1); m_CutWebPath = sline; } if(sline.find("CutWebUser")!=std::string::npos){ sline.erase(0,12); sline.erase(sline.length()-1,1); m_CutWebUser = sline; } if(sline.find("CutWebCmd")!=std::string::npos){ sline.erase(0,11); sline.erase(sline.length()-1,1); m_CutWebCmd = sline; } if(sline.find("userPDB")!=std::string::npos){ sline.erase(0,9); sline.erase(sline.length()-1,1); m_userPDB = sline; } // decode PDB password if(sline.find("passwdPDB")!=std::string::npos){ sline.erase(0,11); sline.erase(sline.length()-1,1); Q3CString cpasswd = KCodecs::base64Decode(Q3CString(sline.c_str())); m_passwdPDB = (const char*) cpasswd; } if(sline.find("webUploadOpt")!=std::string::npos) sscanf(line,"webUploadOpt: %d",&m_webUploadOpt); if(sline.find("delT0_twalk")!=std::string::npos) sscanf(line,"delT0_twalk: %d",&m_delT0_twalk); if(sline.find("totcheckVar")!=std::string::npos) sscanf(line,"totcheckVar: %d",&m_totcheckVar); if(sline.find("totcheckValue")!=std::string::npos) sscanf(line,"totcheckValue: %f",&m_totcheckValue); if(sline.find("totcheckKeep")!=std::string::npos){ sscanf(line,"totcheckKeep: %d",&tmpint); m_totcheckKeep = (bool) tmpint; } if(sline.find("corPlotOpt")!=std::string::npos){ sscanf(line,"corPlotOpt: %s",line); m_corPlotOpt = line; } if(sline.find("occPlotHisto")!=std::string::npos){ sscanf(line,"occPlotHisto: %d",&tmpint); m_occPlotHisto = (bool) tmpint; } } // end file scanning loop return; }