Analysis Software
Documentation for sPHENIX simulation software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
RawTowerBuilder.h
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file RawTowerBuilder.h
1 #ifndef G4CALO_RAWTOWERBUILDER_H
2 #define G4CALO_RAWTOWERBUILDER_H
3 
4 #include <fun4all/SubsysReco.h>
5 
7 
8 #include <cmath>
9 #include <string>
10 
11 class PHCompositeNode;
12 class RawTowerContainer;
14 
16 {
17  public:
18  RawTowerBuilder(const std::string &name = "RawTowerBuilder");
19  ~RawTowerBuilder() override {}
20  int InitRun(PHCompositeNode *topNode) override;
21  int process_event(PHCompositeNode *topNode) override;
22  void Detector(const std::string &d) { m_Detector = d; }
23  void EminCut(const double e) { m_Emin = e; }
24  void checkenergy(const int i = 1) { m_ChkEnergyConservationFlag = i; }
26  {
31  };
33  {
37  };
38 
39 
42  {
43  return m_TowerEnergySrcEnum;
44  }
45 
46  void
48  {
49  m_TowerEnergySrcEnum = towerEnergySrc;
50  }
51 
54  {
55  return m_SimTowerNodePrefix;
56  }
57 
58  void
59  set_sim_tower_node_prefix(const std::string &simTowerNodePrefix)
60  {
61  m_SimTowerNodePrefix = simTowerNodePrefix;
62  }
63 
65  {
66  m_UseTowerInfo = UseTowerInfo;
67  }
68 
69  protected:
70  void CreateNodes(PHCompositeNode *topNode);
71 
73  /* TowerInfoContainer *m_TowerInfoContainer = nullptr; */
75 
81 
85  int m_NumLayers = -1;
86  int m_NumPhiBins = -1;
87  int m_NumEtaBins = -1;
88  double m_Emin = 1e-6;
89  double m_EtaMin = NAN;
90  double m_PhiMin = NAN;
91  double m_EtaStep = NAN;
92  double m_PhiStep = NAN;
93  RawTowerBuilder::ProcessTowerType m_UseTowerInfo = RawTowerBuilder::ProcessTowerType::kBothTowers; // 0 just produce RawTowers, 1 just produce TowerInfo objects, and 2 produce both
94 };
95 
96 #endif // G4CALO_RAWTOWERBUILDER_H