Analysis Software
Documentation for sPHENIX simulation software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
CaloTriggerSim.h
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file CaloTriggerSim.h
1 #ifndef TRIGGER_CALOTRIGGERSIM_H
2 #define TRIGGER_CALOTRIGGERSIM_H
3 
4 //===========================================================
8 //===========================================================
9 
10 // sPHENIX includes
11 #include <fun4all/SubsysReco.h>
12 
13 // standard includes
14 #include <cmath>
15 #include <limits>
16 #include <string>
17 #include <vector>
18 
19 // forward declarations
20 class PHCompositeNode;
21 
28 class CaloTriggerSim : public SubsysReco
29 {
30  public:
31  CaloTriggerSim(const std::string &name = "CaloTriggerSim");
32  ~CaloTriggerSim() override {}
33 
34  int InitRun(PHCompositeNode *topNode) override;
35  int process_event(PHCompositeNode *topNode) override;
36 
37  void set_truncation(const int emulate_truncation) { m_EmulateTruncationFlag = emulate_truncation; }
38  double truncate_8bit(const double raw_E) const;
39 
40  private:
41  int CreateNode(PHCompositeNode *topNode);
42  void FillNode(PHCompositeNode *topNode);
43 
45 
48 
49  std::vector<double>::size_type m_EMCAL_2x2_NETA{std::numeric_limits<std::vector<double>::size_type>::max()};
50  std::vector<double>::size_type m_EMCAL_2x2_NPHI{std::numeric_limits<std::vector<double>::size_type>::max()};
51 
54 
55  float m_EMCAL_2x2_BEST_E{0.};
58 
59  float m_EMCAL_4x4_BEST_E{0.};
62 
66 
67  // needed since phi ranges are potentially different in EMCal vs. HCal
69  float m_FULLCALO_PHI_END{2 * M_PI};
70 
71  // full calo (based on 0.1x0.1 HCal towers) limits and maps
74 
75  std::vector<double>::size_type m_FULLCALO_0p2x0p2_NETA{std::numeric_limits<std::vector<double>::size_type>::max()};
76  std::vector<double>::size_type m_FULLCALO_0p2x0p2_NPHI{std::numeric_limits<std::vector<double>::size_type>::max()};
77 
80 
83 
86 
89 
90  // highest full calo window energies
94 
98 
102 
106 
110 
111  std::vector<std::vector<double> > m_EMCAL_1x1_MAP;
112  std::vector<std::vector<double> > m_EMCAL_2x2_MAP;
113  std::vector<std::vector<double> > m_EMCAL_4x4_MAP;
114  std::vector<std::vector<double> > m_FULLCALO_0p1x0p1_MAP;
115  std::vector<std::vector<double> > m_FULLCALO_0p2x0p2_MAP;
116  std::vector<std::vector<double> > m_FULLCALO_0p4x0p4_MAP;
117  std::vector<std::vector<double> > m_FULLCALO_0p6x0p6_MAP;
118  std::vector<std::vector<double> > m_FULLCALO_0p8x0p8_MAP;
119  std::vector<std::vector<double> > m_FULLCALO_1p0x1p0_MAP;
120 };
121 
122 #endif // TRIGGER_CALOTRIGGERSIM_H