EpIC 1.1.0
Monte Carlo generator for exclusive processes
Loading...
Searching...
No Matches
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
EPIC::GeneratorService< kinRange, procModule, kinModule, rcModule > Class Template Referenceabstract

Template for services handling generation of MC events. More...

#include <GeneratorService.h>

Inheritance diagram for EPIC::GeneratorService< kinRange, procModule, kinModule, rcModule >:
EPIC::EventGeneratorInterface

Public Member Functions

 GeneratorService (const std::string &className)
 
 GeneratorService (const GeneratorService &other)
 
virtual GeneratorServiceclone () const =0
 
virtual ~GeneratorService ()
 
void computeTask (const MonteCarloTask &task)
 
virtual void run ()=0
 
void printAndSaveGenerationConfiguration ()
 
virtual void addAdditionalGenerationConfiguration (GenerationInformation &generationInformation)
 
const GeneralConfigurationgetGeneralConfiguration () const
 
void setGeneralConfiguration (const GeneralConfiguration &generalConfiguration)
 
const kinRange & getKinematicRanges () const
 
void setKinematicRanges (const kinRange &kinematicRanges)
 
const ExperimentalConditionsgetExperimentalConditions () const
 
void setExperimentalConditions (const ExperimentalConditions &experimentalConditions)
 
procModule * getProcessModule () const
 
void setProcessModule (procModule *processModule)
 
const std::shared_ptr< EventGeneratorModule > & getEventGeneratorModule () const
 
void setEventGeneratorModule (const std::shared_ptr< EventGeneratorModule > &pEventGeneratorModule)
 
const std::shared_ptr< kinModule > & getKinematicModule () const
 
void setKinematicModule (const std::shared_ptr< kinModule > &pKinematicModule)
 
const std::shared_ptr< rcModule > & getRCModule () const
 
void setRCModule (const std::shared_ptr< rcModule > &pRCModule)
 
const std::shared_ptr< WriterModule > & getWriterModule () const
 
void setWriterModule (const std::shared_ptr< WriterModule > &pWriterModule)
 
const std::string & getScenarioDescription () const
 
void setScenarioDescription (const std::string &scenarioDescription)
 
const std::string & getScenarioDate () const
 
void setScenarioDate (const std::string &scenarioDate)
 
- Public Member Functions inherited from EPIC::EventGeneratorInterface
 EventGeneratorInterface ()
 
 EventGeneratorInterface (const EventGeneratorInterface &other)
 
virtual ~EventGeneratorInterface ()
 
virtual double getEventDistribution (std::vector< double > &kin) const =0
 

Protected Member Functions

void getGeneralConfigurationFromTask (const MonteCarloTask &task)
 
virtual void getAdditionalGeneralConfigurationFromTask (const MonteCarloTask &task)=0
 
void getExperimentalConditionsFromTask (const MonteCarloTask &task)
 
virtual void getKinematicRangesFromTask (const MonteCarloTask &task)=0
 
virtual void getProcessModuleFromTask (const MonteCarloTask &task)=0
 
void getEventGeneratorModuleFromTask (const MonteCarloTask &task)
 
virtual void getKinematicModuleFromTask (const MonteCarloTask &task)=0
 
virtual void getRCModuleFromTask (const MonteCarloTask &task)=0
 
void getWriterModuleFromTask (const MonteCarloTask &task)
 
virtual void isServiceWellConfigured () const
 
std::string getCurrentDate () const
 
void checkTargetPolarisation (ExperimentalConditions &experimentalConditions) const
 
virtual void transformVariables (std::vector< double > &variables) const =0
 
virtual void transformRanges (std::vector< KinematicRange > &ranges) const =0
 
virtual double getJacobian (const std::vector< double > &variables) const =0
 
void openHistogramFile ()
 
virtual void bookHistograms ()
 
void closeHistogramFile ()
 

Protected Attributes

kinRange m_kinematicRanges
 Kinematic ranges.
 
procModule * m_pProcessModule
 Process module.
 
std::shared_ptr< kinModule > m_pKinematicModule
 Kinematic module.
 
std::shared_ptr< rcModule > m_pRCModule
 Radiative correction module.
 
GeneralConfiguration m_generalConfiguration
 General configuration.
 
ExperimentalConditions m_experimentalConditions
 Experimental conditions.
 
std::shared_ptr< EventGeneratorModulem_pEventGeneratorModule
 Event generator module.
 
std::shared_ptr< WriterModulem_pWriterModule
 Writer module.
 
std::string m_scenarioDate
 Scenario date.
 
