12#ifndef ALICEO2_TPC_DIGITDUMP_H_
13#define ALICEO2_TPC_DIGITDUMP_H_
74 const Int_t timeBin,
const Float_t signal)
final {
return 0; }
78 const Int_t timeBin,
const Float_t signal)
final;
112 mFirstTimeBin =
first;
122 for (
auto&
digits : mDigits) {
126 std::fill(mTimeBinOccupancy.begin(), mTimeBinOccupancy.end(), 0);
136 std::vector<Digit>&
getDigits(
int sector) {
return mDigits[sector]; }
143 void addDigit(
const CRU& cru,
const float signal,
const int rowInSector,
const int padInRow,
const int timeBin)
145 mDigits[cru.
sector()].emplace_back(cru, signal, rowInSector, padInRow, timeBin);
161 std::unique_ptr<const
CalPad> mPedestal{};
162 std::unique_ptr<const CalPad> mNoise{};
164 TTree* mTree{
nullptr};
165 std::unique_ptr<TFile> mFile{};
168 std::string mDigitFile{};
169 std::string mPedestalAndNoiseFile{};
171 std::vector<std::array<int, 3>> mPadMask;
173 std::vector<size_t> mTimeBinOccupancy;
175 int mFirstTimeBin{0};
176 int mLastTimeBin{1000};
179 float mNoiseThreshold{-1};
180 bool mInMemoryOnly{
false};
181 bool mInitialized{
false};
184 void setupOutputTree();
187 void loadNoiseAndPedestal();
190 void resetEvent() final {}
const Sector sector() const
Base class for raw data calibrations.
Pedestal calibration class.
void clearDigits()
clear the digits
Int_t updateROC(const Int_t roc, const Int_t row, const Int_t pad, const Int_t timeBin, const Float_t signal) final
void setTimeBinRange(int first, int last)
set the timeBin range
void checkDuplicates(bool removeDuplicates=false)
check duplicates and remove the if removeDuplicates is true
void addPadMask(int roc, int row, int pad)
add a masked pad
void sortDigits()
sort the digits
const CalPad & getPedestal() const
void removeCEdigits(uint32_t removeNtimeBinsBefore=10, uint32_t removeNtimeBinsAfter=100, std::array< std::vector< Digit >, Sector::MAXSECTOR > *removedDigits=nullptr)
remove digits close to the CE
void setPedestals(const CalPad *pedestal)
Set a custom pedestal object.
void addDigit(const CRU &cru, const float signal, const int rowInSector, const int padInRow, const int timeBin)
directly add a digit
void endEvent() final
End event function.
void initInputOutput()
initialize
void init()
initialize DigitDump from DigitDumpParam
std::vector< Digit > & getDigits(int sector)
return digits for specific sector
void setPedestalAndNoiseFile(std::string_view fileName)
pedestal file name
void setInMemoryOnly(bool mode=true)
set in memory only mode
const auto & getDigits() const
return digit array
void setADCRange(float minADC, float maxADC)
set the adc range
bool getInMemoryMode() const
get in memory mode
void setDigitFileName(std::string_view fileName)
output file name
void setNoiseThreshold(float noiseThreshold)
set noise threshold
void setNoise(const CalPad *noise)
Set a custom noise object.
Int_t updateCRU(const CRU &cru, const Int_t row, const Int_t pad, const Int_t timeBin, const Float_t signal) final
not used
~DigitDump() override
default destructor
DigitDump(PadSubset padSubset=PadSubset::ROC)
default constructor
const CalPad & getNoise() const
static constexpr int MAXSECTOR
void removeDuplicates(std::vector< int > &vec)
PadSubset
Definition of the different pad subsets.
a couple of static helper functions to create timestamp values for CCDB queries or override obsolete ...
Defining DataPointCompositeObject explicitly as copiable.
std::vector< Digit > digits