PARTONS  
PARtonic Tomography Of Nucleon Software
Public Member Functions | Static Public Attributes | Protected Member Functions | Private Member Functions | List of all members
PARTONS::CollinearDistributionService Class Reference

Class to handle and compute collinear-distribution modules. More...

Inheritance diagram for PARTONS::CollinearDistributionService:
PARTONS::ServiceObjectTyped< CollinearDistributionKinematic, CollinearDistributionResult > PARTONS::ServiceObject PARTONS::BaseObject

Public Member Functions

virtual ~CollinearDistributionService ()
 Default destructor. More...
 
virtual void resolveObjectDependencies ()
 Because of the initialization step order of the program, objects are registered in a total random order and some objects depend on others. More...
 
virtual void computeTask (Task &task)
 Compute task. More...
 
CollinearDistributionResult computeSingleKinematic (const CollinearDistributionKinematic &colldistKinematic, CollinearDistributionModule *pCollinearDistributionModule, const List< CollinearDistributionType > &colldistType=List< CollinearDistributionType >()) const
 Computes collinear-distribution model at specific kinematics. More...
 
List< CollinearDistributionResultcomputeManyKinematic (const List< CollinearDistributionKinematic > &colldistKinematicList, CollinearDistributionModule *pCollinearDistributionModule, const List< CollinearDistributionType > &colldistTypeList=List< CollinearDistributionType >())
 Computes a collinear-distribution model for a list of kinematics. More...
 
CollinearDistributionModulenewCollinearDistributionModuleFromTask (const Task &task) const
 Devises the CollinearDistributionModule from an automation task. More...
 
CollinearDistributionKinematic newKinematicFromTask (const Task &task) const
 Devises the collinear-distribution kinematics from an automation task. More...
 
List< CollinearDistributionKinematicnewListOfKinematicFromTask (const Task &task) const
 Devises the collinear-distribution kinematics from an automation task. More...
 
- Public Member Functions inherited from PARTONS::ServiceObjectTyped< CollinearDistributionKinematic, CollinearDistributionResult >
virtual ~ServiceObjectTyped ()
 Destructor. More...
 
void add (const CollinearDistributionResult &result)
 Add single result to result list. More...
 
void add (const List< CollinearDistributionResult > &resultList)
 Add many results to result list. More...
 
void sortResultList ()
 Sort result list. More...
 
List< CollinearDistributionResult > & getResultList ()
 Get result list. More...
 
void clearResultListBuffer ()
 Clear result list. More...
 
void clearKinematicListBuffer ()
 Clear kinematic list. More...
 
List< CollinearDistributionResultcomputeScenario (Scenario &scenario)
 Compute scenario. More...
 
List< CollinearDistributionResultflushResultList ()
 Flush result list. More...
 
- Public Member Functions inherited from PARTONS::ServiceObject
 ServiceObject (const std::string &className)
 Default constructor. More...
 
virtual ~ServiceObject ()
 Default destructor. More...
 
void addTasks (const List< ElemUtils::Packet > &tasks)
 Add task to queue. More...
 
bool isEmptyTaskQueue ()
 Check if queue is empty. More...
 
ElemUtils::Packet popTaskFormQueue ()
 Pop task from queue. More...
 
void initComputationalThread (ModuleObject *pModuleObject)
 Initialize all threads. More...
 
void launchAllThreadAndWaitingFor ()
 Lunch all threads. More...
 
void clearAllThread ()
 Clear all threads. More...
 
std::string generateSQLQueryForPlotFile (const std::string &tableName, const ElemUtils::Parameters &selectParams, const ElemUtils::Parameters &whereParams) const
 Generate SQL query to create a plot file. More...
 
void generatePlotFile (const std::string &filePath, const std::string &sqlQuery, const char splitChar) const
 Generate a plot file. More...
 
- Public Member Functions inherited from PARTONS::BaseObject
 BaseObject (const std::string &className)
 Constructor. More...
 
virtual ~BaseObject ()
 Default destructor. More...
 
