Skip to content
Snippets Groups Projects
Select Git revision
  • 15c78e786e43f577ac410913ba7c3b148ad815d3
  • master default protected
  • nightly_master
  • online_mvd_readconf_cleanup protected
  • online_much_readconf_cleanup protected
  • jul25_patches
  • cleanup_rich_v25a
  • jul24_patches
  • nov23_patches
  • DC_2404
  • nighly_master
  • DC_Jan24
  • DC_Nov23
  • DC_Oct23
  • feb23_patches
  • L1Algo-dev9
  • dec21_patches protected
  • apr21_patches protected
  • dev_2025_46
  • dev_2025_45
  • dev_2025_44
  • dev_2025_43
  • dev_2025_42
  • dev_2025_41
  • dev_2025_40
  • dev_2025_39
  • dev_2025_38
  • dev_2025_37
  • dev_2025_36
  • dev_2025_35
  • dev_2025_34
  • dev_2025_33
  • dev_2025_32
  • dev_2025_31
  • dev_2025_30
  • RC_jul25
  • dev_2025_29
  • dev_2025_28
38 results

CbmModuleList.h

Blame
  • Eoin Clerkin's avatar
    Eoin Clerkin authored
    Decision to not use doxygen for licence headers. Removes doxygen formatting and file tag.
    35afe0ea
    History
    CbmModuleList.h 1.79 KiB
    /* Copyright (C) 2013-2020 GSI Helmholtzzentrum fuer Schwerionenforschung, Darmstadt
       SPDX-License-Identifier: GPL-3.0-only
       Authors: Volker Friese [committer], Florian Uhlig */
    
    /** @file CbmModuleList.h
     ** @author Volker Friese <v.friese@gsi.de>
     ** @date 13.06.2013
     **/
    
    
    #ifndef CBMMODULELIST_H
    #define CBMMODULELIST_H 1
    
    
    #include "CbmDefs.h"  // for ECbmModuleId
    
    #include <RtypesCore.h>  // for ROOT data types
    #include <TString.h>     // for TString
    
    #include <map>  // for map
    
    /** @class CbmModuleList
     ** @brief Manages module Ids and names
     ** @author V.Friese <v.friese@gsi.de>
     ** @version 1.0
     **
     ** CbmModuleList is a tool to assess module names from their identifier
     ** and vice versa through static methods.
     ** Modules can be (detector) systems or passive ones.
     **/
    class CbmModuleList {
    
    public:
      /**  Constructor   **/
      CbmModuleList() {};
    
    
      /** Destructor **/
      virtual ~CbmModuleList() {};
    
    
      /** Get module name from module Id
         ** @param moduleId  Unique module identifier (SystemId or kMagnet/kTarget/kPipe)
         ** @return Name of module
         **/
      static TString GetModuleName(ECbmModuleId moduleId);
    
    
      /** Get module name in capitals from module Id
         ** @param moduleId  Unique module identifier (SystemId or kMagnet/kTarget/kPipe)
         ** @return Name of module (in capitals)
         **/
      static TString GetModuleNameCaps(ECbmModuleId moduleId);
    
    
      /** Get module Id from module name
         ** @param moduleName Name of module (case insensitive)
         ** @return Unique module Id
         */
      static ECbmModuleId GetModuleId(const char* moduleName);
    
    
    private:
      /** Map of module identifier to module name **/
      static std::map<ECbmModuleId, TString> fModules;
    
      /** Initialisation of module map **/
      static std::map<ECbmModuleId, TString> DefineModules();
    };
    
    #endif /* CBMMODULELIST_H */