BmnRoot 26.10.0-18-g4e3414f9
Software framework of the BM@N experiment
Loading...
Searching...
No Matches
BmnScWallRaw2Digit.h
Go to the documentation of this file.
1#ifndef BMNSCWALLRAW2DIGIT_H
2#define BMNSCWALLRAW2DIGIT_H
3
4#include "BmnEnums.h"
5#include "FairLogger.h"
6#include "Riostream.h"
7#include "TClonesArray.h"
8#include "TString.h"
9#include "WfmProcessor.h"
10
11#include <UniRun.h>
12#include <boost/functional/hash.hpp>
13#include <boost/program_options.hpp>
14#include <cstdlib>
15#include <iostream>
16#include <numeric>
17#include <optional>
18#include <unordered_map>
19
21{
22
23 public:
24 BmnScWallRaw2Digit(int period, int run, const std::string& mappingFile, const std::string& calibrationFile = "");
26
28
29 TString GetName() { return "BmnScWallRaw2Digit"; }
30 BmnStatus ParseConfig(const std::string& file);
31 BmnStatus ParseCalibration(const std::string& file);
32 BmnStatus LoadCalibration(int period, int run);
33 void FillEvent(TClonesArray* data, TClonesArray* ScWalldigit);
34 void print();
35
37 auto GetChannelMap() { return fuoChannelMap; }
38 std::optional<std::pair<float, float>> GetCalibPairFromAddress(uint32_t address);
39 std::optional<uint32_t> GetAddressFromBoard(std::pair<size_t, size_t> key);
40
41 private:
43
44 std::unordered_map<std::pair<size_t, size_t>, uint32_t, boost::hash<std::pair<size_t, size_t>>>
45 fuoChannelMap; // physical channel <board, ch> to digi address
46 std::unordered_map<uint32_t, std::pair<float, float>> fuoCalibMap; // digi address to pair<calib, calibError>
47
50
52};
53#endif /* BMNSCWALLRAW2DIGIT_H */
#define ClassDef(name, id)
BmnStatus
Define status code.
Definition BmnEnums.h:93
BmnStatus ParseCalibration(const std::string &file)
std::optional< uint32_t > GetAddressFromBoard(std::pair< size_t, size_t > key)
BmnScWallRaw2Digit(int period, int run, const std::string &mappingFile, const std::string &calibrationFile="")
std::optional< std::pair< float, float > > GetCalibPairFromAddress(uint32_t address)
BmnStatus ParseCalibrationJson(const nlohmann::json &j)
std::unordered_map< std::pair< size_t, size_t >, uint32_t, boost::hash< std::pair< size_t, size_t > > > fuoChannelMap
BmnStatus ParseConfig(const std::string &file)
BmnStatus LoadCalibration(int period, int run)
std::unordered_map< uint32_t, std::pair< float, float > > fuoCalibMap
void FillEvent(TClonesArray *data, TClonesArray *ScWalldigit)
struct WfmProcessor::digiPars fdigiPars
basic_json<> json
default specialization
Definition json.hpp:3365