BmnRoot
26.10.0-18-g4e3414f9
Software framework of the BM@N experiment
Toggle main menu visibility
Loading...
Searching...
No Matches
BmnHodoDigi.h
Go to the documentation of this file.
1
/* Copyright (C) 2021 Institute for Nuclear Research, Moscow
2
SPDX-License-Identifier: GPL-3.0-only
3
Authors: Nikolay Karpushkin [committer] */
4
5
/** \file BmnHodoDigi.h
6
** \author Nikolay Karpushkin <karpushkin@inr.ru>
7
** \date 21.01.2022
8
**/
9
10
/** \class BmnHodoDigi
11
** \brief Data class for BmnHodo digital signal processing
12
** \version 1.0
13
**/
14
15
#ifndef BmnHodoDigi_H
16
#define BmnHodoDigi_H 1
17
18
#include "BmnDigiContainerTemplate.h"
// for BmnDigiContainerTemplate
19
#include "
BmnHodoAddress.h
"
// for BmnHodoAddress
20
#include "
BmnHodoDigit.h
"
// for BmnHodoDigit
21
22
class
BmnHodoDigi
23
:
public
BmnHodoDigit
24
,
public
BmnDigiContainerTemplate
25
{
26
27
public
:
28
/**@brief Default constructor.
29
**/
30
BmnHodoDigi
()
31
:
BmnHodoDigit
()
32
,
BmnDigiContainerTemplate
()
33
,
fNpeaks
(0)
34
,
fR2history
{}
35
,
fSignalIntegral
{0.0}
36
,
fCrosstalk
{0.0}
37
{}
38
39
/** Destructor **/
40
~BmnHodoDigi
() {};
41
42
void
reset
() override final
43
{
44
BmnHodoDigit::reset
();
45
BmnDigiContainerTemplate::reset
();
46
fNpeaks
= 0;
47
fR2history
.clear();
48
fSignalIntegral
= 0.0;
49
fCrosstalk
= 0.0;
50
}
51
52
size_t
fNpeaks
= 0;
53
std::vector<float>
fR2history
;
54
float
fSignalIntegral
;
55
float
fCrosstalk
;
56
57
/** @brief Class name
58
** @return BmnHodoDigi
59
**/
60
virtual
const
char
*
GetClassName
() override final {
return
"BmnHodoDigi"
; }
61
62
/** @brief Strip Side
63
** @return Strip Side from Unique channel address (see BmnHodoAddress)
64
**/
65
uint32_t
GetStripSide
()
const
{
return
BmnHodoAddress::GetStripSide
(
fAddress
); };
66
67
/** @brief Gain
68
** @return Gain from Unique channel address (see BmnHodoAddress)
69
**/
70
uint32_t
GetGain
()
const
{
return
BmnHodoAddress::GetGain
(
fAddress
); };
71
72
const
int
DrawWfm
()
73
{
74
TString
hist_name =
75
(
fNpeaks
> 1)
76
?
Form
(
"Strip%u. From deconv. Amplitude %.0f ZL %.0f TimeMax %.0f FitR2 %.4f; time [sample]; ampl "
77
"[a.u.]"
,
78
GetStripId
(),
fFitAmpl
,
fFitZL
,
fFitTimeMax
,
GetFitR2
())
79
:
Form
(
"Strip%u. From raw. Amplitude %d ZL %d TimeMax %d FitR2 %.4f; time [sample]; ampl [a.u.]"
,
80
GetStripId
(),
fAmpl
,
fZL
,
fTimeMax
,
GetFitR2
());
81
TCanvas
* canvas =
new
TCanvas
();
82
canvas->
Divide
(1, 2);
83
DrawWfmWithTitle
(canvas, hist_name);
84
DrawR2history
(canvas);
85
86
return
1;
87
}
88
89
void
DrawR2history
(
TCanvas
* canvas)
90
{
91
if
(
fR2history
.empty())
92
return
;
93
canvas->
cd
(2);
94
95
std::vector<float> points(
fR2history
.size());
96
std::iota(std::begin(points), std::end(points), 0);
// Fill with 0, 1, ..., wfm.back().
97
TGraph
* tgr_ptr =
new
TGraph
(
fR2history
.size(), &points[0], &
fR2history
[0]);
98
tgr_ptr->
SetTitle
(
Form
(
"R2 history; iteration; R2"
));
99
tgr_ptr->
Draw
();
100
}
101
102
ClassDefOverride
(
BmnHodoDigi
, 4);
103
};
104
105
#endif
// BmnHodoDigi_H
ClassDefOverride
#define ClassDefOverride(name, id)
Form
char * Form(const char *fmt,...)
BmnAbstractDigit::fAddress
uint32_t fAddress
Definition
BmnAbstractDigit.h:51
BmnAbstractDigit::reset
virtual void reset()
Definition
BmnAbstractDigit.h:31
BmnDigiContainerTemplate::BmnDigiContainerTemplate
BmnDigiContainerTemplate()
Default constructor.
Definition
BmnDigiContainerTemplate.cxx:20
BmnDigiContainerTemplate::fFitTimeMax
float fFitTimeMax
Quality of waveform fit [] – good near 0.
Definition
BmnDigiContainerTemplate.h:101
BmnDigiContainerTemplate::fFitZL
float fFitZL
Amplitude from fit of waveform [adc counts].
Definition
BmnDigiContainerTemplate.h:98
BmnDigiContainerTemplate::reset
void reset()
Definition
BmnDigiContainerTemplate.cxx:138
BmnDigiContainerTemplate::GetFitR2
float GetFitR2() const
Fit R2 quality.
Definition
BmnDigiContainerTemplate.h:79
BmnDigiContainerTemplate::fAmpl
int fAmpl
Definition
BmnDigiContainerTemplate.h:91
BmnDigiContainerTemplate::DrawWfmWithTitle
void DrawWfmWithTitle(TCanvas *canvas, TString hist_name)
Definition
BmnDigiContainerTemplate.cxx:156
BmnDigiContainerTemplate::fZL
int fZL
Amplitude from waveform [adc counts].
Definition
BmnDigiContainerTemplate.h:92
BmnDigiContainerTemplate::fFitAmpl
float fFitAmpl
Time over threshold [adc samples].
Definition
BmnDigiContainerTemplate.h:97
BmnDigiContainerTemplate::fTimeMax
int fTimeMax
Energy deposition from waveform [adc counts].
Definition
BmnDigiContainerTemplate.h:94
BmnHodoAddress::GetStripSide
static uint32_t GetStripSide(uint32_t address)
Return Strip side from address.
Definition
BmnHodoAddress.h:70
BmnHodoAddress::GetGain
static uint32_t GetGain(uint32_t address)
Return Gain from address.
Definition
BmnHodoAddress.h:80
BmnHodoDigi
Data class for BmnHodo digital signal processing.
Definition
BmnHodoDigi.h:25
BmnHodoDigi::reset
void reset() override final
Definition
BmnHodoDigi.h:42
BmnHodoDigi::fSignalIntegral
float fSignalIntegral
Definition
BmnHodoDigi.h:54
BmnHodoDigi::GetGain
uint32_t GetGain() const
Gain.
Definition
BmnHodoDigi.h:70
BmnHodoDigi::DrawWfm
const int DrawWfm()
Definition
BmnHodoDigi.h:72
BmnHodoDigi::fCrosstalk
float fCrosstalk
Definition
BmnHodoDigi.h:55
BmnHodoDigi::~BmnHodoDigi
~BmnHodoDigi()
Destructor.
Definition
BmnHodoDigi.h:40
BmnHodoDigi::fR2history
std::vector< float > fR2history
Definition
BmnHodoDigi.h:53
BmnHodoDigi::fNpeaks
size_t fNpeaks
Definition
BmnHodoDigi.h:52
BmnHodoDigi::GetClassName
virtual const char * GetClassName() override final
Class name.
Definition
BmnHodoDigi.h:60
BmnHodoDigi::GetStripSide
uint32_t GetStripSide() const
Strip Side.
Definition
BmnHodoDigi.h:65
BmnHodoDigi::BmnHodoDigi
BmnHodoDigi()
Default constructor.
Definition
BmnHodoDigi.h:30
BmnHodoDigi::DrawR2history
void DrawR2history(TCanvas *canvas)
Definition
BmnHodoDigi.h:89
BmnHodoDigit::GetStripId
uint32_t GetStripId() const
Definition
BmnHodoDigit.h:29
BmnHodoDigit::BmnHodoDigit
BmnHodoDigit()
Definition
BmnHodoDigit.h:16
TCanvas
TCanvas::cd
TVirtualPad * cd(Int_t subpadnumber=0) override
TGraph
TGraph::Draw
void Draw(Option_t *chopt="") override
TGraph::SetTitle
void SetTitle(const char *title="") override
TPad::Divide
void Divide(Int_t nx=1, Int_t ny=1, Float_t xmargin=0.01, Float_t ymargin=0.01, Int_t color=0) override
TString
BmnHodoAddress.h
BmnHodoDigit.h
detectors
hodo
BmnHodoDigi.h
Generated on
for BmnRoot by
1.17.0