std::string m_scenarioDescription
 Scenario description.
 
std::pair< std::chrono::steady_clock::time_point, std::chrono::steady_clock::time_point > m_debugTimeInitialization
 Timer spent for initialization.
 
std::pair< std::chrono::steady_clock::time_point, std::chrono::steady_clock::time_point > m_debugTimeGeneration
 Timer spent for generation.
 
std::shared_ptr< RandomNumberModulem_randomNumberModule
 Random number module.
 
TFile * m_histogramFile
 File containing histograms.
 
std::vector< TH1 * > m_histograms
 

Detailed Description

template<class kinRange, class procModule, class kinModule, class rcModule>
class EPIC::GeneratorService< kinRange, procModule, kinModule, rcModule >

Template for services handling generation of MC events.

This is a template used to create services handling generation of MC events.

Constructor & Destructor Documentation

◆ GeneratorService() [1/2]

template<class kinRange , class procModule , class kinModule , class rcModule >
EPIC::GeneratorService< kinRange, procModule, kinModule, rcModule >::GeneratorService ( const std::string &  className)
inline

Default constructor.

◆ GeneratorService() [2/2]

template<class kinRange , class procModule , class kinModule , class rcModule >
EPIC::GeneratorService< kinRange, procModule, kinModule, rcModule >::GeneratorService ( const GeneratorService< kinRange, procModule, kinModule, rcModule > &  other)
inline

Copy constructor.

◆ ~GeneratorService()

template<class kinRange , class procModule , class kinModule , class rcModule >
virtual EPIC::GeneratorService< kinRange, procModule, kinModule, rcModule >::~GeneratorService ( )
inlinevirtual

Destructor.

Member Function Documentation

◆ addAdditionalGenerationConfiguration()

template<class kinRange , class procModule , class kinModule , class rcModule >
virtual void EPIC::GeneratorService< kinRange, procModule, kinModule, rcModule >::addAdditionalGenerationConfiguration ( GenerationInformation generationInformation)
inlinevirtual

Add additional information to GenerationInformation printout.

◆ bookHistograms()

template<class kinRange , class procModule , class kinModule , class rcModule >
virtual void EPIC::GeneratorService< kinRange, procModule, kinModule, rcModule >::bookHistograms ( )
inlineprotectedvirtual

Book histograms.

◆ checkTargetPolarisation()

template<class kinRange , class procModule , class kinModule , class rcModule >
void EPIC::GeneratorService< kinRange, procModule, kinModule, rcModule >::checkTargetPolarisation ( ExperimentalConditions experimentalConditions) const
inlineprotected

Check target polarisation state. If not longitidinal and transverse, generate randomly polarisation state (in any direction).

◆ closeHistogramFile()

template<class kinRange , class procModule , class kinModule , class rcModule >
void EPIC::GeneratorService< kinRange, procModule, kinModule, rcModule >::closeHistogramFile ( )
inlineprotected

Close histogram file.

◆ computeTask()

template<class kinRange , class procModule , class kinModule , class rcModule >
void EPIC::GeneratorService< kinRange, procModule, kinModule, rcModule >::computeTask ( const MonteCarloTask task)
inline

Configure and run whole computation.

◆ getAdditionalGeneralConfigurationFromTask()

template<class kinRange , class procModule , class kinModule , class rcModule >
virtual void EPIC::GeneratorService< kinRange, procModule, kinModule, rcModule >::getAdditionalGeneralConfigurationFromTask ( const MonteCarloTask task)
protectedpure virtual

Get additional general configuration from XML.

◆ getCurrentDate()

template<class kinRange , class procModule , class kinModule , class rcModule >
std::string EPIC::GeneratorService< kinRange, procModule, kinModule, rcModule >::getCurrentDate ( ) const
inlineprotected

Get current date.

◆ getEventGeneratorModule()

template<class kinRange , class procModule , class kinModule , class rcModule >
const std::shared_ptr< EventGeneratorModule > & EPIC::GeneratorService< kinRange, procModule, kinModule, rcModule >::getEventGeneratorModule ( ) const
inline

Get event generator module.

◆ getEventGeneratorModuleFromTask()

template<class kinRange , class procModule , class kinModule , class rcModule >
void EPIC::GeneratorService< kinRange, procModule, kinModule, rcModule >::getEventGeneratorModuleFromTask ( const MonteCarloTask task)
inlineprotected

Get event generator module from XML.

◆ getExperimentalConditions()

template<class kinRange , class procModule , class kinModule , class rcModule >
const ExperimentalConditions & EPIC::GeneratorService< kinRange, procModule, kinModule, rcModule >::getExperimentalConditions ( ) const
inline

