ATLAS Offline Software
L1DataDef.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef TrigConf_L1DataDef
6 #define TrigConf_L1DataDef
7 
8 #include <string>
9 #include <map>
10 #include <vector>
11 
13 
14 namespace TrigConf {
15 
16  class L1DataDef {
17  public:
18 
19  enum TriggerType {
20  EM=1, TAU, MUON, // 1-3
21  JET, FJET, FJ, JE, JF, JB, // 4-9
22  XE, TE, XS, // 10 - 12
23  MBTS, MBTSSI, LUCID, TRT, BCM, ZDC, NIM, // 13 - 19
24  ZB, TH, M, BCMCMB, CALREQ, BPTX, // 20 - 25
25  TOPO, // 26
26  ALFA, // 27
27  BGRP = 100, RNDM, PCLK, // 100 - 102
28  UNDEF = 199 // 199
29  };
30 
32  TriggerTypeConfig(TriggerType t=UNDEF, const std::string& n="UNDEF", unsigned int m=0, bool i=false) :
33  type(t), name(n), max(m), internal(i) {};
34  TriggerType type; // the trigger type EM, BGRP, NIM
35  std::string name; // the name "EM", "BGRP", "NIM"
36  unsigned int max; // the maximum number of thresholds
37  bool internal; // true for internal triggers
38  };
39 
41 
42  typedef std::map<TriggerType, TriggerTypeConfig> TypeConfigMap_t;
43  typedef std::map<std::string, TriggerType> STypeTypeMap_t;
44 
45  public:
46 
47  static void setMaxThresholdsFromL1Version(unsigned int l1version);
48 
49  static void printMaxThresholds();
50 
51  static TriggerType stringAsType(const std::string& type) { return g_sTypeType[type]; }
52 
53  static std::string& typeAsString(TriggerType tt) { return typeConfig(tt).name; }
54 
55  static const std::vector<TriggerType>& types() { return g_Types; }
56 
57  static const TypeConfigMap_t& typeConfigs() { return g_typeConfigs; }
58  static TriggerTypeConfig& typeConfig(TriggerType tt);
59 
60  static bool addConfig(TriggerType tt, const std::string& name, unsigned int max, bool internal=false) {
61  g_typeConfigs.insert(TypeConfigMap_t::value_type(tt, TriggerTypeConfig(tt, name, max, internal)));
62  g_sTypeType.insert(STypeTypeMap_t::value_type(name,tt));
63  g_Types.push_back(tt);
64  return true;
65  }
66 
67  static void setOldJEP3Cabling();
68  static void setNewJEP3Cabling();
69 
70  private:
71  // thread-safe because set once during initialize
72  inline static TypeConfigMap_t g_typeConfigs ATLAS_THREAD_SAFE; // maps TriggerType (e.g. L1DataDef::EM) to the TriggerTypeConfig object
73  inline static STypeTypeMap_t g_sTypeType ATLAS_THREAD_SAFE; // maps string to TriggerType (e.g. "EM" -> L1DataDef::EM)
74  inline static std::vector<TriggerType> g_Types ATLAS_THREAD_SAFE;
75  inline static unsigned int g_l1Version ATLAS_THREAD_SAFE {0};
76 
77  };
78 
79 }
80 
81 #endif
TrigConf::L1DataDef::FJ
@ FJ
Definition: L1DataDef.h:21
TrigConf::L1DataDef::setMaxThresholdsFromL1Version
static void setMaxThresholdsFromL1Version(unsigned int l1version)
Definition: L1DataDef.cxx:65
TrigConf::L1DataDef::typeConfig
static TriggerTypeConfig & typeConfig(TriggerType tt)
Definition: L1DataDef.cxx:140
TrigConf::L1DataDef::ALFA
@ ALFA
Definition: L1DataDef.h:26
TrigConf::L1DataDef::ATLAS_THREAD_SAFE
static STypeTypeMap_t g_sTypeType ATLAS_THREAD_SAFE
Definition: L1DataDef.h:73
TrigConf::L1DataDef::LUCID
@ LUCID
Definition: L1DataDef.h:23
TrigConf::L1DataDef::PCLK
@ PCLK
Definition: L1DataDef.h:27
TrigConf::L1DataDef::TriggerTypeConfig::type
TriggerType type
Definition: L1DataDef.h:33
TrigConf::L1DataDef::JE
@ JE
Definition: L1DataDef.h:21
TrigConf::L1DataDef::BPTX
@ BPTX
Definition: L1DataDef.h:24
max
constexpr double max()
Definition: ap_fixedTest.cxx:33
TrigConf::L1DataDef::MBTSSI
@ MBTSSI
Definition: L1DataDef.h:23
TrigConf::L1DataDef::BCMCMB
@ BCMCMB
Definition: L1DataDef.h:24
TrigConf::L1DataDef::JF
@ JF
Definition: L1DataDef.h:21
TrigConf::L1DataDef::MUON
@ MUON
Definition: L1DataDef.h:20
TrigConf::L1DataDef::ZDC
@ ZDC
Definition: L1DataDef.h:23
TrigConf::L1DataDef::setNewJEP3Cabling
static void setNewJEP3Cabling()
Definition: L1DataDef.cxx:160
TrigConf::L1DataDef::FJET
@ FJET
Definition: L1DataDef.h:21
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
TrigConf::L1DataDef::TH
@ TH
Definition: L1DataDef.h:24
TrigConf::L1DataDef::TriggerTypeConfig::name
std::string name
Definition: L1DataDef.h:35
TrigConf::L1DataDef::TriggerTypeConfig::TriggerTypeConfig
TriggerTypeConfig(TriggerType t=UNDEF, const std::string &n="UNDEF", unsigned int m=0, bool i=false)
Definition: L1DataDef.h:32
TrigConf::L1DataDef::TOPO
@ TOPO
Definition: L1DataDef.h:25
TrigConf::L1DataDef::ATLAS_THREAD_SAFE
static std::vector< TriggerType > g_Types ATLAS_THREAD_SAFE
Definition: L1DataDef.h:74
TrigConf::L1DataDef::printMaxThresholds
static void printMaxThresholds()
Definition: L1DataDef.cxx:57
TrigConf::L1DataDef::typeConfigs
static const TypeConfigMap_t & typeConfigs()
Definition: L1DataDef.h:57
python.CaloAddPedShiftConfig.type
type
Definition: CaloAddPedShiftConfig.py:42
TrigConf::L1DataDef::XE
@ XE
Definition: L1DataDef.h:22
TrigConf
Forward iterator to traverse the main components of the trigger configuration.
Definition: Config.h:22
TrigConf::L1DataDef::stringAsType
static TriggerType stringAsType(const std::string &type)
Definition: L1DataDef.h:51
TrigConf::L1DataDef::addConfig
static bool addConfig(TriggerType tt, const std::string &name, unsigned int max, bool internal=false)
Definition: L1DataDef.h:60
TrigConf::L1DataDef::TypeConfigMap_t
std::map< TriggerType, TriggerTypeConfig > TypeConfigMap_t
Definition: L1DataDef.h:42
TrigConf::L1DataDef
Definition: L1DataDef.h:16
TrigConf::L1DataDef::RNDM
@ RNDM
Definition: L1DataDef.h:27
lumiFormat.i
int i
Definition: lumiFormat.py:85
TrigConf::L1DataDef::NIM
@ NIM
Definition: L1DataDef.h:23
TrigConf::L1DataDef::TriggerTypeConfig
Definition: L1DataDef.h:31
beamspotman.n
n
Definition: beamspotman.py:729
TrigConf::L1DataDef::ATLAS_THREAD_SAFE
static TypeConfigMap_t g_typeConfigs ATLAS_THREAD_SAFE
Definition: L1DataDef.h:72
TrigConf::L1DataDef::MBTS
@ MBTS
Definition: L1DataDef.h:23
TrigConf::L1DataDef::STypeTypeMap_t
std::map< std::string, TriggerType > STypeTypeMap_t
Definition: L1DataDef.h:43
TrigConf::name
Definition: HLTChainList.h:35
TrigConf::L1DataDef::M
@ M
Definition: L1DataDef.h:24
TrigConf::L1DataDef::BCM
@ BCM
Definition: L1DataDef.h:23
TrigConf::L1DataDef::TE
@ TE
Definition: L1DataDef.h:22
TrigConf::L1DataDef::typeAsString
static std::string & typeAsString(TriggerType tt)
Definition: L1DataDef.h:53
TrigConf::L1DataDef::UNDEF
@ UNDEF
Definition: L1DataDef.h:28
TrigConf::L1DataDef::types
static const std::vector< TriggerType > & types()
Definition: L1DataDef.h:55
TrigConf::L1DataDef::JB
@ JB
Definition: L1DataDef.h:21
TrigConf::L1DataDef::JET
@ JET
Definition: L1DataDef.h:21
TrigConf::L1DataDef::CALREQ
@ CALREQ
Definition: L1DataDef.h:24
TrigConf::L1DataDef::setOldJEP3Cabling
static void setOldJEP3Cabling()
Definition: L1DataDef.cxx:152
TrigConf::L1DataDef::TAU
@ TAU
Definition: L1DataDef.h:20
TrigConf::L1DataDef::InternalTriggerType
TriggerTypeConfig InternalTriggerType
Definition: L1DataDef.h:40
TrigConf::L1DataDef::TriggerTypeConfig::max
unsigned int max
Definition: L1DataDef.h:36
TrigConf::L1DataDef::TriggerType
TriggerType
Definition: L1DataDef.h:19
TrigConf::L1DataDef::XS
@ XS
Definition: L1DataDef.h:22
TrigConf::L1DataDef::TRT
@ TRT
Definition: L1DataDef.h:23
TrigConf::L1DataDef::ZB
@ ZB
Definition: L1DataDef.h:24
checker_macros.h
Define macros for attributes used to control the static checker.
TileDCSDataPlotter.tt
tt
Definition: TileDCSDataPlotter.py:876
TrigConf::L1DataDef::TriggerTypeConfig::internal
bool internal
Definition: L1DataDef.h:37
TrigConf::L1DataDef::BGRP
@ BGRP
Definition: L1DataDef.h:27
python.SystemOfUnits.m
float m
Definition: SystemOfUnits.py:106
TrigConf::L1DataDef::EM
@ EM
Definition: L1DataDef.h:20