virtual BaseObjectclone () const
 Virtual clone function to allow the factory to clone all derived members object stored in the BaseObjectRegistry. More...
 
virtual std::string toString () const
 Return a pre-formatted characters string for output visualization of class member's values. More...
 
void serialize (ElemUtils::Packet &packet) const
 Used to split a complex C++ object into a concatenation of simple types. More...
 
void unserialize (ElemUtils::Packet &packet)
 Used to rebuild a complex C++ object from a concatenation of simple type. More...
 
bool operator< (const BaseObject &other) const
 Overload of < operator to sort BaseObject object by its indexId value. More...
 
const std::string & getClassName () const
 
unsigned int getObjectId () const
 
int getIndexId () const
 
void setIndexId (int indexId)
 

Static Public Attributes

static const unsigned int classId
 Unique ID to automatically register the class in the registry. More...
 
static const std::string COLLINEAR_DISTRIBUTION_SERVICE_COMPUTE_SINGLE_KINEMATIC
 Name of the XML task used to compute a collinear-distribution at given kinematics. More...
 
static const std::string COLLINEAR_DISTRIBUTION_SERVICE_COMPUTE_MANY_KINEMATIC
 Name of the XML task used to compute collinear-distributions for a list of kinematics. More...
 
static const std::string COLLINEAR_DISTRIBUTION_SERVICE_GENERATE_PLOT_FILE
 Name of the XML task used for generating a data file ready for plotting. More...
 
- Static Public Attributes inherited from PARTONS::ServiceObjectTyped< CollinearDistributionKinematic, CollinearDistributionResult >
static const std::string SERVICE_OBJECT_PRINT_RESULTS
 Name of the XML task used to print results via Logger. More...
 

Protected Member Functions

 CollinearDistributionService (const std::string &className)
 Default constructor used by the registry. More...
 
- Protected Member Functions inherited from PARTONS::ServiceObjectTyped< CollinearDistributionKinematic, CollinearDistributionResult >
 ServiceObjectTyped (const std::string &className)
 Default constructor. More...
 
bool computeGeneralTask (Task &task)
 General tasks. More...
 
void printResultListBuffer ()
 Print results to buffer. More...
 
void updateResultInfo (CollinearDistributionResult &result, const ResultInfo &resultInfo)
 Update result info. More...
 
void updateResultInfo (List< CollinearDistributionResult > &resultList, const ResultInfo &resultInfo)
 Update result info. More...
 
- Protected Member Functions inherited from PARTONS::ServiceObject
std::string generateSQLQueryForPlotFileTask (Task &task, const std::string &tableName) const
 Generate SQL query from a task. More...
 
std::string getOutputFilePathForPlotFileTask (Task &task) const
 Get path to a plot file from a task. More...
 
List< GPDTypegetGPDTypeListFromTask (Task &task) const
 Get list of GPD types to be computed from a task. More...
 
List< CollinearDistributionTypegetCollinearDistributionTypeListFromTask (Task &task) const
 Get list of Collinear Distribution types to be computed from a task. More...
 
void errorUnknownMethod (const Task &task) const
 Throw exception if unknown method. More...
 
- Protected Member Functions inherited from PARTONS::BaseObject
 BaseObject (const BaseObject &other)
 Copy constructor. More...
 
void info (const std::string &functionName, const std::string &message) const
 Print info message into logger. More...
 
void debug (const std::string &functionName, const std::string &message) const
 Print debug message into logger. More...
 
void warn (const std::string &functionName, const std::string &message) const
 Print warning message into logger. More...
 
void errorMissingParameter (const std::string &parameterName) const
 Use in automation process to throw exception when a parameter is missing from the XML scenario file. More...
 

Private Member Functions

CollinearDistributionResult computeSingleKinematicTask (Task &task)
 Method used in the automated interface to compute collinear-distribution. More...
 
List< CollinearDistributionResultcomputeManyKinematicTask (Task &task)
 Method used in the automated interface to compute collinear-distributions for a list of kinematics. More...
 
