TPC VDrift: make VDriftHelper usable outside DPL (e.g. O2Physics) - #15749
TPC VDrift: make VDriftHelper usable outside DPL (e.g. O2Physics)#15749matthias-kleiner wants to merge 1 commit into
Conversation
Split VDriftHelper::extractCCDBInputs into the CCDB-fetching part and a framework-independent updateVDrift() and add BasicCCDBManager-based overloads to VDriftHelper/PressureTemperatureHelper so O2Physics can call these directly instead of reimplementing the T/P-scaling logic (see AliceO2Group/O2Physics#17656). Calling these every event is cheap: laser/TGL/pressure/temperature are only re-accounted when the underlying CCDB object actually changed and logging is throttled to avoid stdout spam in trains.
shahor02
left a comment
There was a problem hiding this comment.
Thanks @matthias-kleiner !
@f3sch with this you just need to create a VDriftHelper instance and simply do
mVDHelper.extractCCDBInputs(*mCCDB, timestamp);
return mVDHelper.getVDriftObject().getVDrift();
either directly from the analysis task of from your TPCVDriftManager.
| bool extractTPForVDrift(VDriftCorrFact& vdrift, int64_t tsStepMS = 100 * 1000); | ||
|
|
||
| /// Combine the previously accounted laser/ITS-TPC-Tgl inputs, applying T/P scaling if possible, into mVD. | ||
| void updateVDrift(long currentTimeMS); |
There was a problem hiding this comment.
The timestamps in O2Physics that we get from the table are unsigned long (uint64_t). Might be good to change this so there isn't a problem where some values go to overflow of signed longs and switch sign.
There was a problem hiding this comment.
The type used by the CCDB API is anyway long (signed), there is no point in correcting intermediate types.
But we will not have an overflow till February 2106.
There was a problem hiding this comment.
Oh okay, then it's a bit weird, that the timestamp table return unsigned long, but okay.
|
Error while checking build/O2/fullCI_slc9 for 489d19f at 2026-09-02 14:29: Full log here. |
Split VDriftHelper::extractCCDBInputs into the CCDB-fetching part and a framework-independent updateVDrift() and add BasicCCDBManager-based overloads to VDriftHelper/PressureTemperatureHelper so O2Physics can call these directly instead of reimplementing the T/P-scaling logic (see AliceO2Group/O2Physics#17656). Calling these every event is cheap: laser/TGL/pressure/temperature are only re-accounted when the underlying CCDB object actually changed and logging is throttled to avoid stdout spam in trains.