BmnRoot
26.10.0-18-g4e3414f9
Software framework of the BM@N experiment
Toggle main menu visibility
Loading...
Searching...
No Matches
BmnGemRaw2Digit.h
Go to the documentation of this file.
1
#ifndef BMNGEMRAW2DIGIT_H
2
#define BMNGEMRAW2DIGIT_H
3
4
#include <map>
5
#include <vector>
6
// ROOT
7
#include "
BmnAdcProcessor.h
"
8
#include "
TClonesArray.h
"
9
#include "
TString.h
"
10
11
#define N_CH_BUF 4096
12
13
using
std::map;
14
using
std::vector;
15
16
class
BmnGemRaw2Digit
:
public
BmnAdcProcessor
17
{
18
19
public
:
20
BmnGemRaw2Digit
(
Int_t
period,
Int_t
run,
TString
mapFileName,
BmnSetup
bmnSetup =
kBMNSETUP
);
21
~BmnGemRaw2Digit
();
22
23
BmnStatus
FillEvent
(
TClonesArray
* adc,
TClonesArray
* gem);
24
BmnStatus
FillProfiles
(
TClonesArray
* adc);
25
BmnStatus
FillNoisyChannels
();
26
27
struct
BmnGemMap
28
{
29
Int_t
strip
;
30
Int_t
lay
;
// strip type: 0 - x, 1 - y
31
Int_t
mod
;
// hot zones: 1 - inner zone, 0 - outer zone
32
33
BmnGemMap
(
Int_t
s,
Int_t
l,
Int_t
m
)
34
:
strip
(s)
35
,
lay
(l)
36
,
mod
(
m
)
37
{}
38
39
BmnGemMap
()
40
:
strip
(-1)
41
,
lay
(-1)
42
,
mod
(-1)
43
{}
44
};
45
typedef
std::array<BmnGemMap, N_CH_BUF>
StripMapArray
;
46
47
struct
GemMapLine
48
{
49
Int_t
Serial
;
50
Int_t
Ch_lo
;
51
Int_t
Ch_hi
;
52
Int_t
GEM_id
;
53
Int_t
Side
;
54
Int_t
Type
;
55
Int_t
Station
;
56
Int_t
Module
;
57
Int_t
Zone
;
58
int32_t
Channel_shift
;
59
StripMapArray
*
Map_arr_ptr
;
60
61
void
Print
()
62
{
63
cout << std::hex <<
Serial
<< std::dec <<
" "
<<
Ch_lo
<<
" "
<<
Ch_hi
<<
" "
<<
GEM_id
<<
" "
<<
Side
64
<<
" "
<<
Type
<<
" "
<<
Station
<<
" "
<<
Module
<<
" "
<<
Zone
<< endl;
65
}
66
67
GemMapLine
()
68
:
Serial
(-1)
69
,
Ch_lo
(-1)
70
,
Ch_hi
(-1)
71
,
GEM_id
(-1)
72
,
Side
(-1)
73
,
Type
(-1)
74
,
Station
(-1)
75
,
Module
(-1)
76
,
Zone
(-1)
77
,
Channel_shift
(0)
78
,
Map_arr_ptr
(nullptr)
79
{}
80
};
81
typedef
map<int32_t, GemMapLine*>
InChanMap
;
82
83
private
:
84
unique_ptr<BmnGemStripStationSet>
fGemStationSet
;
85
// starting thresholds, number of iterations
86
Int_t
niterped
= 3;
87
Float_t
thrped
= 35;
88
Float_t
thrpedcsc
= 80;
89
90
unordered_map<uint32_t, InChanMap>
fOuterMap
;
// serial to inner (channel range to local strip map) map
91
92
StripMapArray
fSmall
;
93
StripMapArray
fMid
;
94
vector<StripMapArray>
fBigHot
;
95
vector<StripMapArray>
fBig
;
96
TString
fMapFileName
;
97
98
typedef
map<uint8_t, int32_t>
MapLayer2MaxStrip
;
99
map<KeySM, MapLayer2MaxStrip>
fSM2MapMaxStrip
;
// {station, module} to max strip
100
inline
void
MapStrip
(
GemMapLine
* gemM,
UInt_t
ch,
Int_t
iSmpl,
Int_t
& lay,
Int_t
& strip);
101
/**
102
* Uses raw ADC data to either fill profile histograms or produce output digits
103
* @param silicon raw ADC signals
104
* @param doFill true - fill profile histograms, false - produce digits
105
*/
106
void
ProcessAdc
(
TClonesArray
* silicon,
Bool_t
doFill);
107
BmnStatus
ReadMap
(
TString
parName,
StripMapArray
&
m
,
Int_t
lay,
Int_t
mod);
108
BmnStatus
ReadLocalMap
(
TString
parName,
StripMapArray
&
m
,
Int_t
lay,
Int_t
mod);
109
BmnStatus
ReadGlobalMap
(
TString
FileName);
110
void
InitStripRanges
(unique_ptr<BmnGemStripStationSet>& ss);
111
112
ClassDef
(
BmnGemRaw2Digit
, 1);
113
};
114
115
#endif
/* BMNGEMRAW2DIGIT_H */
m
__m128 m
Definition
P4_F32vec4.h:27
Bool_t
bool Bool_t
Int_t
int Int_t
UInt_t
unsigned int UInt_t
Float_t
float Float_t
ClassDef
#define ClassDef(name, id)
TClonesArray.h
TString.h
BmnStatus
BmnStatus
Define status code.
Definition
BmnEnums.h:93
BmnSetup
BmnSetup
Define experimental setup.
Definition
BmnEnums.h:165
kBMNSETUP
@ kBMNSETUP
Definition
BmnEnums.h:166
BmnAdcProcessor::BmnAdcProcessor
BmnAdcProcessor(uint32_t period, uint32_t run, TString det, uint16_t nCh, const uint16_t nSmpl, BmnSetup setup=kBMNSETUP)
Definition
BmnAdcProcessor.cxx:11
BmnGemRaw2Digit::StripMapArray
std::array< BmnGemMap, N_CH_BUF > StripMapArray
Definition
BmnGemRaw2Digit.h:45
BmnGemRaw2Digit::fMid
StripMapArray fMid
Definition
BmnGemRaw2Digit.h:93
BmnGemRaw2Digit::MapLayer2MaxStrip
map< uint8_t, int32_t > MapLayer2MaxStrip
Definition
BmnGemRaw2Digit.h:98
BmnGemRaw2Digit::InChanMap
map< int32_t, GemMapLine * > InChanMap
Definition
BmnGemRaw2Digit.h:81
BmnGemRaw2Digit::ProcessAdc
void ProcessAdc(TClonesArray *silicon, Bool_t doFill)
Uses raw ADC data to either fill profile histograms or produce output digits.
Definition
BmnGemRaw2Digit.cxx:386
BmnGemRaw2Digit::niterped
Int_t niterped
Definition
BmnGemRaw2Digit.h:86
BmnGemRaw2Digit::FillEvent
BmnStatus FillEvent(TClonesArray *adc, TClonesArray *gem)
Definition
BmnGemRaw2Digit.cxx:446
BmnGemRaw2Digit::thrped
Float_t thrped
Definition
BmnGemRaw2Digit.h:87
BmnGemRaw2Digit::BmnGemRaw2Digit
BmnGemRaw2Digit(Int_t period, Int_t run, TString mapFileName, BmnSetup bmnSetup=kBMNSETUP)
Definition
BmnGemRaw2Digit.cxx:14
BmnGemRaw2Digit::fMapFileName
TString fMapFileName
Definition
BmnGemRaw2Digit.h:96
BmnGemRaw2Digit::~BmnGemRaw2Digit
~BmnGemRaw2Digit()
Definition
BmnGemRaw2Digit.cxx:247
BmnGemRaw2Digit::ReadGlobalMap
BmnStatus ReadGlobalMap(TString FileName)
Definition
BmnGemRaw2Digit.cxx:81
BmnGemRaw2Digit::MapStrip
void MapStrip(GemMapLine *gemM, UInt_t ch, Int_t iSmpl, Int_t &lay, Int_t &strip)
Definition
BmnGemRaw2Digit.cxx:458
BmnGemRaw2Digit::fBig
vector< StripMapArray > fBig
Definition
BmnGemRaw2Digit.h:95
BmnGemRaw2Digit::fBigHot
vector< StripMapArray > fBigHot
Definition
BmnGemRaw2Digit.h:94
BmnGemRaw2Digit::FillNoisyChannels
BmnStatus FillNoisyChannels()
Definition
BmnGemRaw2Digit.cxx:267
BmnGemRaw2Digit::thrpedcsc
Float_t thrpedcsc
Definition
BmnGemRaw2Digit.h:88
BmnGemRaw2Digit::ReadMap
BmnStatus ReadMap(TString parName, StripMapArray &m, Int_t lay, Int_t mod)
Definition
BmnGemRaw2Digit.cxx:225
BmnGemRaw2Digit::fOuterMap
unordered_map< uint32_t, InChanMap > fOuterMap
Definition
BmnGemRaw2Digit.h:90
BmnGemRaw2Digit::ReadLocalMap
BmnStatus ReadLocalMap(TString parName, StripMapArray &m, Int_t lay, Int_t mod)
Definition
BmnGemRaw2Digit.cxx:205
BmnGemRaw2Digit::FillProfiles
BmnStatus FillProfiles(TClonesArray *adc)
Definition
BmnGemRaw2Digit.cxx:255
BmnGemRaw2Digit::fSmall
StripMapArray fSmall
Definition
BmnGemRaw2Digit.h:92
BmnGemRaw2Digit::fSM2MapMaxStrip
map< KeySM, MapLayer2MaxStrip > fSM2MapMaxStrip
Definition
BmnGemRaw2Digit.h:99
BmnGemRaw2Digit::fGemStationSet
unique_ptr< BmnGemStripStationSet > fGemStationSet
Definition
BmnGemRaw2Digit.h:84
BmnGemRaw2Digit::InitStripRanges
void InitStripRanges(unique_ptr< BmnGemStripStationSet > &ss)
Definition
BmnGemRaw2Digit.cxx:65
TClonesArray
TString
BmnAdcProcessor.h
BmnGemRaw2Digit::BmnGemMap::strip
Int_t strip
Definition
BmnGemRaw2Digit.h:29
BmnGemRaw2Digit::BmnGemMap::BmnGemMap
BmnGemMap()
Definition
BmnGemRaw2Digit.h:39
BmnGemRaw2Digit::BmnGemMap::BmnGemMap
BmnGemMap(Int_t s, Int_t l, Int_t m)
Definition
BmnGemRaw2Digit.h:33
BmnGemRaw2Digit::BmnGemMap::lay
Int_t lay
Definition
BmnGemRaw2Digit.h:30
BmnGemRaw2Digit::BmnGemMap::mod
Int_t mod
Definition
BmnGemRaw2Digit.h:31
BmnGemRaw2Digit::GemMapLine
Definition
BmnGemRaw2Digit.h:48
BmnGemRaw2Digit::GemMapLine::Map_arr_ptr
StripMapArray * Map_arr_ptr
Definition
BmnGemRaw2Digit.h:59
BmnGemRaw2Digit::GemMapLine::Module
Int_t Module
Definition
BmnGemRaw2Digit.h:56
BmnGemRaw2Digit::GemMapLine::Ch_hi
Int_t Ch_hi
Definition
BmnGemRaw2Digit.h:51
BmnGemRaw2Digit::GemMapLine::Ch_lo
Int_t Ch_lo
Definition
BmnGemRaw2Digit.h:50
BmnGemRaw2Digit::GemMapLine::Type
Int_t Type
Definition
BmnGemRaw2Digit.h:54
BmnGemRaw2Digit::GemMapLine::Serial
Int_t Serial
Definition
BmnGemRaw2Digit.h:49
BmnGemRaw2Digit::GemMapLine::Side
Int_t Side
Definition
BmnGemRaw2Digit.h:53
BmnGemRaw2Digit::GemMapLine::Channel_shift
int32_t Channel_shift
Definition
BmnGemRaw2Digit.h:58
BmnGemRaw2Digit::GemMapLine::Print
void Print()
Definition
BmnGemRaw2Digit.h:61
BmnGemRaw2Digit::GemMapLine::GemMapLine
GemMapLine()
Definition
BmnGemRaw2Digit.h:67
BmnGemRaw2Digit::GemMapLine::GEM_id
Int_t GEM_id
Definition
BmnGemRaw2Digit.h:52
BmnGemRaw2Digit::GemMapLine::Zone
Int_t Zone
Definition
BmnGemRaw2Digit.h:57
BmnGemRaw2Digit::GemMapLine::Station
Int_t Station
Definition
BmnGemRaw2Digit.h:55
decoder
BmnGemRaw2Digit.h
Generated on
for BmnRoot by
1.17.0