File indexing completed on 2025-08-06 08:17:39
0001 #ifndef INTT_ARBORIST_H
0002 #define INTT_ARBORIST_H
0003
0004 #include "InttMapping.h"
0005
0006 #include <phool/PHCompositeNode.h>
0007 #include <phool/PHNodeIterator.h>
0008
0009 #include <fun4all/SubsysReco.h>
0010
0011 #include <map>
0012 #include <string>
0013 #include <vector>
0014
0015 #include <TFile.h>
0016 #include <TTree.h>
0017
0018 class InttArborist : public SubsysReco
0019 {
0020 public:
0021 InttArborist();
0022 ~InttArborist();
0023
0024 typedef Short_t small_t;
0025 typedef uint64_t large_t;
0026
0027 int InitRun(PHCompositeNode*) override;
0028 int process_event(PHCompositeNode*) override;
0029 int EndRun(int const) override;
0030
0031 int CreateOutputFile(std::string const&);
0032 int WriteOutputFile();
0033
0034 private:
0035 TFile* m_file = nullptr;
0036 TTree* m_tree = nullptr;
0037
0038 const std::string m_intt_raw_node_name = "INTTRAWHIT";
0039 const std::string m_gl1_raw_node_name = "GL1RAWHIT";
0040 const std::string m_tree_name = "intt_tree";
0041
0042 typedef std::map<InttNameSpace::RawData_s, unsigned int> clone_map_t;
0043 clone_map_t m_clone_map;
0044
0045 typedef std::map<std::string, std::vector<small_t>*> small_map_t;
0046 small_map_t m_small_branches;
0047
0048 typedef std::map<std::string, large_t> large_map_t;
0049 large_map_t m_large_branches;
0050
0051 };
0052
0053 #endif