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
Copy file name to clipboardExpand all lines: Detectors/TPC/calibration/include/TPCCalibration/CalculatedEdx.h
+86-10Lines changed: 86 additions & 10 deletions
Original file line number
Diff line number
Diff line change
@@ -46,20 +46,34 @@ namespace o2::tpc
46
46
/// c.setMembers(tpcTrackClIdxVecInput, clusterIndex, tpcTracks); // set the member variables: TrackTPC, TPCClRefElem, o2::tpc::ClusterNativeAccess
47
47
/// c.setRefit(); // set the refit pointer to perform refitting of tracks, otherwise setPropagateTrack to true
48
48
/// start looping over the tracks
49
-
/// c.calculatedEdx(track, output, 0.01, 0.6, CorrectionFlags::TopologyPol | CorrectionFlags::GainFull | CorrectionFlags::GainResidual | CorrectionFlags::dEdxResidual) // this will fill the dEdxInfo output for given track
49
+
/// c.calculatedEdx(track, output, 0.015, 0.60, CorrectionFlags::TopologyPol | CorrectionFlags::dEdxResidual, ClusterFlags::ExcludeEdgeCl) // this will fill the dEdxInfo output for given track
50
50
51
51
enumclassCorrectionFlags : unsignedshort {
52
+
None = 0,
52
53
TopologySimple = 1 << 0, ///< flag for simple analytical topology correction
53
54
TopologyPol = 1 << 1, ///< flag for topology correction from polynomials
54
55
GainFull = 1 << 2, ///< flag for full gain map from calibration container
55
56
GainResidual = 1 << 3, ///< flag for residuals gain map from calibration container
56
57
dEdxResidual = 1 << 4, ///< flag for residual dEdx correction
57
58
};
58
59
60
+
enumclassClusterFlags : unsignedshort {
61
+
None = 0,
62
+
ExcludeSingleCl = 1 << 0, ///< flag to exclude single clusters in dEdx calculation
63
+
ExcludeSplitCl = 1 << 1, ///< flag to exclude split clusters in dEdx calculation
64
+
ExcludeEdgeCl = 1 << 2, ///< flag to exclude sector edge clusters in dEdx calculation
65
+
ExcludeSubthresholdCl = 1 << 3, ///< flag to exclude subthreshold clusters in dEdx calculation
66
+
ExcludeSectorBoundaries = 1 << 4, ///< flag to exclude sector boundary clusters in subthreshold cluster treatment
67
+
};
68
+
59
69
inline CorrectionFlags operator&(CorrectionFlags a, CorrectionFlags b) { returnstatic_cast<CorrectionFlags>(static_cast<unsignedshort>(a) & static_cast<unsignedshort>(b)); }
60
70
inline CorrectionFlags operator~(CorrectionFlags a) { returnstatic_cast<CorrectionFlags>(~static_cast<unsignedshort>(a)); }
61
71
inline CorrectionFlags operator|(CorrectionFlags a, CorrectionFlags b) { returnstatic_cast<CorrectionFlags>(static_cast<unsignedshort>(a) | static_cast<unsignedshort>(b)); }
62
72
73
+
inline ClusterFlags operator&(ClusterFlags a, ClusterFlags b) { returnstatic_cast<ClusterFlags>(static_cast<unsignedshort>(a) & static_cast<unsignedshort>(b)); }
74
+
inline ClusterFlags operator~(ClusterFlags a) { returnstatic_cast<ClusterFlags>(~static_cast<unsignedshort>(a)); }
75
+
inline ClusterFlags operator|(ClusterFlags a, ClusterFlags b) { returnstatic_cast<ClusterFlags>(static_cast<unsignedshort>(a) | static_cast<unsignedshort>(b)); }
/// fill missing clusters with minimum charge (method=0) or minimum charge/2 (method=1) or Landau (method=2)
101
127
voidfillMissingClusters(int missingClusters[4], float minChargeTot, float minChargeMax, int method);
102
128
103
129
/// get the truncated mean for the input track with the truncation range, charge type, region and corrections
@@ -108,11 +134,11 @@ class CalculatedEdx
108
134
/// \param high higher cluster cut
109
135
/// \param mask to apply different corrections: TopologySimple = simple analytical topology correction, TopologyPol = topology correction from polynomials, GainFull = full gain map from calibration container,
110
136
/// GainResidual = residuals gain map from calibration container, dEdxResidual = residual dEdx correction
std::vector<unsignedchar> mTPCRefitterShMap; ///< externally set TPC clusters sharing map
217
+
std::vector<unsignedint> mTPCRefitterOccMap; ///< externally set TPC clusters occupancy map
144
218
std::unique_ptr<o2::gpu::GPUO2InterfaceRefit> mRefit{nullptr}; ///< TPC refitter used for TPC tracks refit during the reconstruction
145
219
146
-
intmMaxMissingCl{2}; ///< maximum number of missing clusters for subthreshold check
220
+
intmMaxMissingCl{1}; ///< maximum number of missing clusters for subthreshold check
221
+
floatmMinChargeTotThreshold{50}; ///< upper limit for minimum charge tot value in subthreshold treatment, i.e for a high dEdx track adding a minimum value of 500 to track as a virtual charge doesn't make sense
222
+
floatmMinChargeMaxThreshold{50}; ///< upper limit for minimum charge max value in subthreshold treatment, i.e for a high dEdx track adding a minimum value of 500 to track as a virtual charge doesn't make sense
147
223
floatmFieldNominalGPUBz{5}; ///< magnetic field in kG, used for track propagation
148
224
boolmPropagateTrack{false}; ///< propagating the track instead of performing a refit
0 commit comments