BmnRoot 26.10.0-18-g4e3414f9
Software framework of the BM@N experiment
Loading...
Searching...
No Matches
BmnHistNdet.h
Go to the documentation of this file.
1#ifndef BMNHISTNdet_H
2#define BMNHISTNdet_H 1
3
4#include "BmnHist.h"
5#include "BmnNdetDigi.h"
6#include "BmnNdetGeo.h"
7#include "TCanvas.h"
8#include "TChain.h"
9#include "TClonesArray.h"
10#include "TColor.h"
11#include "TFile.h"
12#include "TFolder.h"
13#include "TH1F.h"
14#include "TH2F.h"
15#include "THttpServer.h"
16#include "TString.h"
17
18#include <TNamed.h>
19#define Ndet_ROWS 1
20#define Ndet_COLS 2
21
22class BmnHistNdet : public BmnHist
23{
24 public:
25 BmnHistNdet(TString title = "Ndet", TString path = "", Int_t periodID = 8, BmnSetup setup = kBMNSETUP);
26 virtual ~BmnHistNdet();
28 void Reset();
29 void Register(THttpServer* serv);
30 void SetDir(TFile* outFile, TTree* recoTree);
31 void DrawBoth();
33 void FillFromDigi(DigiArrays* fDigiArrays);
35 void SetSelection(Int_t Cell, Int_t Layer, Int_t Trigger);
36 void SetGeometry(const std::string& path);
37
38 private:
39 static constexpr int kTOTAL_CELLS = 9; // Ndet Prototype 2022. Cells numerated from 1 to 9 inclusive
40 static constexpr int kTOTAL_COLS = 3; // Ndet Prototype 2022. Cols numerated from 1 to 3 inclusive
41 static constexpr int kTOTAL_ROWS = 3; // Ndet Prototype 2022. Rows numerated from 1 to 3 inclusive
42 static constexpr int kTOTAL_LAYRS = 16; // Ndet Prototype 2022. Layers numerated from 1 to 15 inclusive
43 static constexpr int kEM_LAYRS = 6; // Ndet Prototype 2022. Layers numerated from 1 to 6 inclusive
44 static constexpr int kHAD_LAYRS = 9; // Ndet Prototype 2022. Layers numerated from 1 to 6 inclusive
45 static constexpr int kTQDC_MAX_CHAN = 16; // Ndet Prototype 2022. Mx tqdc channels
46 static constexpr int kTQDC_MAX_MODULES = 9; // Ndet Prototype 2022. Mx tqdc modules
47 std::vector<unsigned int> MapCell2Ch = {0, 3, 6, 9, 2, 5, 8, 1, 4, 7}; // cells numerated from 1 to 9 inclusive
48
49 long int fEventCounter = 1;
50 float nEn;
51 float timemin;
52 BmnNdetGeo* fGeoHandler; // stores map with detector address to 3D position and error
56
59 TH1F* h1d_ProfileSlice; // profile over slices of detector (sum over cells in current layer)
60 TH1F* h1d_timemin; // minimum timestamp in event
61 TH1F* hChE; // amplitude in selected channel
62 TH1F* wfmCh; // waveform in selected channel
71
85 vector<PadInfo*> canAmpsPads;
86 vector<PadInfo*> canv_hProfCellPads;
87 vector<PadInfo*> canv_SlicePads;
88 vector<PadInfo*> canv_CellsPads;
89 vector<PadInfo*> canv_hitsPads;
90 vector<PadInfo*> canSelectPads;
91 vector<PadInfo*> canv_AmplPads;
92 vector<PadInfo*> canv_TimePads;
93 vector<PadInfo*> canv_hAmplCellPads;
94 vector<PadInfo*> canv_hCellAmpEMPads;
95 vector<PadInfo*> canv_hCellAmpHPads;
96 vector<PadInfo*> canv_hCellTimeEMPads;
97 vector<PadInfo*> canv_hCellTimeHPads;
98 vector<TString> NamesAmps;
99 vector<TString> NamesProfs;
100 vector<TString> NamesSlice;
101 vector<TString> NamesCells;
102 vector<TString> NamesSelect;
103 vector<TString> NamesAmpl;
104 vector<TString> NamesTime;
105 vector<TString> NamesAmplCell;
106 vector<TString> NamesCellAmpEM;
107 vector<TString> NamesCellAmpH;
108 vector<TString> NamesCellTimeEM;
109 vector<TString> NamesCellTimeH;
110 vector<TString> NamesHits;
111
112 std::vector<TH1*> hProfCell =
113 std::vector<TH1*>(kTOTAL_CELLS + 1, nullptr); // Cells numerated from 1 to 9 inclusive
114 std::vector<TH1*> hCellAmpEM =
115 std::vector<TH1*>(kEM_LAYRS * kTOTAL_CELLS + 1, nullptr); // Cells numerated for EM channels
116 std::vector<TH1*> hCellAmpH =
117 std::vector<TH1*>(kHAD_LAYRS * kTOTAL_CELLS + 1, nullptr); // Cells numerated for Hadron channels
118 std::vector<TH1*> hCellTimeEM = std::vector<TH1*>(kEM_LAYRS * kTOTAL_CELLS + 1, nullptr);
119 std::vector<TH1*> hCellTimeH = std::vector<TH1*>(kHAD_LAYRS * kTOTAL_CELLS + 1, nullptr);
120 std::array<float, kTOTAL_CELLS * kTOTAL_LAYRS + 1> meanamp; // Cells numerated for all channels
121 std::array<std::array<float, kTQDC_MAX_CHAN + 1>, kTQDC_MAX_MODULES + 1>
122 meanamp_test; // Cells numerated for all channels
123 std::array<float, kTOTAL_CELLS * kTOTAL_LAYRS + 1> meantime;
124 std::array<float, kTOTAL_CELLS * kTOTAL_LAYRS + 1> ch_entries;
125 std::array<std::array<int, kTQDC_MAX_CHAN + 1>, kTQDC_MAX_MODULES + 1> ch_entries_test;
126
128};
129
130#endif /* BMNHISTNdet_H */
int Int_t
#define ClassDef(name, id)
BmnStatus
Define status code.
Definition BmnEnums.h:93
BmnSetup
Define experimental setup.
Definition BmnEnums.h:165
@ kBMNSETUP
Definition BmnEnums.h:166
void DrawBoth()
vector< PadInfo * > canSelectPads
Definition BmnHistNdet.h:90
std::array< float, kTOTAL_CELLS *kTOTAL_LAYRS+1 > meantime
vector< TString > NamesAmpl
vector< PadInfo * > canAmpsPads
Definition BmnHistNdet.h:85
std::vector< TH1 * > hProfCell
std::array< std::array< int, kTQDC_MAX_CHAN+1 >, kTQDC_MAX_MODULES+1 > ch_entries_test
void SetGeometry(const std::string &path)
vector< PadInfo * > canv_hAmplCellPads
Definition BmnHistNdet.h:93
std::vector< TH1 * > hCellTimeEM
TCanvas * canv_hProfCell
Definition BmnHistNdet.h:73
vector< PadInfo * > canv_TimePads
Definition BmnHistNdet.h:92
TH1F * h1d_timemin
Definition BmnHistNdet.h:60
Int_t fSelectedTrigger
Definition BmnHistNdet.h:55
vector< TString > NamesSelect
Int_t fSelectedLayer
Definition BmnHistNdet.h:54
static constexpr int kTOTAL_COLS
Definition BmnHistNdet.h:40
TH2F * h2_lrampl
Definition BmnHistNdet.h:69
std::vector< TH1 * > hCellAmpH
TCanvas * canv_Ampl
Definition BmnHistNdet.h:77
TH2F * h2_grid
Definition BmnHistNdet.h:58
void Reset()
TH1F * h1d_ProfileSlice
Definition BmnHistNdet.h:59
std::array< float, kTOTAL_CELLS *kTOTAL_LAYRS+1 > meanamp
std::vector< TH1 * > hCellTimeH
TCanvas * canv_Cells
Definition BmnHistNdet.h:75
vector< TString > NamesHits
vector< PadInfo * > canv_AmplPads
Definition BmnHistNdet.h:91
vector< TString > NamesSlice
vector< PadInfo * > canv_hitsPads
Definition BmnHistNdet.h:89
vector< PadInfo * > canv_hCellTimeHPads
Definition BmnHistNdet.h:97
vector< TString > NamesCellAmpEM
vector< PadInfo * > canv_hProfCellPads
Definition BmnHistNdet.h:86
static constexpr int kTOTAL_LAYRS
Definition BmnHistNdet.h:42
BmnHistNdet(TString title="Ndet", TString path="", Int_t periodID=8, BmnSetup setup=kBMNSETUP)
TCanvas * canv_hCellAmpH
Definition BmnHistNdet.h:81
void SetDir(TFile *outFile, TTree *recoTree)
TCanvas * canv_hCellAmpEM
Definition BmnHistNdet.h:80
static constexpr int kHAD_LAYRS
Definition BmnHistNdet.h:44
TCanvas * canv_Slice
Definition BmnHistNdet.h:74
TCanvas * canv_Time
Definition BmnHistNdet.h:78
TH1F * h1d_ECells
Definition BmnHistNdet.h:57
static constexpr int kTQDC_MAX_CHAN
Definition BmnHistNdet.h:45
TCanvas * canSelect
Definition BmnHistNdet.h:76
vector< TString > NamesCellTimeH
TH2F * h2_mean_amp
Definition BmnHistNdet.h:65
vector< TString > NamesAmplCell
void FillFromDigi(DigiArrays *fDigiArrays)
Int_t fSelectedCell
Definition BmnHistNdet.h:53
TH1F * wfmCh
Definition BmnHistNdet.h:62
void CreateHistos()
vector< TString > NamesCellAmpH
TH2F * h2_hits
Definition BmnHistNdet.h:64
vector< TString > NamesAmps
Definition BmnHistNdet.h:98
TCanvas * canv_hAmplCell
Definition BmnHistNdet.h:79
vector< PadInfo * > canv_hCellTimeEMPads
Definition BmnHistNdet.h:96
virtual ~BmnHistNdet()
BmnNdetGeo * fGeoHandler
Definition BmnHistNdet.h:52
void Register(THttpServer *serv)
TCanvas * canv_hits
Definition BmnHistNdet.h:84
TH1F * h1_CellsTime
Definition BmnHistNdet.h:68
vector< PadInfo * > canv_CellsPads
Definition BmnHistNdet.h:88
vector< TString > NamesProfs
Definition BmnHistNdet.h:99
TH1F * hChE
Definition BmnHistNdet.h:61
BmnStatus SetRefRun(Int_t id)
vector< PadInfo * > canv_hCellAmpHPads
Definition BmnHistNdet.h:95
std::vector< unsigned int > MapCell2Ch
Definition BmnHistNdet.h:47
TH1F * h1_CellsAmpl
Definition BmnHistNdet.h:67
float timemin
Definition BmnHistNdet.h:51
static constexpr int kTOTAL_ROWS
Definition BmnHistNdet.h:41
TH2F * h2_lrtime
Definition BmnHistNdet.h:70
vector< TString > NamesCellTimeEM
TH1F * h1_Cells
Definition BmnHistNdet.h:66
TCanvas * canv_hCellTimeEM
Definition BmnHistNdet.h:82
static constexpr int kEM_LAYRS
Definition BmnHistNdet.h:43
vector< TString > NamesCells
static constexpr int kTOTAL_CELLS
Definition BmnHistNdet.h:39
std::array< std::array< float, kTQDC_MAX_CHAN+1 >, kTQDC_MAX_MODULES+1 > meanamp_test
std::vector< TH1 * > hCellAmpEM
long int fEventCounter
Definition BmnHistNdet.h:49
static constexpr int kTQDC_MAX_MODULES
Definition BmnHistNdet.h:46
vector< PadInfo * > canv_SlicePads
Definition BmnHistNdet.h:87
void SetSelection(Int_t Cell, Int_t Layer, Int_t Trigger)
TCanvas * canAmps
Definition BmnHistNdet.h:72
void ClearRefRun()
vector< TString > NamesTime
TCanvas * canv_hCellTimeH
Definition BmnHistNdet.h:83
vector< PadInfo * > canv_hCellAmpEMPads
Definition BmnHistNdet.h:94
TH2F * h2_Layer_Cell
Definition BmnHistNdet.h:63
std::array< float, kTOTAL_CELLS *kTOTAL_LAYRS+1 > ch_entries
Base class for histogram sets.
Definition BmnHist.h:34