You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
TPC dEdx: automatically loading calib objects from CCDB
- adding options for disabling loading calibrations from CCDB
- using the gain map to get the original charge which was used during
the zero supresison
- apply residual gain map on cluster charge
- smooth zero supression threshold map
- disable loading of CCDB objects, when calibs are set from file
- TPC clusterer: automatically loading the gain map from the CCDB
Copy file name to clipboardExpand all lines: GPU/GPUTracking/DataTypes/CalibdEdxContainer.h
+94-8Lines changed: 94 additions & 8 deletions
Original file line number
Diff line number
Diff line change
@@ -32,6 +32,22 @@
32
32
namespaceo2::tpc
33
33
{
34
34
35
+
/// flags to set which corrections will be loaded from the CCDB
36
+
enumclassCalibsdEdx : unsignedshort {
37
+
CalTopologySpline = 1 << 0, ///< flag for a topology correction using splines
38
+
CalTopologyPol = 1 << 1, ///< flag for a topology correction using polynomials
39
+
CalThresholdMap = 1 << 2, ///< flag for using threshold map
40
+
CalGainMap = 1 << 3, ///< flag for using the gain map to get the correct cluster charge
41
+
CalResidualGainMap = 1 << 4, ///< flag for applying residual gain map
42
+
CalTimeGain = 1 << 5, ///< flag for residual dE/dx time dependent gain correction
43
+
};
44
+
45
+
inline CalibsdEdx operator|(CalibsdEdx a, CalibsdEdx b) { returnstatic_cast<CalibsdEdx>(static_cast<int>(a) | static_cast<int>(b)); }
46
+
47
+
inline CalibsdEdx operator&(CalibsdEdx a, CalibsdEdx b) { returnstatic_cast<CalibsdEdx>(static_cast<int>(a) & static_cast<int>(b)); }
48
+
49
+
inline CalibsdEdx operator~(CalibsdEdx a) { returnstatic_cast<CalibsdEdx>(~static_cast<int>(a)); }
50
+
35
51
///
36
52
/// This container class contains all necessary corrections for the dE/dx
37
53
/// Currently it holds the residual dE/dx correction and the track topology correction, which can be either provided by 2D-splines or by 5D-polynomials.
@@ -107,13 +123,26 @@ class CalibdEdxContainer : public o2::gpu::FlatObject
CalibdEdxTrackTopologySpline* mCalibTrackTopologySpline{nullptr}; ///< calibration for the track topology correction (splines)
169
-
CalibdEdxTrackTopologyPol* mCalibTrackTopologyPol{nullptr}; ///< calibration for the track topology correction (polynomial)
170
-
o2::gpu::TPCPadGainCalib mThresholdMap{}; ///< calibration object containing the zero supression threshold map
171
-
CalibdEdxCorrection mCalibResidualdEdx{}; ///< calibration for the residual dE/dx correction
239
+
CalibdEdxTrackTopologySpline* mCalibTrackTopologySpline{nullptr}; ///< calibration for the track topology correction (splines)
240
+
CalibdEdxTrackTopologyPol* mCalibTrackTopologyPol{nullptr}; ///< calibration for the track topology correction (polynomial)
241
+
o2::gpu::TPCPadGainCalib mThresholdMap{}; ///< calibration object containing the zero supression threshold map
242
+
o2::gpu::TPCPadGainCalib mGainMap{}; ///< calibration object containing the gain map
243
+
o2::gpu::TPCPadGainCalib mGainMapResidual{}; ///< calibration object containing the residual gain map
244
+
CalibdEdxCorrection mCalibResidualdEdx{}; ///< calibration for the residual dE/dx correction
245
+
boolmApplyFullGainMap{false}; ///< if set to true the cluster charge will be corrected with the full gain map (when the gain map was not applied during the clusterizer)
246
+
CalibsdEdx mCalibsLoad{CalibsdEdx::CalTopologyPol | CalibsdEdx::CalThresholdMap | CalibsdEdx::CalGainMap | CalibsdEdx::CalResidualGainMap | CalibsdEdx::CalTimeGain}; ///< flags to set which corrections will be loaded from the CCDB and used during calculation of the dE/dx
172
247
173
248
#if !defined(GPUCA_GPUCODE)
174
249
template <classType>
@@ -179,6 +254,9 @@ class CalibdEdxContainer : public o2::gpu::FlatObject
/// this functions 'smoothes' a CalDet by calculating for each value in a pad the average value using the neighbouring pads, but do not take into account the current pad
273
+
/// \return returns 'smoothed' CalDet object
274
+
/// \param thresholdMap zero supression threshold map which will be 'smoothed'
275
+
/// \param maxThreshold max threshold value which will be considered for averaging
276
+
/// \param nPadsInRowCl number of pads in row direction which will be taken into account (+- nPadsInRowCl)
277
+
/// \param nPadsInPadCl number of pads in pad direction which will be taken into account (+- nPadsInPadCl)
0 commit comments