Get experimental conditions.

◆ getExperimentalConditionsFromTask()

template<class kinRange , class procModule , class kinModule , class rcModule >
void EPIC::GeneratorService< kinRange, procModule, kinModule, rcModule >::getExperimentalConditionsFromTask ( const MonteCarloTask task)
inlineprotected

Get experimental conditions from XML.

◆ getGeneralConfiguration()

template<class kinRange , class procModule , class kinModule , class rcModule >
const GeneralConfiguration & EPIC::GeneratorService< kinRange, procModule, kinModule, rcModule >::getGeneralConfiguration ( ) const
inline

Get general configurations.

◆ getGeneralConfigurationFromTask()

template<class kinRange , class procModule , class kinModule , class rcModule >
void EPIC::GeneratorService< kinRange, procModule, kinModule, rcModule >::getGeneralConfigurationFromTask ( const MonteCarloTask task)
inlineprotected

Get general configuration from XML.

◆ getJacobian()

template<class kinRange , class procModule , class kinModule , class rcModule >
virtual double EPIC::GeneratorService< kinRange, procModule, kinModule, rcModule >::getJacobian ( const std::vector< double > &  variables) const
protectedpure virtual

Get Jacobian related to the transformation of kinematic variables.

◆ getKinematicModule()

template<class kinRange , class procModule , class kinModule , class rcModule >
const std::shared_ptr< kinModule > & EPIC::GeneratorService< kinRange, procModule, kinModule, rcModule >::getKinematicModule ( ) const
inline

Get kinematic module.

◆ getKinematicModuleFromTask()

template<class kinRange , class procModule , class kinModule , class rcModule >
virtual void EPIC::GeneratorService< kinRange, procModule, kinModule, rcModule >::getKinematicModuleFromTask ( const MonteCarloTask task)
protectedpure virtual

Get kinematic module from XML.

◆ getKinematicRanges()

template<class kinRange , class procModule , class kinModule , class rcModule >
const kinRange & EPIC::GeneratorService< kinRange, procModule, kinModule, rcModule >::getKinematicRanges ( ) const
inline

Get kinematic ranges.

◆ getKinematicRangesFromTask()

template<class kinRange , class procModule , class kinModule , class rcModule >
virtual void EPIC::GeneratorService< kinRange, procModule, kinModule, rcModule >::getKinematicRangesFromTask ( const MonteCarloTask task)
protectedpure virtual

Get kinematic range from XML.

◆ getProcessModule()

template<class kinRange , class procModule , class kinModule , class rcModule >
procModule * EPIC::GeneratorService< kinRange, procModule, kinModule, rcModule >::getProcessModule ( ) const
inline

Get process module.

◆ getProcessModuleFromTask()

template<class kinRange , class procModule , class kinModule , class rcModule >
virtual void EPIC::GeneratorService< kinRange, procModule, kinModule, rcModule >::getProcessModuleFromTask ( const MonteCarloTask task)
protectedpure virtual

Get process module from XML.

◆ getRCModule()

template<class kinRange , class procModule , class kinModule , class rcModule >
const std::shared_ptr< rcModule > & EPIC::GeneratorService< kinRange, procModule, kinModule, rcModule >::getRCModule ( ) const
inline

Get radiative correction module.

◆ getRCModuleFromTask()

template<class kinRange , class procModule , class kinModule , class rcModule >
virtual void EPIC::GeneratorService< kinRange, procModule, kinModule, rcModule >::getRCModuleFromTask ( const MonteCarloTask task)
protectedpure virtual

Get radiative correction module from XML.

◆ getScenarioDate()

template<class kinRange , class procModule , class kinModule , class rcModule >
const std::string & EPIC::GeneratorService< kinRange, procModule, kinModule, rcModule >::getScenarioDate ( ) const
inline

Get scenario date.

◆ getScenarioDescription()

template<class kinRange , class procModule , class kinModule , class rcModule >
const std::string & EPIC::GeneratorService< kinRange, procModule, kinModule, rcModule >::getScenarioDescription ( ) const
inline

Get scenario description.

◆ getWriterModule()

template<class kinRange , class procModule , class kinModule , class rcModule >
const std::shared_ptr< WriterModule > & EPIC::GeneratorService< kinRange, procModule, kinModule, rcModule >::getWriterModule ( ) const
inline

Get writer module.

◆ getWriterModuleFromTask()

template<class kinRange , class procModule , class kinModule , class rcModule >
void EPIC::GeneratorService< kinRange, procModule, kinModule, rcModule >::getWriterModuleFromTask ( const MonteCarloTask task)
inlineprotected

