Back to home page

sPhenix code displayed by LXR

 
 

    


File indexing completed on 2025-08-05 08:12:46

0001 // Tell emacs that this is a C++ source
0002 //  -*- C++ -*-.
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 // TRACKSINJETS_H