Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-09-27 09:15:00

0001 /**
0002  *  @file   LCContent/include/LCUtility/TrackPreparationAlgorithm.h
0003  *
0004  *  @brief  Header file for the track preparation algorithm class.
0005  *
0006  *  $Log: $
0007  */
0008 #ifndef LC_TRACK_PREPARATION_ALGORITHM_H
0009 #define LC_TRACK_PREPARATION_ALGORITHM_H 1
0010 
0011 #include "Pandora/Algorithm.h"
0012 
0013 namespace lc_content {
0014 
0015 /**
0016  *  @brief  TrackPreparationAlgorithm class
0017  */
0018 class TrackPreparationAlgorithm : public pandora::Algorithm {
0019 public:
0020   /**
0021    *  @brief Default constructor
0022    */
0023   TrackPreparationAlgorithm();
0024 
0025 private:
0026   pandora::StatusCode Run();
0027   pandora::StatusCode ReadSettings(const pandora::TiXmlHandle xmlHandle);
0028 
0029   /**
0030    *  @brief  Create list of parent tracks to be used in construction of charged pfos
0031    *
0032    *  @param  inputTrackList the input track list
0033    *  @param  pfoTrackList to receive the list of parent tracks to be used in construction of charged pfos
0034    */
0035   pandora::StatusCode CreatePfoTrackList(const pandora::TrackList& inputTrackList,
0036                                          pandora::TrackList& pfoTrackList) const;
0037 
0038   /**
0039    *  @brief  Whether a track, or any of its daughters or siblings has an associated cluster
0040    *
0041    *  @param  pTrack address of the track
0042    *  @param  readSiblingInfo whether to read sibling track information (set to false to avoid multiple counting)
0043    *
0044    *  @return boolean
0045    */
0046   bool HasAssociatedClusters(const pandora::Track* const pTrack, const bool readSiblingInfo = true) const;
0047 
0048   pandora::StringVector m_candidateListNames; ///< The list of track list names to use
0049   std::string m_mergedCandidateListName; ///< The name under which to save the full, merged, list of candidate tracks
0050 
0051   bool m_shouldMakeAssociations;                 ///< Whether to re-make track-cluster associations for candidate tracks
0052   pandora::StringVector m_associationAlgorithms; ///< The ordered list of track-cluster associations algorithm to run
0053 
0054   bool m_shouldMakePfoTrackList;  ///< Whether to make pfo track list, containing parent tracks of charged pfos
0055   std::string m_pfoTrackListName; ///< The name of the pfo track list, containing parent tracks of charged pfos
0056 };
0057 
0058 } // namespace lc_content
0059 
0060 #endif // #ifndef LC_TRACK_PREPARATION_ALGORITHM_H