Analysis Software
Documentation for sPHENIX simulation software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
PHG4EPDModuleReco.h
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file PHG4EPDModuleReco.h
1 // Tell emacs that this is a C++ source
2 // -*- C++ -*-.
3 #ifndef G4EPD_PHG4EPDMODULERECO_H
4 #define G4EPD_PHG4EPDMODULERECO_H
5 
6 #include <phparameter/PHParameterInterface.h>
7 
8 #include <fun4all/SubsysReco.h>
9 
10 #include <array>
11 #include <cmath>
12 #include <string>
13 
14 class PHCompositeNode;
15 
17 {
18  public:
19  PHG4EPDModuleReco(const std::string &name = "EpdModuleReco");
20 
21  ~PHG4EPDModuleReco() override {}
22 
24  int InitRun(PHCompositeNode *topNode) override;
25 
27  int process_event(PHCompositeNode *topNode) override;
28 
30  int ResetEvent(PHCompositeNode * /*topNode*/) override;
31 
32  void SetDefaultParameters() override;
33 
34  void Detector(const std::string &detector);
35 
38  {
40  }
41 
42  void
43  set_epd_sim_tower_node_prefix(const std::string &epdsimTowerNodePrefix)
44  {
45  m_EPDSimTowerNodePrefix = epdsimTowerNodePrefix;
46  }
47 
50  {
52  }
53 
54  void
55  set_epd_calib_tower_node_prefix(const std::string &epdcalibTowerNodePrefix)
56  {
57  m_EPDCalibTowerNodePrefix = epdcalibTowerNodePrefix;
58  }
59 
60  void set_timing_window(const double tmi, const double tma);
61 
62  private:
63  int Getrmap(int rindex);
64  int Getphimap(int phiindex);
65  float GetTilePhi(int thisphi);
66  float GetTilePhi0(int thisphi0);
67  float GetTileR(int thisr);
68  float GetTileZ(int thisz);
69  void CreateNodes(PHCompositeNode *topNode);
70 
75 
78  std::array<std::array<std::array<double, 31>, 12>, 2> m_EpdTile_e = {};
79  std::array<std::array<std::array<double, 31>, 12>, 2> m_EpdTile_Calib_e = {};
80 
81  double m_EpdMpv = NAN;
82 
83  double tmin = NAN;
84  double tmax = NAN;
85  double m_DeltaT = NAN;
86 };
87 
88 #endif