16#ifndef ALICEO2_TPC_CALIBRATORDEDX_H_
17#define ALICEO2_TPC_CALIBRATORDEDX_H_
42 using TFinterval = std::vector<std::pair<TFType, TFType>>;
43 using TimeInterval = std::vector<std::pair<long, long>>;
44 using CalibVector = std::vector<CalibdEdxCorrection>;
49 void setHistParams(
int dEdxBins,
float mindEdx,
float maxdEdx,
int angularBins,
bool fitSnp)
54 mAngularBins = angularBins;
59 void setFitThresholds(
int minEntriesSector,
int minEntries1D,
int minEntries2D) { mFitThreshold = {minEntriesSector, minEntries1D, minEntriesSector}; }
67 bool hasEnoughData(
const Slot& slot)
const final {
return slot.getContainer()->hasEnoughData(mMinEntries); };
79 const CalibVector&
getCalibs()
const {
return mCalibs; }
94 bool hasDebugOutput()
const {
return static_cast<bool>(mDebugOutputStreamer); }
113 bool mEnableTrackDebug{
false};
115 uint32_t mDumpHistograms{0};
116 std::array<int, 3> mFitThreshold{};
117 bool mApplyCuts{
true};
118 std::tuple<float, int, float> mElectronCut{};
121 bool mMakeGaussianFits{};
123 TFinterval mTFIntervals;
124 TimeInterval mTimeIntervals;
127 std::unique_ptr<o2::utils::TreeStreamRedirector> mDebugOutputStreamer;
This file provides the container used for time based residual dE/dx calibration.
void initOutput() final
Empty the output vectors.
const TFinterval & getTFinterval() const
void setFitThresholds(int minEntriesSector, int minEntries1D, int minEntries2D)
uint32_t getDumpHistograms() const
void disableDebugOutput()
Disable debug output to file. Also writes and closes stored time slots.
void setTrackDebug(bool debug)
Track debugging.
bool hasEnoughData(const Slot &slot) const final
Check if there are enough data to compute the calibration.
void finalizeDebugOutput() const
Write debug output to file.
void setApplyCuts(bool apply)
void setCuts(const TrackCuts &cuts)
const CalibVector & getCalibs() const
void finalizeSlot(Slot &) final
Process time slot data and compute its calibration.
void setMinEntries(int minEntries)
void setHistParams(int dEdxBins, float mindEdx, float maxdEdx, int angularBins, bool fitSnp)
void setMaterialType(o2::base::Propagator::MatCorrType materialType)
void setElectronCut(std::tuple< float, int, float > values)
Slot & emplaceNewSlot(bool front, TFType tstart, TFType tend) final
Creates new time slot.
bool hasDebugOutput() const
void setMakeGaussianFits(const bool makeGaussianFits)
void setDumpHistograms(uint32_t flags)
Dump histograms.
void enableDebugOutput(std::string_view fileName)
Enable debug output to file of the time slots calibrations outputs and dE/dx histograms.
const TimeInterval & getTimeIntervals() const
GLenum GLsizei GLsizei GLint * values
Global TPC definitions and constants.