EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
RawTowerDigitizer.h
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file RawTowerDigitizer.h
1 #ifndef G4CALO_RAWTOWERDIGITIZER_H
2 #define G4CALO_RAWTOWERDIGITIZER_H
3 
4 #include <fun4all/SubsysReco.h>
5 
6 #include <phparameter/PHParameters.h>
7 
8 #include <string>
9 
10 class PHCompositeNode;
11 class RawTowerContainer;
13 class RawTowerDeadMap;
14 
15 class RawTower;
16 
17 #include <gsl/gsl_rng.h>
18 
23 {
24  public:
25  RawTowerDigitizer(const std::string &name = "RawTowerDigitizer");
26  ~RawTowerDigitizer() 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  {
40 
45 
48  };
49 
52  {
53  return m_DigiAlgorithm;
54  }
55 
56  void
58  {
59  m_DigiAlgorithm = digiAlgorithm;
60  }
61 
62  double
64  {
65  return m_PedstalCentralADC;
66  }
67 
68  void
69  set_pedstal_central_ADC(const double pedstalCentralAdc)
70  {
71  m_PedstalCentralADC = pedstalCentralAdc;
72  }
73 
74  double
76  {
77  return m_PedstalWidthADC;
78  }
79 
80  void
81  set_pedstal_width_ADC(const double pedstalWidthAdc)
82  {
83  m_PedstalWidthADC = pedstalWidthAdc;
84  }
85 
86  double
88  {
89  return m_PhotonElecADC;
90  }
91 
92  void
93  set_photonelec_ADC(const double photonelecAdc)
94  {
95  m_PhotonElecADC = photonelecAdc;
96  }
97 
98  double
100  {
102  }
103 
104  void
105  set_photonelec_yield_visible_GeV(const double photonelecYieldVisibleGeV)
106  {
107  m_PhotonElecYieldVisibleGeV = photonelecYieldVisibleGeV;
108  }
109 
110  double
112  {
113  return m_ZeroSuppressionADC;
114  }
115 
116  void
117  set_zero_suppression_ADC(const double zeroSuppressionAdc)
118  {
119  m_ZeroSuppressionADC = zeroSuppressionAdc;
120  }
121 
122  void
124  {
126  }
127 
128  void
130  {
132  }
133 
134  PHParameters &
136  {
137  return _tower_params;
138  }
139 
140  std::string
142  {
143  return m_RawTowerNodePrefix;
144  }
145 
146  void
147  set_raw_tower_node_prefix(const std::string &rawTowerNodePrefix)
148  {
149  m_RawTowerNodePrefix = rawTowerNodePrefix;
150  }
151 
152  std::string
154  {
155  return m_SimTowerNodePrefix;
156  }
157 
158  void
159  set_sim_tower_node_prefix(const std::string &simTowerNodePrefix)
160  {
161  m_SimTowerNodePrefix = simTowerNodePrefix;
162  }
163 
164  // ! SiPM effective pixel per tower, only used with kSiPM_photon_digitalization
165  void set_sipm_effective_pixel(const unsigned int &d) { m_SiPMEffectivePixel = d; }
166 
167  // ! SiPM effective pixel per tower, only used with kSiPM_photon_digitalization
169 
170  private:
171  void CreateNodes(PHCompositeNode *topNode);
172 
177 
181 
183 
188 
189  std::string m_Detector;
190 
191  std::string m_SimTowerNodePrefix;
192  std::string m_RawTowerNodePrefix;
193 
196 
199 
202 
205 
208 
211 
214 
217 
218  unsigned int m_Seed;
219 
220  // ! SiPM effective pixel per tower, only used with kSiPM_photon_digitalization
221  unsigned int m_SiPMEffectivePixel;
222 
224 
226 };
227 
228 #endif /* G4CALO_RAWTOWERDIGITIZER_H */