Back to home page

sPhenix code displayed by LXR

 
 

    


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;   // for branches that store many values per event
0025   typedef uint64_t large_t;  // for branches that store one value per event
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();  // called by EndRun
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   // see the definition (.cc) file for branch names
0051 };
0052 
0053 #endif  // INTT_ARBORIST_H