Analysis Software
Documentation for sPHENIX simulation software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
CaloValid.h
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file CaloValid.h
1 #ifndef CALOVALID_CALOVALID_H
2 #define CALOVALID_CALOVALID_H
3 
4 #include <fun4all/SubsysReco.h>
5 #include <string>
6 #include <vector>
7 
8 // Forward declarations
10 class PHCompositeNode;
11 class TFile;
12 class TNtuple;
13 class TTree;
14 class TH2F;
15 class TH1F;
16 class TH1;
17 class TProfile2D;
18 
19 class CaloValid : public SubsysReco
20 {
21  public:
23  CaloValid(const std::string& name = "CaloValid", const std::string& fname = "MyNtuple.root");
24 
26  virtual ~CaloValid();
27 
29  int Init(PHCompositeNode*);
30 
33 
35  int End(PHCompositeNode*);
36 
41 
42  void Detector(const std::string& name) { detector = name; }
43  void set_timing_cut_width(const int& t) { _range = t; }
44  void set_vertex_cut(const float& v) { _vz = v; }
45  void apply_vertex_cut(bool Vtx_cut) { m_vtxCut = Vtx_cut; }
46 
47  void set_debug(bool debug) { m_debug = debug; }
48  TH2F* LogYHist2D(const std::string& name, const std::string& title, int, double, double, int, double, double);
49 
50  private:
51  int Getpeaktime(TH1* h);
52 
53  bool m_debug{0};
57  TFile* outfile{nullptr};
58  TH2F* h_emcal_mbd_correlation{nullptr};
59  TH2F* h_ohcal_mbd_correlation{nullptr};
60  TH2F* h_ihcal_mbd_correlation{nullptr};
61  TH2F* h_emcal_hcal_correlation{nullptr};
62  TH2F* h_emcal_zdc_correlation{nullptr};
63 
64  TH1F* h_InvMass{nullptr};
65 
66  TH2F* h_cemc_etaphi{nullptr};
67  TH2F* h_hcalin_etaphi{nullptr};
68  TH2F* h_hcalout_etaphi{nullptr};
69  TH2F* h_cemc_etaphi_wQA{nullptr};
70  TH2F* h_hcalin_etaphi_wQA{nullptr};
71  TH2F* h_hcalout_etaphi_wQA{nullptr};
72  TH1* h_totalzdc_e{nullptr};
73 
74  TProfile2D* h_cemc_etaphi_time{nullptr};
75  TProfile2D* h_hcalin_etaphi_time{nullptr};
76  TProfile2D* h_hcalout_etaphi_time{nullptr};
77 
78  TH2F* h_cemc_e_chi2{nullptr};
79  TH2F* h_ohcal_e_chi2{nullptr};
80  TH2F* h_ihcal_e_chi2{nullptr};
81 
82  TProfile2D* h_cemc_etaphi_badChi2{nullptr};
83  TProfile2D* h_hcalin_etaphi_badChi2{nullptr};
84  TProfile2D* h_hcalout_etaphi_badChi2{nullptr};
85 
86  TProfile2D* h_cemc_etaphi_fracHitADC{nullptr};
87  TProfile2D* h_hcalin_etaphi_fracHitADC{nullptr};
88  TProfile2D* h_hcalout_etaphi_fracHitADC{nullptr};
89 
90  TH1* hzdctime{nullptr};
91  TH1* hmbdtime{nullptr};
92  TH1* hemcaltime{nullptr};
93  TH1* hihcaltime{nullptr};
94  TH1* hohcaltime{nullptr};
95 
96  TH1* hzdctime_cut{nullptr};
97  TH1* hmbdtime_cut{nullptr};
98  TH1* hemcaltime_cut{nullptr};
99  TH1* hihcaltime_cut{nullptr};
100  TH1* hohcaltime_cut{nullptr};
101 
102  TH1* hvtx_z_raw{nullptr};
103  TH1* hvtx_z_cut{nullptr};
104 
105  TH1* hzdcSouthraw{nullptr};
106  TH1* hzdcNorthraw{nullptr};
107  TH1* hzdcSouthcalib{nullptr};
108  TH1* hzdcNorthcalib{nullptr};
109  TH1* h_ihcal_status{nullptr};
110  TH1* h_ohcal_status{nullptr};
111  TH1* h_cemc_status{nullptr};
112 
113  TH1F* h_clusE{nullptr};
114  TH2F* h_etaphi_clus{nullptr};
115 
116  TTree* towerntuple{nullptr};
117  TNtuple* clusterntuple{nullptr};
118 
119  std::vector<float> m_energy;
120  std::vector<int> m_etabin;
121  std::vector<int> m_phibin;
122  std::vector<int> m_time;
123 
124  std::vector<float> m_hcalin_energy;
125  std::vector<int> m_hcalin_etabin;
126  std::vector<int> m_hcalin_phibin;
127  std::vector<int> m_hcalin_time;
128 
129  std::vector<float> m_hcalout_energy;
130  std::vector<int> m_hcalout_etabin;
131  std::vector<int> m_hcalout_phibin;
132  std::vector<int> m_hcalout_time;
133 
134  std::vector<float> m_zdc_energy;
135  std::vector<int> m_zdc_index;
136  std::vector<int> m_zdc_side;
137 
138  std::vector<float> m_bbc_energy;
139  std::vector<int> m_bbc_type;
140  std::vector<int> m_bbc_side;
142  int _range{1};
143  float _vz{0.};
144  bool m_vtxCut{false};
145  bool dynMaskClus{true};
146 };
147 
148 #endif