BmnRoot
Loading...
Searching...
No Matches
BmnHistFHCal.h
Go to the documentation of this file.
1#ifndef BMNHISTFHCal_H
2#define BMNHISTFHCal_H 1
3
4#include "BmnFHCalDigi.h"
5#include "BmnFHCalGeo.h"
6#include "BmnHist.h"
7#include "BmnHodoDigi.h"
8#include "BmnHodoRaw2Digit.h"
9#include "TCanvas.h"
10#include "TChain.h"
11#include "TClonesArray.h"
12#include "TColor.h"
13#include "TFile.h"
14#include "TFolder.h"
15#include "TH1F.h"
16#include "TH2F.h"
17#include "THttpServer.h"
18#include "TString.h"
19#define Hodo_ROWS 2
20#define Hodo_COLS 2
21#define coefHodo 1
22
23#include <TNamed.h>
24#define FHCal_ROWS 1
25#define FHCal_COLS 2
26
27class BmnHistFHCal : public BmnHist
28{
29 public:
30 BmnHistFHCal(TString title = "FHCal", TString path = "", Int_t periodID = 8, BmnSetup setup = kBMNSETUP);
31 virtual ~BmnHistFHCal();
32 void CreateHistos();
33 void Reset();
34 void Register(THttpServer* serv);
35 void SetDir(TFile* outFile, TTree* recoTree);
36 void DrawBoth();
37 void ClearRefRun();
38 void FillFromDigi(DigiArrays* fDigiArrays);
39 BmnStatus SetRefRun(Int_t id);
40 void SetSelection(Int_t Module, Int_t Section, Int_t Trigger);
41 void SetGeometry(const std::string& path);
42
43 private:
44 TClonesArray* Events;
45 static constexpr int kTOTAL_MODULES = 54; // FHCAL 2022. Modules numerated from 1 to 54 inclusive
46
47 static constexpr int kNstrips = 16; // Hodo 2022. Strips numerated from 1 to 16 inclusive
48 static constexpr int kNsides = 2; // Hodo 2022. Strips have UP and DOWN readout sides
49 static constexpr int kNgains = 2; // Hodo 2022. Strips have HIGH and LOW gain readout channels
50
51 long int fEventCounter = 1;
52 long int fEventCounterZL = 1;
53 BmnFHCalGeo* fGeoHandler; // stores map with detector address to 3D position and error
54 Int_t fSelectedModule;
55 Int_t fSelectedSection;
56 Int_t fSelectedTrigger;
57
58 TH1F* h1d_Emodules; // energy in modules. 1D
59 TH1F* hSecE; // amplitude in selected section
60 TH1F* wfmSec; // waveform in selected section
61 TH2F* h2_calo; // energy in modules. 2D X-Y
62 TH2F* h2_calo_text; // modules indexes. 2D X-Y
63 TH2F* h2_mod_sec; // energy in modules sections. 2D sec-mod
64 TH2F* h2_ZL_nEvent; // fZl vs Event number. 2D fZl-nEvent
65 TH1F* h1_totalE; // total energy in FHCal. 1D
66 TH2F* h2_totalE_hodoZ2_BT; // total energy in FHCal vs Hodo Z^2, BT. 2D
67 TH2F* h2_totalE_hodoZ2_CCT2; // total energy in FHCal vs Hodo Z^2, CCT2. 2D
68
69 TCanvas* canAmps;
70 TCanvas* canProfsSmall;
71 TCanvas* canProfsBig;
72 TCanvas* canZLSmall;
73 TCanvas* canZLBig;
74 TCanvas* canSelect;
75 TCanvas* can_mod_sec;
76 TCanvas* can_ZL_nEvent;
77 TCanvas* can_totalE;
78 TCanvas* can_totalE_hodoZ2;
79
80 std::vector<PadInfo*> canAmpsPads;
81 std::vector<PadInfo*> canProfsPads;
82 std::vector<PadInfo*> canZLPads;
83 vector<PadInfo*> canSelectPads;
84 std::vector<PadInfo*> can_mod_secPads;
85 std::vector<PadInfo*> can_ZL_nEventPads;
86 std::vector<PadInfo*> can_totalEPads;
87 std::vector<PadInfo*> can_totalE_hodoZ2Pads;
88 std::vector<TString> NamesAmps;
89 std::vector<TString> NamesProfs;
90 std::vector<TString> NamesZL;
91 vector<TString> NamesSelect;
92 std::vector<TString> Names_mod_sec;
93 std::vector<TString> Names_ZL_nEvent;
94 std::vector<TString> Names_totalE;
95 std::vector<TString> Names_totalE_hodoZ2;
96
97 std::vector<TH1*> hModuleProfile =
98 std::vector<TH1*>(kTOTAL_MODULES + 1, nullptr); // Modules numerated from 1 to 54 inclusive
99 std::vector<TH1*> h2_mod_ZL_nEvent =
100 std::vector<TH1*>(kTOTAL_MODULES + 1, nullptr); // Modules numerated from 1 to 54 inclusive
101
102 ClassDef(BmnHistFHCal, 2)
103};
104
105#endif /* BMNHISTFHCal_H */
BmnStatus
Definition BmnEnums.h:24
BmnSetup
Definition BmnEnums.h:89
@ kBMNSETUP
Definition BmnEnums.h:90
void FillFromDigi(DigiArrays *fDigiArrays)
void SetGeometry(const std::string &path)
BmnStatus SetRefRun(Int_t id)
void CreateHistos()
virtual ~BmnHistFHCal()
void SetDir(TFile *outFile, TTree *recoTree)
void Register(THttpServer *serv)
void SetSelection(Int_t Module, Int_t Section, Int_t Trigger)
Definition setup.py:1