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 #define declareBackwardCompatibleMethdods(TL,TU) \
15  public: \
16  static std::string TL##Type() { return typeConfig(TU).name; } \
17  static unsigned int max_##TU##_Threshold_Number() { return typeConfig(TU).max; }
18 
19 #define registerTriggerType(TU, MAX) \
20  bool is##TU = TrigConf::L1DataDef::addConfig(TrigConf::L1DataDef::TU, #TU, MAX);
21 
22 #define registerInternalTriggerType(TU, MAX) \
23  bool is##TU = TrigConf::L1DataDef::addConfig(TrigConf::L1DataDef::TU, #TU, MAX, true);
24 
25 namespace TrigConf {
26 
27  class L1DataDef {
28  public:
29 
30  enum TriggerType {
31  EM=1, TAU, MUON, // 1-3
32  JET, FJET, FJ, JE, JF, JB, // 4-9
33  XE, TE, XS, // 10 - 12
34  MBTS, MBTSSI, LUCID, TRT, BCM, ZDC, NIM, // 13 - 19
35  ZB, TH, M, BCMCMB, CALREQ, BPTX, // 20 - 25
36  TOPO, // 26
37  ALFA, // 27
38  BGRP = 100, RNDM, PCLK, // 100 - 102
39  UNDEF = 199 // 199
40  };
41 
43  TriggerTypeConfig(TriggerType t=UNDEF, const std::string& n="UNDEF", unsigned int m=0, bool i=false) :
44  type(t), name(n), max(m), internal(i) {};
45  TriggerType type; // the trigger type EM, BGRP, NIM
46  std::string name; // the name "EM", "BGRP", "NIM"
47  unsigned int max; // the maximum number of thresholds
48  bool internal; // true for internal triggers
49  };
50 
52 
53  typedef std::map<TriggerType, TriggerTypeConfig> TypeConfigMap_t;
54  typedef std::map<std::string, TriggerType> STypeTypeMap_t;
55 
56  public:
57 
58  static void setMaxThresholdsFromL1Version(unsigned int l1version);
59 
60  static void printMaxThresholds();
61 
62  static TriggerType stringAsType(const std::string& type) { return g_sTypeType[type]; }
63 
64  static std::string& typeAsString(TriggerType tt) { return typeConfig(tt).name; }
65 
66  static const std::vector<TriggerType>& types() { return g_Types; }
67 
68  static const TypeConfigMap_t& typeConfigs() { return g_typeConfigs; }
69  static TriggerTypeConfig& typeConfig(TriggerType tt);
70 
71  static bool addConfig(TriggerType tt, const std::string& name, unsigned int max, bool internal=false) {
72  g_typeConfigs.insert(TypeConfigMap_t::value_type(tt, TriggerTypeConfig(tt, name, max, internal)));
73  g_sTypeType.insert(STypeTypeMap_t::value_type(name,tt));
74  g_Types.push_back(tt);
75  return true;
76  }
77 
78 
79  // for backward compatibility
93 
94  // internal Triggers
98 
99  // NIM Triggers
107 
108  // Zero bias Trigger
110 
111  public:
112  // NIM Triggers
113  static std::string bcmcmbType() { return "BCMCMB"; }
114  static std::string mbtssiType() { return "MBTSSI"; }
115  static std::string calreqType() { return "CALREQ"; }
116 
117  static unsigned int max_M_Threshold_Number() { return max_MUON_Threshold_Number(); }
118  // static unsigned int max_MBTSSI_Threshold_Number() { return Max_MBTSSI_Threshold_Number; }
119 
120  static void setOldJEP3Cabling();
121  static void setNewJEP3Cabling();
122 
123  // static unsigned int Max_MBTSSI_Threshold_Number;
124 
125  private:
126  // thread-safe because set once during initialize
127  static TypeConfigMap_t g_typeConfigs ATLAS_THREAD_SAFE; // maps TriggerType (e.g. L1DataDef::EM) to the TriggerTypeConfig object
128  static STypeTypeMap_t g_sTypeType ATLAS_THREAD_SAFE; // maps string to TriggerType (e.g. "EM" -> L1DataDef::EM)
129  static std::vector<TriggerType> g_Types ATLAS_THREAD_SAFE;
130  static unsigned int g_l1Version ATLAS_THREAD_SAFE;
131 
132  };
133 
134 }
135 
136 #endif
TrigConf::L1DataDef::FJ
@ FJ
Definition: L1DataDef.h:32
TrigConf::L1DataDef::setMaxThresholdsFromL1Version
static void setMaxThresholdsFromL1Version(unsigned int l1version)
Definition: L1DataDef.cxx:65
TrigConf::L1DataDef::declareBackwardCompatibleMethdods
declareBackwardCompatibleMethdods(lucid, LUCID)
TrigConf::L1DataDef::declareBackwardCompatibleMethdods
declareBackwardCompatibleMethdods(fj, FJ)
xAOD::muon
@ muon
Definition: TrackingPrimitives.h:195
TrigConf::L1DataDef::typeConfig
static TriggerTypeConfig & typeConfig(TriggerType tt)
Definition: L1DataDef.cxx:145
TrigConf::L1DataDef::declareBackwardCompatibleMethdods
declareBackwardCompatibleMethdods(jb, JB)
TrigConf::L1DataDef::ALFA
@ ALFA
Definition: L1DataDef.h:37
TrigConf::L1DataDef::declareBackwardCompatibleMethdods
declareBackwardCompatibleMethdods(bcm, BCM)
TrigConf::L1DataDef::ATLAS_THREAD_SAFE
static STypeTypeMap_t g_sTypeType ATLAS_THREAD_SAFE
Definition: L1DataDef.h:128
python.SystemOfUnits.m
int m
Definition: SystemOfUnits.py:91
max
#define max(a, b)
Definition: cfImp.cxx:41
TrigConf::L1DataDef::declareBackwardCompatibleMethdods
declareBackwardCompatibleMethdods(th, TH)
TrigConf::L1DataDef::declareBackwardCompatibleMethdods
declareBackwardCompatibleMethdods(bgrp, BGRP)
TrigConf::L1DataDef::LUCID
@ LUCID
Definition: L1DataDef.h:34
TrigConf::L1DataDef::PCLK
@ PCLK
Definition: L1DataDef.h:38
TrigConf::L1DataDef::TriggerTypeConfig::type
TriggerType type
Definition: L1DataDef.h:44
TrigConf::L1DataDef::JE
@ JE
Definition: L1DataDef.h:32
TrigConf::L1DataDef::BPTX
@ BPTX
Definition: L1DataDef.h:35
TrigConf::L1DataDef::MBTSSI
@ MBTSSI
Definition: L1DataDef.h:34
TrigConf::L1DataDef::max_M_Threshold_Number
static unsigned int max_M_Threshold_Number()
Definition: L1DataDef.h:117
TrigConf::L1DataDef::BCMCMB
@ BCMCMB
Definition: L1DataDef.h:35
TrigConf::L1DataDef::declareBackwardCompatibleMethdods
declareBackwardCompatibleMethdods(jet, JET)
TrigConf::L1DataDef::JF
@ JF
Definition: L1DataDef.h:32
TrigConf::L1DataDef::MUON
@ MUON
Definition: L1DataDef.h:31
TrigConf::L1DataDef::declareBackwardCompatibleMethdods
declareBackwardCompatibleMethdods(mbts, MBTS)
TrigConf::L1DataDef::declareBackwardCompatibleMethdods
declareBackwardCompatibleMethdods(fjet, FJET)
TrigConf::L1DataDef::ZDC
@ ZDC
Definition: L1DataDef.h:34
TrigConf::L1DataDef::setNewJEP3Cabling
static void setNewJEP3Cabling()
Definition: L1DataDef.cxx:166
TrigConf::L1DataDef::declareBackwardCompatibleMethdods
declareBackwardCompatibleMethdods(muon, MUON)
TrigConf::L1DataDef::declareBackwardCompatibleMethdods
declareBackwardCompatibleMethdods(pclk, PCLK)
TrigConf::L1DataDef::FJET
@ FJET
Definition: L1DataDef.h:32
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
TrigConf::L1DataDef::TH
@ TH
Definition: L1DataDef.h:35
TrigConf::L1DataDef::TriggerTypeConfig::name
std::string name
Definition: L1DataDef.h:46
TrigConf::L1DataDef::TriggerTypeConfig::TriggerTypeConfig
TriggerTypeConfig(TriggerType t=UNDEF, const std::string &n="UNDEF", unsigned int m=0, bool i=false)
Definition: L1DataDef.h:43
TrigConf::L1DataDef::mbtssiType
static std::string mbtssiType()
Definition: L1DataDef.h:114
TrigConf::L1DataDef::TOPO
@ TOPO
Definition: L1DataDef.h:36
TrigConf::L1DataDef::ATLAS_THREAD_SAFE
static std::vector< TriggerType > g_Types ATLAS_THREAD_SAFE
Definition: L1DataDef.h:129
TrigConf::L1DataDef::printMaxThresholds
static void printMaxThresholds()
Definition: L1DataDef.cxx:57
TrigConf::L1DataDef::typeConfigs
static const TypeConfigMap_t & typeConfigs()
Definition: L1DataDef.h:68
xAOD::Muon_v1
Class describing a Muon.
Definition: Muon_v1.h:38
RunTileMonitoring.mbts
mbts
Definition: RunTileMonitoring.py:133
TrigConf::L1DataDef::XE
@ XE
Definition: L1DataDef.h:33
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:62
TrigConf::L1DataDef::addConfig
static bool addConfig(TriggerType tt, const std::string &name, unsigned int max, bool internal=false)
Definition: L1DataDef.h:71
TrigConf::L1DataDef::TypeConfigMap_t
std::map< TriggerType, TriggerTypeConfig > TypeConfigMap_t
Definition: L1DataDef.h:53
TrigConf::L1DataDef
Definition: L1DataDef.h:27
jet
Definition: JetCalibTools_PlotJESFactors.cxx:23
python.TriggerHandler.th
th
Definition: TriggerHandler.py:296
TRT
Definition: HitInfo.h:33
TrigConf::L1DataDef::RNDM
@ RNDM
Definition: L1DataDef.h:38
lumiFormat.i
int i
Definition: lumiFormat.py:92
TrigConf::L1DataDef::declareBackwardCompatibleMethdods
declareBackwardCompatibleMethdods(je, JE)
TrigConf::L1DataDef::NIM
@ NIM
Definition: L1DataDef.h:34
TrigConf::L1DataDef::TriggerTypeConfig
Definition: L1DataDef.h:42
beamspotman.n
n
Definition: beamspotman.py:731
TrigConf::L1DataDef::declareBackwardCompatibleMethdods
declareBackwardCompatibleMethdods(rndm, RNDM)
TrigConf::L1DataDef::ATLAS_THREAD_SAFE
static TypeConfigMap_t g_typeConfigs ATLAS_THREAD_SAFE
Definition: L1DataDef.h:127
TrigConf::L1DataDef::declareBackwardCompatibleMethdods
declareBackwardCompatibleMethdods(nim, NIM)
TrigConf::L1DataDef::declareBackwardCompatibleMethdods
declareBackwardCompatibleMethdods(bptx, BPTX)
TrigConf::L1DataDef::MBTS
@ MBTS
Definition: L1DataDef.h:34
TrigConf::L1DataDef::declareBackwardCompatibleMethdods
declareBackwardCompatibleMethdods(te, TE)
TrigConf::L1DataDef::STypeTypeMap_t
std::map< std::string, TriggerType > STypeTypeMap_t
Definition: L1DataDef.h:54
TrigConf::name
Definition: HLTChainList.h:35
TrigConf::L1DataDef::declareBackwardCompatibleMethdods
declareBackwardCompatibleMethdods(zb, ZB)
TrigConf::L1DataDef::M
@ M
Definition: L1DataDef.h:35
TrigConf::L1DataDef::BCM
@ BCM
Definition: L1DataDef.h:34
TrigConf::L1DataDef::TE
@ TE
Definition: L1DataDef.h:33
TrigConf::L1DataDef::typeAsString
static std::string & typeAsString(TriggerType tt)
Definition: L1DataDef.h:64
TrigConf::L1DataDef::declareBackwardCompatibleMethdods
declareBackwardCompatibleMethdods(xe, XE)
TrigConf::L1DataDef::UNDEF
@ UNDEF
Definition: L1DataDef.h:39
TrigConf::L1DataDef::types
static const std::vector< TriggerType > & types()
Definition: L1DataDef.h:66
TrigConf::L1DataDef::JB
@ JB
Definition: L1DataDef.h:32
TrigConf::L1DataDef::JET
@ JET
Definition: L1DataDef.h:32
TrigConf::L1DataDef::CALREQ
@ CALREQ
Definition: L1DataDef.h:35
TrigConf::L1DataDef::bcmcmbType
static std::string bcmcmbType()
Definition: L1DataDef.h:113
TrigConf::L1DataDef::declareBackwardCompatibleMethdods
declareBackwardCompatibleMethdods(xs, XS)
TrigConf::L1DataDef::setOldJEP3Cabling
static void setOldJEP3Cabling()
Definition: L1DataDef.cxx:158
TrigConf::L1DataDef::TAU
@ TAU
Definition: L1DataDef.h:31
TrigConf::L1DataDef::InternalTriggerType
TriggerTypeConfig InternalTriggerType
Definition: L1DataDef.h:51
TrigConf::L1DataDef::TriggerTypeConfig::max
unsigned int max
Definition: L1DataDef.h:47
TrigConf::L1DataDef::TriggerType
TriggerType
Definition: L1DataDef.h:30
TrigConf::L1DataDef::declareBackwardCompatibleMethdods
declareBackwardCompatibleMethdods(zdc, ZDC)
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
TrigConf::L1DataDef::XS
@ XS
Definition: L1DataDef.h:33
ZDC
Definition: RpdSubtractCentroidTool.cxx:13
TrigConf::L1DataDef::declareBackwardCompatibleMethdods
declareBackwardCompatibleMethdods(em, EM)
TrigConf::L1DataDef::TRT
@ TRT
Definition: L1DataDef.h:34
TrigConf::L1DataDef::calreqType
static std::string calreqType()
Definition: L1DataDef.h:115
TrigConf::L1DataDef::ATLAS_THREAD_SAFE
static unsigned int g_l1Version ATLAS_THREAD_SAFE
Definition: L1DataDef.h:130
TrigConf::L1DataDef::ZB
@ ZB
Definition: L1DataDef.h:35
TrigConf::L1DataDef::declareBackwardCompatibleMethdods
declareBackwardCompatibleMethdods(trt, TRT)
checker_macros.h
Define macros for attributes used to control the static checker.
TrigConf::L1DataDef::declareBackwardCompatibleMethdods
declareBackwardCompatibleMethdods(tau, TAU)
TileDCSDataPlotter.tt
tt
Definition: TileDCSDataPlotter.py:874
TrigConf::L1DataDef::TriggerTypeConfig::internal
bool internal
Definition: L1DataDef.h:48
TrigConf::L1DataDef::BGRP
@ BGRP
Definition: L1DataDef.h:38
TrigConf::L1DataDef::declareBackwardCompatibleMethdods
declareBackwardCompatibleMethdods(jf, JF)
TrigConf::L1DataDef::EM
@ EM
Definition: L1DataDef.h:31