BmnRoot
26.10.0-18-g4e3414f9
Software framework of the BM@N experiment
Toggle main menu visibility
Loading...
Searching...
No Matches
BmnHodoRaw2Digit.h
Go to the documentation of this file.
1
#ifndef BMNHodoRAW2DIGIT_H
2
#define BMNHodoRAW2DIGIT_H
3
4
#include "BmnEnums.h"
5
#include "BmnHodoDigi.h"
6
#include "
Riostream.h
"
7
#include "
TClonesArray.h
"
8
#include "
TString.h
"
9
#include "
WfmProcessor.h
"
10
11
#include <
TStopwatch.h
>
12
#include <UniRun.h>
13
#include <boost/functional/hash.hpp>
14
#include <boost/program_options.hpp>
15
#include <boost/property_tree/ini_parser.hpp>
16
#include <boost/property_tree/ptree.hpp>
17
#include <cstdlib>
18
#include <iostream>
19
#include <numeric>
20
#include <optional>
21
#include <unordered_map>
22
23
class
BmnHodoRaw2Digit
:
public
WfmProcessor
24
{
25
26
public
:
27
BmnHodoRaw2Digit
(
int
period,
int
run,
const
std::string& mappingFile,
const
std::string& calibrationFile =
""
);
28
BmnHodoRaw2Digit
();
29
30
~BmnHodoRaw2Digit
();
31
32
TString
GetName
() {
return
"BmnHodoRaw2Digit"
; }
33
BmnStatus
ParseConfig
(
const
std::string& file);
34
BmnStatus
ParseCalibration
(
const
std::string& file);
35
BmnStatus
LoadCalibration
(
int
period,
int
run);
36
BmnStatus
ParseINLcorrections
();
37
uint32_t
correctINL
(uint32_t time, std::pair<size_t, size_t> key);
38
void
FillEvent
(
TClonesArray
* tdc_data,
TClonesArray
* adc_data,
TClonesArray
* Hododigit);
39
void
print
();
40
41
digiPars
GetDigiPars
() {
return
fdigiPars
; }
42
auto
GetChannelMap
() {
return
fuoChannelMap
; }
43
std::optional<std::pair<float, float>>
GetCalibPairFromAddress
(uint32_t address);
44
std::optional<uint32_t>
GetAddressFromBoard
(std::pair<size_t, size_t> key);
45
46
private
:
47
BmnStatus
ParseCalibrationJson
(
const
nlohmann::json
& j);
48
49
std::unordered_map<std::pair<size_t, size_t>, uint32_t, boost::hash<std::pair<size_t, size_t>>>
50
fuoChannelMap
;
// physical channel <board, ch> to digi address
51
std::unordered_map<std::pair<size_t, size_t>, std::vector<float>, boost::hash<std::pair<size_t, size_t>>>
52
fINLcorrMap
;
// physical channel <board, ch> to vector<corrections>
53
std::unordered_map<uint32_t, std::pair<float, float>>
fuoCalibMap
;
// digi address to pair<calib, calibIntegral>
54
int
fSaturation
;
55
56
bool
fDoRLdeconvolve
;
57
int
fRLthresold
;
// Threshold to start deconvolution
58
float
fR2converge
;
// R2 threshold to converge
59
size_t
fMaxIters
;
// maximum number of iterations
60
size_t
fMaxPeaks
;
// maximum number of pileup peaks
61
std::vector<float>
fEthalon
;
62
63
double
fworkTime_real
;
64
double
fworkTime_cpu
;
65
66
ClassDef
(
BmnHodoRaw2Digit
, 5);
67
};
68
#endif
/* BMNHodoRAW2DIGIT_H */
Riostream.h
ClassDef
#define ClassDef(name, id)
TClonesArray.h
TStopwatch.h
TString.h
BmnStatus
BmnStatus
Define status code.
Definition
BmnEnums.h:93
BmnHodoRaw2Digit::fworkTime_cpu
double fworkTime_cpu
Definition
BmnHodoRaw2Digit.h:64
BmnHodoRaw2Digit::BmnHodoRaw2Digit
BmnHodoRaw2Digit()
Definition
BmnHodoRaw2Digit.cxx:25
BmnHodoRaw2Digit::FillEvent
void FillEvent(TClonesArray *tdc_data, TClonesArray *adc_data, TClonesArray *Hododigit)
Definition
BmnHodoRaw2Digit.cxx:311
BmnHodoRaw2Digit::fRLthresold
int fRLthresold
Definition
BmnHodoRaw2Digit.h:57
BmnHodoRaw2Digit::ParseConfig
BmnStatus ParseConfig(const std::string &file)
Definition
BmnHodoRaw2Digit.cxx:69
BmnHodoRaw2Digit::GetChannelMap
auto GetChannelMap()
Definition
BmnHodoRaw2Digit.h:42
BmnHodoRaw2Digit::fSaturation
int fSaturation
Definition
BmnHodoRaw2Digit.h:54
BmnHodoRaw2Digit::fR2converge
float fR2converge
Definition
BmnHodoRaw2Digit.h:58
BmnHodoRaw2Digit::fMaxPeaks
size_t fMaxPeaks
Definition
BmnHodoRaw2Digit.h:60
BmnHodoRaw2Digit::correctINL
uint32_t correctINL(uint32_t time, std::pair< size_t, size_t > key)
Definition
BmnHodoRaw2Digit.cxx:289
BmnHodoRaw2Digit::BmnHodoRaw2Digit
BmnHodoRaw2Digit(int period, int run, const std::string &mappingFile, const std::string &calibrationFile="")
Definition
BmnHodoRaw2Digit.cxx:37
BmnHodoRaw2Digit::GetCalibPairFromAddress
std::optional< std::pair< float, float > > GetCalibPairFromAddress(uint32_t address)
Definition
BmnHodoRaw2Digit.cxx:300
BmnHodoRaw2Digit::fINLcorrMap
std::unordered_map< std::pair< size_t, size_t >, std::vector< float >, boost::hash< std::pair< size_t, size_t > > > fINLcorrMap
Definition
BmnHodoRaw2Digit.h:52
BmnHodoRaw2Digit::fworkTime_real
double fworkTime_real
Definition
BmnHodoRaw2Digit.h:63
BmnHodoRaw2Digit::ParseINLcorrections
BmnStatus ParseINLcorrections()
Definition
BmnHodoRaw2Digit.cxx:243
BmnHodoRaw2Digit::LoadCalibration
BmnStatus LoadCalibration(int period, int run)
Definition
BmnHodoRaw2Digit.cxx:104
BmnHodoRaw2Digit::fMaxIters
size_t fMaxIters
Definition
BmnHodoRaw2Digit.h:59
BmnHodoRaw2Digit::fEthalon
std::vector< float > fEthalon
Definition
BmnHodoRaw2Digit.h:61
BmnHodoRaw2Digit::ParseCalibrationJson
BmnStatus ParseCalibrationJson(const nlohmann::json &j)
Definition
BmnHodoRaw2Digit.cxx:154
BmnHodoRaw2Digit::fuoCalibMap
std::unordered_map< uint32_t, std::pair< float, float > > fuoCalibMap
Definition
BmnHodoRaw2Digit.h:53
BmnHodoRaw2Digit::ParseCalibration
BmnStatus ParseCalibration(const std::string &file)
Definition
BmnHodoRaw2Digit.cxx:134
BmnHodoRaw2Digit::~BmnHodoRaw2Digit
~BmnHodoRaw2Digit()
Definition
BmnHodoRaw2Digit.cxx:429
BmnHodoRaw2Digit::fDoRLdeconvolve
bool fDoRLdeconvolve
Definition
BmnHodoRaw2Digit.h:56
BmnHodoRaw2Digit::GetDigiPars
digiPars GetDigiPars()
Definition
BmnHodoRaw2Digit.h:41
BmnHodoRaw2Digit::fuoChannelMap
std::unordered_map< std::pair< size_t, size_t >, uint32_t, boost::hash< std::pair< size_t, size_t > > > fuoChannelMap
Definition
BmnHodoRaw2Digit.h:50
BmnHodoRaw2Digit::print
void print()
Definition
BmnHodoRaw2Digit.cxx:20
BmnHodoRaw2Digit::GetName
TString GetName()
Definition
BmnHodoRaw2Digit.h:32
BmnHodoRaw2Digit::GetAddressFromBoard
std::optional< uint32_t > GetAddressFromBoard(std::pair< size_t, size_t > key)
Definition
BmnHodoRaw2Digit.cxx:278
TClonesArray
TString
WfmProcessor::fdigiPars
struct WfmProcessor::digiPars fdigiPars
WfmProcessor::WfmProcessor
WfmProcessor()
Definition
WfmProcessor.h:15
WfmProcessor.h
nlohmann::json
basic_json<> json
default specialization
Definition
json.hpp:3365
WfmProcessor::digiPars
Definition
WfmProcessor.h:25
decoder
BmnHodoRaw2Digit.h
Generated on
for BmnRoot by
1.17.0