Main Page | Packages | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | Related Pages

responseCurve.java

00001 // Script to do a response curve
00002 SI = GuiComponents.System.SystemInterface.getInstance();
00003 api = SI.getSctApi();
00004 cal = SI.getCalibrationController();
00005 scanRequest = cal.getScanLibrary().defaultScan();
00006 scan = scanRequest.getScan();
00007 
00008 // Build the scan object
00009 scan.setNTrigs(1000);
00010 scan.setOption(Sct_SctApi.Scan.ScanOptions.loopCalLine, 1);
00011 
00012 trigger = scan.getTrigger1();
00013 trigger.calL1A(0x82);
00014 
00015 // Pre-scan module configuration
00016 sdesc = Sct.ScanDescriptors.getInstance();
00017 api.modifyABCDVar(sdesc.valueFor("ST_COMPRESSION"), 1.0);
00018 api.modifyABCDVar(sdesc.valueFor("ST_EDGE_DETECT"), 0.0);
00019 api.modifyABCDVar(sdesc.valueFor("ST_SEND_MASK"), 0.0);
00020 
00021 charges = {0.5, 0.75, 1.0, 1.25, 1.5, 2, 3, 4, 6, 8};
00022 
00023 double lowLimit = 0;
00024 double highLimit = 633;
00025 
00026 for(int i=0; i<10; i++) {
00027     calChargefC = charges[i];
00028 
00029     api.modifyABCDVar(sdesc.valueFor("ST_QCAL"), calChargefC);
00030 
00031     offset = 0.0;  // This is passed into thresholdScan by default...
00032 
00033     lo = 40.0 * calChargefC + offset/2.;
00034     hi = 150.0 + 70.0 * calChargefC + offset;
00035 
00036     //Only set to lowLimit if we have some cal charge!
00037     if ((calChargefC > 0 && lo < lowLimit) || calChargefC < 0) lo = lowLimit;
00038     else if (lo < 0) lo = 0;
00039     if (hi > highLimit || calChargefC < 0) hi = highLimit;
00040     if (hi < lo) hi = lo + 100;
00041         
00042     scan.configure((short)sdesc.valueFor("ST_VTHR"), lo, hi, 5.0);
00043 
00044     cal.doScan(scanRequest);
00045 }

Generated on Fri Jan 14 12:49:56 2005 for SCT DAQ/DCS Software - Java by doxygen 1.3.5