//////////////////////////////////////////////////////////////////// /// /// \brief User control of the ECA processor /// /// \author Gabriel D. Orebi Gann /// /// /// REVISION HISTORY:\n /// /// \details This file is for user control of the ECA processor /// (equivalent to the CECA bank (eca_control.dat) in SNO). /// This is used in generating the ECA constants (pedestals /// and time slopes). /// /// For application of these to data/MC events, see: /// ECA_calibration.ratdb and ECACal.cc,hh. /// /// //////////////////////////////////////////////////////////////////// { type: "ECAgen", version: 1, run_range: [0, 0], pass: 0, comment: "", timestamp: "", // WORD # IN CECA FOLLOWS IN () isSNOdata: 0, //whether it is SNO data or not eca_type: 1, // (1) 0=nothing, 1=pedestal, 2=Tslope, 3=Qslope NTSlopePoints: 50, //50 is default // Flag for completeness of calibration // Set to 1 iff: 1. It was a partial calibration // 2. AND you want to merge with the previous results // (for this run, if they exist, otherwise for the prev run) merge_eca: 0, merge_run: 0, // run # to use in the merge // (0: use the previous pass of the current run) eca_logverbosity: 0, // Set to 1 for extra details eca_dodroop: 1, // Set to 0 to avoid outputting Droop plots extra_diagnostics: 0, // 0 (none), 1 (extra diagnostic ouput for ped/tslope runs), 2(plots tslope & fits and a ratdb file w/ the errors on the tslope points) // Parameters used for conversion // (14-19) daq_to_pe1: 5., // #. DAQ to pe conversion constant daq_to_pe2: 2.5, // #. DAQ to pe conversion constant daq_to_ns1: 10.0, // #. DAQ to ns Conversion constant daq_to_ns2: 255., // #. DAQ to ns Conversion constant daq_to_ns3: 10., // #. DAQ to ns Conversion constant daq_to_ns4: 0.1, // #. DAQ to ns Conversion constant // Do we want to do the ``difference test'' i.e. compare to previous results? eca_diff: 0, // 0=no, 1=yes //values to use when < 4 events (i.e. fSig calculation is garbage) //set new fSig values based on where fWidth2 is for that cell qhs_width_ranges: [4.0, 8.0, 16.0], qhs_replacement_sigs: [0.966827, 2.90048, 2.90048, 14.5024], qhl_width_ranges: [8.0, 16.0, 32.0], qhl_replacement_sigs: [1.93365, 10.6351, 27.0712, 157.593], qlx_width_ranges: [8.0, 16.0, 32.0], qlx_replacement_sigs: [1.93365, 7.73462, 25.1375, 50.275], tac_width_ranges: [7.0, 13.0], tac_replacement_sigs: [1.93365, 5.80096, 6.76779], // Individual Pedestal Validation Parameters (22-38 in CECA) // order: [lower median, upper median, width, abs diff] qhs_valid: [300.0, 900.0, 8.0, 8.0,], qhl_valid: [300.0, 900.0, 16.0, 16.0,], qlx_valid: [300.0, 900.0, 16.0, 16.0,], tac_valid: [1350.0, 2400.0, 13.0, 13.0,], // Overall Pedestal Tolerances (60-83) // Order for arrays is: QHS,QHL,QLX,TAC PedMaxN0ev: 32, // # Max. acceptable no. chs that failed 0ev test PedMaxN160ev: 32, // # Max. acceptable no. chs that failed lt160 ev test PedMaxNboardID: 32, // # Max. acceptable no. chs that failed board ID check PedMaxNFlag: [256, 256, 256, 256,], // # Max. acceptable no. flagged chs. PedMinAvePed: [530., 530., 530., 1650.,], // # Min. acceptable average PedMaxAvePed: [630., 630., 630., 1750.,], // # and Max. PedMaxAveWidth: [3.,3.,3.,3.,], // Max. acceptable average for widths PedMaxAveDiff: [3.,3.,3.,3.,], // Max. acceptable average for abs diffs PedMaxNChan: 1000, // # Max. acceptable total flagged channels PedMaxNfSigChan: 32, // # Max. acceptable no. chs that use default fSig (i.e. Nev < 4) // Individual TSlope Validation Parameters (41-59 in CECA) width_TStep: 5., // #. Tolerance on step-by-step width check (51) width_maxN: 4, // Max no. of bad widths in a given cell (52) Nev_TStep: 6, // #. Min. acceptable no. of events returned per TStep (53) Nev_maxN: 7, // Max no. TSteps failing Nev check (54) susp_maxN: 8, // #. Max acceptable # suspicious TSteps (55) MaxChisq: 10000., // ChiSqu tolerance (56) Resid_TStep: 1.5, // Tolerance on point-by-point residual (57) cubic_minN_TStep: 6, // Min. acceptable Nev at Tstep to use it in fit (59) NRailedPoints: 1, // Min number of railed points on tslope to raise "cell railed" flag // Tolerances for cubic fit pars: (order [x^1][x^2][x^3]) cubic_min: [5., -0.02, -0.00004,], // 47,44,41 cubic_max: [13., 0.02, 0.00004,], // 48,45,42 cubic_diff: [2., 0.03, 0.00005,], // 49,46,43 cubic_minNfit: 18, // #. Min. acceptable no. of TSteps used in cubic fit (50) // Overall TSlope Tolerances (84-103) TslpMaxNboardID: 32, // # Max. acceptable no. chs that failed board ID checks TslpMaxN0ev: 32, // # Max. acceptable no. chs that had 0ev TslpMaxN0evTStep: 50, // # Max. acceptable no. chs that failed no. events per point test TslpMaxNWidth: 50, // # Max. acceptable no. chs that failed width TslpMaxNFit: 50, // # Max. acceptable no. chs that failed no. points in fit test TslpMaxNSusp: 50, // # Max. acceptable no. chs that failed no. suspicious points test TslpMaxNTAC: 25, // # Max. acceptable no. chs that failed TAC jump test TslpMaxNCubic: [50,50,50,], // # Max. acceptable no. flagged cubic fit pars (^1,2,3)(opp order) TslpMinAveCub: [5., -0.02, -0.00005,], // Min avg for cubic coeffs 98,96,94 TslpMaxAveCub: [13., 0.02, 0.00005,], // Max avg for cubic coeffs 99,97,95 TslpMaxAveCubDiff: [2., 0.03, 0.00005,], // Max avg on diffs for cubic fit pars 102-100 (opp order) TslpMaxNChan: 250, // # Max. acceptable total flagged channels TslpMaxNRailedChan: 32, // # Max acceptable railed channels TslpMaxNSuspPostResetHitsChan: 32, // # Max acceptable channels w/ post-reset hits not consistent with noise TslpMaxNFirstPointBadChan: 32 // # Max acceptable channels w/ bad first point on tslope }