DUNE-DAQ
DUNE Trigger and Data Acquisition software
Loading...
Searching...
No Matches
dunedaq::appmodel::DaphneApplication Class Reference

#include <DaphneApplication.hpp>

Inheritance diagram for dunedaq::appmodel::DaphneApplication:
[legend]
Collaboration diagram for dunedaq::appmodel::DaphneApplication:
[legend]

Public Member Functions

virtual void print (unsigned int offset, bool print_header, std::ostream &s) const
 Print details of the DaphneApplication object.
 
virtual std::vector< const dunedaq::conffwk::DalObject * > get (const std::string &name, bool upcast_unregistered=true) const
 Get values of relationships and results of some algorithms as a vector of dunedaq::conffwk::DalObject pointers.
 
const dunedaq::appmodel::DaphneConfget_configuration () const
 Get "configuration" relationship value.
 
void set_configuration (const dunedaq::appmodel::DaphneConf *value)
 Set "configuration" relationship value.
 
const std::vector< const dunedaq::appmodel::FelixDetectorToDaqConnection * > & get_detector_connections () const
 Get "detector_connections" relationship value. List of detector components controlled by this application.
 
void set_detector_connections (const std::vector< const dunedaq::appmodel::FelixDetectorToDaqConnection * > &value)
 Set "detector_connections" relationship value. List of detector components controlled by this application.
 
std::vector< const dunedaq::confmodel::DaqModule * > generate_modules (const confmodel::Session *) const override
 
virtual std::vector< const Resource * > contained_resources () const override
 
virtual void print (unsigned int offset, bool print_header, std::ostream &s) const
 Print details of the DaphneApplication object.
 
virtual std::vector< const dunedaq::conffwk::DalObject * > get (const std::string &name, bool upcast_unregistered=true) const
 Get values of relationships and results of some algorithms as a vector of dunedaq::conffwk::DalObject pointers.
 
const dunedaq::appmodel::DaphneConfget_configuration () const
 Get "configuration" relationship value.
 
void set_configuration (const dunedaq::appmodel::DaphneConf *value)
 Set "configuration" relationship value.
 
const std::vector< const dunedaq::appmodel::FelixDetectorToDaqConnection * > & get_detector_connections () const
 Get "detector_connections" relationship value. List of detector components controlled by this application.
 
void set_detector_connections (const std::vector< const dunedaq::appmodel::FelixDetectorToDaqConnection * > &value)
 Set "detector_connections" relationship value. List of detector components controlled by this application.
 
std::vector< const dunedaq::confmodel::DaqModule * > generate_modules (const confmodel::Session *) const override
 
virtual std::vector< const Resource * > contained_resources () const override
 
- Public Member Functions inherited from dunedaq::appmodel::SmartDaqApplication
const dunedaq::appmodel::SourceIDConfget_source_id () const
 Get "source_id" relationship value.
 
void set_source_id (const dunedaq::appmodel::SourceIDConf *value)
 Set "source_id" relationship value.
 
const std::vector< const dunedaq::appmodel::QueueConnectionRule * > & get_queue_rules () const
 Get "queue_rules" relationship value.
 
void set_queue_rules (const std::vector< const dunedaq::appmodel::QueueConnectionRule * > &value)
 Set "queue_rules" relationship value.
 
const std::vector< const dunedaq::appmodel::NetworkConnectionRule * > & get_network_rules () const
 Get "network_rules" relationship value.
 
void set_network_rules (const std::vector< const dunedaq::appmodel::NetworkConnectionRule * > &value)
 Set "network_rules" relationship value.
 
const std::vector< const dunedaq::confmodel::ActionPlan * > & get_action_plans () const
 Get "action_plans" relationship value.
 
void set_action_plans (const std::vector< const dunedaq::confmodel::ActionPlan * > &value)
 Set "action_plans" relationship value.
 
const std::vector< std::string > construct_commandline_parameters (const conffwk::Configuration &confdb, const dunedaq::confmodel::Session *session) const
 
const dunedaq::appmodel::SourceIDConfget_source_id () const
 Get "source_id" relationship value.
 
void set_source_id (const dunedaq::appmodel::SourceIDConf *value)
 Set "source_id" relationship value.
 
const std::vector< const dunedaq::appmodel::QueueConnectionRule * > & get_queue_rules () const
 Get "queue_rules" relationship value.
 
void set_queue_rules (const std::vector< const dunedaq::appmodel::QueueConnectionRule * > &value)
 Set "queue_rules" relationship value.
 
const std::vector< const dunedaq::appmodel::NetworkConnectionRule * > & get_network_rules () const
 Get "network_rules" relationship value.
 
void set_network_rules (const std::vector< const dunedaq::appmodel::NetworkConnectionRule * > &value)
 Set "network_rules" relationship value.
 
const std::vector< const dunedaq::confmodel::ActionPlan * > & get_action_plans () const
 Get "action_plans" relationship value.
 
void set_action_plans (const std::vector< const dunedaq::confmodel::ActionPlan * > &value)
 Set "action_plans" relationship value.
 
const std::vector< std::string > construct_commandline_parameters (const conffwk::Configuration &confdb, const dunedaq::confmodel::Session *session) const
 
- Public Member Functions inherited from dunedaq::confmodel::Application
const std::string & get_application_name () const
 Get "application_name" attribute value. Name of the application binary to run.
 
void set_application_name (const std::string &value)
 Set "application_name" attribute value. Name of the application binary to run.
 
const std::vector< std::string > & get_commandline_parameters () const
 Get "commandline_parameters" attribute value. command line parameters to add when starting the application.
 
void set_commandline_parameters (const std::vector< std::string > &value)
 Set "commandline_parameters" attribute value. command line parameters to add when starting the application.
 
const std::string & get_log_path () const
 Get "log_path" attribute value. Where the applications, controllers and infrastructure applications stdout/err go. This take precedence over the Session's log_path. If none of them is set, PWD is used.
 
void set_log_path (const std::string &value)
 Set "log_path" attribute value. Where the applications, controllers and infrastructure applications stdout/err go. This take precedence over the Session's log_path. If none of them is set, PWD is used.
 
