File indexing completed on 2025-08-05 08:13:11
0001
0002
0003 #ifndef CALOTREEGEN_H
0004 #define CALOTREEGEN_H
0005
0006 #include <string>
0007 #include <vector>
0008 #include <limits>
0009
0010 #include <TFile.h>
0011 #include <TTree.h>
0012
0013 #include <fun4all/SubsysReco.h>
0014 #include <calobase/TowerInfoContainer.h>
0015 #include <calobase/TowerInfoContainerv1.h>
0016 #include <calobase/TowerInfoContainerv2.h>
0017 #include <calobase/TowerInfoContainerv3.h>
0018 #include <calobase/TowerInfoContainerv4.h>
0019 #include <jetbase/Jetv1.h>
0020 #include <jetbase/Jetv2.h>
0021
0022 class PHCompositeNode;
0023
0024 class caloTreeGen : public SubsysReco
0025 {
0026 public:
0027 caloTreeGen(const std::string &name = "caloTreeGen", const std::string &outfilename = "output.root");
0028 ~caloTreeGen() override = default;
0029 int Init(PHCompositeNode *topNode) override;
0030 int process_event(PHCompositeNode *topNode) override;
0031 int ResetEvent(PHCompositeNode *topNode) override;
0032 int End(PHCompositeNode *topNode) override;
0033
0034
0035 void SetVerbosity(int verbo) {verbosity = verbo;}
0036 void DoRecoJet_radius(std::vector<float> radius_vector) {doRecoJet_radius.clear(); doRecoJet_radius = radius_vector;}
0037
0038
0039 void Initialize_z_vertex();
0040 void Initialize_jet(std::string jet_prefix , float radius);
0041 void Initialize_trigger_vector();
0042 void Fill_z_vertex(PHCompositeNode *topNode);
0043 void Fill_recojet(PHCompositeNode *topNode, std::string jet_prefix, std::string node_prefix, float radius);
0044 void Fill_trigger_vector(PHCompositeNode *topNode);
0045 void Reset_jet();
0046
0047 private:
0048
0049 TFile *file{nullptr};
0050 TTree *tree{nullptr};
0051 std::string foutname{"output.root"};
0052 int verbosity{0};
0053 int ievent{0};
0054
0055 std::vector<float> doRecoJet_radius{0.4};
0056
0057
0058
0059 static const int n_trigger_vec = 64;
0060
0061
0062
0063 float z_vertex{std::numeric_limits<float>::quiet_NaN()};
0064
0065 std::map<std::string, std::vector<float>> jet_e_map={};
0066 std::map<std::string, std::vector<float>> jet_et_map={};
0067 std::map<std::string, std::vector<float>> jet_pt_map={};
0068 std::map<std::string, std::vector<float>> jet_eta_map={};
0069 std::map<std::string, std::vector<float>> jet_phi_map={};
0070
0071 std::map<std::string, std::vector<float>> jet_calo_e_map={};
0072
0073 uint64_t gl1_trigger_scalar_live[n_trigger_vec];
0074 uint64_t gl1_trigger_scalar_scaled[n_trigger_vec];
0075 int gl1_trigger_vector_live[n_trigger_vec];
0076 int gl1_trigger_vector_scaled[n_trigger_vec];
0077 };
0078
0079 #endif