Analysis Software
Documentation for sPHENIX simulation software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
MbdDigitization.h
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file MbdDigitization.h
1 #ifndef G4MBD_BBCDIGITIZATION_H
2 #define G4MBD_BBCDIGITIZATION_H
3 
4 #include <fun4all/SubsysReco.h>
5 
6 #include <Rtypes.h>
7 
8 #include <gsl/gsl_rng.h>
9 
10 #include <cmath>
11 #include <map>
12 #include <string>
13 
14 // Forward declarations
15 class PHCompositeNode;
16 class PHG4HitContainer;
18 class EventHeader;
19 class MbdPmtContainer;
20 class TDatabasePDG;
21 class TRandom3;
22 class TH1;
23 class TH2;
24 class TF1;
25 
27 {
28  public:
29  // Default constructor
30  MbdDigitization(const std::string &name = "MbdDigitization");
31 
32  ~MbdDigitization() override;
33 
35  int Init(PHCompositeNode *) override;
36 
38  int InitRun(PHCompositeNode *) override;
39 
41  int process_event(PHCompositeNode *) override;
42 
44  // int ResetEvent(PHCompositeNode * /*topNode*/) override;
45 
47  int End(PHCompositeNode *) override { return 0; }
48 
50  void set_tres(const Float_t tr) { _tres = tr; }
51 
52  private:
53  void CreateNodes(PHCompositeNode *topNode); // Create all the nodes
54  void GetNodes(PHCompositeNode *); // Get all the needed nodes
55 
56  Float_t f_vx = NAN;
57  Float_t f_vy = NAN;
58  Float_t f_vz = NAN;
59  Float_t f_vt = NAN;
60  Float_t f_pmtq[128]{}; // npe in each arm
61  Float_t f_pmtt0[128]{}; // time in each arm
62  Float_t f_pmtt1[128]{}; // time in each arm
63 
64  TF1 *gaussian = nullptr;
65 
66  //
67  TDatabasePDG *_pdg = nullptr;
68  gsl_rng *m_RandomGenerator = nullptr;
69  unsigned int m_Seed = 0;
70  Float_t _tres = NAN; // time resolution of one channel
71 
72  std::map<int, int> _pids; // PIDs of tracks in the BBC
73 
74  // Input Objects from DST
77 
78  // Output to DST
80 };
81 
82 #endif //* __BBCDIGITIZATION_H__ *//