BmnRoot
Loading...
Searching...
No Matches
BmnDigiContainerTemplate.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
15#ifndef BmnDigiContainerTemplate_H
16#define BmnDigiContainerTemplate_H 1
17
18#include "TCanvas.h"
19#include "TGraph.h"
20#include "TROOT.h"
21
22#include <Rtypes.h> // for THashConsistencyHolder, ClassDefNV
23#include <boost/serialization/access.hpp>
24#include <boost/serialization/base_object.hpp>
25#include <numeric>
26#include <stdint.h>
27#include <string> // for string
28
30{
31
32 public:
36
40 int zl,
41 int integral,
42 int time_max,
43 int tot,
44 float fit_ampl,
45 float fit_zl,
46 float fit_integral,
47 float fit_R2,
48 float fit_time_max,
49 std::vector<float> wfm,
50 std::vector<float> fit_wfm);
51
54
57
60
63
66 {
67 std::vector<float>().swap(fWfm);
68 std::vector<float>().swap(fFitWfm);
69 }
70
74 virtual const char* GetClassName() { return "BmnDigiContainerTemplate"; }
75
79 float GetFitR2() const { return fFitR2; };
80
84 std::vector<float> GetWfm() const { return fWfm; }
85
86 void reset();
87
88 void DrawWfmWithTitle(TCanvas* canvas, TString hist_name);
89 const void DeleteCanvases() { gROOT->GetListOfCanvases()->Delete(); }
90
91 int fAmpl = 0;
92 int fZL = 0;
93 int fIntegral = 0;
94 int fTimeMax = 0;
95 int fToT = 0;
96
97 float fFitAmpl = 0.;
98 float fFitZL = 0.;
99 float fFitIntegral = 0.;
100 float fFitR2 = 2.;
101 float fFitTimeMax = -1.;
102
103 std::vector<float> fWfm;
104 std::vector<float> fFitWfm;
105
106 template<class Archive>
107 void serialize(Archive& ar, const unsigned int /*version*/)
108 {
109 ar & fAmpl;
110 ar & fZL;
111 ar & fIntegral;
112 ar & fTimeMax;
113 ar & fToT;
114
115 ar & fFitAmpl;
116 ar & fFitZL;
117 ar & fFitIntegral;
118 ar & fFitR2;
119 ar & fFitTimeMax;
120
121 ar & fWfm;
122 ar & fFitWfm;
123 }
124
125 private:
127 friend class boost::serialization::access;
128
129 ClassDefNV(BmnDigiContainerTemplate, 3);
130};
131
132#endif // BmnDigiContainerTemplate_H
Data class for Bmn digi container template.
BmnDigiContainerTemplate()
Default constructor.
std::vector< float > fWfm
Time of maximum in fit of waveform [adc samples].
float fFitTimeMax
Quality of waveform fit [] – good near 0.
float fFitZL
Amplitude from fit of waveform [adc counts].
float fFitR2
Energy deposition from fit of waveform [adc counts].
BmnDigiContainerTemplate(BmnDigiContainerTemplate &&)
float GetFitR2() const
Fit R2 quality.
int fToT
Time of maximum in waveform [adc samples].
void DrawWfmWithTitle(TCanvas *canvas, TString hist_name)
int fZL
Amplitude from waveform [adc counts].
float fFitIntegral
ZeroLevel from fit of waveform [adc counts].
BmnDigiContainerTemplate & operator=(BmnDigiContainerTemplate &&)
void serialize(Archive &ar, const unsigned int)
BmnDigiContainerTemplate & operator=(const BmnDigiContainerTemplate &)
float fFitAmpl
Time over threshold [adc samples].
std::vector< float > GetWfm() const
Waveform.
BmnDigiContainerTemplate(const BmnDigiContainerTemplate &)
int fTimeMax
Energy deposition from waveform [adc counts].
int fIntegral
ZeroLevel from waveform [adc counts].
virtual const char * GetClassName()
Class name (static)
BmnDigiContainerTemplate(int ampl, int zl, int integral, int time_max, int tot, float fit_ampl, float fit_zl, float fit_integral, float fit_R2, float fit_time_max, std::vector< float > wfm, std::vector< float > fit_wfm)
Constructor with detailed assignment.