Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-06-02 08:51:49

0001 #ifndef TCS_CONVOL_COEFF_FUNCTION_SERVICE_H
0002 #define TCS_CONVOL_COEFF_FUNCTION_SERVICE_H
0003 
0004 /**
0005  * @file TCSConvolCoeffFunctionService.h
0006  * @author Bryan BERTHOU (SPhN / CEA Saclay)
0007  * @date August 07, 2014
0008  * @version 1.0
0009  */
0010 
0011 #include <string>
0012 
0013 #include "../beans/convol_coeff_function/TCS/TCSConvolCoeffFunctionKinematic.h"
0014 #include "../beans/convol_coeff_function/TCS/TCSConvolCoeffFunctionResult.h"
0015 #include "../beans/List.h"
0016 #include "../modules/convol_coeff_function/ConvolCoeffFunctionModule.h"
0017 #include "ConvolCoeffFunctionService.h"
0018 
0019 namespace PARTONS {
0020 class Task;
0021 } /* namespace PARTONS */
0022 
0023 namespace PARTONS {
0024 
0025 /**
0026  * @class TCSConvolCoeffFunctionService
0027  *
0028  * @brief Singleton to handle and compute some pre-configured CCF modules.
0029  *
0030  * See the [general tutorial](@ref usage) and this [table](@ref usage_tasks) of examples.
0031  */
0032 class TCSConvolCoeffFunctionService: public ConvolCoeffFunctionService<
0033         TCSConvolCoeffFunctionKinematic, TCSConvolCoeffFunctionResult> {
0034 
0035 public:
0036 
0037     static const unsigned int classId; ///< Unique ID to automatically register the class in the registry.
0038 
0039     /**
0040      * Destructor.
0041      */
0042     virtual ~TCSConvolCoeffFunctionService();
0043 
0044     virtual void resolveObjectDependencies();
0045     virtual TCSConvolCoeffFunctionKinematic newKinematicFromTask(
0046             const Task &task) const;
0047     virtual List<TCSConvolCoeffFunctionKinematic> newListOfKinematicFromTask(
0048             const Task &task) const;
0049 
0050     /**
0051      * Uses an automation task (XML file) to configure a TCSConvolCoeffFunctionModule.
0052      * @param task Automation task.
0053      * @return Pre-configured TCSConvolCoeffFunctionModule.
0054      */
0055     TCSConvolCoeffFunctionModule* newTCSConvolCoeffFunctionModuleFromTask(
0056                const Task &task) const;
0057 
0058 protected:
0059 
0060     /**
0061      * Default constructor.
0062      */
0063     TCSConvolCoeffFunctionService(const std::string &className);
0064 
0065     virtual ConvolCoeffFunctionModule<TCSConvolCoeffFunctionKinematic,
0066             TCSConvolCoeffFunctionResult>* newConvolCoeffFunctionModuleFromTask(
0067             const Task &task) const;
0068 };
0069 
0070 } /* namespace PARTONS */
0071 
0072 #endif /* TCS_CONVOL_COEFF_FUNCTION_SERVICE_H */