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
[EMCAL-565, EMCAL-566] Enable Multithreading for EMCal online calib
- To increase the speed of the online calibration, multithreading is introduced to fill the histograms
- Each thread is assigned its own histogram (stored in a vector with the size = number of threads)
- The data for each event is then splitted into nThread chunks and filled into the corresponding histograms
- The number of threads can be set via the EMCal calib params
- Merging of the individual histograms happens if the histogram is retrieved from the Data class
- Local tests show a significant increase in speed of more threads are being used. The overhead is negligible
Copy file name to clipboardExpand all lines: Common/Utils/include/CommonUtils/BoostHistogramUtils.h
+1-1Lines changed: 1 addition & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -618,7 +618,7 @@ auto ProjectBoostHistoXFast(const boost::histogram::histogram<axes...>& hist2d,
618
618
/// \return result
619
619
/// 1d boost histogram from projection of the input 2d boost histogram
620
620
template <typename... axes>
621
-
autoReduceBoostHistoFastSlice(boost::histogram::histogram<axes...>& hist2d, int binXLow, int binXHigh, int binYLow, int binYHigh, bool includeOverflowUnderflow)
621
+
autoReduceBoostHistoFastSlice(constboost::histogram::histogram<axes...>& hist2d, int binXLow, int binXHigh, int binYLow, int binYHigh, bool includeOverflowUnderflow)
Copy file name to clipboardExpand all lines: Detectors/EMCAL/calibration/include/EMCALCalibration/EMCALCalibParams.h
+2Lines changed: 2 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -49,6 +49,7 @@ struct EMCALCalibParams : public o2::conf::ConfigurableParamHelper<EMCALCalibPar
49
49
float minNHitsForNHitCut = 1; ///< mean number of hits per cell that is needed to cut on the mean number of hits. Needed for high energy intervals as outliers can distort the distribution
50
50
float minCellEnergy_bc = 0.1; ///< minimum cell energy considered for filling the histograms for bad channel calib. Should speedup the filling of the histogram to suppress noise
51
51
float fractionEvents_bc = 1.; ///< fraction of events used in bad channel calibration
52
+
size_t nThreads_bc = 4; ///< number of threads used for the bad channel calinration for filling the histograms
52
53
53
54
// parameters for time calibration
54
55
unsignedint minNEvents_tc = 1e7; ///< minimum number of events to trigger the calibration
@@ -66,6 +67,7 @@ struct EMCALCalibParams : public o2::conf::ConfigurableParamHelper<EMCALCalibPar
66
67
bool UpdateAtEndOfRunOnly_tc = false; ///< switch to enable trigger of calibration only at end of run
67
68
float maxAllowedDeviationFromMax = 10; ///< maximum deviation allowed between the estimated maximum of the fit and the true maximum from the distribution. If deviation is larger then value, the fit likely failed. In this case, the true value is taken
68
69
float fractionEvents_tc = 1.; ///< fraction of events used in time calibration
70
+
size_t nThreads_tc = 2; ///< number of threads used for the time calinration for filling the histograms
69
71
70
72
// common parameters
71
73
std::string calibType = "time"; ///< type of calibration to run
0 commit comments