Back to home page

sPhenix code displayed by LXR

 
 

    


File indexing completed on 2026-05-23 08:10:33

0001 // Tell emacs that this is a C++ source
0002 //  -*- C++ -*-.
0003 #ifndef LWTRACKNTUPLIZER_H
0004 #define LWTRACKNTUPLIZER_H
0005 
0006 #include <fun4all/SubsysReco.h>
0007 
0008 #include <string>
0009 #include <vector>
0010 
0011 class ActsGeometry;
0012 class PHCompositeNode;
0013 class PHG4TpcGeomContainer;
0014 class SvtxTrack;
0015 class SvtxTrackMap;
0016 class SvtxVertexMap;
0017 class TFile;
0018 class TTree;
0019 class TrkrClusterContainer;
0020 
0021 class lwtrackntuplizer : public SubsysReco
0022 {
0023  public:
0024   explicit lwtrackntuplizer(const std::string& name = "lwtrackntuplizer");
0025   ~lwtrackntuplizer() override;
0026 
0027   int Init(PHCompositeNode* topNode) override;
0028   int InitRun(PHCompositeNode* topNode) override;
0029   int process_event(PHCompositeNode* topNode) override;
0030   int ResetEvent(PHCompositeNode* topNode) override;
0031   int EndRun(const int runnumber) override;
0032   int End(PHCompositeNode* topNode) override;
0033   int Reset(PHCompositeNode* topNode) override;
0034 
0035   void Print(const std::string& what = "ALL") const override;
0036 
0037   void setOutputName(const std::string& name) { m_outFileName = name; }
0038   void setTreeName(const std::string& name) { m_treeName = name; }
0039   void setClusterContainerName(const std::string& name) { m_clusterContainerName = name; }
0040   void setTrackMapName(const std::string& name) { m_trackMapName = name; }
0041   void setVertexMapName(const std::string& name) { m_vertexMapName = name; }
0042 
0043  private:
0044   int GetNodes(PHCompositeNode* topNode);
0045   void SetupTree();
0046   void FillTrack(const SvtxTrack* track);
0047   void Cleanup();
0048 
0049   TFile* m_outFile = nullptr;
0050   TTree* m_outTree = nullptr;
0051 
0052   std::string m_outFileName = "lwtrackntuple.root";
0053   std::string m_treeName = "TrackTree";
0054 
0055   std::string m_trackMapName = "SvtxTrackMap";
0056   std::string m_vertexMapName = "SvtxVertexMap";
0057   std::string m_clusterContainerName = "TRKR_CLUSTER_SEED";
0058   std::string m_geometryNodeName = "ActsGeometry";
0059   std::string m_tpcGeomNodeName = "TPCGEOMCONTAINER";
0060 
0061   SvtxTrackMap* m_trackMap = nullptr;
0062   SvtxVertexMap* m_vertexMap = nullptr;
0063   TrkrClusterContainer* m_clusterMap = nullptr;
0064   ActsGeometry* m_tGeometry = nullptr;
0065   PHG4TpcGeomContainer* m_tpcGeomContainer = nullptr;
0066 
0067   unsigned int m_event = 0;
0068   unsigned int m_nTracks = 0;
0069 
0070   std::vector<int> m_trackID;
0071   std::vector<float> m_crossing;
0072   std::vector<float> m_px;
0073   std::vector<float> m_py;
0074   std::vector<float> m_pz;
0075   std::vector<float> m_pt;
0076   std::vector<float> m_eta;
0077   std::vector<float> m_phi;
0078   std::vector<float> m_deltapt;
0079   std::vector<float> m_deltaeta;
0080   std::vector<float> m_deltaphi;
0081   std::vector<int> m_charge;
0082   std::vector<float> m_quality;
0083   std::vector<float> m_chisq;
0084   std::vector<int> m_ndf;
0085   std::vector<int> m_nhits;
0086   std::vector<int> m_nmaps;
0087   std::vector<int> m_nintt;
0088   std::vector<int> m_ntpc;
0089   std::vector<int> m_nmms;
0090   std::vector<int> m_ntpc1;
0091   std::vector<int> m_ntpc11;
0092   std::vector<int> m_ntpc2;
0093   std::vector<int> m_ntpc3;
0094   std::vector<float> m_dedx;
0095   std::vector<float> m_pidedx;
0096   std::vector<float> m_kdedx;
0097   std::vector<float> m_prdedx;
0098   std::vector<int> m_vertexID;
0099   std::vector<float> m_vx;
0100   std::vector<float> m_vy;
0101   std::vector<float> m_vz;
0102   std::vector<float> m_dca2d;
0103   std::vector<float> m_dca2dsigma;
0104   std::vector<float> m_dca3dxy;
0105   std::vector<float> m_dca3dxysigma;
0106   std::vector<float> m_dca3dz;
0107   std::vector<float> m_dca3dzsigma;
0108   std::vector<float> m_pcax;
0109   std::vector<float> m_pcay;
0110   std::vector<float> m_pcaz;
0111   std::vector<float> m_hlxpt;
0112   std::vector<float> m_hlxeta;
0113   std::vector<float> m_hlxphi;
0114   std::vector<float> m_hlxX0;
0115   std::vector<float> m_hlxY0;
0116   std::vector<float> m_hlxZ0;
0117   std::vector<int> m_hlxcharge;
0118 };
0119 
0120 #endif  // LWTRACKNTUPLIZER_H