**Summary**: the code is done see here https://github.com/Lycoris2017/=
KPiX-Analysis/blob/experimental/core/include/rawData.h

The analysis procedure is:

**Pedestal & MAD:**operated on__charge over all cyc= les__, per bucket, per channel, per kpix.**Pedestal median**:__left is from new, right is from ol= d__- Exactly the same results:

<= strong> **channel at bucket =3D=3D0 with charge response =3D=3D 0:**__left from new, right from old__**DONE**check= into these channels and find what are the charge response of them. to unde= rstand what happened inside.- Notice the following difference

- old one determine a median out of ADC/slope values
- new one uses the original ADCs
- how to get the slopes: old one look over fit results from every channel=
's calibration graph, new one take a csv input dumped from slope_vs_channel=
histo with a precision to a certain digits.

- Difference comes from how the slopes are dealt, Uwe's pedestal + cluste=
r analysis code does not filter slope=3D=3D0, I did it. that s why:
- if you check the
**pedestal value**of**pedestal tr= ee**output from Uwe: you get**6144 channels**with bu= cket =3D=3D0 - do the same check with the
**test tree with new framework: you get****6123 channels**with bucket=3D=3D0 **Then you check how many channels of the calibration slopes: you have**~~6144 lines~~- however, check it out, there are many with slope=3D=3D0 or close to 0 s=
ee below:

Left is print out of running pedestal_tree.cxx, ri= ght is the slope database for new analysis

<= /li>

- if you check the

- Notice the following difference

**Noise & fC response**after Pedestal & CM remova= l: per bucket, per channel, per kpix.**Common mode noise**: calculated__per cycle__with co= nditions of__MAD!=3D0 & slope is valid__**fC response**:**left**is from**new=**,**right**is from**cluster_analysis.cxx**- Noise distribution: left is new, right is from cluster_analysis.cxx

=