File indexing completed on 2025-08-05 08:12:46
0001
0002
0003 #ifndef TRACKSINJETS_H
0004 #define TRACKSINJETS_H
0005
0006 #include <fun4all/SubsysReco.h>
0007 #include <particleflowreco/ParticleFlowElement.h>
0008
0009 #include <string>
0010 #include <TFile.h>
0011 #include <TTree.h>
0012
0013 class PHCompositeNode;
0014
0015 class TracksInJets : public SubsysReco
0016 {
0017 public:
0018
0019 TracksInJets(const std::string& name = "TracksInJets",
0020 const std::string& out = "TracksInJets.root");
0021
0022 ~TracksInJets() override;
0023 void minTruthJetPt(const float pt) { m_minjettruthpt = pt; }
0024 void truthJetMapName(const std::string& name) { m_truthjetmapname = name; }
0025 void recoJetMapName(const std::string& name) { m_recojetmapname = name; }
0026 int Init(PHCompositeNode *topNode) override;
0027 int InitRun(PHCompositeNode *topNode) override;
0028 int process_event(PHCompositeNode *topNode) override;
0029 int ResetEvent(PHCompositeNode *topNode) override;
0030 int End(PHCompositeNode *topNode) override;
0031
0032 private:
0033
0034 void setBranches();
0035 float dR(const float& eta1, const float& eta2,
0036 const float& phi1, const float& phi2);
0037 std::string m_outfilename = "TracksInJets.root";
0038 std::string m_truthjetmapname = "AntiKt_Truth_r04";
0039 std::string m_recojetmapname = "AntiKt_ParticleFlow_r04";
0040
0041 TFile *m_outfile = nullptr;
0042 TTree *m_tree = nullptr;
0043
0044 int m_embeddingid = 1;
0045 float m_minjettruthpt = 10;
0046
0047 float m_truthjetpx;
0048 float m_truthjetpy;
0049 float m_truthjetpz;
0050 float m_truthjete;
0051 float m_recojetpx;
0052 float m_recojetpy;
0053 float m_recojetpz;
0054 float m_recojete;
0055 int m_truthjetconst;
0056 int m_recojetconst;
0057
0058 std::vector<float> m_truthjettrackpx;
0059 std::vector<float> m_truthjettrackpy;
0060 std::vector<float> m_truthjettrackpz;
0061 std::vector<float> m_truthjettrackpid;
0062 std::vector<float> m_truthjettrackvx;
0063 std::vector<float> m_truthjettrackvy;
0064 std::vector<float> m_truthjettrackvz;
0065
0066 std::vector<float> m_recojettrackpx;
0067 std::vector<float> m_recojettrackpy;
0068 std::vector<float> m_recojettrackpz;
0069 std::vector<float> m_recojettracke;
0070 std::vector<ParticleFlowElement::PFLOWTYPE> m_recojettracktype;
0071 std::vector<float> m_recojettrackvx;
0072 std::vector<float> m_recojettrackvy;
0073 std::vector<float> m_recojettrackvz;
0074 std::vector<float> m_recojettrackpcax;
0075 std::vector<float> m_recojettrackpcay;
0076 std::vector<float> m_recojettrackpcaz;
0077 };
0078
0079 #endif