BmnRoot 26.10.0-18-g4e3414f9
Software framework of the BM@N experiment
Loading...
Searching...
No Matches
BmnFHCalRaw2Digit.h
Go to the documentation of this file.
1#ifndef BmnFHCalRaw2Digit_H
2#define BmnFHCalRaw2Digit_H
3
4#include "BmnADCDigit.h"
5#include "BmnFHCalDigi.h"
6#include "BmnSyncDigit.h"
7#include "FairLogger.h"
8#include "Riostream.h"
9#include "TClonesArray.h"
10#include "TString.h"
11#include "WfmProcessor.h"
12
13#include <UniRun.h>
14#include <boost/functional/hash.hpp>
15#include <boost/program_options.hpp>
16#include <cstdlib>
17#include <iostream>
18#include <numeric>
19#include <optional>
20#include <unordered_map>
21
23{
24
25 public:
26 BmnFHCalRaw2Digit(Int_t period, Int_t run, TString mappingFile, TString calibrationFile = "");
28
30
31 TString GetName() { return "BmnHodoRaw2Digit"; }
32 void ParseConfig(TString mappingFile);
33 void ParseCalibration(TString calibrationFile);
34 void FillEvent(TClonesArray* data, TClonesArray* FHCaldigit);
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
42 private:
43 int fPeriodId;
44 int fRunId;
47
48 std::unordered_map<std::pair<size_t, size_t>, uint32_t, boost::hash<std::pair<size_t, size_t>>>
49 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
53};
54#endif /* BmnFHCalRaw2Digit_H */
int Int_t
#define ClassDef(name, id)
std::unordered_map< std::pair< size_t, size_t >, uint32_t, boost::hash< std::pair< size_t, size_t > > > fuoChannelMap
std::optional< uint32_t > GetAddressFromBoard(std::pair< size_t, size_t > key)
void FillEvent(TClonesArray *data, TClonesArray *FHCaldigit)
std::unordered_map< uint32_t, std::pair< float, float > > fuoCalibMap
void ParseConfig(TString mappingFile)
void ParseCalibration(TString calibrationFile)
std::optional< std::pair< float, float > > GetCalibPairFromAddress(uint32_t address)
BmnFHCalRaw2Digit(Int_t period, Int_t run, TString mappingFile, TString calibrationFile="")
struct WfmProcessor::digiPars fdigiPars