Get writer module from XML.

◆ isServiceWellConfigured()

template<class kinRange , class procModule , class kinModule , class rcModule >
virtual void EPIC::GeneratorService< kinRange, procModule, kinModule, rcModule >::isServiceWellConfigured ( ) const
inlineprotectedvirtual

Check if well configured.

◆ openHistogramFile()

template<class kinRange , class procModule , class kinModule , class rcModule >
void EPIC::GeneratorService< kinRange, procModule, kinModule, rcModule >::openHistogramFile ( )
inlineprotected

Open histogram file.

◆ printAndSaveGenerationConfiguration()

template<class kinRange , class procModule , class kinModule , class rcModule >
void EPIC::GeneratorService< kinRange, procModule, kinModule, rcModule >::printAndSaveGenerationConfiguration ( )
inline

Save generation configuration. Must be invoked when writer is open.

◆ run()

template<class kinRange , class procModule , class kinModule , class rcModule >
virtual void EPIC::GeneratorService< kinRange, procModule, kinModule, rcModule >::run ( )
pure virtual

◆ setEventGeneratorModule()

template<class kinRange , class procModule , class kinModule , class rcModule >
void EPIC::GeneratorService< kinRange, procModule, kinModule, rcModule >::setEventGeneratorModule ( const std::shared_ptr< EventGeneratorModule > &  pEventGeneratorModule)
inline

Set event generator module.

◆ setExperimentalConditions()

template<class kinRange , class procModule , class kinModule , class rcModule >
void EPIC::GeneratorService< kinRange, procModule, kinModule, rcModule >::setExperimentalConditions ( const ExperimentalConditions experimentalConditions)
inline

Set experimental conditions.

◆ setGeneralConfiguration()

template<class kinRange , class procModule , class kinModule , class rcModule >
void EPIC::GeneratorService< kinRange, procModule, kinModule, rcModule >::setGeneralConfiguration ( const GeneralConfiguration generalConfiguration)
inline

Set general configuration.

◆ setKinematicModule()

template<class kinRange , class procModule , class kinModule , class rcModule >
void EPIC::GeneratorService< kinRange, procModule, kinModule, rcModule >::setKinematicModule ( const std::shared_ptr< kinModule > &  pKinematicModule)
inline

Set kinematic module.

◆ setKinematicRanges()

template<class kinRange , class procModule , class kinModule , class rcModule >
void EPIC::GeneratorService< kinRange, procModule, kinModule, rcModule >::setKinematicRanges ( const kinRange &  kinematicRanges)
inline

Set kinematic ranges.

◆ setProcessModule()

template<class kinRange , class procModule , class kinModule , class rcModule >
void EPIC::GeneratorService< kinRange, procModule, kinModule, rcModule >::setProcessModule ( procModule *  processModule)
inline

Set process module.

◆ setRCModule()

template<class kinRange , class procModule , class kinModule , class rcModule >
void EPIC::GeneratorService< kinRange, procModule, kinModule, rcModule >::setRCModule ( const std::shared_ptr< rcModule > &  pRCModule)
inline

Set radiative correction module.

◆ setScenarioDate()

template<class kinRange , class procModule , class kinModule , class rcModule >
void EPIC::GeneratorService< kinRange, procModule, kinModule, rcModule >::setScenarioDate ( const std::string &  scenarioDate)
inline

Set scenario date.

◆ setScenarioDescription()

template<class kinRange , class procModule , class kinModule , class rcModule >
void EPIC::GeneratorService< kinRange, procModule, kinModule, rcModule >::setScenarioDescription ( const std::string &  scenarioDescription)
inline

Set scenario description.

◆ setWriterModule()

template<class kinRange , class procModule , class kinModule , class rcModule >
void EPIC::GeneratorService< kinRange, procModule, kinModule, rcModule >::setWriterModule ( const std::shared_ptr< WriterModule > &  pWriterModule)
inline

Set writer module.

◆ transformRanges()

template<class kinRange , class procModule , class kinModule , class rcModule >
virtual void EPIC::GeneratorService< kinRange, procModule, kinModule, rcModule >::transformRanges ( std::vector< KinematicRange > &  ranges) const
protectedpure virtual

Transform ranges.

◆ transformVariables()

template<class kinRange , class procModule , class kinModule , class rcModule >
virtual void EPIC::GeneratorService< kinRange, procModule, kinModule, rcModule >::transformVariables ( std::vector< double > &  variables) const
protectedpure virtual

Transform variables.


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