160 likes | 248 Views
Calibration and Monitoring - Online Needs. Glenn R. Young. ORNL. “Lies, Damned Lies, & Electronics”. apologies to M. Twain. Things You Need to Prepare. Mappings Where is channel #i on FEM #j in Sector #k? Calibrations Energy equivalent per ADC count Time equivalent per ADC count Time-0
E N D
Calibration and Monitoring - Online Needs Glenn R. Young ORNL
“Lies, Damned Lies, & Electronics” • apologies to M. Twain
Things You Need to Prepare • Mappings • Where is channel #i on FEM #j in Sector #k? • Calibrations • Energy equivalent per ADC count • Time equivalent per ADC count • Time-0 • Monitoring • Gain variation • Channel health • Timescales (hourly, diurnal, “aging” in 10 years) • All this “stuff” stores in a database
Mappings • Electrodes hooked to FEM cards • Which FEM cards in each Sector • For one FEM card: • Production serial number • Platform/Rack/Crate as applicable • Low Voltage supply • High Voltage supply (?) • Timing Fiber input • DCM Fiber output (“routing” FEM?) • Trigger Fiber output, if applicable • ARCnet node ID, subnet ID • Bad Channel Maps • Pulser Masking
Calibration • Gain Calibration • electrode/amplifier/digitizer • AMU or TMU cell • DAC-to-energy/time • Thresholds in useful units (mips) • Trigger connection, thresholds • Time Calibration • See above, plus stepping of timing markers • sampling times, (bandwidth limiters) • Digitizer INL, DNL • How wide is a given channel in MeV or ns? • Plateau, Efficiency Determination • Trigger Settings • Thresholds, cut limits • Road widths • Multiplicities
Monitoring • Pedestal centroids, RMS values • Gain drifts • Time-zero drifts • Channel health • Efficiency changes • Resolution variations
A Partial Example - EMCal • Basic idea is familiar • configure everything • fire some signal input • tell the trigger to take this event • write a lot of stuff into databases • change some variable(s) • repeat N times • analyze the results, decide what you did wrong, repeat until correct....
What is Available to Work With? • PbSc: laser, PMT-side LED • PbGl: 3 LED types on front • Maskable calibration pulser - energy • Maskable calibration pulser - timing • Analog mux (geeks only) • Various mask registers
What is to be Determined? • R U There? • Pedestal centroid and rms values • Energy calibration • Light-injection as long-term reference • Cosmic rays (or beam muons) for scale • Relative gain calibration: x1 vs. x16 • Timing channel calibrations • AMU Cell-Dependences, if any • Timing discriminator threshold • Cosmic muon, trigger thresholds • Relative timing to RHIC clock
What has to be Setup, Downloaded? • LV, HV assumed “on”, within limits • ARCnet has to be awake (else kaputt) • FPGAs downloaded • Glink Rx (timing) locked • Glink Tx (data, trigger) locked • Serial downloads performed • AMU Cell offsets chosen, ADC setup • Variable Gain Amp: gain and bandwidth limit • Discriminator DAC settings, TAC Range • Pulser DAC settings • Trigger threshold DAC settings • Channel masks set (pulser, hook-to-trigger) • Any “enable” bits • Mux-select, if scope-probing today • Any board-ID that is configurable • Programmable Pulse Generator Setup
Choose Independent Variable, Reps • HV? • DAC value? • Channel mask? • External light/charge source? • Pick a number of repetitions • (perhaps nest loops?) • Decide what, if anything, goes into your “User Words” written to DCM
Set Up The Scheduler • “Scheduler” - a Granule Timing Module function • You have three sets of Mode Bits • FEM Mode Bits • initialize, run, fire on-board pulser • LVL-1 Mode Bits • tell LVL-1 to force an accept of correct crossing • tell LVL-2 not to reject this event in ATPs • PPG Mode bits • fire external stimuli at chosen time delay • light injected into PbSc, PbGl, RICH, TOF, BB • charge injected into MuTR anode wires • You have to Time-(mis)Align the Mode Bits • when you fire the laser and/or pulser • when you fire the LVL-1 trigger • when you reset charge-integrators • how long these things last (if >1 tick) • Note: PPG has time-vernier for its outputs
Run Control • Now things are prepared • Take N events • End Run (?) • Change HV or DAC or laser or ... • Re-initialize, if needed • e.g. re-load of serial strings likely • re-load of FPGA if parameters stored there • very likely need to re-start Scheduler
Some Proceedures I’d Like to Have • Method to step thru N High Voltages • “equally spaced” • pick start HV, step size, number of shots • take data, extract centroids and RMS values • store in “spreadsheet” • index by channel #, HV value, signal source/value • fit peak position vs. HV, extract gain coefficients, put those in database • choose future HV settings using this info • Method to step thru N DAC settings • Method to step thru N t0 settings • Method to step thru N channel masks • Method to step thru N pulser settings • Method to step thru all LVL-1 Mux-n-Mask settings
More Proceedures I’d Like to Have • Method to slew HV for plateau, efficiency determination • Method to use HV vs. gain info • select HV, download it • fire (properly configured) pulser N times • check centroids and RMS values • tweak “near-outlying” channels • report misbehaving channels • blacklist dead channels • Method to check trigger uniformity • Method to check trigger response • set up pattern of pulse-heights/# strips/fired roads • used Forced Accept to take event, no matter what LVL-1 decision is • compare expected to actual behavior • adjust LVL-1 cuts if needs be • fix an errors found, e.g. in road indices
Some Tools Needed • Ability to pull raw data “all the way up” to analysis workstations • DCM in pass-thru mode • You can pad bits, add header/trailer, but DO NOT mess with the FEM’s basic payload • Histogramming, peak fitting • Running sums, means, rms? • Much of “tuneup” can • write to disk,analyze, examine, tune parameters • discard “last data” and re-start/repeat • Store and query in “database” • “Best”place to store pedestals may be (only?) in DCM memory • Over-ride of LVL-1 decision (Forced Accept) • Way to move events by 1-few “ticks” in Scheduler • Write/Readback/Compare/Alarm-on-Non-Match of Serial via ARCnet