Up: MicroDAQ Data Handling

The ttm_par Configuration Parameters for MicroDAQ Data Translation

Ported MiniDAQ i960 code supports ttm's MiniDAQ-format output, implementing much, but not all, of MiniDAQ's functionality. (No functionality was deliberately removed, but the MiniDAQ 68K processors, not the i960's, handled table creation and output, and only the essential parts were replaced in ttm.) Not surprisingly, most of the parameters in the single-row ttm_par table derive from MiniDAQ's configuration parameters and have nearly identical names. They are summarized in the following table.

NOTE: The ttm_par parameter values are checked against allowed values and for consistency at the start of a run; illegal or inconsistent values are usually reset, accompanied by a warning message, whenever a plausible choice is possible.

struct ttm_pars {
//Type  Name                    Default   ; Meaning
//--------------------------------------------------------------------------------
  char  infile_name[200];  // Null; Path and name of input data file
  char  infile_type[40];   // Null; Type of input data="DAQ"
  char  outfile_name[200]; // Null; Path and name of .xdf output data file
  char  outfile_type[40];  // Null; Type of output data="MINIDAQ"
  char  tbltype_path[200]; // Null; Path to .idl table definitions for ttm
  long  inbuf_size_req_kb; //    0; Min. size of input data buffer (KB)
  long  sector_id;         //    0; Requested sector (1,24; 0=first found with data)
  long  rdo_id;            //    0; Requested RDO location (1,6; 0=all on sector)
  long  mz_id;             //    0; Requested mezzanine card (1,3; 0=all for RDO)
  long	run_type;          //    0; Run type (2=Pedestal)
  long	trigger_mode;      //    0; Run mode (0=indefinite length; 2=fixed length)
  long	n_trigs;           //   64; Number of events for fixed-length run;
                           //       typically, 64 for pedestal and gain runs
                           //       (limited to prevent overflow in summing variables)
  long	map_pads;          //    1; No current effect (=1)
  long	sub_peds;          //    0; Subtract pedestals (0=no, 1=yes); untested in ttm
  long	zero_suppress;     //    0; Zero-suppress data (0=no, 1=yes); untested in ttm
  long	bad_suppress;      //    0; Suppress bad-channel data (0=no, 1=yes); untested in ttm
  long	zp_thresh;         //    3; Ped. sub. ADC thresh.; used in defining bad channels
  long	min_zp_seq;        //    2; Min. sequence length *above* threshold
  long	max_zp_seq;        //  255; Max. sequence length
  long	max_zp_seq_mode;   //    0; -1 = Reject entire sequence
                           //        0 = Break into pieces of acceptable length
                           //        1 = Reject low pixels
                           //        2 = Reject high pixels
  long	zp_presamples;     //    1; Timebins prepended to above-threshold sequence
  long	zp_postsamples;    //    1; Timebins appended to above-threshold sequence
  long	trunc_ped;         //    0; ABS max diff. between existing ped table and new ped. measurement
                           //       within a time bin; 0=no cut applied.
  long	min_ped;           //    0; min. accepted pedestal datum
  long	max_ped;           // 1023; max. accepted pedestal datum
  long	max_ped_noise;     //    5; max. allowed ped RMS in a time bin
  long	max_noisy_peds;    //    5; max. allowed time bins with noisy pedestal in channel
  long	ped_algorithm;     //    0; Pedestal algorithm (0=only defined possibility)
  long	gain_pulse_thresh; //    0; Threshold for the ground-wire pulse above pedestal,
                           //       applied AFTER averaging events; used for gain calibration
  long	min_gain_bucket;   //   70; Lower time bin for ground-wire pulse search window, 1-512
  long	max_gain_bucket;   //   95; Upper time bin for ground-wire pulse search window, 1-512
  long	gain_presamples;   //    1; Time bins to prepend to ground-wire pulse found
  long	gain_postsamples;  //    1; Time bins to append to ground-wire pulse found
  long	gain_calib;        //    0; gain=1024*(ADC-count sum in calib. pulse)/gain_calib;
                           //       (0=use average for channels on RDO, after excluding gains
                           //       in the lower or upper sixths of the distribution for RDO
  long	min_frac_gain;     //   50; Min. allowed channel gain; used in defining bad channels
  long	max_frac_gain;     //  150; Max. allowed channel gain; used in defining bad channels
                           //       100%*[gain/(gain calib.)]*[(norm. pad area)/(pad area)]
  long	gain_algorithm;    //    0; Gain algorithm ID (0=only defined possibility)
  long	incl_geom;         //    0; No effect for tpm; 0 or 1, where 0=FALSE and 1=TRUE
  long	incl_header;       //    0; No effect for tpm; 0 or 1, where 0=FALSE and 1=TRUE

  long	dump_8bit_trunc;   //    1; Output TruncPeds 8-bit pedestal data; ADC>255 set to 255;
                           //       0 or 1, where 0=FALSE and 1=TRUE
  long	dump_8bit_trans;   //    0; Output ByteData 8-bit data, via 10-to-8-bit translation;
                           //       0 or 1, where 0=FALSE and 1=TRUE
  long	dump_10bit;        //    0; Output ShortData 16-bit data, limited to 0:1023
                           //       ADC>ADC_OVERFLOW=1010 (current default) set to 1023;
                           //       0 or 1, where 0=FALSE and 1=TRUE
  long	dump_ped_means;    //    0; Output PedsMeans table; values are mean pedestals *X8*;
                           //       0 or 1, where 0=FALSE and 1=TRUE
  long	dump_ped_shifts;   //    0; Output PedsShifts table; untested in ttm;
                           //       0 or 1, where 0=FALSE and 1=TRUE
  long	dump_ped_widths;   //    0; Output PedsWidths table; values are rms pedestals *X8*;
                           //       0 or 1, where 0=FALSE and 1=TRUE
  long	dump_ped_status;   //    0; No effect for tpm;
                           //       0 or 1, where 0=FALSE and 1=TRUE
  long	dump_ped_errors;   //    0; Output ped errors table; TOTAL bad time bins for chan.;
                           //       0 or 1, where 0=FALSE and 1=TRUE
  long	dump_gains;        //    0; No effect for tpm;
                           //       0 or 1, where 0=FALSE and 1=TRUE
  long	dump_gain_errors;  //    0; Not yet implemented;
                           //       0 or 1, where 0=FALSE and 1=TRUE
  long	dump_adc_map;      //    0; No effect for tpm;
                           //       0 or 1, where 0=FALSE and 1=TRUE
  long	dump_gain_shifts;  //    0; No effect for tpm;
                           //       0 or 1, where 0=FALSE and 1=TRUE
  long	dump_bad;          //    0; No effect for tpm;
                           //       0 or 1, where 0=FALSE and 1=TRUE
  long	dump_geom_errors;  //    0; Output the GeomErrors table;
                           //       0 or 1, where 0=FALSE and 1=TRUE
  long	update_peds;       //    0; Update internal pedestal table;
                           //       0 or 1, where 0=FALSE and 1=TRUE
  long	update_gains;      //    0; Update the internal gain table; untested for tpm;
                           //       0 or 1, where 0=FALSE and 1=TRUE
  long	update_bad;        //    0; Update the internal bad-channel table; untested for tpm;
                           //       0 or 1, where 0=FALSE and 1=TRUE
  long	clear_bad;         //    0; Set channels in sector marked "bad" back to "good";
                           //       0 or 1, where 0=FALSE and 1=TRUE
};


Page maintenance:

Roy Bossingham, LBNL
RRBossingham@lbl.gov