const std::vector< const dunedaq::confmodel::VariableBase * > & get_application_environment () const
 Get "application_environment" relationship value. Define process environment for this application.
 
void set_application_environment (const std::vector< const dunedaq::confmodel::VariableBase * > &value)
 Set "application_environment" relationship value. Define process environment for this application.
 
const dunedaq::confmodel::VirtualHostget_runs_on () const
 Get "runs_on" relationship value. VirtualHost to run this application on.
 
void set_runs_on (const dunedaq::confmodel::VirtualHost *value)
 Set "runs_on" relationship value. VirtualHost to run this application on.
 
const std::vector< const dunedaq::confmodel::Service * > & get_exposes_service () const
 Get "exposes_service" relationship value. Services exposed i.e. provided by this application.
 
void set_exposes_service (const std::vector< const dunedaq::confmodel::Service * > &value)
 Set "exposes_service" relationship value. Services exposed i.e. provided by this application.
 
const dunedaq::confmodel::OpMonConfget_opmon_conf () const
 Get "opmon_conf" relationship value. description of the monitoring behaviour in the application.
 
void set_opmon_conf (const dunedaq::confmodel::OpMonConf *value)
 Set "opmon_conf" relationship value. description of the monitoring behaviour in the application.
 
const std::vector< std::string > parse_commandline_parameters () const
 
const std::string & get_application_name () const
 Get "application_name" attribute value. Name of the application binary to run.
 
void set_application_name (const std::string &value)
 Set "application_name" attribute value. Name of the application binary to run.
 
const std::vector< std::string > & get_commandline_parameters () const
 Get "commandline_parameters" attribute value. command line parameters to add when starting the application.
 
void set_commandline_parameters (const std::vector< std::string > &value)
 Set "commandline_parameters" attribute value. command line parameters to add when starting the application.
 
const std::string & get_log_path () const
 Get "log_path" attribute value. Where the applications, controllers and infrastructure applications stdout/err go. This take precedence over the Session's log_path. If none of them is set, PWD is used.
 
void set_log_path (const std::string &value)
 Set "log_path" attribute value. Where the applications, controllers and infrastructure applications stdout/err go. This take precedence over the Session's log_path. If none of them is set, PWD is used.
 
const std::vector< const dunedaq::confmodel::VariableBase * > & get_application_environment () const
 Get "application_environment" relationship value. Define process environment for this application.
 
void set_application_environment (const std::vector< const dunedaq::confmodel::VariableBase * > &value)
 Set "application_environment" relationship value. Define process environment for this application.
 
const dunedaq::confmodel::VirtualHostget_runs_on () const
 Get "runs_on" relationship value. VirtualHost to run this application on.
 
void set_runs_on (const dunedaq::confmodel::VirtualHost *value)
 Set "runs_on" relationship value. VirtualHost to run this application on.
 
const std::vector< const dunedaq::confmodel::Service * > & get_exposes_service () const
 Get "exposes_service" relationship value. Services exposed i.e. provided by this application.
 
void set_exposes_service (const std::vector< const dunedaq::confmodel::Service * > &value)
 Set "exposes_service" relationship value. Services exposed i.e. provided by this application.
 
const dunedaq::confmodel::OpMonConfget_opmon_conf () const
 Get "opmon_conf" relationship value. description of the monitoring behaviour in the application.
 
void set_opmon_conf (const dunedaq::confmodel::OpMonConf *value)
 Set "opmon_conf" relationship value. description of the monitoring behaviour in the application.
 
const std::vector< std::string > parse_commandline_parameters () const
 
- Public Member Functions inherited from dunedaq::conffwk::DalObject
const std::string & UID () const noexcept
 
const std::string & class_name () const noexcept
 
bool castable (const std::string &target) const noexcept
 
bool castable (const std::string *target) const noexcept
 
template<class TARGET >
const TARGET * cast () const noexcept
 Casts object to different class.
 
std::string full_name () const noexcept
 
const ConfigObjectconfig_object () const
 
DalRegistryregistry () const noexcept
 
Configurationconfiguration () const noexcept
 
void unread ()
 
void set (const ConfigObject &o) noexcept
 
void move (const std::string &at)
 
void rename (const std::string &new_id)
 
void p_hdr (std::ostream &s, unsigned int indent, const std::string &cl, const char *nm=nullptr) const
 print object headers
 
std::ostream & print_object (std::ostream &s) const
 print object details
 
