BmnRoot
Loading...
Searching...
No Matches
BmnScWallRaw2Digit.h
Go to the documentation of this file.
1#ifndef BMNSCWALLRAW2DIGIT_H
2#define BMNSCWALLRAW2DIGIT_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 "BmnScWallDigi.h"
22#include "WfmProcessor.h"
23
25
26public:
27 BmnScWallRaw2Digit(int period, int run, TString mappingFile, TString calibrationFile = "");
29
31
32 void ParseConfig(TString mappingFile);
33 void ParseCalibration(TString calibrationFile);
34 void fillEvent(TClonesArray *data, TClonesArray *ScWalldigit);
35 void print();
36
38 auto GetChannelMap() {return fuoChannelMap;}
39 std::optional<std::pair<float, float>> GetCalibPairFromAddress(uint32_t address);
40 std::optional<uint32_t> GetAddressFromBoard(std::pair<size_t,size_t> key);
41
42private:
43
44 int fPeriodId;
45 int fRunId;
46 TString fmappingFileName;
47 TString fcalibrationFileName;
48
49 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
50 std::unordered_map<uint32_t, std::pair<float,float>> fuoCalibMap; // digi address to pair<calib, calibError>
51
52 ClassDef(BmnScWallRaw2Digit, 2);
53};
54#endif /* BMNSCWALLRAW2DIGIT_H */
55
56
void fillEvent(TClonesArray *data, TClonesArray *ScWalldigit)
std::optional< uint32_t > GetAddressFromBoard(std::pair< size_t, size_t > key)
void ParseConfig(TString mappingFile)
std::optional< std::pair< float, float > > GetCalibPairFromAddress(uint32_t address)
void ParseCalibration(TString calibrationFile)
struct WfmProcessor::digiPars fdigiPars
-clang-format