diff --git a/reco/detectors/sts/CMakeLists.txt b/reco/detectors/sts/CMakeLists.txt index 7b28844bb09c3232716bc95f5779809897a5f9b8..07203f6f8881eef4c6d4fee7e1742a97da414e3d 100644 --- a/reco/detectors/sts/CMakeLists.txt +++ b/reco/detectors/sts/CMakeLists.txt @@ -21,6 +21,7 @@ CbmStsRecoModule.cxx CbmStsTrackFinderIdeal.cxx unpack/CbmStsUnpackAlgo.cxx +unpack/CbmStsUnpackAlgoBase.cxx unpack/CbmStsUnpackAlgoLegacy.cxx unpack/CbmStsUnpackConfig.cxx unpack/CbmStsUnpackMonitor.cxx diff --git a/reco/detectors/sts/CbmRecoStsLinkDef.h b/reco/detectors/sts/CbmRecoStsLinkDef.h index 4ea941a18e7194fcb3e522a9a42f349a44b5b040..7e7281d5ad8d84fa51d517f3c49b322489642790 100644 --- a/reco/detectors/sts/CbmRecoStsLinkDef.h +++ b/reco/detectors/sts/CbmRecoStsLinkDef.h @@ -20,6 +20,7 @@ #pragma link C++ class CbmStsTrackFinderIdeal + ; #pragma link C++ class CbmStsUnpackAlgo + ; +#pragma link C++ class CbmStsUnpackAlgoBase + ; #pragma link C++ class CbmStsUnpackAlgoLegacy + ; #pragma link C++ class CbmStsUnpackConfig + ; #pragma link C++ class CbmStsUnpackMonitor + ; diff --git a/reco/detectors/sts/unpack/CbmStsUnpackAlgo.cxx b/reco/detectors/sts/unpack/CbmStsUnpackAlgo.cxx index e738045445779a8cee446e8c049e1dd0b0494cbf..f9992f794ad3cebcad198198b654af452e2b892b 100644 --- a/reco/detectors/sts/unpack/CbmStsUnpackAlgo.cxx +++ b/reco/detectors/sts/unpack/CbmStsUnpackAlgo.cxx @@ -13,7 +13,7 @@ #include <cstdint> #include <iomanip> -CbmStsUnpackAlgo::CbmStsUnpackAlgo() : CbmRecoUnpackAlgo("CbmStsUnpackAlgo") {} +CbmStsUnpackAlgo::CbmStsUnpackAlgo() : CbmStsUnpackAlgoBase("CbmStsUnpackAlgo") {} CbmStsUnpackAlgo::~CbmStsUnpackAlgo() {} diff --git a/reco/detectors/sts/unpack/CbmStsUnpackAlgo.h b/reco/detectors/sts/unpack/CbmStsUnpackAlgo.h index 9f5ffb1d27f9b13f231a5948d39e32bf67295f63..b59acc51392576084ca67cea889dba49a1054aea 100644 --- a/reco/detectors/sts/unpack/CbmStsUnpackAlgo.h +++ b/reco/detectors/sts/unpack/CbmStsUnpackAlgo.h @@ -21,23 +21,11 @@ #ifndef CbmStsUnpackAlgo_H #define CbmStsUnpackAlgo_H -#include "CbmErrorMessage.h" // REMARK see remark in CbmStsUnpackConfig #include "CbmMcbm2018StsPar.h" -#include "CbmRecoUnpackAlgo.tmpl" -#include "CbmStsDigi.h" -#include "CbmStsUnpackMonitor.h" +#include "CbmStsUnpackAlgoBase.h" -#include "Timeslice.hpp" // timeslice -#include <Rtypes.h> // for types -#include <RtypesCore.h> - -#include <cstddef> -#include <cstdint> -#include <memory> -#include <utility> - -class CbmStsUnpackAlgo : public CbmRecoUnpackAlgo<CbmStsDigi, CbmErrorMessage> { +class CbmStsUnpackAlgo : public CbmStsUnpackAlgoBase { public: /** @brief Create the Cbm Trd Unpack AlgoBase object */ CbmStsUnpackAlgo(); diff --git a/reco/detectors/sts/unpack/CbmStsUnpackAlgoBase.cxx b/reco/detectors/sts/unpack/CbmStsUnpackAlgoBase.cxx new file mode 100644 index 0000000000000000000000000000000000000000..a4af6daa95486c2cee81273db0019ea92aae3eaa --- /dev/null +++ b/reco/detectors/sts/unpack/CbmStsUnpackAlgoBase.cxx @@ -0,0 +1,12 @@ +/* Copyright (C) 2010 - 2021 Fair GmbH + SPDX-License-Identifier: GPL-3.0-only + Authors: Dominik Smith */ + +#include "CbmStsUnpackAlgoBase.h" + +CbmStsUnpackAlgoBase::CbmStsUnpackAlgoBase(std::string name) : CbmRecoUnpackAlgo(name) {} + +CbmStsUnpackAlgoBase::~CbmStsUnpackAlgoBase() {} + + +ClassImp(CbmStsUnpackAlgoBase) diff --git a/reco/detectors/sts/unpack/CbmStsUnpackAlgoBase.h b/reco/detectors/sts/unpack/CbmStsUnpackAlgoBase.h new file mode 100644 index 0000000000000000000000000000000000000000..32634cff69e7f94eb308d1c93a45783eb8f0895a --- /dev/null +++ b/reco/detectors/sts/unpack/CbmStsUnpackAlgoBase.h @@ -0,0 +1,70 @@ +/* Copyright (C) 2010 - 2021 Fair GmbH + SPDX-License-Identifier: GPL-3.0-only + Authors: Dominik Smith */ + +/** + * @file CbmStsUnpackAlgoBase.h + * @author Dominik Smith (d.smith@gsi.de) + * @brief Baseclass for the Sts unpacker algorithms + * @version 0.1 + * @date 2021-04-21 + * + * @copyright Copyright (c) 2021 + * + * This is the base class for the algorithmic part of the tsa data unpacking + * processes of the CbmSts. + * The actual translation from tsa to digi happens in the derived classes. + * + * +*/ + +#ifndef CbmStsUnpackAlgoBase_H +#define CbmStsUnpackAlgoBase_H + +#include "CbmErrorMessage.h" // REMARK see remark in CbmStsUnpackConfig +#include "CbmRecoUnpackAlgo.tmpl" +#include "CbmStsDigi.h" +#include "CbmStsUnpackMonitor.h" + +#include "Timeslice.hpp" // timeslice + +#include <FairTask.h> // for InitStatus + +#include <Rtypes.h> // for types +#include <RtypesCore.h> + +#include <cstddef> +#include <cstdint> +#include <memory> +#include <utility> + +class CbmStsUnpackAlgoBase : public CbmRecoUnpackAlgo<CbmStsDigi, CbmErrorMessage> { +public: + /** @brief Create the Cbm Sts Unpack AlgoBase object */ + CbmStsUnpackAlgoBase(std::string name); + + /** @brief Destroy the Cbm Sts Unpack Task object */ + virtual ~CbmStsUnpackAlgoBase(); + + /** @brief Copy constructor - not implemented **/ + CbmStsUnpackAlgoBase(const CbmStsUnpackAlgoBase&) = delete; + + /** @brief Assignment operator - not implemented **/ + CbmStsUnpackAlgoBase& operator=(const CbmStsUnpackAlgoBase&) = delete; + + // Setters + /** @brief Set a predefined monitor @param monitor predefined unpacking monitor */ + void SetMonitor(std::shared_ptr<CbmStsUnpackMonitor> monitor) { fMonitor = monitor; } + + +protected: + // Monitoring + /** @brief Potential (online) monitor for the unpacking process */ + std::shared_ptr<CbmStsUnpackMonitor> fMonitor = nullptr; + + +private: + ClassDef(CbmStsUnpackAlgoBase, 2) +}; + +#endif // CbmStsUnpackAlgoBase_H diff --git a/reco/detectors/sts/unpack/CbmStsUnpackAlgoLegacy.cxx b/reco/detectors/sts/unpack/CbmStsUnpackAlgoLegacy.cxx index cf90af171dc084793c901d02a728993993c60a31..0561a7295b8a35633fb5f182ce9a808c0949bd27 100644 --- a/reco/detectors/sts/unpack/CbmStsUnpackAlgoLegacy.cxx +++ b/reco/detectors/sts/unpack/CbmStsUnpackAlgoLegacy.cxx @@ -30,7 +30,7 @@ // ------------------------------------------------------------------------- CbmStsUnpackAlgoLegacy::CbmStsUnpackAlgoLegacy() - : CbmRecoUnpackAlgo("CbmStsUnpackAlgoLegacy") + : CbmStsUnpackAlgoBase("CbmStsUnpackAlgoLegacy") , /// From the class itself fbMonitorMode(false) diff --git a/reco/detectors/sts/unpack/CbmStsUnpackAlgoLegacy.h b/reco/detectors/sts/unpack/CbmStsUnpackAlgoLegacy.h index d097121527a90d6c185cbc7d2b780e7246ec0b59..34c1af708468d649bc34173ab8d3c0f539925029 100644 --- a/reco/detectors/sts/unpack/CbmStsUnpackAlgoLegacy.h +++ b/reco/detectors/sts/unpack/CbmStsUnpackAlgoLegacy.h @@ -9,10 +9,7 @@ #define CbmStsUnpackAlgoLegacy_H #include "CbmErrorMessage.h" // REMARK see remark in CbmStsUnpackConfig -#include "CbmRecoUnpackAlgo.tmpl" - -// Data -#include "CbmStsDigi.h" +#include "CbmStsUnpackAlgoBase.h" #include "StsXyterFinalHit.h" #include "StsXyterMessage.h" @@ -29,7 +26,7 @@ class CbmMcbm2018StsPar; class CbmStsUnpackMonitor; -class CbmStsUnpackAlgoLegacy : public CbmRecoUnpackAlgo<CbmStsDigi, CbmErrorMessage> { +class CbmStsUnpackAlgoLegacy : public CbmStsUnpackAlgoBase { public: CbmStsUnpackAlgoLegacy(); ~CbmStsUnpackAlgoLegacy();