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
float maxSubthresholdChargeTot = 100000.f; ///< upper limit for the per-region minimum qTot used as the virtual charge of a subthreshold cluster (default effectively disables the cap)
110
108
float maxSubthresholdChargeMax = 100000.f; ///< upper limit for the per-region minimum qMax used as the virtual charge of a subthreshold cluster (default effectively disables the cap)
109
+
float low = 0.015f; ///< lower cluster cut
110
+
float high = 0.6f; ///< higher cluster cut
111
+
std::string debugRootFile = "dEdxDebug.root"; ///< debug streamer output file used if mDebug is set
112
+
};
113
+
114
+
/// \brief per-cluster info needed by the calculatedEdx()/calculatedEdxMultipleSettings() overloads that take clusters directly instead of extracting them from the track via mTPCTrackClIdxVecInput/mClusterIndex
115
+
/// isShared cannot be looked up from mTPCRefitterShMap for externally supplied clusters, so it must be supplied by the caller
116
+
structClInfo {
117
+
unsignedchar sectorIndex = 0;
118
+
unsignedchar rowIndex = 0;
119
+
bool isShared = false;
111
120
};
112
121
122
+
using ClInfoVec = std::vector<ClInfo>;
123
+
113
124
classCalculatedEdx
114
125
{
115
126
public:
@@ -189,6 +200,10 @@ class CalculatedEdx
189
200
/// \param rowOrder (sector, row) keys in the order they are first encountered while scanning the track's native cluster references (0..nClusterReferences-1), i.e. the track's true physical row-traversal order
/// same as handleSameRowClusters() above, but groups/combines externally supplied clusters instead of the track's clusters accessed via mTPCTrackClIdxVecInput/mClusterIndex
204
+
/// \param rowOrder (sector, row) keys in the order they are first encountered while scanning clusters (0..clusters.size()-1), i.e. the order they were supplied in
/// get the truncated mean for the input track with the truncation range, charge type, region and corrections
193
208
/// the cluster charge is normalized by effective length*gain, you can turn off the normalization by setting all corrections to false
194
209
/// \param track input track
@@ -207,7 +222,18 @@ class CalculatedEdx
207
222
/// \param outputs output dEdxInfo, filled with one entry per entry in settingsList, in the same order
208
223
/// \param averageOcc output average cluster occupancy of the track, per TPC region; a single value, since occupancy does not depend on the dEdx settings and is therefore the same for every entry in settingsList
209
224
/// \param settingsList list of dEdx settings to evaluate for this track
/// \param mcLabel if non-null and mDebug is set, written to the "dEdxDebugTrack" row of every settingsList entry so debug rows can be matched back to the true MC track
/// same as calculatedEdx() above, but takes the track's clusters and per-cluster info directly instead of extracting them from the track via mTPCTrackClIdxVecInput/mClusterIndex
229
+
/// \param clusters clusters of the track, one entry per entry in clusterInfos
230
+
/// \param clusterInfos per-cluster (sectorIndex, rowIndex, isShared), one entry per entry in clusters
/// same as calculatedEdxMultipleSettings() above, but takes the track's clusters and per-cluster info directly instead of extracting them from the track via mTPCTrackClIdxVecInput/mClusterIndex
234
+
/// \param clusters clusters of the track, one entry per entry in clusterInfos
235
+
/// \param clusterInfos per-cluster (sectorIndex, rowIndex, isShared), one entry per entry in clusters
/// same as gatherRowClusterData() above, but sources clusters from externally supplied clusters/clusterInfos instead of the track's own cluster references
358
+
/// \param track input track, mutated in place by refit/propagation
359
+
/// \param clusters clusters of the track, one entry per entry in clusterInfos
360
+
/// \param clusterInfos per-cluster (sectorIndex, rowIndex, isShared), one entry per entry in clusters
361
+
/// \param rowData output per-row data
362
+
/// \param averageOcc output average cluster occupancy of the track, per TPC region
/// per-row processing shared by both gatherRowClusterData() overloads, once the row's cluster/sector/row/isCombined/isShared are known regardless of where they came from:
366
+
/// refits/propagates the track to this row, looks up threshold/gain, checks the dead-channel map and missing-cluster gaps, and appends the resulting entry to rowData
367
+
/// \param track input track, mutated in place by refit/propagation
368
+
/// \param cl the (possibly same-row-combined) cluster for this row
369
+
/// \param sectorIndex sector of this row
370
+
/// \param rowIndex TPC row index
371
+
/// \param isCombined true if cl is the result of combining multiple clusters in the same (sector, row)
372
+
/// \param isShared true if the row's cluster(s) are shared between tracks
373
+
/// \param rowIndexOld rowIndex of the previous entry appended to rowData (255 if this is the first row)
374
+
/// \param sectorIndexOld sectorIndex of the previous entry appended to rowData (255 if this is the first row)
375
+
/// \param occupancyROC per-region occupancy accumulator, updated in place
376
+
/// \param rowData output per-row data; the new row is appended, and rowData.back() (if non-empty) is read as the previous row for the missing-cluster-gap check
/// compute the dEdx output for one dEdx settings entry from the row data previously gathered by gatherRowClusterData()
332
380
/// \param rowData per row data gathered by gatherRowClusterData() for the track being processed
333
381
/// \param settings dEdx settings to apply
@@ -336,7 +384,8 @@ class CalculatedEdx
336
384
/// \param trackOrig pristine track (before refit/propagation mutated it), used for the debug "dEdxDebugTrack" row; ignored if mDebug is false
337
385
/// \param averageOcc average cluster occupancy of the track as computed by gatherRowClusterData(), only used for the debug "dEdxDebugTrack" row; ignored if mDebug is false
0 commit comments