1#ifndef BmnNdetRaw2Digit_H
2#define BmnNdetRaw2Digit_H
10#include "TClonesArray.h"
14#include <boost/functional/hash.hpp>
15#include <boost/program_options.hpp>
16#include <boost/property_tree/ini_parser.hpp>
17#include <boost/property_tree/ptree.hpp>
22#include <unordered_map>
37 TClonesArray* adc_data,
38 unordered_map<UInt_t, Long64_t>* mapTS,
39 TClonesArray* Ndetdigit);
40 uint32_t
correctINL(uint32_t time, std::pair<size_t, size_t> key);
53 TString fmappingFileName;
54 TString fcalibrationFileName;
55 bool fApplyINL =
false;
56 bool fApplyAmplCalib =
false;
57 bool fApplyTimeCalib =
false;
59 std::unordered_map<std::pair<size_t, size_t>, uint32_t, boost::hash<std::pair<size_t, size_t>>>
61 std::unordered_map<std::pair<size_t, size_t>, std::vector<float>, boost::hash<pair<int, int>>>
63 std::unordered_map<uint32_t, std::pair<float, float>> fuoCalibMap;
64 std::unordered_map<uint32_t, std::vector<float>> fuoCalibSlewShiftMap;
void ParseINLcorrections()
std::optional< std::pair< float, float > > GetCalibPairFromAddress(uint32_t address)
void ParseCalibration(TString calibrationFile)
std::optional< uint32_t > GetAddressFromBoard(std::pair< size_t, size_t > key)
std::vector< float > GetCalibSlewShiftFromAddress(uint32_t address)
uint32_t correctINL(uint32_t time, std::pair< size_t, size_t > key)
BmnNdetRaw2Digit(Int_t period, Int_t run, TString mappingFile, TString calibrationFile="")
void ParseConfig(TString mappingFile)
void fillEvent(TClonesArray *tdc_data, TClonesArray *adc_data, unordered_map< UInt_t, Long64_t > *mapTS, TClonesArray *Ndetdigit)
struct WfmProcessor::digiPars fdigiPars