BmnRoot
26.10.0-18-g4e3414f9
Software framework of the BM@N experiment
Toggle main menu visibility
Loading...
Searching...
No Matches
BmnNdetRaw2Digit.h
Go to the documentation of this file.
1
#ifndef BmnNdetRaw2Digit_H
2
#define BmnNdetRaw2Digit_H
3
4
#include "BmnADCDigit.h"
5
#include "BmnNdetDigi.h"
6
#include "BmnSyncDigit.h"
7
#include "BmnTDCDigit.h"
8
#include "BmnTQDCADCDigit.h"
9
#include "FairLogger.h"
10
#include "
TClonesArray.h
"
11
#include "
TString.h
"
12
#include "
WfmProcessor.h
"
13
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>
18
#include <cstdlib>
19
#include <iostream>
20
#include <numeric>
21
#include <optional>
22
#include <unordered_map>
23
24
class
BmnNdetRaw2Digit
:
public
WfmProcessor
25
{
26
27
public
:
28
BmnNdetRaw2Digit
(
Int_t
period,
Int_t
run,
TString
mappingFile,
TString
calibrationFile =
""
);
29
BmnNdetRaw2Digit
();
30
31
~BmnNdetRaw2Digit
();
32
33
void
ParseConfig
(
TString
mappingFile);
34
void
ParseCalibration
(
TString
calibrationFile);
35
void
ParseINLcorrections
();
36
void
FillEvent
(
TClonesArray
* tdc_data,
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);
41
void
print
();
42
43
digiPars
GetDigiPars
() {
return
fdigiPars
; }
44
auto
GetChannelMap
() {
return
fuoChannelMap
; }
45
46
std::optional<std::pair<float, float>>
GetCalibPairFromAddress
(uint32_t address);
47
std::optional<uint32_t>
GetAddressFromBoard
(std::pair<size_t, size_t> key);
48
std::vector<float>
GetCalibSlewShiftFromAddress
(uint32_t address);
49
50
private
:
51
int
fPeriodId
;
52
int
fRunId
;
53
TString
fmappingFileName
;
54
TString
fcalibrationFileName
;
55
bool
fApplyINL
=
false
;
56
bool
fApplyAmplCalib
=
false
;
57
bool
fApplyTimeCalib
=
false
;
58
59
std::unordered_map<std::pair<size_t, size_t>, uint32_t, boost::hash<std::pair<size_t, size_t>>>
60
fuoChannelMap
;
// physical channel <board, ch> to digi address
61
std::unordered_map<std::pair<size_t, size_t>, std::vector<float>, boost::hash<pair<int, int>>>
62
fINLcorrMap
;
// physical channel <board, ch> to vector<corrections>
63
std::unordered_map<uint32_t, std::pair<float, float>>
fuoCalibMap
;
// digi address to pair<calib, calibError>
64
std::unordered_map<uint32_t, std::vector<float>>
fuoCalibSlewShiftMap
;
// digi address to vector<calib>
65
66
ClassDef
(
BmnNdetRaw2Digit
, 2);
67
};
68
#endif
/* BmnNdetRaw2Digit_H */
Int_t
int Int_t
ClassDef
#define ClassDef(name, id)
TClonesArray.h
TString.h
BmnNdetRaw2Digit::fcalibrationFileName
TString fcalibrationFileName
Definition
BmnNdetRaw2Digit.h:54
BmnNdetRaw2Digit::ParseINLcorrections
void ParseINLcorrections()
Definition
BmnNdetRaw2Digit.cxx:188
BmnNdetRaw2Digit::fApplyAmplCalib
bool fApplyAmplCalib
Definition
BmnNdetRaw2Digit.h:56
BmnNdetRaw2Digit::GetCalibPairFromAddress
std::optional< std::pair< float, float > > GetCalibPairFromAddress(uint32_t address)
Definition
BmnNdetRaw2Digit.cxx:235
BmnNdetRaw2Digit::fuoChannelMap
std::unordered_map< std::pair< size_t, size_t >, uint32_t, boost::hash< std::pair< size_t, size_t > > > fuoChannelMap
Definition
BmnNdetRaw2Digit.h:60
BmnNdetRaw2Digit::ParseCalibration
void ParseCalibration(TString calibrationFile)
Definition
BmnNdetRaw2Digit.cxx:80
BmnNdetRaw2Digit::GetAddressFromBoard
std::optional< uint32_t > GetAddressFromBoard(std::pair< size_t, size_t > key)
Definition
BmnNdetRaw2Digit.cxx:224
BmnNdetRaw2Digit::GetCalibSlewShiftFromAddress
std::vector< float > GetCalibSlewShiftFromAddress(uint32_t address)
Definition
BmnNdetRaw2Digit.cxx:257
BmnNdetRaw2Digit::BmnNdetRaw2Digit
BmnNdetRaw2Digit()
Definition
BmnNdetRaw2Digit.cxx:12
BmnNdetRaw2Digit::fPeriodId
int fPeriodId
Definition
BmnNdetRaw2Digit.h:51
BmnNdetRaw2Digit::GetDigiPars
digiPars GetDigiPars()
Definition
BmnNdetRaw2Digit.h:43
BmnNdetRaw2Digit::correctINL
uint32_t correctINL(uint32_t time, std::pair< size_t, size_t > key)
Definition
BmnNdetRaw2Digit.cxx:246
BmnNdetRaw2Digit::BmnNdetRaw2Digit
BmnNdetRaw2Digit(Int_t period, Int_t run, TString mappingFile, TString calibrationFile="")
Definition
BmnNdetRaw2Digit.cxx:19
BmnNdetRaw2Digit::FillEvent
void FillEvent(TClonesArray *tdc_data, TClonesArray *adc_data, unordered_map< UInt_t, Long64_t > *mapTS, TClonesArray *Ndetdigit)
Definition
BmnNdetRaw2Digit.cxx:265
BmnNdetRaw2Digit::GetChannelMap
auto GetChannelMap()
Definition
BmnNdetRaw2Digit.h:44
BmnNdetRaw2Digit::fuoCalibMap
std::unordered_map< uint32_t, std::pair< float, float > > fuoCalibMap
Definition
BmnNdetRaw2Digit.h:63
BmnNdetRaw2Digit::print
void print()
Definition
BmnNdetRaw2Digit.cxx:7
BmnNdetRaw2Digit::~BmnNdetRaw2Digit
~BmnNdetRaw2Digit()
Definition
BmnNdetRaw2Digit.cxx:347
BmnNdetRaw2Digit::ParseConfig
void ParseConfig(TString mappingFile)
Definition
BmnNdetRaw2Digit.cxx:33
BmnNdetRaw2Digit::fINLcorrMap
std::unordered_map< std::pair< size_t, size_t >, std::vector< float >, boost::hash< pair< int, int > > > fINLcorrMap
Definition
BmnNdetRaw2Digit.h:62
BmnNdetRaw2Digit::fuoCalibSlewShiftMap
std::unordered_map< uint32_t, std::vector< float > > fuoCalibSlewShiftMap
Definition
BmnNdetRaw2Digit.h:64
BmnNdetRaw2Digit::fApplyTimeCalib
bool fApplyTimeCalib
Definition
BmnNdetRaw2Digit.h:57
BmnNdetRaw2Digit::fApplyINL
bool fApplyINL
Definition
BmnNdetRaw2Digit.h:55
BmnNdetRaw2Digit::fmappingFileName
TString fmappingFileName
Definition
BmnNdetRaw2Digit.h:53
BmnNdetRaw2Digit::fRunId
int fRunId
Definition
BmnNdetRaw2Digit.h:52
TClonesArray
TString
WfmProcessor::fdigiPars
struct WfmProcessor::digiPars fdigiPars
WfmProcessor::WfmProcessor
WfmProcessor()
Definition
WfmProcessor.h:15
WfmProcessor.h
WfmProcessor::digiPars
Definition
WfmProcessor.h:25
decoder
BmnNdetRaw2Digit.h
Generated on
for BmnRoot by
1.17.0