BmnRoot
26.10.0-18-g4e3414f9
Software framework of the BM@N experiment
Toggle main menu visibility
Loading...
Searching...
No Matches
BmnHistHgnd.h
Go to the documentation of this file.
1
#ifndef BMNHISTHGND_H
2
#define BMNHISTHGND_H
3
4
#include "
BmnHist.h
"
5
#include "
BmnNdetAddress.h
"
6
#include "
BmnNdetGeo.h
"
7
#include "
PadInfo.h
"
8
#include "
TCanvas.h
"
9
#include "
TH1F.h
"
10
#include "
TH2F.h
"
11
#include "
THttpServer.h
"
12
13
#include <limits>
14
#include <map>
15
#include <memory>
16
#include <set>
17
#include <string>
18
#include <vector>
19
20
class
BmnHistHgnd
:
public
BmnHist
21
{
22
public
:
23
struct
CanvasInfo
24
{
25
TCanvas
*
canvas
{
nullptr
};
26
std::vector<PadInfo*>
pads
;
27
28
CanvasInfo
() =
default
;
29
CanvasInfo
(
TCanvas
* c)
30
:
canvas
(c)
31
{}
32
~CanvasInfo
() {
delete
canvas
; }
33
34
CanvasInfo
(
const
CanvasInfo
&) =
delete
;
35
CanvasInfo
&
operator=
(
const
CanvasInfo
&) =
delete
;
36
CanvasInfo
(
CanvasInfo
&& other) noexcept
37
:
canvas
(std::exchange(other.canvas,
nullptr
))
38
,
pads
(std::move(other.pads))
39
{}
40
CanvasInfo
&
operator=
(
CanvasInfo
&& other)
noexcept
41
{
42
if
(
this
!= &other) {
43
delete
canvas
;
44
canvas
= std::exchange(other.canvas,
nullptr
);
45
pads
= std::move(other.pads);
46
}
47
return
*
this
;
48
}
49
};
50
51
BmnHistHgnd
(
TString
title,
TString
path,
Int_t
PeriodID,
BmnSetup
stp);
52
virtual
~BmnHistHgnd
();
53
54
void
CreateHistos
();
55
void
Register
(
THttpServer
* serv)
override
;
56
void
SetDir
(
TFile
* outFile,
TTree
* recoTree)
override
;
57
void
DrawBoth
()
override
;
58
void
FillFromDigi
(
DigiArrays
* fDigiArrays)
override
;
59
void
Reset
()
override
;
60
61
BmnStatus
SetRefRun
(
Int_t
id
);
62
void
ClearRefRun
()
override
;
63
64
void
SetSelection
(
Int_t
Trigger);
65
66
private
:
67
void
SetGeometry
(
const
std::string& path);
68
void
InitializeAddresses
();
69
void
setupAxis
(
TH1
* hist,
const
std::string& xTitle,
const
std::string& yTitle);
70
71
template
<
typename
T,
typename
... Args>
72
T*
createH1
(Args&&... args);
73
74
template
<
typename
T,
typename
... Args>
75
T*
createH2
(Args&&... args);
76
77
// Geometry
78
std::unique_ptr<BmnNdetGeo>
fGeoHandler
;
79
80
// All possible detector addresses
81
std::set<uint32_t>
fAddresses
;
82
83
// Address-indexed histograms
84
std::map<uint32_t, TH1F*>
hProfCell
;
// profile across layers for each cell
85
std::map<uint32_t, TH2F*>
hCellAmpTime
;
// time vs amplitude per cell
86
std::map<uint32_t, TH2F*>
hLayerAmps
;
// 2d row:col for each layer
87
88
// Individual histograms (for convenient access)
89
TH1F
*
h1_ECells
{
nullptr
};
90
TH1F
*
h1_ProfileSlice
{
nullptr
};
91
92
TH2F
*
h2_grid
{
nullptr
};
93
TH2F
*
h2_Layer_Cell
{
nullptr
};
94
95
// All histograms for bulk operations
96
std::vector<TH1*>
m_allHistograms
;
97
98
// Canvases
99
std::vector<std::unique_ptr<CanvasInfo>>
m_canvases
;
100
101
// Selection
102
bool
fSelection
{
false
};
103
Int_t
fSelectedTrigger
{-1};
104
105
UInt_t
fEventCounter
{1};
106
107
static
constexpr
UInt_t
kLAYRS
= 2;
// number of layers
108
static
constexpr
UInt_t
kROWS
= 1;
// rows per layer
109
static
constexpr
UInt_t
kCOLS
= 1;
// columns per layer
110
111
ClassDefOverride
(
BmnHistHgnd
, 3);
112
};
113
114
// Template implementations must be in header
115
template
<
typename
T,
typename
... Args>
116
T*
BmnHistHgnd::createH1
(Args&&... args)
117
{
118
T* hist =
new
T(std::forward<Args>(args)...);
119
m_allHistograms
.push_back(hist);
120
return
hist;
121
}
122
123
template
<
typename
T,
typename
... Args>
124
T*
BmnHistHgnd::createH2
(Args&&... args)
125
{
126
T* hist =
new
T(std::forward<Args>(args)...);
127
m_allHistograms
.push_back(hist);
128
return
hist;
129
}
130
131
#endif
Int_t
int Int_t
UInt_t
unsigned int UInt_t
ClassDefOverride
#define ClassDefOverride(name, id)
TCanvas.h
TH1F.h
TH2F.h
THttpServer.h
BmnStatus
BmnStatus
Define status code.
Definition
BmnEnums.h:93
BmnSetup
BmnSetup
Define experimental setup.
Definition
BmnEnums.h:165
BmnHistHgnd::hProfCell
std::map< uint32_t, TH1F * > hProfCell
Definition
BmnHistHgnd.h:84
BmnHistHgnd::m_canvases
std::vector< std::unique_ptr< CanvasInfo > > m_canvases
Definition
BmnHistHgnd.h:99
BmnHistHgnd::fAddresses
std::set< uint32_t > fAddresses
Definition
BmnHistHgnd.h:81
BmnHistHgnd::fSelection
bool fSelection
Definition
BmnHistHgnd.h:102
BmnHistHgnd::~BmnHistHgnd
virtual ~BmnHistHgnd()
Definition
BmnHistHgnd.cxx:17
BmnHistHgnd::FillFromDigi
void FillFromDigi(DigiArrays *fDigiArrays) override
Definition
BmnHistHgnd.cxx:253
BmnHistHgnd::h1_ProfileSlice
TH1F * h1_ProfileSlice
Definition
BmnHistHgnd.h:90
BmnHistHgnd::SetGeometry
void SetGeometry(const std::string &path)
Definition
BmnHistHgnd.cxx:37
BmnHistHgnd::fEventCounter
UInt_t fEventCounter
Definition
BmnHistHgnd.h:105
BmnHistHgnd::createH1
T * createH1(Args &&... args)
Definition
BmnHistHgnd.h:116
BmnHistHgnd::kCOLS
static constexpr UInt_t kCOLS
Definition
BmnHistHgnd.h:109
BmnHistHgnd::SetDir
void SetDir(TFile *outFile, TTree *recoTree) override
Definition
BmnHistHgnd.cxx:226
BmnHistHgnd::SetSelection
void SetSelection(Int_t Trigger)
Definition
BmnHistHgnd.cxx:239
BmnHistHgnd::CreateHistos
void CreateHistos()
Definition
BmnHistHgnd.cxx:77
BmnHistHgnd::fSelectedTrigger
Int_t fSelectedTrigger
Definition
BmnHistHgnd.h:103
BmnHistHgnd::ClearRefRun
void ClearRefRun() override
Definition
BmnHistHgnd.cxx:331
BmnHistHgnd::hLayerAmps
std::map< uint32_t, TH2F * > hLayerAmps
Definition
BmnHistHgnd.h:86
BmnHistHgnd::h2_Layer_Cell
TH2F * h2_Layer_Cell
Definition
BmnHistHgnd.h:93
BmnHistHgnd::m_allHistograms
std::vector< TH1 * > m_allHistograms
Definition
BmnHistHgnd.h:96
BmnHistHgnd::BmnHistHgnd
BmnHistHgnd(TString title, TString path, Int_t PeriodID, BmnSetup stp)
Definition
BmnHistHgnd.cxx:6
BmnHistHgnd::kLAYRS
static constexpr UInt_t kLAYRS
Definition
BmnHistHgnd.h:107
BmnHistHgnd::Register
void Register(THttpServer *serv) override
Definition
BmnHistHgnd.cxx:199
BmnHistHgnd::setupAxis
void setupAxis(TH1 *hist, const std::string &xTitle, const std::string &yTitle)
Definition
BmnHistHgnd.cxx:65
BmnHistHgnd::createH2
T * createH2(Args &&... args)
Definition
BmnHistHgnd.h:124
BmnHistHgnd::SetRefRun
BmnStatus SetRefRun(Int_t id)
Definition
BmnHistHgnd.cxx:314
BmnHistHgnd::hCellAmpTime
std::map< uint32_t, TH2F * > hCellAmpTime
Definition
BmnHistHgnd.h:85
BmnHistHgnd::h1_ECells
TH1F * h1_ECells
Definition
BmnHistHgnd.h:89
BmnHistHgnd::DrawBoth
void DrawBoth() override
Definition
BmnHistHgnd.cxx:246
BmnHistHgnd::fGeoHandler
std::unique_ptr< BmnNdetGeo > fGeoHandler
Definition
BmnHistHgnd.h:78
BmnHistHgnd::h2_grid
TH2F * h2_grid
Definition
BmnHistHgnd.h:92
BmnHistHgnd::Reset
void Reset() override
Definition
BmnHistHgnd.cxx:344
BmnHistHgnd::InitializeAddresses
void InitializeAddresses()
Definition
BmnHistHgnd.cxx:44
BmnHistHgnd::kROWS
static constexpr UInt_t kROWS
Definition
BmnHistHgnd.h:108
BmnHist::BmnHist
BmnHist(Int_t periodID=7, BmnSetup setup=kBMNSETUP)
Definition
BmnHist.cxx:3
DigiArrays
Definition
DigiArrays.h:10
TCanvas
TFile
TH1F
TH1
TH2F
THttpServer
TString
TTree
BmnHist.h
BmnNdetAddress.h
BmnNdetGeo.h
PadInfo.h
BmnHistHgnd::CanvasInfo::CanvasInfo
CanvasInfo(CanvasInfo &&other) noexcept
Definition
BmnHistHgnd.h:36
BmnHistHgnd::CanvasInfo::canvas
TCanvas * canvas
Definition
BmnHistHgnd.h:25
BmnHistHgnd::CanvasInfo::~CanvasInfo
~CanvasInfo()
Definition
BmnHistHgnd.h:32
BmnHistHgnd::CanvasInfo::pads
std::vector< PadInfo * > pads
Definition
BmnHistHgnd.h:26
BmnHistHgnd::CanvasInfo::CanvasInfo
CanvasInfo(TCanvas *c)
Definition
BmnHistHgnd.h:29
BmnHistHgnd::CanvasInfo::operator=
CanvasInfo & operator=(CanvasInfo &&other) noexcept
Definition
BmnHistHgnd.h:40
BmnHistHgnd::CanvasInfo::CanvasInfo
CanvasInfo()=default
BmnHistHgnd::CanvasInfo::CanvasInfo
CanvasInfo(const CanvasInfo &)=delete
BmnHistHgnd::CanvasInfo::operator=
CanvasInfo & operator=(const CanvasInfo &)=delete
install
include
BmnHistHgnd.h
Generated on
for BmnRoot by
1.17.0