1#ifndef BMNHodoRAW2DIGIT_H
2#define BMNHodoRAW2DIGIT_H
6#include "TClonesArray.h"
10#include <TStopwatch.h>
12#include <boost/functional/hash.hpp>
13#include <boost/program_options.hpp>
14#include <boost/property_tree/ini_parser.hpp>
15#include <boost/property_tree/ptree.hpp>
20#include <unordered_map>
26 BmnHodoRaw2Digit(
int period,
int run,
const std::string& mappingFile =
"",
const std::string& calibrationFile =
"");
31 TString
GetName() {
return "BmnHodoRaw2Digit"; }
35 uint32_t
correctINL(uint32_t time, std::pair<size_t, size_t> key);
36 void fillEvent(TClonesArray* tdc_data, TClonesArray* adc_data, TClonesArray* Hododigit);
45 std::unordered_map<std::pair<size_t, size_t>, uint32_t, boost::hash<std::pair<size_t, size_t>>>
47 std::unordered_map<std::pair<size_t, size_t>, std::vector<float>, boost::hash<std::pair<size_t, size_t>>>
49 std::unordered_map<uint32_t, std::pair<float, float>> fuoCalibMap;
57 std::vector<float> fEthalon;
59 double fworkTime_real;
void ParseConfig(const std::string &file)
void ParseCalibration(const std::string &file)
uint32_t correctINL(uint32_t time, std::pair< size_t, size_t > key)
std::optional< std::pair< float, float > > GetCalibPairFromAddress(uint32_t address)
void ParseINLcorrections()
void fillEvent(TClonesArray *tdc_data, TClonesArray *adc_data, TClonesArray *Hododigit)
BmnHodoRaw2Digit(int period, int run, const std::string &mappingFile="", const std::string &calibrationFile="")
std::optional< uint32_t > GetAddressFromBoard(std::pair< size_t, size_t > key)
struct WfmProcessor::digiPars fdigiPars