I finally realized my idea to compare the layer energy depositions for trajectories at the same angles ( with 1/cos(theta) ~1.1 - 1.6) for 2 cases:
1) when trajectory goes completely through one crystal
2) when trajectory goes through two adjacent crystals and signal per crystal is twice smaller.
To avoid zero suppression problem I excluded the events with pathlength in any crystal smaller than 7 mm (corresponding to 3 MeV ).
As in case 2 the trajectory crosses the gap between crystals, the signal is smaller than in case 1, but this decrease has simple connection to the trajectory angle along the crystal ( dx = exitPosX-entryPosX), in fact dE/E = -gap/dx, so the linear fit of dE with linear function p0+p1*(1/dx) has p1 = E*gap and p0 = true proton peak position (corrected for existance of the gap).
The results of the procedure is the following:
for case 1 proton peak position doesn't depend on dx and average value is 10.40 +- 0.02 MeV
for case 2 proton peak indeed vary linearly with 1/dx and linear fit has p1 = -10 which corresponds to crystal to crystal gap = 1 mm (which is rather close to reality) and p0 = 10.69 +- 0.03 MeV, so the nonlinearity between 7 MeV and 14 MeV is ~3 %, but going to opposite direction: relative gain at 7 MeV is 3 % BIGGER than at 14 MeV.
The proton peak in single crystal energy depositions (standard calibration procedure, when crystal is inclined along the crystal direction) is 10.457+-0.003 MeV and consistent with case 1 (10.40 MeV).
I'll follow this pass and will find the same way the nonlinearity near He peak (comparing gains at 30 MeV and at 60 MeV).
To compare 15 MeV with 30 MeV I'll try to use the slow protons (you remember they have a peak at 20-30 MeV in pathlength corrected energy), as in my current procedure I compare strictly the particles with the same angle and energy, just having different position accross the crystals.
I've done the same procedure for He and for stopping albedo protons.
For He results are consistent with main proton peak:
1) He peak position is 44.9 +- 0.27 MeV for case 1 (no angular dependency)
2) corrected He peak position is 46.2 +- 0.3 MeV for case 2 (linear dependency on 1/dx is consistent with 1 mm gap between crystals)
but errors are ~0.7% so the difference of 3% between case 1 and case 2 (the same direction as for protons and opposite to what is expected from the beam test) is at 3 standard deviations.
I think we have to process full statistics (now I used 20 days - we can have 300 days)
For stopping albedo protons results are different - both case 1 and case 2 has angular dependency which is 2 times bigger than 1 mm gap. I guess the multiple scattering in the tracker doesn't allow the proper selection of case 1 and case 2 (it requires ~1-2 mm position resolution of track position extrapolated to the CAL, while the multiple scattering angle is ~0.03-0.05, so position uncertainty of extrapolation to CAL will be 20 cm *0.05 = 1 cm and it is insufficient.
it is possible to make selection between cases based on the ratio of signals in adjacent crystals - this would be much more precise. We need to add calculation of these quantities to calibGenCAL processing.
It is also not clear why for "main" protons the signal for case 2 is 3% bigger than for case 1. There could be either some technical reason (readout noise, crosstalk, ghosts, etc.) or I don't know what.