BmnRoot
26.10.0-18-g4e3414f9
Software framework of the BM@N experiment
Toggle main menu visibility
Loading...
Searching...
No Matches
BmnSiliconRaw2Digit.h
Go to the documentation of this file.
1
#ifndef BMNSILICONRAW2DIGIT_H
2
#define BMNSILICONRAW2DIGIT_H
3
4
#include "BmnADCDigit.h"
5
#include "
BmnAdcProcessor.h
"
6
#include "BmnEnums.h"
7
#include "BmnSiliconDigit.h"
8
#include "
TClonesArray.h
"
9
#include "
TColor.h
"
10
#include "
TMath.h
"
11
#include "
TString.h
"
12
#include "
TTree.h
"
13
14
#include <BmnEventHeader.h>
15
#include <BmnFunctionSet.h>
16
#include <
TSystem.h
>
17
#include <fstream>
18
#include <iostream>
19
#include <list>
20
#include <map>
21
#include <tuple>
22
#include <vector>
23
24
using
std::map;
25
using
std::string;
26
using
std::unordered_map;
27
using
std::vector;
28
29
struct
BmnSiliconMapInfo
30
{
31
uint32_t
serial
;
32
uint16_t
station
;
33
uint16_t
module
;
34
uint8_t
layer
;
// X = 0 or X' = 1
35
bool
inverted
;
36
uint16_t
channel_low
;
37
uint16_t
channel_high
;
38
int32_t
strip_min
;
39
int32_t
strip_max
;
40
};
41
/**
42
* upper channel to map info
43
* (range map (C++20 is still unavailable, so we have to use crutches))
44
*/
45
typedef
map<int32_t, BmnSiliconMapInfo*>
InChanMapSil
;
46
47
class
BmnSiliconRaw2Digit
:
public
BmnAdcProcessor
48
{
49
public
:
50
BmnSiliconRaw2Digit
(uint32_t period, uint32_t run,
TString
MapFileName,
BmnSetup
bmnSetup =
kBMNSETUP
);
51
virtual
~BmnSiliconRaw2Digit
();
52
53
BmnStatus
FillEvent
(
TClonesArray
* adc,
TClonesArray
* sts);
54
BmnStatus
FillProfiles
(
TClonesArray
* adc);
55
BmnStatus
FillNoisyChannels
();
56
void
CreatePedestalReport
();
57
58
private
:
59
unique_ptr<BmnSiliconStationSet>
fSilStationSet
;
60
61
unordered_map<uint32_t, InChanMapSil>
fOuterMap
;
// serial to inner (channel range to ) map
62
map<KeySML, BmnSiliconMapInfo*>
fSML2MapInfo
;
// {station, module, layer} to map info
63
TString
fMapFileName
;
64
65
TCanvas
*
canStrip
=
nullptr
;
66
TH2F
*
hraw
=
nullptr
;
67
TH2F
*
hrms
=
nullptr
;
68
TH2F
*
hcorrp
=
nullptr
;
69
TH2F
*
hcorr
=
nullptr
;
70
TH2F
*
hfilter
=
nullptr
;
71
TH2F
*
hped
=
nullptr
;
72
TH2F
*
hcms
=
nullptr
;
73
TH2F
*
hscms
=
nullptr
;
74
TH1F
*
hscms1
=
nullptr
;
75
TH1F
*
hscms1full
=
nullptr
;
76
TH1F
*
hped1
=
nullptr
;
77
TH1F
*
hsig
=
nullptr
;
78
int32_t
nev
= -1;
79
int32_t
niterped
;
80
int32_t
nchip
;
81
int32_t
nchmin
;
82
int32_t
npevents
;
83
84
int32_t
zeroCnt
= 0;
85
int32_t
allCnt
= 0;
86
87
Double_t
thresh
;
88
89
Double_t
thrnoise
;
90
91
BmnStatus
ReadMapFile
();
92
inline
int32_t
MapStrip
(
BmnSiliconMapInfo
*
v
, uint16_t& iCh, uint16_t& iSmpl)
93
{
94
if
(
v
->inverted)
95
return
(
v
->channel_high - iCh) *
GetNSamples
() + iSmpl;
96
else
97
return
(iCh -
v
->channel_low) *
GetNSamples
() + iSmpl;
98
}
99
void
ProcessAdc
(
TClonesArray
* silicon,
Bool_t
doFill);
100
101
ClassDef
(
BmnSiliconRaw2Digit
, 1);
102
};
103
104
#endif
/* BMNSILICONRAW2DIGIT_H */
v
__m128 v
Definition
P4_F32vec4.h:1
Bool_t
bool Bool_t
Double_t
double Double_t
ClassDef
#define ClassDef(name, id)
TClonesArray.h
TColor.h
TMath.h
TString.h
TSystem.h
TTree.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
BmnAdcProcessor::GetNSamples
const uint16_t GetNSamples()
Definition
BmnAdcProcessor.h:85
BmnSiliconRaw2Digit
Definition
BmnSiliconRaw2Digit.h:48
BmnSiliconRaw2Digit::hscms1
TH1F * hscms1
Definition
BmnSiliconRaw2Digit.h:74
BmnSiliconRaw2Digit::fOuterMap
unordered_map< uint32_t, InChanMapSil > fOuterMap
Definition
BmnSiliconRaw2Digit.h:61
BmnSiliconRaw2Digit::FillProfiles
BmnStatus FillProfiles(TClonesArray *adc)
Definition
BmnSiliconRaw2Digit.cxx:236
BmnSiliconRaw2Digit::hsig
TH1F * hsig
Definition
BmnSiliconRaw2Digit.h:77
BmnSiliconRaw2Digit::nev
int32_t nev
Definition
BmnSiliconRaw2Digit.h:78
BmnSiliconRaw2Digit::hfilter
TH2F * hfilter
Definition
BmnSiliconRaw2Digit.h:70
BmnSiliconRaw2Digit::thrnoise
Double_t thrnoise
Definition
BmnSiliconRaw2Digit.h:89
BmnSiliconRaw2Digit::nchip
int32_t nchip
Definition
BmnSiliconRaw2Digit.h:80
BmnSiliconRaw2Digit::hscms1full
TH1F * hscms1full
Definition
BmnSiliconRaw2Digit.h:75
BmnSiliconRaw2Digit::BmnSiliconRaw2Digit
BmnSiliconRaw2Digit(uint32_t period, uint32_t run, TString MapFileName, BmnSetup bmnSetup=kBMNSETUP)
Definition
BmnSiliconRaw2Digit.cxx:10
BmnSiliconRaw2Digit::hcorr
TH2F * hcorr
Definition
BmnSiliconRaw2Digit.h:69
BmnSiliconRaw2Digit::allCnt
int32_t allCnt
Definition
BmnSiliconRaw2Digit.h:85
BmnSiliconRaw2Digit::hped
TH2F * hped
Definition
BmnSiliconRaw2Digit.h:71
BmnSiliconRaw2Digit::niterped
int32_t niterped
Definition
BmnSiliconRaw2Digit.h:79
BmnSiliconRaw2Digit::canStrip
TCanvas * canStrip
Definition
BmnSiliconRaw2Digit.h:65
BmnSiliconRaw2Digit::MapStrip
int32_t MapStrip(BmnSiliconMapInfo *v, uint16_t &iCh, uint16_t &iSmpl)
Definition
BmnSiliconRaw2Digit.h:92
BmnSiliconRaw2Digit::nchmin
int32_t nchmin
Definition
BmnSiliconRaw2Digit.h:81
BmnSiliconRaw2Digit::fSilStationSet
unique_ptr< BmnSiliconStationSet > fSilStationSet
Definition
BmnSiliconRaw2Digit.h:59
BmnSiliconRaw2Digit::FillEvent
BmnStatus FillEvent(TClonesArray *adc, TClonesArray *sts)
Definition
BmnSiliconRaw2Digit.cxx:224
BmnSiliconRaw2Digit::hcms
TH2F * hcms
Definition
BmnSiliconRaw2Digit.h:72
BmnSiliconRaw2Digit::hrms
TH2F * hrms
Definition
BmnSiliconRaw2Digit.h:67
BmnSiliconRaw2Digit::~BmnSiliconRaw2Digit
virtual ~BmnSiliconRaw2Digit()
Definition
BmnSiliconRaw2Digit.cxx:69
BmnSiliconRaw2Digit::FillNoisyChannels
BmnStatus FillNoisyChannels()
Definition
BmnSiliconRaw2Digit.cxx:249
BmnSiliconRaw2Digit::npevents
int32_t npevents
Definition
BmnSiliconRaw2Digit.h:82
BmnSiliconRaw2Digit::ReadMapFile
BmnStatus ReadMapFile()
Definition
BmnSiliconRaw2Digit.cxx:97
BmnSiliconRaw2Digit::thresh
Double_t thresh
Definition
BmnSiliconRaw2Digit.h:87
BmnSiliconRaw2Digit::ProcessAdc
void ProcessAdc(TClonesArray *silicon, Bool_t doFill)
Definition
BmnSiliconRaw2Digit.cxx:420
BmnSiliconRaw2Digit::fMapFileName
TString fMapFileName
Definition
BmnSiliconRaw2Digit.h:63
BmnSiliconRaw2Digit::CreatePedestalReport
void CreatePedestalReport()
BmnSiliconRaw2Digit::hscms
TH2F * hscms
Definition
BmnSiliconRaw2Digit.h:73
BmnSiliconRaw2Digit::fSML2MapInfo
map< KeySML, BmnSiliconMapInfo * > fSML2MapInfo
Definition
BmnSiliconRaw2Digit.h:62
BmnSiliconRaw2Digit::zeroCnt
int32_t zeroCnt
Definition
BmnSiliconRaw2Digit.h:84
BmnSiliconRaw2Digit::hped1
TH1F * hped1
Definition
BmnSiliconRaw2Digit.h:76
BmnSiliconRaw2Digit::hcorrp
TH2F * hcorrp
Definition
BmnSiliconRaw2Digit.h:68
BmnSiliconRaw2Digit::hraw
TH2F * hraw
Definition
BmnSiliconRaw2Digit.h:66
TCanvas
TClonesArray
TH1F
TH2F
TString
BmnAdcProcessor.h
InChanMapSil
map< int32_t, BmnSiliconMapInfo * > InChanMapSil
upper channel to map info (range map (C++20 is still unavailable, so we have to use crutches))
Definition
BmnSiliconRaw2Digit.h:45
BmnSiliconMapInfo
Definition
BmnSiliconRaw2Digit.h:30
BmnSiliconMapInfo::serial
uint32_t serial
Definition
BmnSiliconRaw2Digit.h:31
BmnSiliconMapInfo::strip_min
int32_t strip_min
Definition
BmnSiliconRaw2Digit.h:38
BmnSiliconMapInfo::strip_max
int32_t strip_max
Definition
BmnSiliconRaw2Digit.h:39
BmnSiliconMapInfo::channel_high
uint16_t channel_high
Definition
BmnSiliconRaw2Digit.h:37
BmnSiliconMapInfo::station
uint16_t station
Definition
BmnSiliconRaw2Digit.h:32
BmnSiliconMapInfo::module
uint16_t module
Definition
BmnSiliconRaw2Digit.h:33
BmnSiliconMapInfo::channel_low
uint16_t channel_low
Definition
BmnSiliconRaw2Digit.h:36
BmnSiliconMapInfo::layer
uint8_t layer
Definition
BmnSiliconRaw2Digit.h:34
BmnSiliconMapInfo::inverted
bool inverted
Definition
BmnSiliconRaw2Digit.h:35
decoder
BmnSiliconRaw2Digit.h
Generated on
for BmnRoot by
1.17.0