-
Notifications
You must be signed in to change notification settings - Fork 483
TPC: Add scaling of VDrift with T/P #14602
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
TPC: Add scaling of VDrift with T/P #14602
Conversation
matthias-kleiner
commented
Aug 19, 2025
- scaling of the VDrift is automatically enabled
- the reference T/P is extracted for VDrift objects without stored T/P if firstTime and lastTime of VDrift object is in the range +-20 minutes of available temperature and pressure
- scaling with T/P can be disabled by setting 'TPCGasParam.Temperature=0;TPCGasParam.Pressure=0'
- reference T/P is extracted automatically for online created VDrift with ITSTgl and laser method
- add storing of temperature, pressure and used VDrift in timeseries
- scaling of the VDrift is automatically enabled - the reference T/P is extracted for VDrift objects without stored T/P if firstTime and lastTime of VDrift object is in the range +-20 minutes of available temperature and pressure - scaling with T/P can be disabled by setting 'TPCGasParam.Temperature=0;TPCGasParam.Pressure=0' - reference T/P is extracted automatically for online created VDrift with ITSTgl and laser method - add storing of temperature. pressure and used VDrift in timeseries
|
REQUEST FOR PRODUCTION RELEASES: This will add The following labels are available |
| newVRef = normVDrift; // no T/P scaling applied | ||
| } else { | ||
| // linear scaling based on relative change of T/P | ||
| newVRef = normVDrift * (1 + (tp - refTP) / refTP); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@matthias-kleiner I am wondering if this is what we want. The original reason behind this complicated normalizations was to have
a reasonable refVDrift constant over the whole, so that the residuals extraction calibration, which have granularity different from that of VDrift, would use the same refVDrift value, see
AliceO2/Detectors/TPC/calibration/SpacePoints/src/TrackInterpolation.cxx
Lines 1127 to 1133 in 89bef8a
| // Attention! For the refit we are using reference VDrift and TDriftOffest rather than high-rate calibrated, since we want to have fixed reference over the run | |
| if (v.refVDrift != mTPCVDriftRef) { | |
| mTPCVDriftRef = v.refVDrift; | |
| mTPCDriftTimeOffsetRef = v.refTimeOffset; | |
| LOGP(info, "Imposing reference VDrift={}/TDrift={} for TPC residuals extraction", mTPCVDriftRef, mTPCDriftTimeOffsetRef); | |
| o2::tpc::TPCFastTransformHelperO2::instance()->updateCalibration(*mFastTransform, 0, 1.0, mTPCVDriftRef, mTPCDriftTimeOffsetRef); | |
| } |
Therefore, the variation of the full VDrift was provided via time-dependent
corrFact.
In the current code, the normalize method does not modify the result of getVDrift(), it is just
- setting the
refVDriftto the requestednewVRefif it isnon-0and readjusts thecorrFactto have the full VDrift unchanged (used to make sure that the next calibration slot creates VDrift with the same reference),
or - at the 1st call w/o argument normalizes
refVDriftto full VDrift and therefore sets the corrections to 1 (to have therefVDriftas correct as possible).
This change will not only scale the final getVDrift() value by the relative T/P change (which is OK) but will also modify the refVDrift according to the current meteo condition. Should not instead just corrFact (and refTP) adjusted to account for changed T/P?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hi @shahor02 , thanks for the comment and information. I was not aware of that specific reason why we wanted to have a constant refVDrift. In that case, we should indeed simply adjust the corrFact to account for changes in the T/P.
wiechula
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks fine for me. @shahor02 if you also agree, this can be merged.
|
Before we merge it: was it tested with real data? |
|
Hello @shahor02 ,
|
|
Thanks @matthias-kleiner ! |
* TPC: Add scaling of VDrift with T/P - scaling of the VDrift is automatically enabled - the reference T/P is extracted for VDrift objects without stored T/P if firstTime and lastTime of VDrift object is in the range +-20 minutes of available temperature and pressure - scaling with T/P can be disabled by setting 'TPCGasParam.Temperature=0;TPCGasParam.Pressure=0' - reference T/P is extracted automatically for online created VDrift with ITSTgl and laser method - add storing of temperature. pressure and used VDrift in timeseries * VDrift: Keep refVDrift constant by changing corrFact with T/P

