EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
G4DIRCTree.h
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file G4DIRCTree.h
1 #ifndef G4DIRCTREE_H
2 #define G4DIRCTREE_H
3 
4 #include "G4EventTree.h"
5 
6 #include <fun4all/SubsysReco.h>
7 
8 #include <TVector3.h>
9 #include <map>
10 #include <set>
11 #include <string>
12 
13 // Forward declarations
14 class PHCompositeNode;
15 class PHG4HitContainer;
16 class TFile;
17 class TTree;
18 
19 class G4DIRCTree : public SubsysReco
20 {
21  public:
23  G4DIRCTree(const std::string &name = "G4DIRCTree", const std::string &filename = "G4DIRCTree.root");
24 
26  ~G4DIRCTree() override {}
27 
29  int Init(PHCompositeNode *) override;
30 
32  int process_event(PHCompositeNode *) override;
33 
35  int process_hit(PHG4HitContainer *hits, const std::string &dName, int detid, int &nhits);
36 
38  int End(PHCompositeNode *) override;
39 
40  void AddNode(const std::string &name, const int detid = 0);
41  int evt_num = 0;
42 
43  protected:
44  int nblocks;
45  // std::vector<TH2 *> nhit_edep;
46  std::string _filename;
47  std::set<std::string> _node_postfix;
48  std::map<std::string, int> _detid;
49 
50  TTree *g4tree;
52  TFile *outfile;
53 };
54 
55 #endif