From 36800067ff0e83daa0d0c8c7e5056d0ddf8aa9d7 Mon Sep 17 00:00:00 2001
From: Ilnour Gabdrakhmanov <ilnur@jinr.ru>
Date: Fri, 14 Jul 2023 08:24:35 +0000
Subject: [PATCH] addition to the last commit

---
 base/raw/BmnTrigChannelConfig.h | 33 +++++++++++++++++
 base/raw/BmnTrigConfig.cxx      | 18 ++++++++++
 base/raw/BmnTrigConfig.h        | 64 +++++++++++++++++++++++++++++++++
 3 files changed, 115 insertions(+)
 create mode 100644 base/raw/BmnTrigChannelConfig.h
 create mode 100644 base/raw/BmnTrigConfig.cxx
 create mode 100644 base/raw/BmnTrigConfig.h

diff --git a/base/raw/BmnTrigChannelConfig.h b/base/raw/BmnTrigChannelConfig.h
new file mode 100644
index 000000000..3e3b52c32
--- /dev/null
+++ b/base/raw/BmnTrigChannelConfig.h
@@ -0,0 +1,33 @@
+/** 
+ * Class BmnTrigChannelConfig
+ * Trigger channel configuration (count reduction, time protection)
+ */
+
+#ifndef TRIGCHANNELCONFIG_H
+#define TRIGCHANNELCONFIG_H
+
+#include "TObject.h"
+
+struct BmnTrigChannelConfig : public TObject {
+    bool after_protect_en;
+    uint32_t after_protect_time;
+    bool before_protect_en;
+    uint32_t before_protect_time;
+    uint32_t delay;
+    bool reduction_en;
+    uint32_t reduction_factor;
+
+    void print() {
+        printf(" after_prot en %4u\n", after_protect_en);
+        printf(" after_prot  t %4u\n", after_protect_time);
+        printf("before_prot en %4u\n", before_protect_en);
+        printf("before_prot  t %4u\n", before_protect_time);
+        printf("      delay en %4u\n", delay);
+        printf("  reduction en %4u\n", reduction_en);
+        printf("reduct  factor %4u\n", reduction_factor);
+    }
+
+    ClassDef(BmnTrigChannelConfig, 1)
+};
+
+#endif /* TRIGCHANNELCONFIG_H */
diff --git a/base/raw/BmnTrigConfig.cxx b/base/raw/BmnTrigConfig.cxx
new file mode 100644
index 000000000..cf1ca7282
--- /dev/null
+++ b/base/raw/BmnTrigConfig.cxx
@@ -0,0 +1,18 @@
+#include "BmnTrigConfig.h"
+
+BmnTrigConfig::BmnTrigConfig() {
+}
+
+//BmnTrigConfig::BmnTrigConfig(BmnTrigConfig& orig) {
+//    SetFrom(orig);
+//}
+//
+//void BmnTrigConfig::SetFrom(BmnTrigConfig& orig) {
+//    calib_count = orig.GetCalibCount();
+//    calib_en = orig.GetCalibEn();
+//    match_window = orig.GetMatchWindow();
+//    trig_channel_config = orig.TrigChannelConfig();
+//}
+//
+//BmnTrigConfig::~BmnTrigConfig() {
+//}
diff --git a/base/raw/BmnTrigConfig.h b/base/raw/BmnTrigConfig.h
new file mode 100644
index 000000000..43fe23c60
--- /dev/null
+++ b/base/raw/BmnTrigConfig.h
@@ -0,0 +1,64 @@
+/** 
+ * Class BmnTrigConfig
+ * Trigger DAQ config
+ */
+
+#ifndef TRIGCONFIG_H
+#define TRIGCONFIG_H
+
+#include <map>
+#include <string>
+
+#include "TNamed.h"
+
+#include "BmnTrigChannelConfig.h"
+
+using std::map;
+using std::string;
+
+class BmnTrigConfig : public TNamed {
+public:
+    BmnTrigConfig();
+    //    BmnTrigConfig(BmnTrigConfig& orig);
+    //    virtual ~BmnTrigConfig();
+    //    
+    //    void SetFrom(BmnTrigConfig & info);
+
+    map<string, BmnTrigChannelConfig> & TrigChannelConfig() {
+        return trig_channel_config;
+    }
+
+    UInt_t GetMatchWindow() {
+        return match_window;
+    }
+
+    void SetMatchWindow(UInt_t v) {
+        match_window = v;
+    }
+
+    UInt_t GetCalibCount() {
+        return calib_count;
+    }
+
+    void SetCalibCount(UInt_t v) {
+        calib_count = v;
+    }
+
+    bool GetCalibEn() {
+        return calib_en;
+    }
+
+    void SetCalibEn(bool v) {
+        calib_en = v;
+    }
+
+private:
+    map<string, BmnTrigChannelConfig> trig_channel_config;
+    UInt_t match_window = 0;
+    UInt_t calib_count = 0;
+    bool calib_en = false;
+
+    ClassDef(BmnTrigConfig, 1)
+};
+
+#endif /* TRIGCONFIG_H */
-- 
GitLab