EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
RawTowerZDCDigitizer.h
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file RawTowerZDCDigitizer.h
1 #ifndef EICZDCRECO_RAWTOWERZDCDIGITIZER_H
2 #define EICZDCRECO_RAWTOWERZDCDIGITIZER_H
3 
4 #include <fun4all/SubsysReco.h>
5 
6 #include <phparameter/PHParameters.h>
7 
8 #include <string>
9 
10 class PHCompositeNode;
13 class RawTowerZDCDeadMap;
14 
15 class RawTowerZDC;
16 
17 #include <gsl/gsl_rng.h>
18 
23 {
24  public:
25  RawTowerZDCDigitizer(const std::string &name = "RawTowerZDCDigitizer");
26  ~RawTowerZDCDigitizer() override;
27 
28  int InitRun(PHCompositeNode *topNode) override;
29  int process_event(PHCompositeNode *topNode) override;
30  void Detector(const std::string &d) { m_Detector = d; _tower_params.set_name(d);}
31  void TowerType(const int type) { m_TowerType = type; }
32  void set_seed(const unsigned int iseed);
33  unsigned int get_seed() const { return m_Seed; }
35  {
38 
41 
44  };
45 
48  {
49  return m_DigiAlgorithm;
50  }
51 
52  void
54  {
55  m_DigiAlgorithm = digiAlgorithm;
56  }
57 
58  double
60  {
61  return m_PedestalCentralADC;
62  }
63 
64  void
65  set_pedestal_central_ADC(const double pedestalCentralAdc)
66  {
67  m_PedestalCentralADC = pedestalCentralAdc;
68  }
69 
70  double
72  {
73  return m_PedestalWidthADC;
74  }
75 
76  void
77  set_pedestal_width_ADC(const double pedestalWidthAdc)
78  {
79  m_PedestalWidthADC = pedestalWidthAdc;
80  }
81 
82  double
84  {
85  return m_PhotonElecADC;
86  }
87 
88  void
89  set_photonelec_ADC(const double photonelecAdc)
90  {
91  m_PhotonElecADC = photonelecAdc;
92  }
93 
94  double
96  {
98  }
99 
100  void
101  set_photonelec_yield_visible_GeV(const double photonelecYieldVisibleGeV)
102  {
103  m_PhotonElecYieldVisibleGeV = photonelecYieldVisibleGeV;
104  }
105 
106  double
108  {
109  return m_ZeroSuppressionADC;
110  }
111 
112  void
113  set_zero_suppression_ADC(const double zeroSuppressionAdc)
114  {
115  m_ZeroSuppressionADC = zeroSuppressionAdc;
116  }
117 
118  void
120  {
122  }
123 
124  void
126  {
128  }
129 
130  PHParameters &
132  {
133  return _tower_params;
134  }
135 
136  std::string
138  {
139  return m_RawTowerNodePrefix;
140  }
141 
142  void
143  set_raw_tower_node_prefix(const std::string &rawTowerNodePrefix)
144  {
145  m_RawTowerNodePrefix = rawTowerNodePrefix;
146  }
147 
148  std::string
150  {
151  return m_SimTowerNodePrefix;
152  }
153 
154  void
155  set_sim_tower_node_prefix(const std::string &simTowerNodePrefix)
156  {
157  m_SimTowerNodePrefix = simTowerNodePrefix;
158  }
159 
160  // ! SiPM effective pixel per tower, only used with kSiPM_photon_digitalization
161  void set_sipm_effective_pixel(const unsigned int &d) { m_SiPMEffectivePixel = d; }
162 
163  // ! SiPM effective pixel per tower, only used with kSiPM_photon_digitalization
165 
166  private:
167  void CreateNodes(PHCompositeNode *topNode);
168 
173 
177 
179 
184 
185  std::string m_Detector;
186 
187  std::string m_SimTowerNodePrefix;
188  std::string m_RawTowerNodePrefix;
189 
192 
195 
198 
201 
204 
207 
210 
213 
214  unsigned int m_Seed;
215 
216  // ! SiPM effective pixel per tower, only used with kSiPM_photon_digitalization
217  unsigned int m_SiPMEffectivePixel;
218 
220 
222 };
223 
224 #endif /* G4CALO_RAWTOWERDIGITIZER_H */