Analysis Software
Documentation for sPHENIX simulation software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
CaloCalibEmc_Pi0.h
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file CaloCalibEmc_Pi0.h
1 // Tell emacs that this is a C++ source
2 // -*- C++ -*-.
3 #ifndef CALOCALIBEMC_PI0_H
4 #define CALOCALIBEMC_PI0_H
5 
6 #include <fun4all/SubsysReco.h>
7 
8 #include <array>
9 #include <string>
10 
11 class PHCompositeNode;
12 class TFile;
13 class TH1F;
14 class TH2F;
15 class TH3F;
16 class TF1;
17 class TH1;
18 class TNtuple;
19 class TTree;
20 class TString;
21 class TCanvas;
22 
24 {
25  public:
26  CaloCalibEmc_Pi0(const std::string &name = "CaloCalibEmc_Pi0", const std::string &fnm = "outJF");
27 
28  ~CaloCalibEmc_Pi0() override = default;
29 
35  int InitRun(PHCompositeNode *topNode) override;
36 
40  int process_event(PHCompositeNode *topNode) override;
41 
43  int End(PHCompositeNode *topNode) override;
44 
45  void Loop(int nevts, const std::string &filename, TTree *intree = 0, const std::string &ifileCorr = "");
46  void Loop_for_eta_slices(int nevts, const std::string &filename, TTree *intree = 0, const std::string &ifileCorr = "");
47 
48  void Fit_Histos_Etas96(const std::string &infilent);
49  void Fit_Histos(const std::string &infilent);
50  void Fit_Histos_Eta_Phi_Add96(const std::string &infilent);
51  void Fit_Histos_Eta_Phi_Add32(const std::string &infilent);
52 
54 
55  void Add_32();
56  void Add_96();
57 
58  void Get_Histos(const std::string &infile, const std::string &outfile);
59 
60  void set_UseTowerInfo(const int useMode)
61  { // 0 only old tower, 1 only new (TowerInfo based),
62  m_UseTowerInfo = useMode;
63  }
64 
65  void setInputClusterNodeName(const std::string &inpNodenm)
66  {
67  _inputnodename = inpNodenm;
68  }
69 
70  void setInputTowerNodeName(const std::string &inpNodenm)
71  {
72  _inputtownodename = inpNodenm;
73  }
74 
75  void set_calibSetMassVal(float insetval)
76  {
77  _setMassVal = insetval;
78  }
79 
80  private:
81  // float setMassVal = 0.135;
82  float _setMassVal{0.152};
83  // currently defaulting to 0.152 to match sim
84 
85  int m_ievent{0};
87  TFile *cal_output{nullptr};
91 
93 
94  // histos lists
95  // std::arrays have their indices backward, this is the old TH1 *cemc_hist_eta_phi[96][258];
96  std::array<std::array<TH1 *, 258>, 96> cemc_hist_eta_phi{};
97  std::array<TH1 *, 96> eta_hist{};
98  TH2F *mass_eta{nullptr};
99  TH3F *mass_eta_phi{nullptr};
100  TH1F *h_totalClusters{nullptr};
101  TH3F *pt1_ptpi0_alpha{nullptr};
102  TH2F *fitp1_eta_phi2d{nullptr};
103  TH1F *pairInvMassTotal{nullptr};
104 
105  TTree *_eventTree{nullptr};
106  // TTree variables
107  int _eventNumber{-1};
108  int _nClusters{-1};
109  float _clusterIDs[10000]{0};
110  float _clusterEnergies[10000]{0};
111  float _clusterPts[10000]{0};
112  float _clusterEtas[10000]{0};
113  float _clusterPhis[10000]{0};
114 
115  int maxTowerEta{-1};
116  int maxTowerPhi{-1};
117 
118  int _maxTowerEtas[10000]{0};
119  int _maxTowerPhis[10000]{0};
120 
121  float alphaCut{-1.};
122  // TNtuple -> to store fit parameters
123 
124  /* TNtuple *nt_corrVals; */
125  /* TF1 *fit_func; */
126  /* TF1 *fit_result; */
127  /* float fit_value_mean; */
128  /* float corr_val; */
129 
130  TFile *f_temp{nullptr};
131 
132  int m_UseTowerInfo{0}; // 0 only old tower, 1 only new (TowerInfo based),
133 };
134 
135 #endif // CALOCALIBEMC_PI0_H