Back to home page

sPhenix code displayed by LXR

 
 

    


File indexing completed on 2026-07-16 08:14:51

0001 #ifndef PHTRACKTRACKSEEDSYNCHRONIZATION_H
0002 #define PHTRACKTRACKSEEDSYNCHRONIZATION_H
0003 
0004 #include <fun4all/SubsysReco.h>
0005 #include <phparameter/PHParameterInterface.h>
0006 #include <trackbase/ActsGeometry.h>
0007 
0008 #include <map>
0009 #include <string>
0010 
0011 class PHCompositeNode;
0012 class TrackSeedContainer;
0013 class TrackSeed;
0014 class SvtxTrackSeed;
0015 class SvtxTrackMap;
0016 class SvtxTrack;
0017 class TrkrClusterContainer;
0018 class TF1;
0019 class TFile;
0020 class TNtuple;
0021 
0022 class PHTrackTrackSeedSynchronization : public SubsysReco
0023 {
0024  public:
0025 
0026   //! constructor
0027   PHTrackTrackSeedSynchronization(const std::string& = "PHTrackTrackSeedSynchronization");
0028 
0029   int InitRun(PHCompositeNode *topNode) override;
0030 
0031   int process_event(PHCompositeNode *) override;
0032 
0033   int End(PHCompositeNode *) override;
0034 
0035   //! input silicon seeds map name
0036   void set_si_seed_map_name(const std::string &map_name) { _si_seed_map_name = map_name; }
0037 
0038   //! input tpc seeds map name
0039   void set_tpc_seed_map_name(const std::string &map_name) { _tpc_seed_map_name = map_name; }
0040 
0041   //! input track map name
0042   void set_svtx_track_map_name(const std::string &map_name) { _svtx_track_map_name = map_name; }
0043 
0044   //! ignore micromegas
0045   void set_ignore_micromegas( bool value ) { m_ignore_micromegas = value; }
0046 
0047   private:
0048 
0049   int GetNodes(PHCompositeNode*);
0050 
0051   /// make sure that the track seed pointers stored in track correspond to those store in the seed containers
0052   bool synchronize_track(SvtxTrack*) const;
0053 
0054   /// find index of seed in container that matches argument seed
0055   size_t find_seed_id( TrackSeedContainer*, TrackSeed* ) const;
0056 
0057   TrackSeedContainer *_tpc_seed_map{nullptr};
0058   TrackSeedContainer *_si_seed_map{nullptr};
0059   SvtxTrackMap *_svtx_track_map{nullptr};
0060 
0061   std::string _tpc_seed_map_name = "TpcTrackSeedContainer";
0062   std::string _si_seed_map_name = "SiliconTrackSeedContainer";
0063   std::string _svtx_track_map_name = "SvtxTrackMap";
0064 
0065   bool m_ignore_micromegas = false;
0066 
0067 };
0068 
0069 #endif  //  PHTrackTrackSeedSynchronization_H