Skip to content

pedestal leveling #180

@tomeichlersmith

Description

@tomeichlersmith

One of the tasks that is involved with overall pedestal alignment is "leveling" the pedestals so that they all are within noise (~few ADC) of their median.

Chelsea @rodr1001 has developed a algorithm (#162 (comment)) that is leading to decent results at UMN and so I'm going to translate into C++ so we can test it on other chips and solidify it.

Implementation

I'm going to create a new algorithm namespace to house this function and other functions like it that are higher level tasks that direct interaction with a Target, hopefully making them more portable. Another function that could fit into this namespace is the set_toa function from #177

  • Baseline Run: (sign_dacb=0, dacb=0, trim_inv=0)
    • defines "target" pedestal (median over all channels within a link)
    • defines "baseline" pedestals (median within channels)
  • Highend Run: (sign_dacb=0, dacb=0, trim_inv=63)
    • defines "highend" pedestals (median within channels)
  • Lowend Run: (sign_dacb=1, dacb=31, trim_inv=0)
    • defines "lowend" pedestals (median within channels)

pseudo-code

for each ch in channels:
  if baseline pedestal for channel < target for link:
    set channel trim_inv to interpolated value between highend and baseline
  else
    set channel sign_dacb to 1
    set channel dacb to interpolated value between lowend and baseline

Metadata

Metadata

Labels

enhancementNew feature or request

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions