00001 #ifndef PSANA_L3T_DDL_H 00002 #define PSANA_L3T_DDL_H 1 00003 00004 // *** Do not edit this file, it is auto-generated *** 00005 00006 #include <vector> 00007 #include <iosfwd> 00008 #include <cstring> 00009 #include "ndarray/ndarray.h" 00010 #include "pdsdata/xtc/TypeId.hh" 00011 namespace Psana { 00012 namespace L3T { 00013 00014 /** @class ConfigV1 00015 00016 00017 */ 00018 00019 00020 class ConfigV1 { 00021 public: 00022 enum { TypeId = Pds::TypeId::Id_L3TConfig /**< XTC type ID value (from Pds::TypeId class) */ }; 00023 enum { Version = 1 /**< XTC type version number */ }; 00024 virtual ~ConfigV1(); 00025 /** Length of the module identification string */ 00026 virtual uint32_t module_id_len() const = 0; 00027 /** Length of the description string */ 00028 virtual uint32_t desc_len() const = 0; 00029 /** The module identification string */ 00030 virtual const char* module_id() const = 0; 00031 /** The description string */ 00032 virtual const char* desc() const = 0; 00033 /** Method which returns the shape (dimensions) of the data returned by module_id() method. */ 00034 virtual std::vector<int> module_id_shape() const = 0; 00035 /** Method which returns the shape (dimensions) of the data returned by desc() method. */ 00036 virtual std::vector<int> desc_shape() const = 0; 00037 }; 00038 00039 /** @class DataV1 00040 00041 00042 */ 00043 00044 00045 class DataV1 { 00046 public: 00047 enum { TypeId = Pds::TypeId::Id_L3TData /**< XTC type ID value (from Pds::TypeId class) */ }; 00048 enum { Version = 1 /**< XTC type version number */ }; 00049 virtual ~DataV1(); 00050 /** Module trigger decision */ 00051 virtual uint32_t accept() const = 0; 00052 }; 00053 00054 /** @class DataV2 00055 00056 00057 */ 00058 00059 00060 class DataV2 { 00061 public: 00062 enum { TypeId = Pds::TypeId::Id_L3TData /**< XTC type ID value (from Pds::TypeId class) */ }; 00063 enum { Version = 2 /**< XTC type version number */ }; 00064 enum Result { 00065 Fail, 00066 Pass, 00067 None, 00068 }; 00069 enum Bias { 00070 Unbiased, 00071 Biased, 00072 }; 00073 virtual ~DataV2(); 00074 virtual uint32_t accept() const = 0; 00075 /** Returns L3T Decision : None = insufficient information/resources */ 00076 virtual L3T::DataV2::Result result() const = 0; 00077 /** Returns L3T Bias : Unbiased = recorded independent of decision */ 00078 virtual L3T::DataV2::Bias bias() const = 0; 00079 }; 00080 std::ostream& operator<<(std::ostream& str, L3T::DataV2::Result enval); 00081 std::ostream& operator<<(std::ostream& str, L3T::DataV2::Bias enval); 00082 } // namespace L3T 00083 } // namespace Psana 00084 #endif // PSANA_L3T_DDL_H