Back to home page

sPhenix code displayed by LXR

 
 

    


File indexing completed on 2025-12-16 09:21:43

0001 #ifndef G4EVAL_DSTTRACKINFOWRITER_H
0002 #define G4EVAL_DSTTRACKINFOWRITER_H
0003 
0004 /*!
0005  * \file DSTTrackInfoWriter.h
0006  * \author Alex Patton <aopatton@mit.edu>
0007  *
0008  */
0009 
0010 #include <fun4all/SubsysReco.h>
0011 
0012 class PHCompositeNode;
0013 class SvtxTrackMap;
0014 class TrackInfoContainer;
0015 
0016 class DSTTrackInfoWriter : public SubsysReco
0017 {
0018  public:
0019   //! constructor
0020   DSTTrackInfoWriter(const std::string& = "DSTTrackInfoWriter");
0021 
0022   //! global initialization
0023   int InitRun(PHCompositeNode *topNode) override;
0024 
0025   //! event processing
0026   int process_event(PHCompositeNode *topNode) override;
0027 
0028   enum Flags
0029   {
0030     WriteEvent = 1 << 0,
0031     WriteClusters = 1 << 1,
0032     WriteTracks = 1 << 2
0033   };
0034 
0035   //! set flags. Should be a bitwise or of Flags enum
0036   void set_flags(int flags)
0037   {
0038     m_flags = flags;
0039   }
0040 
0041  private:
0042   //! load nodes
0043   int load_nodes(PHCompositeNode *topNode);
0044 
0045   //! evaluate track info
0046   void evaluate_track_info();
0047 
0048   TrackInfoContainer *m_track_info_container {nullptr};
0049 
0050   //! flags
0051   int m_flags {WriteEvent | WriteClusters | WriteTracks};
0052 
0053   //! tracks
0054   SvtxTrackMap *m_track_map {nullptr};
0055 };
0056 
0057 #endif  // G4EVAL_DSTTrackInfoWRITER_H