void generatePlotFileTask (Task &task)
 Method used in the automated interface to generate a data file ready for plotting. More...
 
List< CollinearDistributionTypegetFinalCollinearDistributionTypeList (CollinearDistributionModule *pCollinearDistributionModule, const List< CollinearDistributionType > &colldistTypeList) const
 Method used to derive an intersection of available collinear-distribution types from the various underlying modules. More...
 

Additional Inherited Members

- Protected Attributes inherited from PARTONS::ServiceObjectTyped< CollinearDistributionKinematic, CollinearDistributionResult >
unsigned int m_batchSize
 Batch size. More...
 
sf::Mutex m_mutexKinematicList
 Mutex for kinematic list. More...
 
sf::Mutex m_mutexResultListBuffer
 Mutex for result list. More...
 
List< CollinearDistributionKinematicm_kinematicListBuffer
 Kinematic list. More...
 
List< CollinearDistributionResultm_resultListBuffer
 Result list. More...
 
ResultInfo m_resultInfo
 Result info. More...
 
- Protected Attributes inherited from PARTONS::ServiceObject
ModuleObjectFactorym_pModuleObjectFactory
 Pointer to ModuleObjectFactory. More...
 
AutomationServicem_pAutomationService
 Pointer to AutomationService. More...
 

Detailed Description

Class to handle and compute collinear-distribution modules.

Constructor & Destructor Documentation

◆ ~CollinearDistributionService()

PARTONS::CollinearDistributionService::~CollinearDistributionService ( )
virtual

Default destructor.

◆ CollinearDistributionService()

PARTONS::CollinearDistributionService::CollinearDistributionService ( const std::string &  className)
protected

Default constructor used by the registry.

Member Function Documentation

◆ computeManyKinematic()

List< CollinearDistributionResult > PARTONS::CollinearDistributionService::computeManyKinematic ( const List< CollinearDistributionKinematic > &  colldistKinematicList,
CollinearDistributionModule pCollinearDistributionModule,
const List< CollinearDistributionType > &  colldistTypeList = List<CollinearDistributionType>() 
)

Computes a collinear-distribution model for a list of kinematics.

Parameters
colldistKinematicListList of CollinearDistributionKinematics.
pCollinearDistributionModuleCollinearDistributionModule to use for the computation.
colldistTypeListList of CollinearDistributionType to compute. Default: all the CollinearDistributionTypes available with the CollinearDistributionModule.
storeInDBBoolean to store the results and kinematics on the database. Default: false.
Returns
List of CollinearDistributionResults.

◆ computeManyKinematicTask()

List< CollinearDistributionResult > PARTONS::CollinearDistributionService::computeManyKinematicTask ( Task task)
private

Method used in the automated interface to compute collinear-distributions for a list of kinematics.

Parameters
taskAutomated XML task.
Returns
List of collinear-distribution results.

◆ computeSingleKinematic()

CollinearDistributionResult PARTONS::CollinearDistributionService::computeSingleKinematic ( const CollinearDistributionKinematic colldistKinematic,
CollinearDistributionModule pCollinearDistributionModule,
const List< CollinearDistributionType > &  colldistType = List<CollinearDistributionType>() 
) const

Computes collinear-distribution model at specific kinematics.

Parameters
colldistKinematiccollinear-distribution kinematic.
pCollinearDistributionModuleCollinearDistributionModule to use.
colldistTypeList of CollinearDistributionType to compute. Default: all the CollinearDistributionTypes available with the CollinearDistributionModule.
Returns
CollinearDistributionResult

◆ computeSingleKinematicTask()

CollinearDistributionResult PARTONS::CollinearDistributionService::computeSingleKinematicTask ( Task task)
private

Method used in the automated interface to compute collinear-distribution.

Parameters
taskAutomated XML task.
Returns
CollinearDistributionResult object.

◆ computeTask()

void PARTONS::CollinearDistributionService::computeTask ( Task task)
virtual

◆ generatePlotFileTask()

void PARTONS::CollinearDistributionService::generatePlotFileTask ( Task task)
private

