BmnRoot
Loading...
Searching...
No Matches
BmnFHCalRaw2Digit.h
Go to the documentation of this file.
1#ifndef BmnFHCalRaw2Digit_H
2#define BmnFHCalRaw2Digit_H
3
4#include <iostream>
5#include <numeric>
6#include <optional>
7
8#include "FairLogger.h"
9#include "TString.h"
10#include "TClonesArray.h"
11#include "BmnADCDigit.h"
12#include "BmnSyncDigit.h"
13
14#include "Riostream.h"
15#include <cstdlib>
16#include <UniRun.h>
17
18#include <unordered_map>
19#include <boost/functional/hash.hpp>
20#include <boost/program_options.hpp>
21#include "BmnFHCalDigi.h"
22#include "WfmProcessor.h"
23
25
26public:
27 BmnFHCalRaw2Digit(Int_t period, Int_t run, TString mappingFile, TString calibrationFile = "");
29
31
32 TString GetName() { return "BmnHodoRaw2Digit"; }
33 void ParseConfig(TString mappingFile);
34 void ParseCalibration(TString calibrationFile);
35 void fillEvent(TClonesArray *data, TClonesArray *FHCaldigit);
36 void print();
37
39 auto GetChannelMap() {return fuoChannelMap;}
40 std::optional<std::pair<float, float>> GetCalibPairFromAddress(uint32_t address);
41 std::optional<uint32_t> GetAddressFromBoard(std::pair<size_t,size_t> key);
42
43private:
44
45 int fPeriodId;
46 int fRunId;
47 TString fmappingFileName;
48 TString fcalibrationFileName;
49
50 std::unordered_map<std::pair<size_t,size_t>, uint32_t, boost::hash<std::pair<size_t,size_t>>> fuoChannelMap; // physical channel <board, ch> to digi address
51 std::unordered_map<uint32_t, std::pair<float,float>> fuoCalibMap; // digi address to pair<calib, calibError>
52
53 ClassDef(BmnFHCalRaw2Digit, 2);
54};
55#endif /* BmnFHCalRaw2Digit_H */
56
57
std::optional< uint32_t > GetAddressFromBoard(std::pair< size_t, size_t > key)
void ParseConfig(TString mappingFile)
void ParseCalibration(TString calibrationFile)
std::optional< std::pair< float, float > > GetCalibPairFromAddress(uint32_t address)
void fillEvent(TClonesArray *data, TClonesArray *FHCaldigit)
BmnFHCalRaw2Digit(Int_t period, Int_t run, TString mappingFile, TString calibrationFile="")
struct WfmProcessor::digiPars fdigiPars
-clang-format