.. _program_listing_file_include_dx2_experiment.hpp: Program Listing for File experiment.hpp ======================================= |exhale_lsh| :ref:`Return to documentation for file ` (``include/dx2/experiment.hpp``) .. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS .. code-block:: cpp #pragma once #include #include #include #include #include #include #include #include #include using Eigen::Vector3d; using json = nlohmann::json; class Experiment { public: Experiment() = default; Experiment(const json &experiment_data); json to_json() const; Beam &beam(); const Beam &beam() const; const std::string &identifier() const; const Goniometer &goniometer() const; Scan &scan(); Detector &detector(); Crystal &crystal(); ImageSequence &imagesequence(); void set_crystal(Crystal crystal); void set_beam(Beam beam); void set_scan(Scan scan); void set_detector(Detector detector); void set_goniometer(Goniometer goniometer); void set_imagesequence(ImageSequence imagesequence); void set_identifier(std::string identifier); void generate_identifier(); protected: Beam _beam{}; Scan _scan{}; Goniometer _goniometer{}; Detector _detector{}; Crystal _crystal{}; ImageSequence _imagesequence{}; std::string _identifier{}; };