Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-09-27 09:32:29

0001 /**
0002  *  @file   LCContent/include/LCContent.h
0003  *
0004  *  @brief  Header file detailing content for use with particle flow reconstruction at EIC
0005  *          (Electron-Ion Collider). Adapted from LCContent for lepton colliders.
0006  *
0007  *  $Log: $
0008  */
0009 #ifndef LINEAR_COLLIDER_CONTENT_H
0010 #define LINEAR_COLLIDER_CONTENT_H 1
0011 
0012 #include "Api/PandoraApi.h"
0013 
0014 namespace lc_content {
0015 class LCSoftwareCompensationParameters;
0016 }
0017 
0018 /**
0019  *  @brief  LCContent class - Minimal algorithm set for EIC particle flow reconstruction
0020  */
0021 class LCContent {
0022 public:
0023   /**
0024    *  @brief  Register all the minimal EIC algorithms with pandora
0025    *
0026    *  @param  pandora the pandora instance with which to register content
0027    */
0028   static pandora::StatusCode RegisterAlgorithms(const pandora::Pandora& pandora);
0029 
0030   /**
0031    *  @brief  Register the basic (no configuration required on user side) plugins with pandora
0032    *
0033    *  @param  pandora the pandora instance with which to register content
0034    */
0035   static pandora::StatusCode RegisterBasicPlugins(const pandora::Pandora& pandora);
0036 
0037   /**
0038    *  @brief  Register the b field plugin (note user side configuration) with pandora
0039    *
0040    *  @param  pandora the pandora instance with which to register content
0041    *  @param  innerBField the bfield in the main tracker, ecal and hcal, units Tesla
0042    *  @param  muonBarrelBField the bfield in the muon barrel, units Tesla
0043    *  @param  muonEndCapBField the bfield in the muon endcap, units Tesla
0044    */
0045   static pandora::StatusCode RegisterBFieldPlugin(const pandora::Pandora& pandora, const float innerBField,
0046                                                   const float muonBarrelBField, const float muonEndCapBField);
0047 
0048   /**
0049    *  @brief  Register the non linearity energy correction plugin (note user side configuration) with pandora
0050    *
0051    *  @param  pandora the pandora instance with which to register content
0052    *  @param  name the name/label associated with the energy correction plugin
0053    *  @param  energyCorrectionType the energy correction type
0054    *  @param  inputEnergyCorrectionPoints the input energy points for energy correction
0055    *  @param  outputEnergyCorrectionPoints the output energy points for energy correction
0056    */
0057   static pandora::StatusCode
0058   RegisterNonLinearityEnergyCorrection(const pandora::Pandora& pandora, const std::string& name,
0059                                        const pandora::EnergyCorrectionType energyCorrectionType,
0060                                        const pandora::FloatVector& inputEnergyCorrectionPoints,
0061                                        const pandora::FloatVector& outputEnergyCorrectionPoints);
0062 
0063   /**
0064    *  @brief  Register the software compensation energy correction plugin (note user side configuration) with pandora
0065    *
0066    *  @param  pandora the pandora instance with which to register content
0067    *  @param  name the name/label associated with the energy correction plugin
0068    *  @param  energyCorrectionType the energy correction type
0069    *  @param  parameters the software compensation input parameters
0070    */
0071   static pandora::StatusCode
0072   RegisterSoftwareCompensationEnergyCorrection(const pandora::Pandora& pandora, const std::string& name,
0073                                                const lc_content::LCSoftwareCompensationParameters& parameters);
0074 };
0075 
0076 #endif // #ifndef LINEAR_COLLIDER_CONTENT_H