Method used in the automated interface to generate a data file ready for plotting.

Parameters
taskAutomated XML task.

◆ getFinalCollinearDistributionTypeList()

List< CollinearDistributionType > PARTONS::CollinearDistributionService::getFinalCollinearDistributionTypeList ( CollinearDistributionModule pCollinearDistributionModule,
const List< CollinearDistributionType > &  colldistTypeList 
) const
private

Method used to derive an intersection of available collinear-distribution types from the various underlying modules.

Parameters
pCollinearDistributionModuleCollinearDistributionModule used for the computation.
colldistTypeListList of desired collinear-distribution types to compute.
Returns
List of collinear-distribution types.

◆ newCollinearDistributionModuleFromTask()

CollinearDistributionModule * PARTONS::CollinearDistributionService::newCollinearDistributionModuleFromTask ( const Task task) const

Devises the CollinearDistributionModule from an automation task.

Parameters
taskAutomation task.
Returns
CollinearDistributionModule pointer.

◆ newKinematicFromTask()

CollinearDistributionKinematic PARTONS::CollinearDistributionService::newKinematicFromTask ( const Task task) const

Devises the collinear-distribution kinematics from an automation task.

Parameters
taskAutomation task.
Returns
collinear-distribution kinematics.

◆ newListOfKinematicFromTask()

List< CollinearDistributionKinematic > PARTONS::CollinearDistributionService::newListOfKinematicFromTask ( const Task task) const

Devises the collinear-distribution kinematics from an automation task.

Parameters
taskAutomation task.
Returns
List of collinear-distribution kinematics.

◆ resolveObjectDependencies()

void PARTONS::CollinearDistributionService::resolveObjectDependencies ( )
virtual

Because of the initialization step order of the program, objects are registered in a total random order and some objects depend on others.

To avoid the problem of pointer resolution order, this method is called by the BaseObjectRegistery after all objects are well registered in it. See BaseObjectRegistry class documentation for more details.

Reimplemented from PARTONS::ServiceObjectTyped< CollinearDistributionKinematic, CollinearDistributionResult >.

Member Data Documentation

◆ classId

const unsigned int PARTONS::CollinearDistributionService::classId
static
Initial value:
=
new CollinearDistributionService("CollinearDistributionService"))
unsigned int registerBaseObject(BaseObject *pBaseObject)
Store a unique instance of a module identified by a unique string character key.
Definition: BaseObjectRegistry.cpp:45
CollinearDistributionService(const std::string &className)
Default constructor used by the registry.
Definition: CollinearDistributionService.cpp:34
static Partons * getInstance()
Share a unique pointer of this class.
Definition: Partons.cpp:27
BaseObjectRegistry * getBaseObjectRegistry() const
Definition: Partons.cpp:175

Unique ID to automatically register the class in the registry.

◆ COLLINEAR_DISTRIBUTION_SERVICE_COMPUTE_MANY_KINEMATIC

const std::string PARTONS::CollinearDistributionService::COLLINEAR_DISTRIBUTION_SERVICE_COMPUTE_MANY_KINEMATIC
static
Initial value:
=
"computeManyKinematic"

Name of the XML task used to compute collinear-distributions for a list of kinematics.

◆ COLLINEAR_DISTRIBUTION_SERVICE_COMPUTE_SINGLE_KINEMATIC

const std::string PARTONS::CollinearDistributionService::COLLINEAR_DISTRIBUTION_SERVICE_COMPUTE_SINGLE_KINEMATIC
static
Initial value:
=
"computeSingleKinematic"

Name of the XML task used to compute a collinear-distribution at given kinematics.

◆ COLLINEAR_DISTRIBUTION_SERVICE_GENERATE_PLOT_FILE

const std::string PARTONS::CollinearDistributionService::COLLINEAR_DISTRIBUTION_SERVICE_GENERATE_PLOT_FILE
static
Initial value:
=
"generatePlotFile"

Name of the XML task used for generating a data file ready for plotting.


The documentation for this class was generated from the following files: