CMS 3D CMS Logo

TriggerMenuParser.h
Go to the documentation of this file.
1 #ifndef L1TGlobal_TriggerMenuParser_h
2 #define L1TGlobal_TriggerMenuParser_h
3 
24 // system include files
25 #include <string>
26 #include <vector>
27 
29 
36 
38 
40 
41 #include "tmEventSetup/esTriggerMenu.hh"
42 #include "tmEventSetup/esAlgorithm.hh"
43 #include "tmEventSetup/esCondition.hh"
44 #include "tmEventSetup/esObject.hh"
45 #include "tmEventSetup/esCut.hh"
46 #include "tmEventSetup/esScale.hh"
47 
48 // forward declarations
49 class GlobalCondition;
50 class GlobalAlgorithm;
51 
52 namespace l1t {
53 
54  typedef enum { COS, SIN } TrigFunc_t;
55 
56  // class declaration
58  public:
62 
64  virtual ~TriggerMenuParser();
65 
66  public:
68  inline const unsigned int gtNumberConditionChips() const { return m_numberConditionChips; }
69 
70  void setGtNumberConditionChips(const unsigned int&);
71 
73  inline const unsigned int gtPinsOnConditionChip() const { return m_pinsOnConditionChip; }
74 
75  void setGtPinsOnConditionChip(const unsigned int&);
76 
79  inline std::vector<int> gtOrderConditionChip() const { return m_orderConditionChip; }
80 
81  void setGtOrderConditionChip(const std::vector<int>&);
82 
84  inline const unsigned int gtNumberPhysTriggers() const { return m_numberPhysTriggers; }
85 
86  void setGtNumberPhysTriggers(const unsigned int&);
87 
88  public:
90  inline const std::vector<ConditionMap>& gtConditionMap() const { return m_conditionMap; }
91 
92  void setGtConditionMap(const std::vector<ConditionMap>&);
93 
95  inline const std::string& gtTriggerMenuInterface() const { return m_triggerMenuInterface; }
96 
98 
99  //
100  inline const std::string& gtTriggerMenuName() const { return m_triggerMenuName; }
101 
102  void setGtTriggerMenuName(const std::string&);
103 
104  //
105  inline const unsigned long gtTriggerMenuImplementation() const { return m_triggerMenuImplementation; }
106 
107  void setGtTriggerMenuImplementation(const unsigned long&);
108 
110  inline const std::string& gtScaleDbKey() const { return m_scaleDbKey; }
111 
113  inline const GlobalScales& gtScales() const { return m_gtScales; }
114 
115  void setGtScaleDbKey(const std::string&);
116 
118  inline const std::vector<std::vector<MuonTemplate> >& vecMuonTemplate() const { return m_vecMuonTemplate; }
119  void setVecMuonTemplate(const std::vector<std::vector<MuonTemplate> >&);
120 
121  //
122  inline const std::vector<std::vector<CaloTemplate> >& vecCaloTemplate() const { return m_vecCaloTemplate; }
123 
124  void setVecCaloTemplate(const std::vector<std::vector<CaloTemplate> >&);
125 
126  //
127  inline const std::vector<std::vector<EnergySumTemplate> >& vecEnergySumTemplate() const {
128  return m_vecEnergySumTemplate;
129  }
130 
131  void setVecEnergySumTemplate(const std::vector<std::vector<EnergySumTemplate> >&);
132 
133  //
134 
135  inline const std::vector<std::vector<ExternalTemplate> >& vecExternalTemplate() const {
136  return m_vecExternalTemplate;
137  }
138 
139  void setVecExternalTemplate(const std::vector<std::vector<ExternalTemplate> >&);
140 
141  //
142  inline const std::vector<std::vector<CorrelationTemplate> >& vecCorrelationTemplate() const {
144  }
145 
146  void setVecCorrelationTemplate(const std::vector<std::vector<CorrelationTemplate> >&);
147 
148  inline const std::vector<std::vector<CorrelationWithOverlapRemovalTemplate> >&
151  }
152 
154  const std::vector<std::vector<CorrelationWithOverlapRemovalTemplate> >&);
155 
156  // get / set the vectors containing the conditions for correlation templates
157  //
158  inline const std::vector<std::vector<MuonTemplate> >& corMuonTemplate() const { return m_corMuonTemplate; }
159 
160  void setCorMuonTemplate(const std::vector<std::vector<MuonTemplate> >&);
161 
162  //
163  inline const std::vector<std::vector<CaloTemplate> >& corCaloTemplate() const { return m_corCaloTemplate; }
164 
165  void setCorCaloTemplate(const std::vector<std::vector<CaloTemplate> >&);
166 
167  //
168  inline const std::vector<std::vector<EnergySumTemplate> >& corEnergySumTemplate() const {
169  return m_corEnergySumTemplate;
170  }
171 
172  void setCorEnergySumTemplate(const std::vector<std::vector<EnergySumTemplate> >&);
173 
175  inline const AlgorithmMap& gtAlgorithmMap() const { return m_algorithmMap; }
176 
177  void setGtAlgorithmMap(const AlgorithmMap&);
178 
180  inline const AlgorithmMap& gtAlgorithmAliasMap() const { return m_algorithmAliasMap; }
181 
183 
184  public:
185  void parseCondFormats(const L1TUtmTriggerMenu* utmMenu);
186 
187  std::map<std::string, unsigned int> getExternalSignals(const L1TUtmTriggerMenu* utmMenu);
188 
189  public:
192 
194 
196 
198 
200 
202 
203  //
204 
205  inline const int gtTriggerMenuUUID() const { return m_triggerMenuUUID; }
206 
207  void setGtTriggerMenuUUID(const int);
208 
209  inline const std::string& gtTriggerMenuDate() const { return m_triggerMenuDate; }
210 
211  void setGtTriggerMenuDate(const std::string&);
212 
213  inline const std::string& gtTriggerMenuAuthor() const { return m_triggerMenuAuthor; }
214 
215  void setGtTriggerMenuAuthor(const std::string&);
216 
218 
220 
222 
224 
225  private:
226  // methods for conditions and algorithms
227 
230  void clearMaps();
231 
234  bool insertConditionIntoMap(GlobalCondition& cond, const int chipNr);
235 
237  bool insertAlgorithmIntoMap(const GlobalAlgorithm& alg);
238 
239  template <typename T>
241  int l1tstr2int(const std::string data);
242 
244  /* bool parseScale(tmeventsetup::esScale scale); */
245  // bool parseScales( tmeventsetup::esScale scale);
246  bool parseScales(std::map<std::string, tmeventsetup::esScale> scaleMap);
247 
249  /* bool parseMuon(XERCES_CPP_NAMESPACE::DOMNode* node, */
250  /* const std::string& name, unsigned int chipNr = 0, */
251  /* const bool corrFlag = false); */
252  bool parseMuon(tmeventsetup::esCondition condMu, unsigned int chipNr = 0, const bool corrFlag = false);
253 
254  bool parseMuonCorr(const tmeventsetup::esObject* condMu, unsigned int chipNr = 0);
255 
257  /* bool parseCalo(XERCES_CPP_NAMESPACE::DOMNode* node, */
258  /* const std::string& name, unsigned int chipNr = 0, */
259  /* const bool corrFlag = false); */
260  bool parseCalo(tmeventsetup::esCondition condCalo, unsigned int chipNr = 0, const bool corrFlag = false);
261 
262  bool parseCaloCorr(const tmeventsetup::esObject* corrCalo, unsigned int chipNr = 0);
263 
265  /* bool parseEnergySum(XERCES_CPP_NAMESPACE::DOMNode* node, */
266  /* const std::string& name, unsigned int chipNr = 0, */
267  /* const bool corrFlag = false); */
268 
269  bool parseEnergySum(tmeventsetup::esCondition condEnergySums, unsigned int chipNr = 0, const bool corrFlag = false);
270 
271  bool parseEnergySumCorr(const tmeventsetup::esObject* corrESum, unsigned int chipNr = 0);
272 
273  bool parseExternal(tmeventsetup::esCondition condExt, unsigned int chipNr = 0);
274 
276  bool parseCorrelation(tmeventsetup::esCondition corrCond, unsigned int chipNr = 0);
277 
279  bool parseCorrelationWithOverlapRemoval(const tmeventsetup::esCondition& corrCond, unsigned int chipNr = 0);
280 
282  //bool parseAlgorithms(XERCES_CPP_NAMESPACE::XercesDOMParser* parser);
283  bool parseAlgorithm(tmeventsetup::esAlgorithm algorithm, unsigned int chipNr = 0);
284 
285  // Parse LUT for Cal Mu Eta
286  void parseCalMuEta_LUTS(std::map<std::string, tmeventsetup::esScale> scaleMap, std::string obj1, std::string obj2);
287 
288  // Parse LUT for Cal Mu Phi
289  void parseCalMuPhi_LUTS(std::map<std::string, tmeventsetup::esScale> scaleMap, std::string obj1, std::string obj2);
290 
291  // Parse LUT for Pt LUT in Mass calculation
292  void parsePt_LUTS(std::map<std::string, tmeventsetup::esScale> scaleMap,
293  std::string lutpfx,
294  std::string obj1,
295  unsigned int prec);
296 
297  // Parse LUT for Delta Eta and Cosh
298  void parseDeltaEta_Cosh_LUTS(std::map<std::string, tmeventsetup::esScale> scaleMap,
299  std::string obj1,
300  std::string obj2,
301  unsigned int prec1,
302  unsigned int prec2);
303 
304  // Parse LUT for Delta Eta and Cosh
305  void parseDeltaPhi_Cos_LUTS(const std::map<std::string, tmeventsetup::esScale>& scaleMap,
306  const std::string& obj1,
307  const std::string& obj2,
308  unsigned int prec1,
309  unsigned int prec2);
310 
311  // Parse LUT for Sin(Phi),Cos(Phi) in TwoBodyPt algorithm calculation
312  void parsePhi_Trig_LUTS(const std::map<std::string, tmeventsetup::esScale>& scaleMap,
313  const std::string& obj,
314  TrigFunc_t func,
315  unsigned int prec);
316 
317  private:
319 
322 
324  unsigned int m_pinsOnConditionChip;
325 
328  std::vector<int> m_orderConditionChip;
329 
331  unsigned int m_numberPhysTriggers;
332 
334  //unsigned int m_numberTechTriggers;
335 
336  private:
340 
344 
346 
347  private:
349  std::vector<ConditionMap> m_conditionMap;
350 
351  private:
356  unsigned long m_triggerMenuUUID;
357 
360 
363  std::vector<std::vector<MuonTemplate> > m_vecMuonTemplate;
364  std::vector<std::vector<CaloTemplate> > m_vecCaloTemplate;
365  std::vector<std::vector<EnergySumTemplate> > m_vecEnergySumTemplate;
366  std::vector<std::vector<ExternalTemplate> > m_vecExternalTemplate;
367 
368  std::vector<std::vector<CorrelationTemplate> > m_vecCorrelationTemplate;
369  std::vector<std::vector<CorrelationWithOverlapRemovalTemplate> > m_vecCorrelationWithOverlapRemovalTemplate;
370  std::vector<std::vector<MuonTemplate> > m_corMuonTemplate;
371  std::vector<std::vector<CaloTemplate> > m_corCaloTemplate;
372  std::vector<std::vector<EnergySumTemplate> > m_corEnergySumTemplate;
373 
376 
379 
380  // class containing the scales from the L1 Menu XML
382  };
383 
384 } // namespace l1t
385 #endif /*L1TGlobal_TriggerMenuParser_h*/
unsigned int m_numberPhysTriggers
number of physics trigger algorithms
void setGtTriggerMenuName(const std::string &)
const unsigned int gtPinsOnConditionChip() const
get / set the number of pins on the GTL condition chips
void setGtScaleDbKey(const std::string &)
const std::vector< std::vector< EnergySumTemplate > > & vecEnergySumTemplate() const
void parseCalMuEta_LUTS(std::map< std::string, tmeventsetup::esScale > scaleMap, std::string obj1, std::string obj2)
void parseCalMuPhi_LUTS(std::map< std::string, tmeventsetup::esScale > scaleMap, std::string obj1, std::string obj2)
void setGtOrderConditionChip(const std::vector< int > &)
const AlgorithmMap & gtAlgorithmAliasMap() const
get / set the algorithm map (by alias)
void parseDeltaPhi_Cos_LUTS(const std::map< std::string, tmeventsetup::esScale > &scaleMap, const std::string &obj1, const std::string &obj2, unsigned int prec1, unsigned int prec2)
unsigned int m_numberConditionChips
hardware limits
const std::vector< std::vector< CorrelationWithOverlapRemovalTemplate > > & vecCorrelationWithOverlapRemovalTemplate() const
std::vector< std::vector< CaloTemplate > > m_vecCaloTemplate
void setGtAlgorithmMap(const AlgorithmMap &)
const std::vector< std::vector< ExternalTemplate > > & vecExternalTemplate() const
void setVecCaloTemplate(const std::vector< std::vector< CaloTemplate > > &)
std::vector< std::vector< EnergySumTemplate > > m_corEnergySumTemplate
bool parseExternal(tmeventsetup::esCondition condExt, unsigned int chipNr=0)
std::vector< std::vector< CaloTemplate > > m_corCaloTemplate
virtual ~TriggerMenuParser()
destructor
delete x;
Definition: CaloConfig.h:22
std::map< std::string, unsigned int > getExternalSignals(const L1TUtmTriggerMenu *utmMenu)
const std::string & gtTriggerMenuDate() const
std::vector< std::vector< CorrelationWithOverlapRemovalTemplate > > m_vecCorrelationWithOverlapRemovalTemplate
AlgorithmMap m_algorithmMap
map containing the physics algorithms (by name)
const std::string & gtTriggerMenuInterfaceAuthor() const
void setVecEnergySumTemplate(const std::vector< std::vector< EnergySumTemplate > > &)
void setVecCorrelationTemplate(const std::vector< std::vector< CorrelationTemplate > > &)
std::string m_triggerMenuInterface
menu names
void setVecMuonTemplate(const std::vector< std::vector< MuonTemplate > > &)
void setGtAlgorithmAliasMap(const AlgorithmMap &)
void setGtPinsOnConditionChip(const unsigned int &)
void setGtAlgorithmImplementation(const std::string &)
const std::vector< ConditionMap > & gtConditionMap() const
get / set / build the condition maps
std::string m_scaleDbKey
menu associated scale key
void parseCondFormats(const L1TUtmTriggerMenu *utmMenu)
void parseDeltaEta_Cosh_LUTS(std::map< std::string, tmeventsetup::esScale > scaleMap, std::string obj1, std::string obj2, unsigned int prec1, unsigned int prec2)
std::string m_triggerMenuInterfaceAuthor
std::vector< ConditionMap > m_conditionMap
map containing the conditions (per condition chip) - transient
std::vector< std::vector< MuonTemplate > > m_corMuonTemplate
void setGtTriggerMenuInterface(const std::string &)
std::string m_triggerMenuDescription
std::vector< int > gtOrderConditionChip() const
const std::string & gtTriggerMenuName() const
const std::vector< std::vector< CaloTemplate > > & corCaloTemplate() const
void setGtTriggerMenuAuthor(const std::string &)
std::string m_triggerMenuInterfaceDescription
const std::string & gtTriggerMenuInterfaceDescription() const
const std::vector< std::vector< MuonTemplate > > & corMuonTemplate() const
void setGtTriggerMenuInterfaceDescription(const std::string &)
std::string m_triggerMenuInterfaceDate
number of technical triggers
const std::vector< std::vector< MuonTemplate > > & vecMuonTemplate() const
get / set the vectors containing the conditions
std::vector< std::vector< CorrelationTemplate > > m_vecCorrelationTemplate
bool insertConditionIntoMap(GlobalCondition &cond, const int chipNr)
const std::vector< std::vector< EnergySumTemplate > > & corEnergySumTemplate() const
void setGtTriggerMenuDate(const std::string &)
const std::string & gtTriggerMenuInterfaceDate() const
get / set the XML parser creation date, author, description for menu interface, menu ...
const std::vector< std::vector< CorrelationTemplate > > & vecCorrelationTemplate() const
bool parseScales(std::map< std::string, tmeventsetup::esScale > scaleMap)
parse scales
const unsigned int gtNumberConditionChips() const
get / set the number of condition chips in GTL
void setVecExternalTemplate(const std::vector< std::vector< ExternalTemplate > > &)
bool parseCaloCorr(const tmeventsetup::esObject *corrCalo, unsigned int chipNr=0)
bool parseEnergySum(tmeventsetup::esCondition condEnergySums, unsigned int chipNr=0, const bool corrFlag=false)
parse an "energy sum" condition
void setGtTriggerMenuDescription(const std::string &)
void setCorMuonTemplate(const std::vector< std::vector< MuonTemplate > > &)
unsigned int m_pinsOnConditionChip
number of pins on the GTL condition chips
void setCorEnergySumTemplate(const std::vector< std::vector< EnergySumTemplate > > &)
unsigned long m_triggerMenuUUID
const unsigned int gtNumberPhysTriggers() const
get / set the number of physics trigger algorithms
std::vector< std::vector< ExternalTemplate > > m_vecExternalTemplate
std::vector< int > m_orderConditionChip
const GlobalScales & gtScales() const
menu associated scales
bool parseMuon(tmeventsetup::esCondition condMu, unsigned int chipNr=0, const bool corrFlag=false)
parse a muon condition
const int gtTriggerMenuUUID() const
const AlgorithmMap & gtAlgorithmMap() const
get / set the algorithm map (by name)
void setGtNumberConditionChips(const unsigned int &)
bool parseEnergySumCorr(const tmeventsetup::esObject *corrESum, unsigned int chipNr=0)
bool parseAlgorithm(tmeventsetup::esAlgorithm algorithm, unsigned int chipNr=0)
parse all algorithms
int l1tstr2int(const std::string data)
void setGtTriggerMenuUUID(const int)
unsigned long m_triggerMenuImplementation
Definition: plugin.cc:23
char data[epos_bytes_allocation]
Definition: EPOS_Wrapper.h:79
bool parseCorrelationWithOverlapRemoval(const tmeventsetup::esCondition &corrCond, unsigned int chipNr=0)
parse a correlation condition with overlap removal
std::string m_algorithmImplementation
bool parseCalo(tmeventsetup::esCondition condCalo, unsigned int chipNr=0, const bool corrFlag=false)
parse a calorimeter condition
std::vector< std::vector< EnergySumTemplate > > m_vecEnergySumTemplate
bool parseCorrelation(tmeventsetup::esCondition corrCond, unsigned int chipNr=0)
parse a correlation condition
void setCorCaloTemplate(const std::vector< std::vector< CaloTemplate > > &)
void setVecCorrelationWithOverlapRemovalTemplate(const std::vector< std::vector< CorrelationWithOverlapRemovalTemplate > > &)
const std::string & gtAlgorithmImplementation() const
bool parseMuonCorr(const tmeventsetup::esObject *condMu, unsigned int chipNr=0)
void setGtTriggerMenuInterfaceDate(const std::string &)
AlgorithmMap m_algorithmAliasMap
map containing the physics algorithms (by alias)
void setGtTriggerMenuImplementation(const unsigned long &)
const std::vector< std::vector< CaloTemplate > > & vecCaloTemplate() const
const std::string & gtTriggerMenuInterface() const
get / set the trigger menu names
bool insertAlgorithmIntoMap(const GlobalAlgorithm &alg)
insert an algorithm into algorithm map
long double T
void setGtConditionMap(const std::vector< ConditionMap > &)
std::map< std::string, GlobalAlgorithm > AlgorithmMap
map containing the algorithms
const std::string & gtScaleDbKey() const
menu associated scale key
void parsePhi_Trig_LUTS(const std::map< std::string, tmeventsetup::esScale > &scaleMap, const std::string &obj, TrigFunc_t func, unsigned int prec)
const unsigned long gtTriggerMenuImplementation() const
void setGtTriggerMenuInterfaceAuthor(const std::string &)
void parsePt_LUTS(std::map< std::string, tmeventsetup::esScale > scaleMap, std::string lutpfx, std::string obj1, unsigned int prec)
const std::string & gtTriggerMenuAuthor() const
std::vector< std::vector< MuonTemplate > > m_vecMuonTemplate
void setGtNumberPhysTriggers(const unsigned int &)
const std::string & gtTriggerMenuDescription() const