Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-09-27 09:20:10

0001 /**
0002  *  @file   PandoraSDK/include/Pandora/PandoraImpl.h
0003  * 
0004  *  @brief  Header file for the pandora impl class.
0005  * 
0006  *  $Log: $
0007  */
0008 #ifndef PANDORA_IMPL_H
0009 #define PANDORA_IMPL_H 1
0010 
0011 namespace pandora
0012 {
0013 
0014 /**
0015  *  @brief  PandoraImpl class
0016  */
0017 class PandoraImpl
0018 {
0019 private:
0020     /**
0021      *  @brief  Prepare mc particles: select mc pfo targets, match tracks and calo hits to the correct mc
0022      *          particles for particle flow
0023      */
0024     StatusCode PrepareMCParticles() const;
0025 
0026     /**
0027      *  @brief  Prepare tracks: add track associations (parent-daughter and sibling)
0028      */
0029     StatusCode PrepareTracks() const;
0030 
0031     /**
0032      *  @brief  Prepare calo hits: order the hits by pseudo layer, calculate density weights, identify
0033      *          isolated hits, identify possible mip hits and calculate surrounding energy values.
0034      */
0035     StatusCode PrepareCaloHits() const;
0036 
0037     /**
0038      *  @brief  Get the list of algorithms to be run by pandora
0039      *
0040      *  @return address of the list pandora algorithms
0041      */
0042     const StringVector &GetPandoraAlgorithms() const;
0043 
0044     /**
0045      *  @brief  Run an algorithm registered with pandora
0046      * 
0047      *  @param  algorithmName the name of the algorithm instance to run
0048      */
0049     StatusCode RunAlgorithm(const std::string &algorithmName) const;
0050 
0051     /**
0052      *  @brief  Initialize pandora settings
0053      * 
0054      *  @param  pXmlHandle address of the relevant xml handle
0055      */
0056     StatusCode InitializeSettings(const TiXmlHandle *const pXmlHandle) const;
0057 
0058     /**
0059      *  @brief  Initialize pandora algorithms
0060      * 
0061      *  @param  pXmlHandle address of the relevant xml handle
0062      */
0063     StatusCode InitializeAlgorithms(const TiXmlHandle *const pXmlHandle) const;
0064 
0065     /**
0066      *  @brief  Initialize pandora plugins
0067      * 
0068      *  @param  pXmlHandle address of the relevant xml handle
0069      */
0070     StatusCode InitializePlugins(const TiXmlHandle *const pXmlHandle) const;
0071 
0072     /**
0073      *  @brief  Ï event, calling manager reset functions and any registered reset functions
0074      */
0075     StatusCode ResetEvent() const;
0076 
0077     /**
0078      *  @brief  Constructor
0079      * 
0080      *  @param  pPandora address of the pandora object to interface
0081      */
0082     PandoraImpl(Pandora *const pPandora);
0083 
0084     Pandora                *m_pPandora;             ///< The pandora object to provide an interface to
0085 
0086     friend class Pandora;
0087 };
0088 
0089 } // namespace pandora
0090 
0091 #endif // #ifndef PANDORA_IMPL_H