ECCE @ EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
JetReco.h
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file JetReco.h
1 #ifndef G4JET_JETRECO_H
2 #define G4JET_JETRECO_H
3 
4 //===========================================================
8 //===========================================================
9 
10 // PHENIX includes
11 #include <fun4all/SubsysReco.h>
12 
13 // standard includes
14 #include <string> // for string
15 #include <vector>
16 
17 // forward declarations
18 class Jet;
19 class JetAlgo;
20 class JetInput;
21 class PHCompositeNode;
22 
31 class JetReco : public SubsysReco
32 {
33  public:
34  JetReco(const std::string &name = "JetReco");
35  ~JetReco() override;
36 
37  int Init(PHCompositeNode *topNode) override;
38  int InitRun(PHCompositeNode *topNode) override;
39  int process_event(PHCompositeNode *topNode) override;
40  int End(PHCompositeNode *topNode) override;
41 
42  void add_input(JetInput *input) { _inputs.push_back(input); }
43  void add_algo(JetAlgo *algo, std::string output)
44  {
45  _algos.push_back(algo);
46  _outputs.push_back(output);
47  }
48 
49  void set_algo_node(const std::string &algonode) { _algonode = algonode; }
50  void set_input_node(const std::string &inputnode) { _inputnode = inputnode; }
51 
52  private:
53  int CreateNodes(PHCompositeNode *topNode);
54  void FillJetNode(PHCompositeNode *topNode, int ialgo, std::vector<Jet *> jets);
55 
56  std::vector<JetInput *> _inputs;
57  std::vector<JetAlgo *> _algos;
58  std::string _algonode;
59  std::string _inputnode;
60  std::vector<std::string> _outputs;
61 };
62 
63 #endif // G4JET_JETRECO_H