void throw_init_ex (dunedaq::conffwk::Exception &ex)
 throw object initialisation exception (i.e.
 
- Public Member Functions inherited from dunedaq::confmodel::ResourceSetDisableAND
bool compute_disabled_state (const std::set< std::string > &disabled) const final
 
bool compute_disabled_state (const std::set< std::string > &disabled) const final
 
- Public Member Functions inherited from dunedaq::confmodel::ResourceSet
- Public Member Functions inherited from dunedaq::confmodel::Resource
void parents (const dunedaq::confmodel::Session &session, std::list< std::vector< const dunedaq::confmodel::Resource * > > &parents) const
 
bool is_disabled (const dunedaq::confmodel::ResourceTree &session) const
 
void parents (const dunedaq::confmodel::Session &session, std::list< std::vector< const dunedaq::confmodel::Resource * > > &parents) const
 
bool is_disabled (const dunedaq::confmodel::ResourceTree &session) const
 

Static Public Member Functions

static const std::string & __get_configuration_str () noexcept
 
static const std::string & __get_detector_connections_str () noexcept
 
static const std::string & __get_configuration_str () noexcept
 
static const std::string & __get_detector_connections_str () noexcept
 
- Static Public Member Functions inherited from dunedaq::appmodel::SmartDaqApplication
static const std::string & __get_source_id_str () noexcept
 
static const std::string & __get_queue_rules_str () noexcept
 
static const std::string & __get_network_rules_str () noexcept
 
static const std::string & __get_action_plans_str () noexcept
 
static const std::string & __get_source_id_str () noexcept
 
static const std::string & __get_queue_rules_str () noexcept
 
static const std::string & __get_network_rules_str () noexcept
 
static const std::string & __get_action_plans_str () noexcept
 
- Static Public Member Functions inherited from dunedaq::confmodel::Application
static const std::string & __get_application_name_str () noexcept
 
static const std::string & __get_commandline_parameters_str () noexcept
 
static const std::string & __get_log_path_str () noexcept
 
static const std::string & __get_application_environment_str () noexcept
 
static const std::string & __get_runs_on_str () noexcept
 
static const std::string & __get_exposes_service_str () noexcept
 
static const std::string & __get_opmon_conf_str () noexcept
 
static const std::string & __get_application_name_str () noexcept
 
static const std::string & __get_commandline_parameters_str () noexcept
 
static const std::string & __get_log_path_str () noexcept
 
static const std::string & __get_application_environment_str () noexcept
 
static const std::string & __get_runs_on_str () noexcept
 
static const std::string & __get_exposes_service_str () noexcept
 
static const std::string & __get_opmon_conf_str () noexcept
 
- Static Public Member Functions inherited from dunedaq::conffwk::DalObject
static void p_null (std::ostream &s)
 print "(null)"
 
static void p_rm (std::ostream &s)
 print "(deleted object)"
 
static void p_error (std::ostream &s, dunedaq::conffwk::Exception &ex)
 print error text
 
static void throw_get_ex (const std::string &what, const std::string &class_name, const DalObject *obj)
 throw exception in generated get method (i.e.
 
static bool is_null (const DalObject *ref) noexcept
 check a pointer on DAL object is null
 

Static Public Attributes

static const std::string & s_class_name
 
static const std::string s_configuration = "configuration"
 
static const std::string s_detector_connections = "detector_connections"
 
- Static Public Attributes inherited from dunedaq::appmodel::SmartDaqApplication
static const std::string & s_class_name
 
static const std::string s_source_id = "source_id"
 
static const std::string s_queue_rules = "queue_rules"
 
static const std::string s_network_rules = "network_rules"
 
static const std::string s_action_plans = "action_plans"
 
- Static Public Attributes inherited from dunedaq::confmodel::Application
static const std::string & s_class_name
 
static const std::string s_application_name = "application_name"
 
static const std::string s_commandline_parameters = "commandline_parameters"
 
static const std::string s_log_path = "log_path"
 
static const std::string s_application_environment = "application_environment"
 
static const std::string s_runs_on = "runs_on"
 
static const std::string s_exposes_service = "exposes_service"
 
static const std::string s_opmon_conf = "opmon_conf"
 
- Static Public Attributes inherited from dunedaq::confmodel::ResourceSetDisableAND
static const std::string & s_class_name
 
- Static Public Attributes inherited from dunedaq::confmodel::ResourceSet
static const std::string & s_class_name
 
- Static Public Attributes inherited from dunedaq::confmodel::Resource
static const std::string & s_class_name
 

Protected Member Functions

 DaphneApplication (conffwk::DalRegistry &db, const conffwk::ConfigObject &obj) noexcept
 
virtual ~DaphneApplication () noexcept
 
virtual void init (bool init_children)
 
bool get (const std::string &name, std::vector< const dunedaq::conffwk::DalObject * > &vec, bool upcast_unregistered, bool first_call) const
 
 DaphneApplication (conffwk::DalRegistry &db, const conffwk::ConfigObject &obj) noexcept
 
virtual ~DaphneApplication () noexcept
 
virtual void init (bool init_children)
 
bool get (const std::string &name, std::vector< const dunedaq::conffwk::DalObject * > &vec, bool upcast_unregistered, bool first_call) const
 
- Protected Member Functions inherited from dunedaq::appmodel::SmartDaqApplication
 SmartDaqApplication (conffwk::DalRegistry &db, const conffwk::ConfigObject &obj) noexcept
 
virtual ~SmartDaqApplication () noexcept
 
bool get (const std::string &name, std::vector< const dunedaq::conffwk::DalObject * > &vec, bool upcast_unregistered, bool first_call) const
 
 SmartDaqApplication (conffwk::DalRegistry &db, const conffwk::ConfigObject &obj) noexcept
 
virtual ~SmartDaqApplication () noexcept
 
bool get (const std::string &name, std::vector< const dunedaq::conffwk::DalObject * > &vec, bool upcast_unregistered, bool first_call) const
 
- Protected Member Functions inherited from dunedaq::confmodel::Application
 Application (conffwk::DalRegistry &db, const conffwk::ConfigObject &obj) noexcept
 
virtual ~Application () noexcept
 
bool get (const std::string &name, std::vector< const dunedaq::conffwk::DalObject * > &vec, bool upcast_unregistered, bool first_call) const
 
 Application (conffwk::DalRegistry &db, const conffwk::ConfigObject &obj) noexcept
 
virtual ~Application () noexcept
 
bool get (const std::string &name, std::vector< const dunedaq::conffwk::DalObject * > &vec, bool upcast_unregistered, bool first_call) const
 
- Protected Member Functions inherited from dunedaq::conffwk::DalObject
 DalObject (DalRegistry &db, const ConfigObject &o) noexcept
 
virtual ~DalObject ()
 
void clear () noexcept
 
void check () const
 
bool is_deleted () const
 
void increment_created () noexcept
 
void increment_read () noexcept
 
void check_init () const
 Check and initialize object if necessary.
 
template<typename T >
void _set_object (const std::string &name, const T *value)
 Helper method for generated set single-value relationship methods.
 
template<typename T >
void _set_objects (const std::string &name, const std::vector< const T * > &value)
 Helper method for generated set multi-value relationship methods.
 
bool get_rel_objects (const std::string &name, bool upcast_unregistered, std::vector< const DalObject * > &objs) const
 Read relationship values as DAL objects using DAL factory.
 
bool get_algo_objects (const std::string &name, std::vector< const DalObject * > &objs) const
 Run algorithm and return result as DAL objects using DAL factory.
 
- Protected Member Functions inherited from dunedaq::confmodel::ResourceSetDisableAND
 ResourceSetDisableAND (conffwk::DalRegistry &db, const conffwk::ConfigObject &obj) noexcept
 
virtual ~ResourceSetDisableAND () noexcept
 
bool get (const std::string &name, std::vector< const dunedaq::conffwk::DalObject * > &vec, bool upcast_unregistered, bool first_call) const
 
 ResourceSetDisableAND (conffwk::DalRegistry &db, const conffwk::ConfigObject &obj) noexcept
 
virtual ~ResourceSetDisableAND () noexcept
 
bool get (const std::string &name, std::vector< const dunedaq::conffwk::DalObject * > &vec, bool upcast_unregistered, bool first_call) const
 
- Protected Member Functions inherited from dunedaq::confmodel::ResourceSet
 ResourceSet (conffwk::DalRegistry &db, const conffwk::ConfigObject &obj) noexcept
 
virtual ~ResourceSet () noexcept
 
bool get (const std::string &name, std::vector< const dunedaq::conffwk::DalObject * > &vec, bool upcast_unregistered, bool first_call) const
 
 ResourceSet (conffwk::DalRegistry &db, const conffwk::ConfigObject &obj) noexcept
 
virtual ~ResourceSet () noexcept
 
bool get (const std::string &name, std::vector< const dunedaq::conffwk::DalObject * > &vec, bool upcast_unregistered, bool first_call) const
 
- Protected Member Functions inherited from dunedaq::confmodel::Resource
 Resource (conffwk::DalRegistry &db, const conffwk::ConfigObject &obj) noexcept
 
virtual ~Resource () noexcept
 
bool get (const std::string &name, std::vector< const dunedaq::conffwk::DalObject * > &vec, bool upcast_unregistered, bool first_call) const
 
 Resource (conffwk::DalRegistry &db, const conffwk::ConfigObject &obj) noexcept
 
virtual ~Resource () noexcept
 
bool get (const std::string &name, std::vector< const dunedaq::conffwk::DalObject * > &vec, bool upcast_unregistered, bool first_call) const
 

Private Attributes

const dunedaq::appmodel::DaphneConfm_configuration
 
std::vector< const dunedaq::appmodel::FelixDetectorToDaqConnection * > m_detector_connections
 

Friends

class conffwk::Configuration
 
class conffwk::DalObject
 
class conffwk::DalFactory
 
class conffwk::DalRegistry
 

Additional Inherited Members

- Protected Attributes inherited from dunedaq::conffwk::DalObject
std::mutex m_mutex
 Used to protect changes of DAL object.
 
bool p_was_read
 is true, if the object was read
 
DalRegistryp_registry
 Configuration object.
 
ConfigObject p_obj
 Config object used by given template object.
 
std::string p_UID
 Is used for template objects (see dqm_conffwk)
 

Detailed Description

Definition at line 38 of file DaphneApplication.hpp.

Constructor & Destructor Documentation

◆ DaphneApplication() [1/2]

dunedaq::appmodel::DaphneApplication::DaphneApplication ( conffwk::DalRegistry & db,
const conffwk::ConfigObject & obj )
protectednoexcept

Definition at line 32 of file DaphneApplication.cpp.

32 :
36 m_configuration (nullptr)
37
38 {
39 ;
40 }
const dunedaq::appmodel::DaphneConf * m_configuration
SmartDaqApplication(conffwk::DalRegistry &db, const conffwk::ConfigObject &obj) noexcept
The base class for any generated DAL object.
Definition DalObject.hpp:45

◆ ~DaphneApplication() [1/2]

dunedaq::appmodel::DaphneApplication::~DaphneApplication ( )
protectedvirtualnoexcept

Definition at line 87 of file DaphneApplication.cpp.

88 {
89 }

◆ DaphneApplication() [2/2]

dunedaq::appmodel::DaphneApplication::DaphneApplication ( conffwk::DalRegistry & db,
const conffwk::ConfigObject & obj )
protectednoexcept

◆ ~DaphneApplication() [2/2]

virtual dunedaq::appmodel::DaphneApplication::~DaphneApplication ( )
protectedvirtualnoexcept

Member Function Documentation

◆ __get_configuration_str() [1/2]

static const std::string & dunedaq::appmodel::DaphneApplication::__get_configuration_str ( )
inlinestaticnoexcept

Definition at line 100 of file DaphneApplication.hpp.

100{ return s_configuration; }

◆ __get_configuration_str() [2/2]

static const std::string & dunedaq::appmodel::DaphneApplication::__get_configuration_str ( )
inlinestaticnoexcept

Definition at line 100 of file DaphneApplication.hpp.

100{ return s_configuration; }

◆ __get_detector_connections_str() [1/2]

static const std::string & dunedaq::appmodel::DaphneApplication::__get_detector_connections_str ( )
inlinestaticnoexcept

Definition at line 101 of file DaphneApplication.hpp.

101{ return s_detector_connections; }
static const std::string s_detector_connections

◆ __get_detector_connections_str() [2/2]

static const std::string & dunedaq::appmodel::DaphneApplication::__get_detector_connections_str ( )
inlinestaticnoexcept

Definition at line 101 of file DaphneApplication.hpp.

101{ return s_detector_connections; }

◆ contained_resources() [1/2]

std::vector< const confmodel::Resource * > dunedaq::appmodel::DaphneApplication::contained_resources ( ) const
overridevirtual

Virtual method to obtain the list of all contained Resources. Used internally by the core disabled logic. Not intended to be used in application code as that should be using individual relationships of the derived classes.

Implements dunedaq::confmodel::ResourceSet.

Definition at line 45 of file DaphneApplication.cpp.

45 {
47}
const std::vector< const dunedaq::appmodel::FelixDetectorToDaqConnection * > & get_detector_connections() const
Get "detector_connections" relationship value. List of detector components controlled by this applica...
std::vector< const dunedaq::confmodel::Resource * > to_resources(const std::vector< T * > &vector_of_children)

◆ contained_resources() [2/2]

virtual std::vector< const Resource * > dunedaq::appmodel::DaphneApplication::contained_resources ( ) const
overridevirtual

Virtual method to obtain the list of all contained Resources. Used internally by the core disabled logic. Not intended to be used in application code as that should be using individual relationships of the derived classes.

Implements dunedaq::confmodel::ResourceSet.

◆ generate_modules() [1/2]

std::vector< const confmodel::DaqModule * > dunedaq::appmodel::DaphneApplication::generate_modules ( const confmodel::Session * session) const
overridevirtual

Generate DaqModule dal objects for streams of the application on the fly

Implements dunedaq::appmodel::SmartDaqApplication.

Definition at line 51 of file DaphneApplication.cpp.

52{
53 ConfigObjectFactory obj_fac(this);
54
55 std::vector<const confmodel::DaqModule*> modules;
56
57 auto daphne_conf = get_configuration();
58
59 std::map<std::string, const confmodel::GeoId*> geo_ids;
60
61 for (auto d2d_conn : get_detector_connections()) {
62
63 // A Resource can be disabled and still its application can be enabled because the application can have multile resources, so we need to check which resources are enabled
64 if (d2d_conn->is_disabled(*session)) {
65 TLOG_DEBUG(7) << "Ignoring disabled DetectorToDaqConnection " << d2d_conn->UID();
66 continue;
67 }
68
69 TLOG_DEBUG(6) << "Processing DetectorToDaqConnection " << d2d_conn->UID();
70 // get the readout groups and the interfaces and streams therein; 1 reaout group corresponds to 1 data reader module
71
72 // Redundant? Schema forbids 0 connections
73 if (d2d_conn->contained_resources().empty()) {
74 throw(BadConf(ERS_HERE, "DetectorToDaqConnection does not contain senders or receivers"));
75 }
76
77 auto det_senders = d2d_conn->get_felix_senders();
78
79 // Loop over senders
80 for (const auto* felix_sender : det_senders) {
81
82 if ( felix_sender->is_disabled(*session) ) {
83 TLOG() << "Skipping disabled sender: " << felix_sender->UID();
84 continue;
85 }
86
87 auto ip = felix_sender -> get_control_host();
88
89 // from the felix sender we get the DetStream and then the GeoID
90
91 auto streams = felix_sender -> get_streams();
92
93 for ( const auto * det_s : streams ) {
94
95 if ( det_s->is_disabled(*session) ) {
96 TLOG() << "Skipping disabled DetStream: " << det_s->UID();
97 continue;
98 }
99
100 if (!geo_ids.contains(ip)) {
101 geo_ids[ip] = det_s->get_geo_id();
102 }
103
104 } // loop over DetStreams
105
106 } // loop over det_senders
107
108 } // loop over det2DAQ Connections
109
110 for ( const auto & [ip, geo] : geo_ids ) {
111
112 auto slot = geo->get_slot_id();
113
114 const auto raw_conf = daphne_conf->get_json().at(ip);
115
116 // setup channels
117 std::vector<const conffwk::ConfigObject*> channels;
118 const auto raw_channels = raw_conf["channel_analog_conf"];
119 const auto raw_ids = raw_channels["ids"].get<std::vector<uint8_t>>();
120 const auto raw_gains = raw_channels["gains"].get<std::vector<uint8_t>>();
121 const auto raw_offsets = raw_channels["offsets"].get<std::vector<uint16_t>>();
122 const auto raw_trims = raw_channels["trims"].get<std::vector<uint16_t>>();
123 for ( size_t i = 0; i < raw_ids.size(); ++i ) {
124 auto id = raw_ids[i];
125 conffwk::ConfigObject channel_obj = obj_fac.create("DaphneV2Channel", fmt::format("daphne-{}-channel-{}", slot, id));
126 channel_obj.set_by_val<uint8_t>("channel_id", id);
127 channel_obj.set_by_val<uint8_t>("gain", raw_gains[i]);
128 channel_obj.set_by_val<uint16_t>("offset", raw_offsets[i]);
129 channel_obj.set_by_val<uint16_t>("trim", raw_trims[i]);
130 auto ch = obj_fac.get_dal<appmodel::DaphneV2Channel>(channel_obj);
131 channels.push_back(& ch -> config_object());
132 }
133
134 //setup afes
135 std::vector<const conffwk::ConfigObject*> afes;
136 const auto raw_afes = raw_conf["afes"];
137 const auto raw_afe_ids = raw_afes["ids"].get<std::vector<size_t>>();
138 const auto raw_afe_attenuators = raw_afes["attenuators"].get<std::vector<uint16_t>>();
139 const auto raw_afe_biases = raw_afes["v_biases"].get<std::vector<uint16_t>>();
140 const auto raw_adcs = raw_afes["adcs"];
141 const auto raw_adc_res = raw_adcs["resolution"].get<std::vector<uint16_t>>();
142 const auto raw_adc_format = raw_adcs["output_format"].get<std::vector<uint16_t>>();
143 const auto raw_adc_SB = raw_adcs["SB_first"].get<std::vector<uint16_t>>();
144 const auto raw_lnas = raw_afes["lnas"];
145 const auto raw_lna_clamps = raw_lnas["clamp"].get<std::vector<uint8_t>>();
146 const auto raw_lna_gains = raw_lnas["gain"].get<std::vector<uint8_t>>();
147 const auto raw_lna_integrators = raw_lnas["integrator_disable"].get<std::vector<uint16_t>>();
148 const auto raw_pgas = raw_afes["pgas"];
149 const auto raw_pga_cuts = raw_pgas["lpf_cut_frequency"].get<std::vector<uint8_t>>();
150 const auto raw_pga_integrators = raw_pgas["integrator_disable"].get<std::vector<uint16_t>>();
151 const auto raw_pga_gains = raw_pgas["gain"].get<std::vector<uint16_t>>();
152 for ( size_t i = 0; i < raw_afe_ids.size(); ++i ) {
153 auto id = raw_afe_ids[i];
154
155 // create the adc
156 conffwk::ConfigObject adc_obj = obj_fac.create("DaphneV2ADC", fmt::format("daphne-{}-adc-{}", slot, id));
157 adc_obj.set_by_val<bool>("low_resolution", raw_adc_res[i] > 0);
158 adc_obj.set_by_val<bool>("output_offset_binary", raw_adc_format[i] > 0 );
159 adc_obj.set_by_val<bool>("MSB_first", raw_adc_SB[i] > 0);
160 auto adc = obj_fac.get_dal<appmodel::DaphneV2ADC>(adc_obj);
161
162 // create the lna
163 conffwk::ConfigObject lna_obj = obj_fac.create("DaphneV2LNA", fmt::format("daphne-{}-lna-{}", slot, id));
164 lna_obj.set_by_val<uint8_t>("clamp", raw_lna_clamps[i]);
165 lna_obj.set_by_val<uint8_t>("gain", raw_lna_gains[i]);
166 lna_obj.set_by_val<bool>("integrator_disable", raw_lna_integrators[i]>0);
167 auto lna = obj_fac.get_dal<appmodel::DaphneV2LNA>(lna_obj);
168
169 // create the pga
170 conffwk::ConfigObject pga_obj = obj_fac.create("DaphneV2PGA", fmt::format("daphne-{}-pga-{}", slot, id));
171 pga_obj.set_by_val<uint8_t>("lpf_cut_frequency", raw_pga_cuts[i]);
172 pga_obj.set_by_val<bool>("gain", raw_pga_gains[i]>0);
173 pga_obj.set_by_val<bool>("integrator_disable", raw_pga_integrators[i]>0);
174 auto pga = obj_fac.get_dal<appmodel::DaphneV2PGA>(pga_obj);
175
176 // finally create the afe
177 conffwk::ConfigObject afe_obj = obj_fac.create("DaphneV2AFE", fmt::format("daphne-{}-afe-{}", slot, id) );
178 afe_obj.set_by_val<uint8_t>("afe_id", id);
179 afe_obj.set_by_val<uint16_t>("attenuator", raw_afe_attenuators[i]);
180 afe_obj.set_by_val<uint16_t>("v_bias", raw_afe_biases[i]);
181 afe_obj.set_obj("adc", & adc -> config_object() );
182 afe_obj.set_obj("lna", & lna -> config_object() );
183 afe_obj.set_obj("pga", & pga -> config_object() );
184 auto afe = obj_fac.get_dal<appmodel::DaphneV2AFE>(afe_obj);
185 afes.push_back( & afe-> config_object());
186 }
187
188
189 conffwk::ConfigObject board_obj = obj_fac.create("DaphneV2BoardConf", fmt::format("daphne-{}-conf", slot));
190 board_obj.set_by_val<uint16_t>("bias_ctrl", raw_conf.at("bias_ctrl"));
191 board_obj.set_by_val<uint64_t>("self_trigger_threshold", raw_conf.at("self_trigger_threshold"));
192 board_obj.set_by_val<std::vector<uint8_t>>("full_stream_channels",
193 raw_conf.at("full_stream_channels").get<std::vector<uint8_t>>());
194 board_obj.set_by_val<uint64_t>("self_trigger_xcorr", raw_conf.at("self_trigger_xcorr"));
195 board_obj.set_by_val<uint32_t>("tp_conf", raw_conf.at("tp_conf"));
196 board_obj.set_by_val<uint64_t>("compensator", raw_conf.at("compensator"));
197 board_obj.set_by_val<uint64_t>("inverter", raw_conf.at("inverter"));
198 board_obj.set_by_val<uint16_t>("slot_id", geo->get_slot_id());
199 board_obj.set_by_val<uint16_t>("crate_id", geo->get_crate_id());
200 board_obj.set_by_val<uint16_t>("detector_id", geo->get_detector_id());
201 board_obj.set_objs("active_channels", channels);
202 board_obj.set_objs("active_afes", afes);
203 board_obj.set_obj("default_channel", & daphne_conf->get_default_v2_settings()->get_default_channel()->config_object());
204 board_obj.set_obj("default_afe", & daphne_conf->get_default_v2_settings()->get_default_afe()->config_object());
205 auto conf = obj_fac.get_dal<appmodel::DaphneV2BoardConf>(board_obj);
206
207 conffwk::ConfigObject module_obj = obj_fac.create( "DaphneV2ControllerModule", fmt::format("controller-{}", slot) );;
208 module_obj.set_by_val<std::string>("address", ip);
209 module_obj.set_obj("daphne_conf", & daphne_conf -> config_object() );
210 module_obj.set_obj("board_conf", & conf -> config_object() );
211
212 auto module = obj_fac.get_dal<appmodel::DaphneV2ControllerModule>(module_obj);
213 modules.push_back(module);
214
215 } // ips
216
217 return modules;
218}
#define ERS_HERE
virtual std::vector< const dunedaq::conffwk::DalObject * > get(const std::string &name, bool upcast_unregistered=true) const
Get values of relationships and results of some algorithms as a vector of dunedaq::conffwk::DalObject...
const dunedaq::appmodel::DaphneConf * get_configuration() const
Get "configuration" relationship value.
const ConfigObject & config_object() const
#define TLOG_DEBUG(lvl,...)
Definition Logging.hpp:112
#define TLOG(...)
Definition macro.hpp:22
PDS Frame with unphysical timestamp detected with ch

◆ generate_modules() [2/2]

std::vector< const dunedaq::confmodel::DaqModule * > dunedaq::appmodel::DaphneApplication::generate_modules ( const confmodel::Session * ) const
overridevirtual

Generate DaqModule dal objects for streams of the application on the fly

Implements dunedaq::appmodel::SmartDaqApplication.

◆ get() [1/4]

std::vector< const dunedaq::conffwk::DalObject * > dunedaq::appmodel::DaphneApplication::get ( const std::string & name,
bool upcast_unregistered = true ) const
virtual

Get values of relationships and results of some algorithms as a vector of dunedaq::conffwk::DalObject pointers.

Parameters are:

Parameters
namename of the relationship or algorithm
Returns
value of relationship or result of algorithm
Exceptions
std::exceptionif there is no relationship or algorithm with such name in this and base classes

Reimplemented from dunedaq::appmodel::SmartDaqApplication.

Definition at line 91 of file DaphneApplication.cpp.

92 {
93 std::vector<const dunedaq::conffwk::DalObject *> vec;
94
95 if (!get(name, vec, upcast_unregistered, true))
96 throw_get_ex(name, s_class_name, this);
97
98 return vec;
99 }
static const std::string & s_class_name
static void throw_get_ex(const std::string &what, const std::string &class_name, const DalObject *obj)
throw exception in generated get method (i.e.
Definition DalObject.cpp:82

◆ get() [2/4]

virtual std::vector< const dunedaq::conffwk::DalObject * > dunedaq::appmodel::DaphneApplication::get ( const std::string & name,
bool upcast_unregistered = true ) const
virtual

Get values of relationships and results of some algorithms as a vector of dunedaq::conffwk::DalObject pointers.

Parameters are:

Parameters
namename of the relationship or algorithm
Returns
value of relationship or result of algorithm
Exceptions
std::exceptionif there is no relationship or algorithm with such name in this and base classes

Reimplemented from dunedaq::appmodel::SmartDaqApplication.

◆ get() [3/4]

bool dunedaq::appmodel::DaphneApplication::get ( const std::string & name,
std::vector< const dunedaq::conffwk::DalObject * > & vec,
bool upcast_unregistered,
bool first_call ) const
protected

Definition at line 101 of file DaphneApplication.cpp.

102 {
103 if (first_call)
104 {
105 std::lock_guard scoped_lock(m_mutex);
106
107 check();
108 check_init();
109
110 if (get_rel_objects(name, upcast_unregistered, vec))
111 return true;
112 }
113
114 if (SmartDaqApplication::get(name, vec, upcast_unregistered, false)) return true;
115 if (ResourceSetDisableAND::get(name, vec, upcast_unregistered, false)) return true;
116
117 if (first_call)
118 return get_algo_objects(name, vec);
119
120 return false;
121 }
virtual std::vector< const dunedaq::conffwk::DalObject * > get(const std::string &name, bool upcast_unregistered=true) const
Get values of relationships and results of some algorithms as a vector of dunedaq::conffwk::DalObject...
bool get_rel_objects(const std::string &name, bool upcast_unregistered, std::vector< const DalObject * > &objs) const
Read relationship values as DAL objects using DAL factory.
Definition DalObject.cpp:8
std::mutex m_mutex
Used to protect changes of DAL object.
bool get_algo_objects(const std::string &name, std::vector< const DalObject * > &objs) const
Run algorithm and return result as DAL objects using DAL factory.
Definition DalObject.cpp:25
void check_init() const
Check and initialize object if necessary.

◆ get() [4/4]

bool dunedaq::appmodel::DaphneApplication::get ( const std::string & name,
std::vector< const dunedaq::conffwk::DalObject * > & vec,
bool upcast_unregistered,
bool first_call ) const
protected

◆ get_configuration() [1/2]

const dunedaq::appmodel::DaphneConf * dunedaq::appmodel::DaphneApplication::get_configuration ( ) const
inline

Get "configuration" relationship value.

Returns
the relationship value
Exceptions
dunedaq::conffwk::Generic,dunedaq::conffwk::DeletedObject

Definition at line 111 of file DaphneApplication.hpp.

112 {
113 std::lock_guard scoped_lock(m_mutex);
114 check();
115 check_init();
116 if (!m_configuration)
117 {
118 std::ostringstream text;
119 text << "relationship \"" << s_configuration << "\" of object " << this << " is not set";
120 throw dunedaq::conffwk::Generic(ERS_HERE, text.str().c_str());
121 }
122 return m_configuration;
123 }
Generic configuration exception.

◆ get_configuration() [2/2]

const dunedaq::appmodel::DaphneConf * dunedaq::appmodel::DaphneApplication::get_configuration ( ) const
inline

Get "configuration" relationship value.

Returns
the relationship value
Exceptions
dunedaq::conffwk::Generic,dunedaq::conffwk::DeletedObject

Definition at line 111 of file DaphneApplication.hpp.

112 {
113 std::lock_guard scoped_lock(m_mutex);
114 check();
115 check_init();
116 if (!m_configuration)
117 {
118 std::ostringstream text;
119 text << "relationship \"" << s_configuration << "\" of object " << this << " is not set";
120 throw dunedaq::conffwk::Generic(ERS_HERE, text.str().c_str());
121 }
122 return m_configuration;
123 }

◆ get_detector_connections() [1/2]

const std::vector< const dunedaq::appmodel::FelixDetectorToDaqConnection * > & dunedaq::appmodel::DaphneApplication::get_detector_connections ( ) const
inline

Get "detector_connections" relationship value. List of detector components controlled by this application.

Returns
the relationship value
Exceptions
dunedaq::conffwk::Generic,dunedaq::conffwk::DeletedObject

Definition at line 143 of file DaphneApplication.hpp.

144 {
145 std::lock_guard scoped_lock(m_mutex);
146 check();
147 check_init();
149 }
std::vector< const dunedaq::appmodel::FelixDetectorToDaqConnection * > m_detector_connections

◆ get_detector_connections() [2/2]

const std::vector< const dunedaq::appmodel::FelixDetectorToDaqConnection * > & dunedaq::appmodel::DaphneApplication::get_detector_connections ( ) const
inline

Get "detector_connections" relationship value. List of detector components controlled by this application.

Returns
the relationship value
Exceptions
dunedaq::conffwk::Generic,dunedaq::conffwk::DeletedObject

Definition at line 143 of file DaphneApplication.hpp.

144 {
145 std::lock_guard scoped_lock(m_mutex);
146 check();
147 check_init();
149 }

◆ init() [1/2]

void dunedaq::appmodel::DaphneApplication::init ( bool init_children)
protectedvirtual

Initialize object (method generated by genconffwk)

Parameters
init_childrenif true, initialize referenced objects

Reimplemented from dunedaq::appmodel::SmartDaqApplication.

Definition at line 71 of file DaphneApplication.cpp.

72 {
73 SmartDaqApplication::init(init_children);
74 ResourceSetDisableAND::init(init_children);
75
76 TLOG_DEBUG(5) << "read object " << this << " (class " << s_class_name << ')';
77
78 try {
81 }
82 catch (dunedaq::conffwk::Exception & ex) {
83 throw_init_ex(ex);
84 }
85 }
virtual void init(bool init_children)
void throw_init_ex(dunedaq::conffwk::Exception &ex)
throw object initialisation exception (i.e.
Definition DalObject.cpp:74
DalRegistry & p_registry
Configuration object.
ConfigObject p_obj
Config object used by given template object.
const T * _ref(ConfigObject &obj, const std::string &name, bool read_children)
Get signle value of object's relation and instantiate result with it (multi-thread safe).

◆ init() [2/2]

virtual void dunedaq::appmodel::DaphneApplication::init ( bool init_children)
protectedvirtual

Initialize object (method generated by genconffwk)

Parameters
init_childrenif true, initialize referenced objects

Reimplemented from dunedaq::appmodel::SmartDaqApplication.

◆ print() [1/2]

void dunedaq::appmodel::DaphneApplication::print ( unsigned int offset,
bool print_header,
std::ostream & s ) const
virtual

Print details of the DaphneApplication object.

Parameters are:

Parameters
offsetnumber of spaces to shift object right (useful to print nested objects)
print_headerif false, do not print object header (to print attributes of base classes)
soutput stream

Reimplemented from dunedaq::appmodel::SmartDaqApplication.

Definition at line 43 of file DaphneApplication.cpp.

44 {
45 check_init();
46
47 try {
48 const std::string str(indent+2, ' ');
49
50 if (print_header)
51 p_hdr(s, indent, s_class_name, "dunedaq::appmodel");
52
53
54 // print direct super-classes
55
58
59
60 // print direct relationships
61
64 }
65 catch (dunedaq::conffwk::Exception & ex) {
67 }
68 }
virtual void print(unsigned int offset, bool print_header, std::ostream &s) const
Print details of the SmartDaqApplication object.
void p_hdr(std::ostream &s, unsigned int indent, const std::string &cl, const char *nm=nullptr) const
print object headers
Definition DalObject.cpp:65
static void p_error(std::ostream &s, dunedaq::conffwk::Exception &ex)
print error text
Definition DalObject.cpp:59
virtual void print(unsigned int offset, bool print_header, std::ostream &s) const
Print details of the ResourceSetDisableAND object.
void p_sv_rel(std::ostream &s, const std::string &str, const std::string &name, const DalObject *obj)
print weak single-value relationship
void p_mv_rel(std::ostream &s, const std::string &str, const std::string &name, const T &objs) noexcept
print weak multi-value relationship

◆ print() [2/2]

virtual void dunedaq::appmodel::DaphneApplication::print ( unsigned int offset,
bool print_header,
std::ostream & s ) const
virtual

Print details of the DaphneApplication object.

Parameters are:

Parameters
offsetnumber of spaces to shift object right (useful to print nested objects)
print_headerif false, do not print object header (to print attributes of base classes)
soutput stream

Reimplemented from dunedaq::appmodel::SmartDaqApplication.

◆ set_configuration() [1/2]

void dunedaq::appmodel::DaphneApplication::set_configuration ( const dunedaq::appmodel::DaphneConf * value)

Set "configuration" relationship value.

Parameters
valuenew relationship value
Exceptions
dunedaq::conffwk::Generic,dunedaq::conffwk::DeletedObject

Definition at line 123 of file DaphneApplication.cpp.

124 {
126 }
void _set_object(const std::string &name, const T *value)
Helper method for generated set single-value relationship methods.

◆ set_configuration() [2/2]

void dunedaq::appmodel::DaphneApplication::set_configuration ( const dunedaq::appmodel::DaphneConf * value)

Set "configuration" relationship value.

Parameters
valuenew relationship value
Exceptions
dunedaq::conffwk::Generic,dunedaq::conffwk::DeletedObject

◆ set_detector_connections() [1/2]

void dunedaq::appmodel::DaphneApplication::set_detector_connections ( const std::vector< const dunedaq::appmodel::FelixDetectorToDaqConnection * > & value)

Set "detector_connections" relationship value. List of detector components controlled by this application.

Parameters
valuenew relationship value
Exceptions
dunedaq::conffwk::Generic,dunedaq::conffwk::DeletedObject

Definition at line 128 of file DaphneApplication.cpp.

129 {
131 }
void _set_objects(const std::string &name, const std::vector< const T * > &value)
Helper method for generated set multi-value relationship methods.

◆ set_detector_connections() [2/2]

void dunedaq::appmodel::DaphneApplication::set_detector_connections ( const std::vector< const dunedaq::appmodel::FelixDetectorToDaqConnection * > & value)

Set "detector_connections" relationship value. List of detector components controlled by this application.

Parameters
valuenew relationship value
Exceptions
dunedaq::conffwk::Generic,dunedaq::conffwk::DeletedObject

Friends And Related Symbol Documentation

◆ conffwk::Configuration

Definition at line 40 of file DaphneApplication.hpp.

◆ conffwk::DalFactory

conffwk::DalFactory
friend

Definition at line 42 of file DaphneApplication.hpp.

◆ conffwk::DalObject

Definition at line 41 of file DaphneApplication.hpp.

◆ conffwk::DalRegistry

Definition at line 43 of file DaphneApplication.hpp.

Member Data Documentation

◆ m_configuration

const dunedaq::appmodel::DaphneConf * dunedaq::appmodel::DaphneApplication::m_configuration
private

Definition at line 89 of file DaphneApplication.hpp.

◆ m_detector_connections

std::vector< const dunedaq::appmodel::FelixDetectorToDaqConnection * > dunedaq::appmodel::DaphneApplication::m_detector_connections
private

Definition at line 90 of file DaphneApplication.hpp.

◆ s_class_name

static const std::string & dunedaq::appmodel::DaphneApplication::s_class_name
static

The name of the configuration class.

Definition at line 55 of file DaphneApplication.hpp.

◆ s_configuration

static const std::string dunedaq::appmodel::DaphneApplication::s_configuration = "configuration"
inlinestatic

Definition at line 97 of file DaphneApplication.hpp.

◆ s_detector_connections

static const std::string dunedaq::appmodel::DaphneApplication::s_detector_connections = "detector_connections"
inlinestatic

Definition at line 98 of file DaphneApplication.hpp.


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