CMS 3D CMS Logo

List of all members | Public Member Functions | Private Member Functions | Private Attributes
l1t::TriggerMenuParser Class Reference

#include <TriggerMenuParser.h>

Public Member Functions

const std::vector< std::vector< CaloTemplate > > & corCaloTemplate () const
 
const std::vector< std::vector< EnergySumTemplate > > & corEnergySumTemplate () const
 
const std::vector< std::vector< MuonTemplate > > & corMuonTemplate () const
 
std::map< std::string, unsigned int > getExternalSignals (const L1TUtmTriggerMenu *utmMenu)
 
const AlgorithmMapgtAlgorithmAliasMap () const
 get / set the algorithm map (by alias) More...
 
const std::string & gtAlgorithmImplementation () const
 
const AlgorithmMapgtAlgorithmMap () const
 get / set the algorithm map (by name) More...
 
const std::vector< ConditionMap > & gtConditionMap () const
 get / set / build the condition maps More...
 
const unsigned int gtNumberConditionChips () const
 get / set the number of condition chips in GTL More...
 
const unsigned int gtNumberPhysTriggers () const
 get / set the number of physics trigger algorithms More...
 
std::vector< int > gtOrderConditionChip () const
 
const unsigned int gtPinsOnConditionChip () const
 get / set the number of pins on the GTL condition chips More...
 
const std::string & gtScaleDbKey () const
 menu associated scale key More...
 
const GlobalScalesgtScales () const
 menu associated scales More...
 
const std::string & gtTriggerMenuAuthor () const
 
const std::string & gtTriggerMenuDate () const
 
const std::string & gtTriggerMenuDescription () const
 
const unsigned long gtTriggerMenuImplementation () const
 
const std::string & gtTriggerMenuInterface () const
 get / set the trigger menu names More...
 
const std::string & gtTriggerMenuInterfaceAuthor () const
 
const std::string & gtTriggerMenuInterfaceDate () const
 get / set the XML parser creation date, author, description for menu interface, menu More...
 
const std::string & gtTriggerMenuInterfaceDescription () const
 
const std::string & gtTriggerMenuName () const
 
const int gtTriggerMenuUUID () const
 
void parseCondFormats (const L1TUtmTriggerMenu *utmMenu)
 
void setCorCaloTemplate (const std::vector< std::vector< CaloTemplate > > &)
 
void setCorEnergySumTemplate (const std::vector< std::vector< EnergySumTemplate > > &)
 
void setCorMuonTemplate (const std::vector< std::vector< MuonTemplate > > &)
 
void setGtAlgorithmAliasMap (const AlgorithmMap &)
 
void setGtAlgorithmImplementation (const std::string &)
 
void setGtAlgorithmMap (const AlgorithmMap &)
 
void setGtConditionMap (const std::vector< ConditionMap > &)
 
void setGtNumberConditionChips (const unsigned int &)
 
void setGtNumberPhysTriggers (const unsigned int &)
 
void setGtOrderConditionChip (const std::vector< int > &)
 
void setGtPinsOnConditionChip (const unsigned int &)
 
void setGtScaleDbKey (const std::string &)
 
void setGtTriggerMenuAuthor (const std::string &)
 
void setGtTriggerMenuDate (const std::string &)
 
void setGtTriggerMenuDescription (const std::string &)
 
void setGtTriggerMenuImplementation (const unsigned long &)
 
void setGtTriggerMenuInterface (const std::string &)
 
void setGtTriggerMenuInterfaceAuthor (const std::string &)
 
void setGtTriggerMenuInterfaceDate (const std::string &)
 
void setGtTriggerMenuInterfaceDescription (const std::string &)
 
void setGtTriggerMenuName (const std::string &)
 
void setGtTriggerMenuUUID (const int)
 
void setVecCaloTemplate (const std::vector< std::vector< CaloTemplate > > &)
 
void setVecCorrelationTemplate (const std::vector< std::vector< CorrelationTemplate > > &)
 
void setVecCorrelationWithOverlapRemovalTemplate (const std::vector< std::vector< CorrelationWithOverlapRemovalTemplate > > &)
 
void setVecEnergySumTemplate (const std::vector< std::vector< EnergySumTemplate > > &)
 
void setVecExternalTemplate (const std::vector< std::vector< ExternalTemplate > > &)
 
void setVecMuonTemplate (const std::vector< std::vector< MuonTemplate > > &)
 
 TriggerMenuParser ()
 
const std::vector< std::vector< CaloTemplate > > & vecCaloTemplate () const
 
const std::vector< std::vector< CorrelationTemplate > > & vecCorrelationTemplate () const
 
const std::vector< std::vector< CorrelationWithOverlapRemovalTemplate > > & vecCorrelationWithOverlapRemovalTemplate () const
 
const std::vector< std::vector< EnergySumTemplate > > & vecEnergySumTemplate () const
 
const std::vector< std::vector< ExternalTemplate > > & vecExternalTemplate () const
 
const std::vector< std::vector< MuonTemplate > > & vecMuonTemplate () const
 get / set the vectors containing the conditions More...
 
virtual ~TriggerMenuParser ()
 destructor More...
 

Private Member Functions

void clearMaps ()
 
bool insertAlgorithmIntoMap (const GlobalAlgorithm &alg)
 insert an algorithm into algorithm map More...
 
bool insertConditionIntoMap (GlobalCondition &cond, const int chipNr)
 
template<typename T >
std::string l1t2string (T)
 
int l1tstr2int (const std::string data)
 
bool parseAlgorithm (tmeventsetup::esAlgorithm algorithm, unsigned int chipNr=0)
 parse all algorithms More...
 
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)
 
bool parseCalo (tmeventsetup::esCondition condCalo, unsigned int chipNr=0, const bool corrFlag=false)
 parse a calorimeter condition More...
 
bool parseCaloCorr (const tmeventsetup::esObject *corrCalo, unsigned int chipNr=0)
 
bool parseCorrelation (tmeventsetup::esCondition corrCond, unsigned int chipNr=0)
 parse a correlation condition More...
 
bool parseCorrelationWithOverlapRemoval (const tmeventsetup::esCondition &corrCond, unsigned int chipNr=0)
 parse a correlation condition with overlap removal More...
 
void parseDeltaEta_Cosh_LUTS (std::map< std::string, tmeventsetup::esScale > scaleMap, std::string obj1, std::string obj2, unsigned int prec1, unsigned int prec2)
 
void parseDeltaPhi_Cos_LUTS (std::map< std::string, tmeventsetup::esScale > scaleMap, std::string obj1, std::string obj2, unsigned int prec1, unsigned int prec2)
 
bool parseEnergySum (tmeventsetup::esCondition condEnergySums, unsigned int chipNr=0, const bool corrFlag=false)
 parse an "energy sum" condition More...
 
bool parseEnergySumCorr (const tmeventsetup::esObject *corrESum, unsigned int chipNr=0)
 
bool parseExternal (tmeventsetup::esCondition condExt, unsigned int chipNr=0)
 
bool parseMuon (tmeventsetup::esCondition condMu, unsigned int chipNr=0, const bool corrFlag=false)
 parse a muon condition More...
 
bool parseMuonCorr (const tmeventsetup::esObject *condMu, unsigned int chipNr=0)
 
void parsePt_LUTS (std::map< std::string, tmeventsetup::esScale > scaleMap, std::string obj1, unsigned int prec)
 
bool parseScales (std::map< std::string, tmeventsetup::esScale > scaleMap)
 parse scales More...
 

Private Attributes

AlgorithmMap m_algorithmAliasMap
 map containing the physics algorithms (by alias) More...
 
std::string m_algorithmImplementation
 
AlgorithmMap m_algorithmMap
 map containing the physics algorithms (by name) More...
 
std::vector< ConditionMapm_conditionMap
 map containing the conditions (per condition chip) - transient More...
 
std::vector< std::vector< CaloTemplate > > m_corCaloTemplate
 
std::vector< std::vector< EnergySumTemplate > > m_corEnergySumTemplate
 
std::vector< std::vector< MuonTemplate > > m_corMuonTemplate
 
GlobalScales m_gtScales
 
unsigned int m_numberConditionChips
 hardware limits More...
 
unsigned int m_numberPhysTriggers
 number of physics trigger algorithms More...
 
std::vector< int > m_orderConditionChip
 
unsigned int m_pinsOnConditionChip
 number of pins on the GTL condition chips More...
 
std::string m_scaleDbKey
 menu associated scale key More...
 
std::string m_triggerMenuAuthor
 
std::string m_triggerMenuDate
 
std::string m_triggerMenuDescription
 
unsigned long m_triggerMenuImplementation
 
std::string m_triggerMenuInterface
 menu names More...
 
std::string m_triggerMenuInterfaceAuthor
 
std::string m_triggerMenuInterfaceDate
 number of technical triggers More...
 
std::string m_triggerMenuInterfaceDescription
 
std::string m_triggerMenuName
 
unsigned long m_triggerMenuUUID
 
std::vector< std::vector< CaloTemplate > > m_vecCaloTemplate
 
std::vector< std::vector< CorrelationTemplate > > m_vecCorrelationTemplate
 
std::vector< std::vector< CorrelationWithOverlapRemovalTemplate > > m_vecCorrelationWithOverlapRemovalTemplate
 
std::vector< std::vector< EnergySumTemplate > > m_vecEnergySumTemplate
 
std::vector< std::vector< ExternalTemplate > > m_vecExternalTemplate
 
std::vector< std::vector< MuonTemplate > > m_vecMuonTemplate
 

Detailed Description

Definition at line 55 of file TriggerMenuParser.h.

Constructor & Destructor Documentation

TriggerMenuParser::TriggerMenuParser ( )

constructor empty

Definition at line 51 of file TriggerMenuParser.cc.

51  :
52  m_triggerMenuInterface("NULL"),
54 
55 {
56 
57  // menu names, scale key initialized to NULL due to ORACLE treatment of strings
58 
59  // empty
60 
61 }
std::string m_triggerMenuInterface
menu names
std::string m_scaleDbKey
menu associated scale key
unsigned long m_triggerMenuImplementation
TriggerMenuParser::~TriggerMenuParser ( )
virtual

destructor

Definition at line 64 of file TriggerMenuParser.cc.

References clearMaps().

64  {
65 
66  clearMaps();
67 
68 }

Member Function Documentation

void TriggerMenuParser::clearMaps ( )
private

clearMaps - delete all conditions and algorithms in the maps and clear the maps.

Definition at line 491 of file TriggerMenuParser.cc.

References m_algorithmMap, and m_conditionMap.

Referenced by gtAlgorithmImplementation(), and ~TriggerMenuParser().

491  {
492 
493  // loop over condition maps (one map per condition chip)
494  // then loop over conditions in the map
495  for (std::vector<ConditionMap>::iterator itCondOnChip = m_conditionMap.begin(); itCondOnChip
496  != m_conditionMap.end(); itCondOnChip++) {
497 
498  // the conditions in the maps are deleted in L1uGtTriggerMenu, not here
499 
500  itCondOnChip->clear();
501 
502  }
503 
504  // the algorithms in the maps are deleted in L1uGtTriggerMenu, not here
505  m_algorithmMap.clear();
506 
507 }
AlgorithmMap m_algorithmMap
map containing the physics algorithms (by name)
std::vector< ConditionMap > m_conditionMap
map containing the conditions (per condition chip) - transient
const std::vector<std::vector<CaloTemplate> >& l1t::TriggerMenuParser::corCaloTemplate ( ) const
inline

Definition at line 201 of file TriggerMenuParser.h.

References m_corCaloTemplate, and setCorCaloTemplate().

Referenced by L1TGlobalProducer::produce().

201  {
202  return m_corCaloTemplate;
203  }
std::vector< std::vector< CaloTemplate > > m_corCaloTemplate
const std::vector<std::vector<EnergySumTemplate> >& l1t::TriggerMenuParser::corEnergySumTemplate ( ) const
inline

Definition at line 208 of file TriggerMenuParser.h.

References m_corEnergySumTemplate, and setCorEnergySumTemplate().

Referenced by L1TGlobalProducer::produce().

208  {
209 
210  return m_corEnergySumTemplate;
211  }
std::vector< std::vector< EnergySumTemplate > > m_corEnergySumTemplate
const std::vector<std::vector<MuonTemplate> >& l1t::TriggerMenuParser::corMuonTemplate ( ) const
inline

Definition at line 194 of file TriggerMenuParser.h.

References m_corMuonTemplate, and setCorMuonTemplate().

Referenced by L1TGlobalProducer::produce().

194  {
195  return m_corMuonTemplate;
196  }
std::vector< std::vector< MuonTemplate > > m_corMuonTemplate
std::map< std::string, unsigned int > TriggerMenuParser::getExternalSignals ( const L1TUtmTriggerMenu utmMenu)

Definition at line 206 of file TriggerMenuParser.cc.

References findQualityFiles::jj, dataset::name, and AlCaHLTBitMon_QueryRunRegistry::string.

Referenced by gtAlgorithmAliasMap(), L1TExtCondProducer::produce(), and L1TExtCondLegacyToStage2::produce().

206  {
207 
208  using namespace tmeventsetup;
209  const esTriggerMenu* menu = reinterpret_cast<const esTriggerMenu*> (utmMenu);
210  const std::map<std::string, esCondition>& condMap = menu->getConditionMap();
211 
212  std::map<std::string, unsigned int> extBitMap;
213 
214  //loop over the algorithms
215  for (std::map<std::string, esCondition>::const_iterator cit = condMap.begin();
216  cit != condMap.end(); cit++)
217  {
218  const esCondition& condition = cit->second;
219  if(condition.getType() == esConditionType::Externals ) {
220 
221  // Get object for External conditions
222  const std::vector<esObject>& objects = condition.getObjects();
223  for (size_t jj = 0; jj < objects.size(); jj++) {
224 
225  const esObject object = objects.at(jj);
226  if(object.getType() == esObjectType::EXT) {
227 
228  unsigned int channelID = object.getExternalChannelId();
229  std::string name = object.getExternalSignalName();
230 
231  if (extBitMap.count(name) == 0) extBitMap.insert(std::map<std::string, unsigned int>::value_type(name,channelID));
232  }
233  }
234 
235  }
236 
237  }
238 /*
239  for (std::map<std::string, unsigned int>::const_iterator cit = extBitMap.begin();
240  cit != extBitMap.end(); cit++) {
241  std::cout << " Ext Map: Name " << cit->first << " Bit " << cit->second << std::endl;
242  }
243 */
244  return extBitMap;
245 
246 }
const AlgorithmMap& l1t::TriggerMenuParser::gtAlgorithmAliasMap ( ) const
inline

get / set the algorithm map (by alias)

Definition at line 224 of file TriggerMenuParser.h.

References getExternalSignals(), m_algorithmAliasMap, parseCondFormats(), and setGtAlgorithmAliasMap().

Referenced by L1TGlobalProducer::produce().

224  {
225  return m_algorithmAliasMap;
226  }
AlgorithmMap m_algorithmAliasMap
map containing the physics algorithms (by alias)
const std::string& l1t::TriggerMenuParser::gtAlgorithmImplementation ( ) const
inline
const AlgorithmMap& l1t::TriggerMenuParser::gtAlgorithmMap ( ) const
inline

get / set the algorithm map (by name)

Definition at line 217 of file TriggerMenuParser.h.

References m_algorithmMap, and setGtAlgorithmMap().

Referenced by L1TGlobalProducer::produce().

217  {
218  return m_algorithmMap;
219  }
AlgorithmMap m_algorithmMap
map containing the physics algorithms (by name)
const std::vector<ConditionMap>& l1t::TriggerMenuParser::gtConditionMap ( ) const
inline

get / set / build the condition maps

Definition at line 103 of file TriggerMenuParser.h.

References m_conditionMap, and setGtConditionMap().

103  {
104  return m_conditionMap;
105  }
std::vector< ConditionMap > m_conditionMap
map containing the conditions (per condition chip) - transient
const unsigned int l1t::TriggerMenuParser::gtNumberConditionChips ( ) const
inline

get / set the number of condition chips in GTL

Definition at line 70 of file TriggerMenuParser.h.

References m_numberConditionChips, and setGtNumberConditionChips().

70  {
72  }
unsigned int m_numberConditionChips
hardware limits
const unsigned int l1t::TriggerMenuParser::gtNumberPhysTriggers ( ) const
inline

get / set the number of physics trigger algorithms

Definition at line 92 of file TriggerMenuParser.h.

References m_numberPhysTriggers, and setGtNumberPhysTriggers().

92  {
93  return m_numberPhysTriggers;
94  }
unsigned int m_numberPhysTriggers
number of physics trigger algorithms
std::vector<int> l1t::TriggerMenuParser::gtOrderConditionChip ( ) const
inline

get / set the correspondence "condition chip - GTL algorithm word" in the hardware

Definition at line 85 of file TriggerMenuParser.h.

References m_orderConditionChip, and setGtOrderConditionChip().

85  {
86  return m_orderConditionChip;
87  }
std::vector< int > m_orderConditionChip
const unsigned int l1t::TriggerMenuParser::gtPinsOnConditionChip ( ) const
inline

get / set the number of pins on the GTL condition chips

Definition at line 77 of file TriggerMenuParser.h.

References m_pinsOnConditionChip, and setGtPinsOnConditionChip().

77  {
78  return m_pinsOnConditionChip;
79  }
unsigned int m_pinsOnConditionChip
number of pins on the GTL condition chips
const std::string& l1t::TriggerMenuParser::gtScaleDbKey ( ) const
inline

menu associated scale key

Definition at line 131 of file TriggerMenuParser.h.

References m_scaleDbKey.

Referenced by L1TGlobalProducer::produce().

131  {
132  return m_scaleDbKey;
133  }
std::string m_scaleDbKey
menu associated scale key
const GlobalScales& l1t::TriggerMenuParser::gtScales ( ) const
inline

menu associated scales

Definition at line 136 of file TriggerMenuParser.h.

References m_gtScales, setGtScaleDbKey(), and AlCaHLTBitMon_QueryRunRegistry::string.

Referenced by L1TGlobalProducer::produce().

136  {
137  return m_gtScales;
138  }
const std::string& l1t::TriggerMenuParser::gtTriggerMenuAuthor ( ) const
inline

Definition at line 274 of file TriggerMenuParser.h.

References m_triggerMenuAuthor, setGtTriggerMenuAuthor(), and AlCaHLTBitMon_QueryRunRegistry::string.

274  {
275  return m_triggerMenuAuthor;
276  }
const std::string& l1t::TriggerMenuParser::gtTriggerMenuDate ( ) const
inline

Definition at line 268 of file TriggerMenuParser.h.

References m_triggerMenuDate, setGtTriggerMenuDate(), and AlCaHLTBitMon_QueryRunRegistry::string.

268  {
269  return m_triggerMenuDate;
270  }
const std::string& l1t::TriggerMenuParser::gtTriggerMenuDescription ( ) const
inline
const unsigned long l1t::TriggerMenuParser::gtTriggerMenuImplementation ( ) const
inline

Definition at line 124 of file TriggerMenuParser.h.

References m_triggerMenuImplementation, and setGtTriggerMenuImplementation().

Referenced by L1TGlobalProducer::produce().

124  {
126  }
unsigned long m_triggerMenuImplementation
const std::string& l1t::TriggerMenuParser::gtTriggerMenuInterface ( ) const
inline

get / set the trigger menu names

Definition at line 110 of file TriggerMenuParser.h.

References m_triggerMenuInterface, setGtTriggerMenuInterface(), and AlCaHLTBitMon_QueryRunRegistry::string.

Referenced by L1TGlobalProducer::produce().

110  {
111  return m_triggerMenuInterface;
112  }
std::string m_triggerMenuInterface
menu names
const std::string& l1t::TriggerMenuParser::gtTriggerMenuInterfaceAuthor ( ) const
inline
const std::string& l1t::TriggerMenuParser::gtTriggerMenuInterfaceDate ( ) const
inline

get / set the XML parser creation date, author, description for menu interface, menu

Definition at line 242 of file TriggerMenuParser.h.

References m_triggerMenuInterfaceDate, setGtTriggerMenuInterfaceDate(), and AlCaHLTBitMon_QueryRunRegistry::string.

242  {
244  }
std::string m_triggerMenuInterfaceDate
number of technical triggers
const std::string& l1t::TriggerMenuParser::gtTriggerMenuInterfaceDescription ( ) const
inline
const std::string& l1t::TriggerMenuParser::gtTriggerMenuName ( ) const
inline

Definition at line 117 of file TriggerMenuParser.h.

References m_triggerMenuName, setGtTriggerMenuName(), and AlCaHLTBitMon_QueryRunRegistry::string.

Referenced by L1TGlobalProducer::produce().

117  {
118  return m_triggerMenuName;
119  }
const int l1t::TriggerMenuParser::gtTriggerMenuUUID ( ) const
inline

Definition at line 262 of file TriggerMenuParser.h.

References m_triggerMenuUUID, and setGtTriggerMenuUUID().

Referenced by L1TGlobalProducer::produce().

262  {
263  return m_triggerMenuUUID;
264  }
unsigned long m_triggerMenuUUID
bool TriggerMenuParser::insertAlgorithmIntoMap ( const GlobalAlgorithm alg)
private

insert an algorithm into algorithm map

Definition at line 536 of file TriggerMenuParser.cc.

References GlobalAlgorithm::algoAlias(), GlobalAlgorithm::algoBitNumber(), GlobalAlgorithm::algoChipNumber(), GlobalAlgorithm::algoName(), GlobalAlgorithm::algoOutputPin(), LogTrace, m_algorithmAliasMap, m_algorithmMap, m_numberConditionChips, m_numberPhysTriggers, m_orderConditionChip, m_pinsOnConditionChip, and AlCaHLTBitMon_QueryRunRegistry::string.

Referenced by gtAlgorithmImplementation(), and parseAlgorithm().

536  {
537 
538  std::string algName = alg.algoName();
539  std::string algAlias = alg.algoAlias();
540  //LogTrace("TriggerMenuParser")
541  //<< " Trying to insert algorithm \"" << algName << "\" in the algorithm map." ;
542 
543  // no algorithm name has to appear twice!
544  if (m_algorithmMap.count(algName) != 0) {
545  LogTrace("TriggerMenuParser") << " Algorithm \"" << algName
546  << "\"already exists in the algorithm map- not inserted!" << std::endl;
547  return false;
548  }
549 
550  if (m_algorithmAliasMap.count(algAlias) != 0) {
551  LogTrace("TriggerMenuParser") << " Algorithm alias \"" << algAlias
552  << "\"already exists in the algorithm alias map- not inserted!" << std::endl;
553  return false;
554  }
555 
556  // bit number less than zero or greater than maximum number of algorithms
557  int bitNumber = alg.algoBitNumber();
558  if ((bitNumber < 0) || (bitNumber >= static_cast<int>(m_numberPhysTriggers))) {
559  LogTrace("TriggerMenuParser") << " Bit number " << bitNumber
560  << " outside allowed range [0, " << m_numberPhysTriggers
561  << ") - algorithm not inserted!" << std::endl;
562  return false;
563  }
564 
565  // maximum number of algorithms
566  if (m_algorithmMap.size() >= m_numberPhysTriggers) {
567  LogTrace("TriggerMenuParser") << " More than maximum allowed "
568  << m_numberPhysTriggers << " algorithms in the algorithm map - not inserted!"
569  << std::endl;
570  return false;
571  }
572 
573 
574  // chip number outside allowed values
575  int chipNr = alg.algoChipNumber(static_cast<int>(m_numberConditionChips),
576  static_cast<int>(m_pinsOnConditionChip), m_orderConditionChip);
577 
578  if ((chipNr < 0) || (chipNr > static_cast<int>(m_numberConditionChips))) {
579  LogTrace("TriggerMenuParser") << " Chip number " << chipNr
580  << " outside allowed range [0, " << m_numberConditionChips
581  << ") - algorithm not inserted!" << std::endl;
582  return false;
583  }
584 
585  // output pin outside allowed values
586  int outputPin = alg.algoOutputPin(static_cast<int>(m_numberConditionChips),
587  static_cast<int>(m_pinsOnConditionChip), m_orderConditionChip);
588 
589  if ((outputPin < 0) || (outputPin > static_cast<int>(m_pinsOnConditionChip))) {
590  LogTrace("TriggerMenuParser") << " Output pin " << outputPin
591  << " outside allowed range [0, " << m_pinsOnConditionChip
592  << "] - algorithm not inserted!" << std::endl;
593  return false;
594  }
595 
596  // no two algorithms on the same chip can have the same output pin
597  for (CItAlgo itAlgo = m_algorithmMap.begin(); itAlgo != m_algorithmMap.end(); itAlgo++) {
598 
599  int iPin = (itAlgo->second).algoOutputPin( static_cast<int>(m_numberConditionChips),
600  static_cast<int>(m_pinsOnConditionChip), m_orderConditionChip);
601  std::string iName = itAlgo->first;
602  int iChip = (itAlgo->second).algoChipNumber(static_cast<int>(m_numberConditionChips),
603  static_cast<int>(m_pinsOnConditionChip), m_orderConditionChip);
604 
605  if ( (outputPin == iPin) && (chipNr == iChip)) {
606  LogTrace("TriggerMenuParser") << " Output pin " << outputPin
607  << " is the same as for algorithm " << iName
608  << "\n from the same chip number " << chipNr << " - algorithm not inserted!"
609  << std::endl;
610  return false;
611  }
612 
613  }
614 
615  // insert algorithm
616  m_algorithmMap[algName] = alg;
617  m_algorithmAliasMap[algAlias] = alg;
618 
619  //LogTrace("TriggerMenuParser")
620  //<< " OK - algorithm inserted!"
621  //<< std::endl;
622 
623  return true;
624 
625 }
unsigned int m_numberPhysTriggers
number of physics trigger algorithms
unsigned int m_numberConditionChips
hardware limits
AlgorithmMap m_algorithmMap
map containing the physics algorithms (by name)
AlgorithmMap::const_iterator CItAlgo
iterators through map containing the algorithms
int algoBitNumber() const
get / set algorithm bit number
const int algoOutputPin(const int numberConditionChips, const int pinsOnConditionChip, const std::vector< int > &orderConditionChip) const
get the output pin on the condition chip for the algorithm
#define LogTrace(id)
const std::string algoName() const
get / set algorithm name
unsigned int m_pinsOnConditionChip
number of pins on the GTL condition chips
std::vector< int > m_orderConditionChip
std::string const & algoAlias() const
get / set algorithm alias
AlgorithmMap m_algorithmAliasMap
map containing the physics algorithms (by alias)
const int algoChipNumber() const
get / set algorithm bit number
bool TriggerMenuParser::insertConditionIntoMap ( GlobalCondition cond,
const int  chipNr 
)
private

insertConditionIntoMap - safe insert of condition into condition map. if the condition name already exists, do not insert it and return false

Definition at line 511 of file TriggerMenuParser.cc.

References GlobalCondition::condName(), KineDebug3::count(), LogTrace, m_conditionMap, and AlCaHLTBitMon_QueryRunRegistry::string.

Referenced by gtAlgorithmImplementation(), parseCalo(), parseCorrelation(), parseCorrelationWithOverlapRemoval(), parseEnergySum(), parseExternal(), and parseMuon().

511  {
512 
513  std::string cName = cond.condName();
514  LogTrace("TriggerMenuParser")
515  << " Trying to insert condition \"" << cName << "\" in the condition map." << std::endl;
516 
517  // no condition name has to appear twice!
518  if ((m_conditionMap[chipNr]).count(cName) != 0) {
519  LogTrace("TriggerMenuParser")
520  << " Condition " << cName
521  << " already exists - not inserted!" << std::endl;
522  return false;
523  }
524 
525  (m_conditionMap[chipNr])[cName] = &cond;
526  LogTrace("TriggerMenuParser")
527  << " OK - condition inserted!"
528  << std::endl;
529 
530 
531  return true;
532 
533 }
std::vector< ConditionMap > m_conditionMap
map containing the conditions (per condition chip) - transient
#define LogTrace(id)
const std::string & condName() const
get / set condition name
template<typename T >
std::string TriggerMenuParser::l1t2string ( T  data)
private

Definition at line 628 of file TriggerMenuParser.cc.

References data.

Referenced by gtAlgorithmImplementation(), parseCalo(), parseCaloCorr(), parseCorrelation(), parseCorrelationWithOverlapRemoval(), parseEnergySum(), parseEnergySumCorr(), parseExternal(), parseMuon(), and parseMuonCorr().

628  {
629  std::stringstream ss;
630  ss << data;
631  return ss.str();
632 }
char data[epos_bytes_allocation]
Definition: EPOS_Wrapper.h:82
int TriggerMenuParser::l1tstr2int ( const std::string  data)
private

Definition at line 633 of file TriggerMenuParser.cc.

References data, and relativeConstraints::value.

Referenced by gtAlgorithmImplementation(), parseCalo(), parseCaloCorr(), parseMuon(), and parseMuonCorr().

633  {
634  std::stringstream ss;
635  ss << data;
636  int value;
637  ss >> value;
638  return value;
639 }
char data[epos_bytes_allocation]
Definition: EPOS_Wrapper.h:82
bool TriggerMenuParser::parseAlgorithm ( tmeventsetup::esAlgorithm  algorithm,
unsigned int  chipNr = 0 
)
private

parse all algorithms

workAlgorithm - parse the algorithm and insert it into algorithm map.

Parameters
nodeThe corresponding node to the algorithm.
nameThe name of the algorithm.
chipNrThe number of the chip the conditions for that algorithm are located on.
Returns
"true" on success, "false" if an error occurred.

Definition at line 3306 of file TriggerMenuParser.cc.

References insertAlgorithmIntoMap(), edm::isDebugEnabled(), LogDebug, LogTrace, GlobalAlgorithm::print(), GlobalAlgorithm::setAlgoAlias(), GlobalAlgorithm::setAlgoChipNumber(), and AlCaHLTBitMon_QueryRunRegistry::string.

Referenced by gtAlgorithmImplementation(), and parseCondFormats().

3307  {
3308 
3309 
3310  using namespace tmeventsetup;
3311  //using namespace Algorithm;
3312 
3313 
3314  // get alias
3315  std::string algAlias = algorithm.getName();
3316  std::string algName = algorithm.getName();
3317 
3318  if (algAlias == "") {
3319  algAlias = algName;
3320  LogDebug("TriggerMenuParser")
3321  << "\n No alias defined for algorithm. Alias set to algorithm name."
3322  << "\n Algorithm name: " << algName << "\n Algorithm alias: " << algAlias
3323  << std::endl;
3324  } else {
3325  //LogDebug("TriggerMenuParser")
3326  LogDebug("TriggerMenuParser") << "\n Alias defined for algorithm."
3327  << "\n Algorithm name: " << algName << "\n Algorithm alias: " << algAlias
3328  << std::endl;
3329  }
3330 
3331  // get the logical expression
3332  std::string logExpression = algorithm.getExpressionInCondition();
3333 
3334  LogDebug("TriggerMenuParser")
3335  << " Logical expression: " << logExpression
3336  << " Chip number: " << chipNr
3337  << std::endl;
3338 
3339  // determine output pin
3340  int outputPin = algorithm.getIndex();
3341 
3342 
3343  //LogTrace("TriggerMenuParser")
3344  LogDebug("TriggerMenuParser") << " Output pin: " << outputPin
3345  << std::endl;
3346 
3347 
3348  // compute the bit number from chip number, output pin and order of the chips
3349  // pin numbering start with 1, bit numbers with 0
3350  int bitNumber = outputPin;// + (m_orderConditionChip[chipNr] -1)*m_pinsOnConditionChip -1;
3351 
3352  //LogTrace("TriggerMenuParser")
3353  LogDebug("TriggerMenuParser") << " Bit number: " << bitNumber
3354  << std::endl;
3355 
3356  // create a new algorithm and insert it into algorithm map
3357  GlobalAlgorithm alg(algName, logExpression, bitNumber);
3358  alg.setAlgoChipNumber(static_cast<int>(chipNr));
3359  alg.setAlgoAlias(algAlias);
3360 
3361  if (edm::isDebugEnabled() ) {
3362 
3363  std::ostringstream myCoutStream;
3364  alg.print(myCoutStream);
3365  LogTrace("TriggerMenuParser") << myCoutStream.str() << "\n" << std::endl;
3366 
3367  }
3368 
3369  // insert algorithm into the map
3370  if ( !insertAlgorithmIntoMap(alg)) {
3371  return false;
3372  }
3373 
3374  return true;
3375 
3376 }
#define LogDebug(id)
bool isDebugEnabled()
#define LogTrace(id)
bool insertAlgorithmIntoMap(const GlobalAlgorithm &alg)
insert an algorithm into algorithm map
void TriggerMenuParser::parseCalMuEta_LUTS ( std::map< std::string, tmeventsetup::esScale >  scaleMap,
std::string  obj1,
std::string  obj2 
)
private

Definition at line 862 of file TriggerMenuParser.cc.

References m_gtScales, l1t::GlobalScales::setLUT_CalMuEta(), and AlCaHLTBitMon_QueryRunRegistry::string.

Referenced by gtAlgorithmImplementation(), and parseScales().

863 {
864 
865  using namespace tmeventsetup;
866 
867  // First Delta Eta for this set
868  std::string scLabel1 = obj1;
869  scLabel1 += "-ETA";
870  std::string scLabel2 = obj2;
871  scLabel2 += "-ETA";
872 
873  //This LUT does not exist in L1 Menu file, don't fill it
874  if( scaleMap.find(scLabel1) == scaleMap.end() || scaleMap.find(scLabel2) == scaleMap.end()) return;
875 
876  const esScale* scale1 = &scaleMap.find(scLabel1)->second;
877  const esScale* scale2 = &scaleMap.find(scLabel2)->second;
878 
879  std::vector<long long> lut_cal_2_mu_eta;
880  getCaloMuonEtaConversionLut(lut_cal_2_mu_eta, scale1, scale2);
881 
882  std::string lutName = obj1;
883  lutName += "-";
884  lutName += obj2;
885  m_gtScales.setLUT_CalMuEta(lutName,lut_cal_2_mu_eta);
886 
887 
888 }
virtual void setLUT_CalMuEta(std::string lutName, std::vector< long long > lut)
Definition: GlobalScales.cc:39
void TriggerMenuParser::parseCalMuPhi_LUTS ( std::map< std::string, tmeventsetup::esScale >  scaleMap,
std::string  obj1,
std::string  obj2 
)
private

Definition at line 890 of file TriggerMenuParser.cc.

References m_gtScales, l1t::GlobalScales::setLUT_CalMuPhi(), and AlCaHLTBitMon_QueryRunRegistry::string.

Referenced by gtAlgorithmImplementation(), and parseScales().

891 {
892 
893  using namespace tmeventsetup;
894 
895  // First Delta Eta for this set
896  std::string scLabel1 = obj1;
897  scLabel1 += "-PHI";
898  std::string scLabel2 = obj2;
899  scLabel2 += "-PHI";
900 
901  //This LUT does not exist in L1 Menu file, don't fill it
902  if( scaleMap.find(scLabel1) == scaleMap.end() || scaleMap.find(scLabel2) == scaleMap.end()) return;
903 
904  const esScale* scale1 = &scaleMap.find(scLabel1)->second;
905  const esScale* scale2 = &scaleMap.find(scLabel2)->second;
906 
907 
908  std::vector<long long> lut_cal_2_mu_phi;
909  getCaloMuonPhiConversionLut(lut_cal_2_mu_phi, scale1, scale2);
910 
911  std::string lutName = obj1;
912  lutName += "-";
913  lutName += obj2;
914  m_gtScales.setLUT_CalMuPhi(lutName,lut_cal_2_mu_phi);
915 
916 
917 }
virtual void setLUT_CalMuPhi(std::string lutName, std::vector< long long > lut)
Definition: GlobalScales.cc:55
bool TriggerMenuParser::parseCalo ( tmeventsetup::esCondition  condCalo,
unsigned int  chipNr = 0,
const bool  corrFlag = false 
)
private

parse a calorimeter condition

parseCalo Parse a calo condition and insert an entry to the conditions map

Parameters
nodeThe corresponding node.
nameThe name of the condition.
chipNrThe number of the chip this condition is located.
Returns
"true" if succeeded, "false" if an error occurred.

Definition at line 1525 of file TriggerMenuParser.cc.

References TkAlMuonSelectors_cfi::cut, particleFlowClusterECALTimeSelected_cfi::cuts, TauDecayModes::dec, reco::tau::disc::Eta(), l1t::gtEG, l1t::gtJet, l1t::gtTau, insertConditionIntoMap(), createfilelist::int, edm::isDebugEnabled(), findQualityFiles::jj, GetRecoTauVFromDQM_MC_cff::kk, l1t2string(), l1tstr2int(), LogDebug, LogTrace, m_corCaloTemplate, m_vecCaloTemplate, dataset::name, colinearityKinematic::Phi, CaloTemplate::print(), GlobalCondition::setCondChipNr(), GlobalCondition::setCondGEq(), CaloTemplate::setConditionParameter(), GlobalCondition::setCondRelativeBx(), GlobalCondition::setCondType(), GlobalCondition::setObjectType(), AlCaHLTBitMon_QueryRunRegistry::string, jetExtractorBlock_cff::Threshold, l1t::Type1s, l1t::Type2s, l1t::Type3s, l1t::Type4s, and l1t::TypeNull.

Referenced by gtAlgorithmImplementation(), and parseCondFormats().

1526  {
1527 
1528 
1529 // XERCES_CPP_NAMESPACE_USE
1530  using namespace tmeventsetup;
1531 
1532  // get condition, particle name and type name
1533 
1534  std::string condition = "calo";
1535  std::string particle = "test-fix" ;
1536  std::string type = l1t2string( condCalo.getType() );
1537  std::string name = l1t2string( condCalo.getName() );
1538 
1539  LogDebug("TriggerMenuParser")
1540  << "\n ****************************************** "
1541  << "\n (in parseCalo) "
1542  << "\n condition = " << condition
1543  << "\n particle = " << particle
1544  << "\n type = " << type
1545  << "\n name = " << name
1546  << std::endl;
1547 
1548 
1549  GtConditionType cType = l1t::TypeNull;
1550 
1551  // determine object type type
1552  // BLW TO DO: Can this object type wait and be done later in the parsing. Or done differently completely..
1553  GlobalObject caloObjType;
1554  int nrObj = -1;
1555 
1556  if (condCalo.getType() == esConditionType::SingleEgamma) {
1557  caloObjType = gtEG;
1558  type = "1_s";
1559  cType= l1t::Type1s;
1560  nrObj = 1;
1561  } else if (condCalo.getType() == esConditionType::DoubleEgamma) {
1562  caloObjType = gtEG;
1563  type = "2_s";
1564  cType= l1t::Type2s;
1565  nrObj = 2;
1566  } else if (condCalo.getType() == esConditionType::TripleEgamma) {
1567  caloObjType = gtEG;
1568  cType= l1t::Type3s;
1569  type = "3";
1570  nrObj = 3;
1571  } else if (condCalo.getType() == esConditionType::QuadEgamma) {
1572  caloObjType = gtEG;
1573  cType= l1t::Type4s;
1574  type = "4";
1575  nrObj = 4;
1576  } else if (condCalo.getType() == esConditionType::SingleJet) {
1577  caloObjType = gtJet;
1578  cType= l1t::Type1s;
1579  type = "1_s";
1580  nrObj = 1;
1581  } else if (condCalo.getType() == esConditionType::DoubleJet) {
1582  caloObjType = gtJet;
1583  cType= l1t::Type2s;
1584  type = "2_s";
1585  nrObj = 2;
1586  } else if (condCalo.getType() == esConditionType::TripleJet) {
1587  caloObjType = gtJet;
1588  cType= l1t::Type3s;
1589  type = "3";
1590  nrObj = 3;
1591  } else if (condCalo.getType() == esConditionType::QuadJet) {
1592  caloObjType = gtJet;
1593  cType= l1t::Type4s;
1594  type = "4";
1595  nrObj = 4;
1596  } else if (condCalo.getType() == esConditionType::SingleTau) {
1597  caloObjType = gtTau;
1598  cType= l1t::Type1s;
1599  type = "1_s";
1600  nrObj = 1;
1601  } else if (condCalo.getType() == esConditionType::DoubleTau) {
1602  caloObjType = gtTau;
1603  cType= l1t::Type2s;
1604  type = "2_s";
1605  nrObj = 2;
1606  } else if (condCalo.getType() == esConditionType::TripleTau) {
1607  caloObjType = gtTau;
1608  cType= l1t::Type3s;
1609  type = "3";
1610  nrObj = 3;
1611  } else if (condCalo.getType() == esConditionType::QuadTau) {
1612  caloObjType = gtTau;
1613  cType= l1t::Type4s;
1614  type = "4";
1615  nrObj = 4;
1616  } else {
1617  edm::LogError("TriggerMenuParser") << "Wrong particle for calo-condition ("
1618  << particle << ")" << std::endl;
1619  return false;
1620  }
1621 
1622 // std::string str_etComparison = l1t2string( condCalo.comparison_operator() );
1623 
1624  if (nrObj < 0) {
1625  edm::LogError("TriggerMenuParser") << "Unknown type for calo-condition (" << type
1626  << ")" << "\nCan not determine number of trigger objects. " << std::endl;
1627  return false;
1628  }
1629 
1630  // get values
1631 
1632  // temporary storage of the parameters
1633  std::vector<CaloTemplate::ObjectParameter> objParameter(nrObj);
1634 
1635  //BLW TO DO: Can this be dropped?
1636  CaloTemplate::CorrelationParameter corrParameter;
1637 
1638  // need at least one value for deltaPhiRange
1639  std::vector<boost::uint64_t> tmpValues((nrObj > 1) ? nrObj : 1);
1640  tmpValues.reserve( nrObj );
1641 
1642 
1643  if( int(condCalo.getObjects().size())!=nrObj ){
1644  edm::LogError("TriggerMenuParser") << " condCalo objects: nrObj = " << nrObj
1645  << "condCalo.getObjects().size() = "
1646  << condCalo.getObjects().size()
1647  << std::endl;
1648  return false;
1649  }
1650 
1651 
1652 // std::string str_condCalo = "";
1653 // boost::uint64_t tempUIntH, tempUIntL;
1654 // boost::uint64_t dst;
1655  int cnt = 0;
1656 
1657 // BLW TO DO: These needs to the added to the object rather than the whole condition.
1658  int relativeBx = 0;
1659  bool gEq = false;
1660 
1661 // Loop over objects and extract the cuts on the objects
1662  const std::vector<esObject>& objects = condCalo.getObjects();
1663  for (size_t jj = 0; jj < objects.size(); jj++) {
1664 
1665  const esObject object = objects.at(jj);
1666  gEq = (object.getComparisonOperator() == esComparisonOperator::GE);
1667 
1668 // BLW TO DO: This needs to be added to the Object Parameters
1669  relativeBx = object.getBxOffset();
1670 
1671 // Loop over the cuts for this object
1672  int upperThresholdInd = -1;
1673  int lowerThresholdInd = 0;
1674  int upperIndexInd = -1;
1675  int lowerIndexInd = 0;
1676  int cntEta = 0;
1677  unsigned int etaWindow1Lower=-1, etaWindow1Upper=-1, etaWindow2Lower=-1, etaWindow2Upper=-1;
1678  int cntPhi = 0;
1679  unsigned int phiWindow1Lower=-1, phiWindow1Upper=-1, phiWindow2Lower=-1, phiWindow2Upper=-1;
1680  int isolationLUT = 0xF; //default is to ignore isolation unless specified.
1681  int qualityLUT = 0xF; //default is to ignore quality unless specified.
1682 
1683 
1684  const std::vector<esCut>& cuts = object.getCuts();
1685  for (size_t kk = 0; kk < cuts.size(); kk++)
1686  {
1687  const esCut cut = cuts.at(kk);
1688 
1689  switch(cut.getCutType()){
1690  case esCutType::Threshold:
1691  lowerThresholdInd = cut.getMinimum().index;
1692  upperThresholdInd = cut.getMaximum().index;
1693  break;
1694  case esCutType::Index:
1695  lowerIndexInd = int(cut.getMinimum().value);
1696  upperIndexInd = int(cut.getMaximum().value);
1697  break;
1698  case esCutType::Eta: {
1699 
1700  if(cntEta == 0) {
1701  etaWindow1Lower = cut.getMinimum().index;
1702  etaWindow1Upper = cut.getMaximum().index;
1703  } else if(cntEta == 1) {
1704  etaWindow2Lower = cut.getMinimum().index;
1705  etaWindow2Upper = cut.getMaximum().index;
1706  } else {
1707  edm::LogError("TriggerMenuParser") << "Too Many Eta Cuts for calo-condition ("
1708  << particle << ")" << std::endl;
1709  return false;
1710  }
1711  cntEta++;
1712 
1713  } break;
1714 
1715  case esCutType::Phi: {
1716 
1717  if(cntPhi == 0) {
1718  phiWindow1Lower = cut.getMinimum().index;
1719  phiWindow1Upper = cut.getMaximum().index;
1720  } else if(cntPhi == 1) {
1721  phiWindow2Lower = cut.getMinimum().index;
1722  phiWindow2Upper = cut.getMaximum().index;
1723  } else {
1724  edm::LogError("TriggerMenuParser") << "Too Many Phi Cuts for calo-condition ("
1725  << particle << ")" << std::endl;
1726  return false;
1727  }
1728  cntPhi++;
1729 
1730  }break;
1731 
1732  case esCutType::Charge: {
1733 
1734  edm::LogError("TriggerMenuParser") << "No charge cut for calo-condition ("
1735  << particle << ")" << std::endl;
1736  return false;
1737 
1738  }break;
1739  case esCutType::Quality: {
1740 
1741  qualityLUT = l1tstr2int(cut.getData());
1742 
1743  }break;
1744  case esCutType::Isolation: {
1745 
1746  isolationLUT = l1tstr2int(cut.getData());
1747 
1748  } break;
1749  default:
1750  break;
1751  } //end switch
1752 
1753  } //end loop over cuts
1754 
1755 // Fill the object parameters
1756  objParameter[cnt].etHighThreshold = upperThresholdInd;
1757  objParameter[cnt].etLowThreshold = lowerThresholdInd;
1758  objParameter[cnt].indexHigh = upperIndexInd;
1759  objParameter[cnt].indexLow = lowerIndexInd;
1760  objParameter[cnt].etaWindow1Lower = etaWindow1Lower;
1761  objParameter[cnt].etaWindow1Upper = etaWindow1Upper;
1762  objParameter[cnt].etaWindow2Lower = etaWindow2Lower;
1763  objParameter[cnt].etaWindow2Upper = etaWindow2Upper;
1764  objParameter[cnt].phiWindow1Lower = phiWindow1Lower;
1765  objParameter[cnt].phiWindow1Upper = phiWindow1Upper;
1766  objParameter[cnt].phiWindow2Lower = phiWindow2Lower;
1767  objParameter[cnt].phiWindow2Upper = phiWindow2Upper;
1768  objParameter[cnt].isolationLUT = isolationLUT;
1769  objParameter[cnt].qualityLUT = qualityLUT; //TO DO: Must add
1770 
1771  // Output for debugging
1772  LogDebug("TriggerMenuParser")
1773  << "\n Calo ET high thresholds (hex) for calo object " << caloObjType << " " << cnt << " = "
1774  << std::hex << objParameter[cnt].etLowThreshold << " - " << objParameter[cnt].etHighThreshold
1775  << "\n etaWindow Lower / Upper for calo object " << cnt << " = 0x"
1776  << objParameter[cnt].etaWindow1Lower << " / 0x" << objParameter[cnt].etaWindow1Upper
1777  << "\n etaWindowVeto Lower / Upper for calo object " << cnt << " = 0x"
1778  << objParameter[cnt].etaWindow2Lower << " / 0x" << objParameter[cnt].etaWindow2Upper
1779  << "\n phiWindow Lower / Upper for calo object " << cnt << " = 0x"
1780  << objParameter[cnt].phiWindow1Lower << " / 0x" << objParameter[cnt].phiWindow1Upper
1781  << "\n phiWindowVeto Lower / Upper for calo object " << cnt << " = 0x"
1782  << objParameter[cnt].phiWindow2Lower << " / 0x" << objParameter[cnt].phiWindow2Upper
1783  << "\n Isolation LUT for calo object " << cnt << " = 0x"
1784  << objParameter[cnt].isolationLUT
1785  << "\n Quality LUT for calo object " << cnt << " = 0x"
1786  << objParameter[cnt].qualityLUT << std::dec
1787  << std::endl;
1788 
1789  cnt++;
1790  } //end loop over objects
1791 
1792 
1793 
1794  // object types - all same caloObjType
1795  std::vector<GlobalObject> objType(nrObj, caloObjType);
1796 
1797 
1798 
1799 
1800  // now create a new calo condition
1801  CaloTemplate caloCond(name);
1802 
1803  caloCond.setCondType(cType);
1804  caloCond.setObjectType(objType);
1805 
1806  //BLW TO DO: This needs to be added to the object rather than the whole condition
1807  caloCond.setCondGEq(gEq);
1808  caloCond.setCondChipNr(chipNr);
1809 
1810  //BLW TO DO: This needs to be added to the object rather than the whole condition
1811  caloCond.setCondRelativeBx(relativeBx);
1812 
1813  caloCond.setConditionParameter(objParameter, corrParameter);
1814 
1815  if (edm::isDebugEnabled() ) {
1816 
1817  std::ostringstream myCoutStream;
1818  caloCond.print(myCoutStream);
1819  LogTrace("TriggerMenuParser") << myCoutStream.str() << "\n" << std::endl;
1820 
1821  }
1822 
1823 
1824  // insert condition into the map
1825  if ( !insertConditionIntoMap(caloCond, chipNr)) {
1826 
1827  edm::LogError("TriggerMenuParser")
1828  << " Error: duplicate condition (" << name << ")"
1829  << std::endl;
1830 
1831  return false;
1832  }
1833  else {
1834 
1835  if (corrFlag) {
1836  (m_corCaloTemplate[chipNr]).push_back(caloCond);
1837  }
1838  else {
1839  (m_vecCaloTemplate[chipNr]).push_back(caloCond);
1840  }
1841 
1842  }
1843 
1844 
1845  //
1846  return true;
1847 }
#define LogDebug(id)
type
Definition: HCALResponse.h:21
bool isDebugEnabled()
std::vector< std::vector< CaloTemplate > > m_vecCaloTemplate
std::vector< std::vector< CaloTemplate > > m_corCaloTemplate
bool insertConditionIntoMap(GlobalCondition &cond, const int chipNr)
#define LogTrace(id)
int l1tstr2int(const std::string data)
typedef for correlation parameters
Definition: CaloTemplate.h:84
bool TriggerMenuParser::parseCaloCorr ( const tmeventsetup::esObject *  corrCalo,
unsigned int  chipNr = 0 
)
private

parseCalo Parse a calo condition and insert an entry to the conditions map

Parameters
nodeThe corresponding node.
nameThe name of the condition.
chipNrThe number of the chip this condition is located.
Returns
"true" if succeeded, "false" if an error occurred.

Definition at line 1862 of file TriggerMenuParser.cc.

References TkAlMuonSelectors_cfi::cut, particleFlowClusterECALTimeSelected_cfi::cuts, TauDecayModes::dec, reco::tau::disc::Eta(), l1t::gtEG, l1t::gtJet, l1t::gtTau, createfilelist::int, edm::isDebugEnabled(), configurableAnalysis::Jet, GetRecoTauVFromDQM_MC_cff::kk, l1t2string(), l1tstr2int(), LogDebug, LogTrace, m_corCaloTemplate, dataset::name, colinearityKinematic::Phi, CaloTemplate::print(), GlobalCondition::setCondChipNr(), GlobalCondition::setCondGEq(), CaloTemplate::setConditionParameter(), GlobalCondition::setCondRelativeBx(), GlobalCondition::setCondType(), GlobalCondition::setObjectType(), AlCaHLTBitMon_QueryRunRegistry::string, jetExtractorBlock_cff::Threshold, and l1t::Type1s.

Referenced by gtAlgorithmImplementation(), parseCorrelation(), and parseCorrelationWithOverlapRemoval().

1863  {
1864 
1865 
1866 // XERCES_CPP_NAMESPACE_USE
1867  using namespace tmeventsetup;
1868 
1869  // get condition, particle name and type name
1870 
1871  std::string condition = "calo";
1872  std::string particle = "test-fix" ;
1873  std::string type = l1t2string( corrCalo->getType() );
1874  std::string name = l1t2string( corrCalo->getName() );
1875 
1876  LogDebug("TriggerMenuParser")
1877  << "\n ****************************************** "
1878  << "\n (in parseCalo) "
1879  << "\n condition = " << condition
1880  << "\n particle = " << particle
1881  << "\n type = " << type
1882  << "\n name = " << name
1883  << std::endl;
1884 
1885 
1886  // determine object type type
1887  // BLW TO DO: Can this object type wait and be done later in the parsing. Or done differently completely..
1888  GlobalObject caloObjType;
1889  int nrObj = 1;
1890  type = "1_s";
1891  GtConditionType cType = l1t::Type1s;
1892 
1893 
1894  if (corrCalo->getType() == esObjectType::Egamma) {
1895  caloObjType = gtEG;
1896  } else if (corrCalo->getType() == esObjectType::Jet) {
1897  caloObjType = gtJet;
1898  } else if (corrCalo->getType() == esObjectType::Tau) {
1899  caloObjType = gtTau;
1900  } else {
1901  edm::LogError("TriggerMenuParser") << "Wrong particle for calo-condition ("
1902  << particle << ")" << std::endl;
1903  return false;
1904  }
1905 
1906 
1907 // std::string str_etComparison = l1t2string( condCalo.comparison_operator() );
1908 
1909  if (nrObj < 0) {
1910  edm::LogError("TriggerMenuParser") << "Unknown type for calo-condition (" << type
1911  << ")" << "\nCan not determine number of trigger objects. " << std::endl;
1912  return false;
1913  }
1914 
1915  // get values
1916 
1917  // temporary storage of the parameters
1918  std::vector<CaloTemplate::ObjectParameter> objParameter(nrObj);
1919 
1920  //BLW TO DO: Can this be dropped?
1921  CaloTemplate::CorrelationParameter corrParameter;
1922 
1923  // need at least one value for deltaPhiRange
1924  std::vector<boost::uint64_t> tmpValues((nrObj > 1) ? nrObj : 1);
1925  tmpValues.reserve( nrObj );
1926 
1927 
1928 
1929 // BLW TO DO: These needs to the added to the object rather than the whole condition.
1930  int relativeBx = 0;
1931  bool gEq = false;
1932 
1933 
1934  gEq = (corrCalo->getComparisonOperator() == esComparisonOperator::GE);
1935 
1936 // BLW TO DO: This needs to be added to the Object Parameters
1937  relativeBx = corrCalo->getBxOffset();
1938 
1939 // Loop over the cuts for this object
1940  int upperThresholdInd = -1;
1941  int lowerThresholdInd = 0;
1942  int upperIndexInd = -1;
1943  int lowerIndexInd = 0;
1944  int cntEta = 0;
1945  unsigned int etaWindow1Lower=-1, etaWindow1Upper=-1, etaWindow2Lower=-1, etaWindow2Upper=-1;
1946  int cntPhi = 0;
1947  unsigned int phiWindow1Lower=-1, phiWindow1Upper=-1, phiWindow2Lower=-1, phiWindow2Upper=-1;
1948  int isolationLUT = 0xF; //default is to ignore isolation unless specified.
1949  int qualityLUT = 0xF; //default is to ignore quality unless specified.
1950 
1951 
1952  const std::vector<esCut>& cuts = corrCalo->getCuts();
1953  for (size_t kk = 0; kk < cuts.size(); kk++)
1954  {
1955  const esCut cut = cuts.at(kk);
1956 
1957  switch(cut.getCutType()){
1958  case esCutType::Threshold:
1959  lowerThresholdInd = cut.getMinimum().index;
1960  upperThresholdInd = cut.getMaximum().index;
1961  break;
1962  case esCutType::Index:
1963  lowerIndexInd = int(cut.getMinimum().value);
1964  upperIndexInd = int(cut.getMaximum().value);
1965  break;
1966  case esCutType::Eta: {
1967 
1968  if(cntEta == 0) {
1969  etaWindow1Lower = cut.getMinimum().index;
1970  etaWindow1Upper = cut.getMaximum().index;
1971  } else if(cntEta == 1) {
1972  etaWindow2Lower = cut.getMinimum().index;
1973  etaWindow2Upper = cut.getMaximum().index;
1974  } else {
1975  edm::LogError("TriggerMenuParser") << "Too Many Eta Cuts for calo-condition ("
1976  << particle << ")" << std::endl;
1977  return false;
1978  }
1979  cntEta++;
1980 
1981  } break;
1982 
1983  case esCutType::Phi: {
1984 
1985  if(cntPhi == 0) {
1986  phiWindow1Lower = cut.getMinimum().index;
1987  phiWindow1Upper = cut.getMaximum().index;
1988  } else if(cntPhi == 1) {
1989  phiWindow2Lower = cut.getMinimum().index;
1990  phiWindow2Upper = cut.getMaximum().index;
1991  } else {
1992  edm::LogError("TriggerMenuParser") << "Too Many Phi Cuts for calo-condition ("
1993  << particle << ")" << std::endl;
1994  return false;
1995  }
1996  cntPhi++;
1997 
1998  }break;
1999 
2000  case esCutType::Charge: {
2001 
2002  edm::LogError("TriggerMenuParser") << "No charge cut for calo-condition ("
2003  << particle << ")" << std::endl;
2004  return false;
2005 
2006  }break;
2007  case esCutType::Quality: {
2008 
2009  qualityLUT = l1tstr2int(cut.getData());
2010 
2011  }break;
2012  case esCutType::Isolation: {
2013 
2014  isolationLUT = l1tstr2int(cut.getData());
2015 
2016  } break;
2017  default:
2018  break;
2019  } //end switch
2020 
2021  } //end loop over cuts
2022 
2023 // Fill the object parameters
2024  objParameter[0].etLowThreshold = lowerThresholdInd;
2025  objParameter[0].etHighThreshold = upperThresholdInd;
2026  objParameter[0].indexHigh = upperIndexInd;
2027  objParameter[0].indexLow = lowerIndexInd;
2028  objParameter[0].etaWindow1Lower = etaWindow1Lower;
2029  objParameter[0].etaWindow1Upper = etaWindow1Upper;
2030  objParameter[0].etaWindow2Lower = etaWindow2Lower;
2031  objParameter[0].etaWindow2Upper = etaWindow2Upper;
2032  objParameter[0].phiWindow1Lower = phiWindow1Lower;
2033  objParameter[0].phiWindow1Upper = phiWindow1Upper;
2034  objParameter[0].phiWindow2Lower = phiWindow2Lower;
2035  objParameter[0].phiWindow2Upper = phiWindow2Upper;
2036  objParameter[0].isolationLUT = isolationLUT;
2037  objParameter[0].qualityLUT = qualityLUT; //TO DO: Must add
2038 
2039  // Output for debugging
2040  LogDebug("TriggerMenuParser")
2041  << "\n Calo ET high threshold (hex) for calo object " << caloObjType << " " << " = "
2042  << std::hex << objParameter[0].etLowThreshold << " - " << objParameter[0].etHighThreshold
2043  << "\n etaWindow Lower / Upper for calo object " << " = 0x"
2044  << objParameter[0].etaWindow1Lower << " / 0x" << objParameter[0].etaWindow1Upper
2045  << "\n etaWindowVeto Lower / Upper for calo object " << " = 0x"
2046  << objParameter[0].etaWindow2Lower << " / 0x" << objParameter[0].etaWindow2Upper
2047  << "\n phiWindow Lower / Upper for calo object " << " = 0x"
2048  << objParameter[0].phiWindow1Lower << " / 0x" << objParameter[0].phiWindow1Upper
2049  << "\n phiWindowVeto Lower / Upper for calo object " << " = 0x"
2050  << objParameter[0].phiWindow2Lower << " / 0x" << objParameter[0].phiWindow2Upper
2051  << "\n Isolation LUT for calo object " << " = 0x"
2052  << objParameter[0].isolationLUT
2053  << "\n Quality LUT for calo object " << " = 0x"
2054  << objParameter[0].qualityLUT << std::dec
2055  << std::endl;
2056 
2057 
2058 
2059 
2060 
2061  // object types - all same caloObjType
2062  std::vector<GlobalObject> objType(nrObj, caloObjType);
2063 
2064 
2065 
2066 
2067  // now create a new calo condition
2068  CaloTemplate caloCond(name);
2069 
2070  caloCond.setCondType(cType);
2071  caloCond.setObjectType(objType);
2072 
2073  //BLW TO DO: This needs to be added to the object rather than the whole condition
2074  caloCond.setCondGEq(gEq);
2075  caloCond.setCondChipNr(chipNr);
2076 
2077  //BLW TO DO: This needs to be added to the object rather than the whole condition
2078  caloCond.setCondRelativeBx(relativeBx);
2079 
2080  caloCond.setConditionParameter(objParameter, corrParameter);
2081 
2082  if (edm::isDebugEnabled() ) {
2083 
2084  std::ostringstream myCoutStream;
2085  caloCond.print(myCoutStream);
2086  LogTrace("TriggerMenuParser") << myCoutStream.str() << "\n" << std::endl;
2087 
2088  }
2089 
2090 /*
2091  // insert condition into the map
2092  if ( !insertConditionIntoMap(caloCond, chipNr)) {
2093 
2094  edm::LogError("TriggerMenuParser")
2095  << " Error: duplicate condition (" << name << ")"
2096  << std::endl;
2097 
2098  return false;
2099  }
2100  else {
2101  (m_corCaloTemplate[chipNr]).push_back(caloCond);
2102  }
2103 */
2104  (m_corCaloTemplate[chipNr]).push_back(caloCond);
2105 
2106  //
2107  return true;
2108 }
#define LogDebug(id)
type
Definition: HCALResponse.h:21
bool isDebugEnabled()
std::vector< std::vector< CaloTemplate > > m_corCaloTemplate
#define LogTrace(id)
int l1tstr2int(const std::string data)
typedef for correlation parameters
Definition: CaloTemplate.h:84
void TriggerMenuParser::parseCondFormats ( const L1TUtmTriggerMenu utmMenu)

Definition at line 249 of file TriggerMenuParser.cc.

References patPFMETCorrections_cff::algo, DefaultClusterizer_cff::Algorithm, KineDebug3::count(), cuy::ii, reco::tau::disc::InvariantMass(), m_conditionMap, m_corCaloTemplate, m_corEnergySumTemplate, m_corMuonTemplate, m_gtScales, m_numberConditionChips, m_triggerMenuDate, m_triggerMenuDescription, m_triggerMenuImplementation, m_triggerMenuInterface, m_triggerMenuName, m_triggerMenuUUID, m_vecCaloTemplate, m_vecCorrelationTemplate, m_vecCorrelationWithOverlapRemovalTemplate, m_vecEnergySumTemplate, m_vecExternalTemplate, m_vecMuonTemplate, parseAlgorithm(), parseCalo(), parseCorrelation(), parseCorrelationWithOverlapRemoval(), parseEnergySum(), parseExternal(), parseMuon(), parseScales(), l1t::GlobalScales::setScalesName(), and AlCaHLTBitMon_QueryRunRegistry::string.

Referenced by gtAlgorithmAliasMap(), and L1TGlobalProducer::produce().

249  {
250 
251 
252  // resize the vector of condition maps
253  // the number of condition chips should be correctly set before calling parseXmlFile
255 
260 
266 
267  using namespace tmeventsetup;
268  using namespace Algorithm;
269 
270  const esTriggerMenu* menu = reinterpret_cast<const esTriggerMenu*> (utmMenu);
271 
272  //get the meta data
273  m_triggerMenuDescription = menu->getComment();
274  m_triggerMenuDate = menu->getDatetime();
275  m_triggerMenuImplementation = ( getMmHashN(menu->getFirmwareUuid()) & 0xFFFFFFFF); //make sure we only have 32 bits
276  m_triggerMenuName = menu->getName();
277  m_triggerMenuInterface = menu->getVersion(); //BLW: correct descriptor?
278  m_triggerMenuUUID = ( getMmHashN(menu->getName()) & 0xFFFFFFFF); //make sure we only have 32 bits
279 
280  const std::map<std::string, esAlgorithm>& algoMap = menu->getAlgorithmMap();
281  const std::map<std::string, esCondition>& condMap = menu->getConditionMap();
282  const std::map<std::string, esScale>& scaleMap = menu->getScaleMap();
283 
284  // parse the scales
285  m_gtScales.setScalesName( menu->getScaleSetName() );
286  parseScales(scaleMap);
287 
288 
289  //loop over the algorithms
290  for (std::map<std::string, esAlgorithm>::const_iterator cit = algoMap.begin();
291  cit != algoMap.end(); cit++)
292  {
293  //condition chip (artifact) TO DO: Update
294  int chipNr = 0;
295 
296  //get algorithm
297  const esAlgorithm& algo = cit->second;
298 
299  //parse the algorithm
300  parseAlgorithm(algo,chipNr); //blw
301 
302  //get conditions for this algorithm
303  const std::vector<std::string>& rpn_vec = algo.getRpnVector();
304  for (size_t ii = 0; ii < rpn_vec.size(); ii++)
305  {
306  const std::string& token = rpn_vec.at(ii);
307  if (isGate(token)) continue;
308 // long hash = getHash(token);
309  const esCondition& condition = condMap.find(token)->second;
310 
311 
312  //check to see if this condtion already exists
313  if ((m_conditionMap[chipNr]).count(condition.getName()) == 0) {
314 
315  // parse Calo Conditions (EG, Jets, Taus)
316  if(condition.getType() == esConditionType::SingleEgamma ||
317  condition.getType() == esConditionType::DoubleEgamma ||
318  condition.getType() == esConditionType::TripleEgamma ||
319  condition.getType() == esConditionType::QuadEgamma ||
320  condition.getType() == esConditionType::SingleTau ||
321  condition.getType() == esConditionType::DoubleTau ||
322  condition.getType() == esConditionType::TripleTau ||
323  condition.getType() == esConditionType::QuadTau ||
324  condition.getType() == esConditionType::SingleJet ||
325  condition.getType() == esConditionType::DoubleJet ||
326  condition.getType() == esConditionType::TripleJet ||
327  condition.getType() == esConditionType::QuadJet )
328  {
329  parseCalo(condition,chipNr,false);
330 
331  // parse Energy Sums
332  } else if(condition.getType() == esConditionType::TotalEt ||
333  condition.getType() == esConditionType::TotalEtEM ||
334  condition.getType() == esConditionType::TotalHt ||
335  condition.getType() == esConditionType::MissingEt ||
336  condition.getType() == esConditionType::MissingHt ||
337  condition.getType() == esConditionType::MissingEtHF ||
338  condition.getType() == esConditionType::TowerCount ||
339  condition.getType() == esConditionType::MinBiasHFP0 ||
340  condition.getType() == esConditionType::MinBiasHFM0 ||
341  condition.getType() == esConditionType::MinBiasHFP1 ||
342  condition.getType() == esConditionType::MinBiasHFM1 )
343  {
344  parseEnergySum(condition,chipNr,false);
345 
346  //parse Muons
347  } else if(condition.getType() == esConditionType::SingleMuon ||
348  condition.getType() == esConditionType::DoubleMuon ||
349  condition.getType() == esConditionType::TripleMuon ||
350  condition.getType() == esConditionType::QuadMuon )
351  {
352  parseMuon(condition,chipNr,false);
353 
354 
355  //parse Correlation Conditions
356  } else if(condition.getType() == esConditionType::MuonMuonCorrelation ||
357  condition.getType() == esConditionType::MuonEsumCorrelation ||
358  condition.getType() == esConditionType::CaloMuonCorrelation ||
359  condition.getType() == esConditionType::CaloCaloCorrelation ||
360  condition.getType() == esConditionType::CaloEsumCorrelation ||
361  condition.getType() == esConditionType::InvariantMass )
362  {
363  parseCorrelation(condition,chipNr);
364 
365  //parse Externals
366  } else if(condition.getType() == esConditionType::Externals )
367  {
368  parseExternal(condition,chipNr);
369 
370  }
371  //parse MuonWithOverlapRemoval
372  else if(condition.getType() == esConditionType::SingleMuonWithOverlapRemoval ||
373  condition.getType() == esConditionType::DoubleMuonWithOverlapRemoval ||
374  condition.getType() == esConditionType::TripleMuonWithOverlapRemoval ||
375  condition.getType() == esConditionType::QuadMuonWithOverlapRemoval) {
376 
377  edm::LogError("TriggerMenuParser") << std::endl
378  << "SingleMuonWithOverlapRemoval" << std::endl
379  << "DoubleMuonWithOverlapRemoval" << std::endl
380  << "TripleMuonWithOverlapRemoval" << std::endl
381  << "QuadMuonWithOverlapRemoval" << std::endl
382  << "The above conditions types WithOverlapRemoval are not implemented yet in the parser. Please remove alogrithms that use this type of condtion from L1T Menu!" << std::endl;
383  //parseMuon(condition,chipNr,false);
384 
385  }
386  //parse CaloWithOverlapRemoval
387  else if(condition.getType() == esConditionType::SingleEgammaWithOverlapRemoval ||
388  condition.getType() == esConditionType::DoubleEgammaWithOverlapRemoval ||
389  condition.getType() == esConditionType::TripleEgammaWithOverlapRemoval ||
390  condition.getType() == esConditionType::QuadEgammaWithOverlapRemoval ||
391  condition.getType() == esConditionType::SingleTauWithOverlapRemoval ||
392  condition.getType() == esConditionType::DoubleTauWithOverlapRemoval ||
393  condition.getType() == esConditionType::TripleTauWithOverlapRemoval ||
394  condition.getType() == esConditionType::QuadTauWithOverlapRemoval ||
395  condition.getType() == esConditionType::SingleJetWithOverlapRemoval ||
396  condition.getType() == esConditionType::DoubleJetWithOverlapRemoval ||
397  condition.getType() == esConditionType::TripleJetWithOverlapRemoval ||
398  condition.getType() == esConditionType::QuadJetWithOverlapRemoval) {
399 
400  edm::LogError("TriggerMenuParser") << std::endl
401  << "SingleEgammaWithOverlapRemoval" << std::endl
402  << "DoubleEgammaWithOverlapRemoval" << std::endl
403  << "TripleEgammaWithOverlapRemoval" << std::endl
404  << "QuadEgammaWithOverlapRemoval" << std::endl
405  << "SingleTauWithOverlapRemoval" << std::endl
406  << "DoubleTauWithOverlapRemoval" << std::endl
407  << "TripleTauWithOverlapRemoval" << std::endl
408  << "QuadTauWithOverlapRemoval" << std::endl
409  << "SingleJetWithOverlapRemoval" << std::endl
410  << "DoubleJetWithOverlapRemoval" << std::endl
411  << "TripleJetWithOverlapRemoval" << std::endl
412  << "QuadJetWithOverlapRemoval" << std::endl
413  << "The above conditions types WithOverlapRemoval are not implemented yet in the parser. Please remove alogrithms that use this type of condtion from L1T Menu!" << std::endl;
414  //parseCalo(condition,chipNr,false);
415 
416  }
417  //parse CorrelationWithOverlapRemoval
418  else if(condition.getType() == esConditionType::MuonMuonCorrelationWithOverlapRemoval ||
419  condition.getType() == esConditionType::MuonEsumCorrelationWithOverlapRemoval ||
420  condition.getType() == esConditionType::CaloMuonCorrelationWithOverlapRemoval ||
421  condition.getType() == esConditionType::CaloCaloCorrelationWithOverlapRemoval ||
422  condition.getType() == esConditionType::CaloEsumCorrelationWithOverlapRemoval ||
423  condition.getType() == esConditionType::InvariantMassWithOverlapRemoval) {
424 
425  parseCorrelationWithOverlapRemoval(condition,chipNr);
426 
427  }
428 
429  }//if condition is a new one
430  }//loop over conditions
431  }//loop over algorithms
432 
433  return;
434 
435 
436 }
unsigned int m_numberConditionChips
hardware limits
std::vector< std::vector< CaloTemplate > > m_vecCaloTemplate
std::vector< std::vector< EnergySumTemplate > > m_corEnergySumTemplate
bool parseExternal(tmeventsetup::esCondition condExt, unsigned int chipNr=0)
std::vector< std::vector< CaloTemplate > > m_corCaloTemplate
std::vector< std::vector< CorrelationWithOverlapRemovalTemplate > > m_vecCorrelationWithOverlapRemovalTemplate
std::string m_triggerMenuInterface
menu names
std::vector< ConditionMap > m_conditionMap
map containing the conditions (per condition chip) - transient
void setScalesName(std::string name)
Definition: GlobalScales.h:79
std::vector< std::vector< MuonTemplate > > m_corMuonTemplate
std::string m_triggerMenuDescription
std::vector< std::vector< CorrelationTemplate > > m_vecCorrelationTemplate
ii
Definition: cuy.py:588
bool parseScales(std::map< std::string, tmeventsetup::esScale > scaleMap)
parse scales
bool parseEnergySum(tmeventsetup::esCondition condEnergySums, unsigned int chipNr=0, const bool corrFlag=false)
parse an "energy sum" condition
unsigned long m_triggerMenuUUID
std::vector< std::vector< ExternalTemplate > > m_vecExternalTemplate
bool parseMuon(tmeventsetup::esCondition condMu, unsigned int chipNr=0, const bool corrFlag=false)
parse a muon condition
bool parseAlgorithm(tmeventsetup::esAlgorithm algorithm, unsigned int chipNr=0)
parse all algorithms
unsigned long m_triggerMenuImplementation
bool parseCorrelationWithOverlapRemoval(const tmeventsetup::esCondition &corrCond, unsigned int chipNr=0)
parse a correlation condition with overlap removal
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
std::vector< std::vector< MuonTemplate > > m_vecMuonTemplate
bool TriggerMenuParser::parseCorrelation ( tmeventsetup::esCondition  corrCond,
unsigned int  chipNr = 0 
)
private

parse a correlation condition

parseCorrelation Parse a correlation condition and insert an entry to the conditions map

Parameters
nodeThe corresponding node.
nameThe name of the condition.
chipNrThe number of the chip this condition is located.
Returns
"true" if succeeded, "false" if an error occurred.

Definition at line 2665 of file TriggerMenuParser.cc.

References CorrelationTemplate::CorrelationParameter::chargeCorrelation, l1t::CondCalo, l1t::CondEnergySum, l1t::CondMuon, CorrelationTemplate::CorrelationParameter::corrCutType, TkAlMuonSelectors_cfi::cut, particleFlowClusterECALTimeSelected_cfi::cuts, HiRegitMuonDetachedTripletStep_cff::DeltaEta, allConversions_cfi::DeltaPhi, HiRegitMuonDetachedTripletStep_cff::DeltaR, ETM, l1t::gtEG, l1t::gtETM, l1t::gtETMHF, l1t::gtHTM, l1t::gtJet, l1t::gtMu, l1t::gtTau, l1t::gtTowerCount, HTM, insertConditionIntoMap(), edm::isDebugEnabled(), configurableAnalysis::Jet, findQualityFiles::jj, l1t2string(), LogDebug, LogTrace, m_corCaloTemplate, m_corEnergySumTemplate, m_corMuonTemplate, m_vecCorrelationTemplate, bwdGsfElectronPropagator_cff::Mass, CorrelationTemplate::CorrelationParameter::maxDRCutValue, CorrelationTemplate::CorrelationParameter::maxEtaCutValue, CorrelationTemplate::CorrelationParameter::maxMassCutValue, CorrelationTemplate::CorrelationParameter::maxPhiCutValue, CorrelationTemplate::CorrelationParameter::minDRCutValue, CorrelationTemplate::CorrelationParameter::minEtaCutValue, CorrelationTemplate::CorrelationParameter::minMassCutValue, CorrelationTemplate::CorrelationParameter::minPhiCutValue, configurableAnalysis::Muon, dataset::name, parseCaloCorr(), parseEnergySumCorr(), parseMuonCorr(), funct::pow(), CorrelationTemplate::CorrelationParameter::precDRCut, CorrelationTemplate::CorrelationParameter::precEtaCut, CorrelationTemplate::CorrelationParameter::precMassCut, CorrelationTemplate::CorrelationParameter::precPhiCut, CorrelationTemplate::print(), CorrelationTemplate::setCond0Category(), CorrelationTemplate::setCond0Index(), CorrelationTemplate::setCond1Category(), CorrelationTemplate::setCond1Index(), GlobalCondition::setCondChipNr(), GlobalCondition::setCondGEq(), GlobalCondition::setCondType(), CorrelationTemplate::setCorrelationParameter(), GlobalCondition::setObjectType(), findQualityFiles::size, AlCaHLTBitMon_QueryRunRegistry::string, and l1t::Type2cor.

Referenced by gtAlgorithmImplementation(), and parseCondFormats().

2667  {
2668 
2669  using namespace tmeventsetup;
2670 
2671  std::string condition = "corr";
2672  std::string particle = "test-fix" ;
2673  std::string type = l1t2string( corrCond.getType() );
2674  std::string name = l1t2string( corrCond.getName() );
2675 
2676  LogDebug("TriggerMenuParser") << " ****************************************** " << std::endl
2677  << " (in parseCorrelation) " << std::endl
2678  << " condition = " << condition << std::endl
2679  << " particle = " << particle << std::endl
2680  << " type = " << type << std::endl
2681  << " name = " << name << std::endl;
2682 
2683 
2684 
2685 
2686  // create a new correlation condition
2687  CorrelationTemplate correlationCond(name);
2688 
2689  // check that the condition does not exist already in the map
2690  if ( !insertConditionIntoMap(correlationCond, chipNr)) {
2691 
2692  edm::LogError("TriggerMenuParser")
2693  << " Error: duplicate correlation condition (" << name << ")"
2694  << std::endl;
2695 
2696  return false;
2697  }
2698 
2699 
2700 // Define some of the quantities to store the parased information
2701 
2702  // condition type BLW (Do we change this to the type of correlation condition?)
2704 
2705  // two objects (for sure)
2706  const int nrObj = 2;
2707 
2708  // object types and greater equal flag - filled in the loop
2709  int intGEq[nrObj] = { -1, -1 };
2710  std::vector<GlobalObject> objType(nrObj); //BLW do we want to define these as a different type?
2711  std::vector<GtConditionCategory> condCateg(nrObj); //BLW do we want to change these categories
2712 
2713  // correlation flag and index in the cor*vector
2714  const bool corrFlag = true;
2715  int corrIndexVal[nrObj] = { -1, -1 };
2716 
2717 
2718  // Storage of the correlation selection
2720  corrParameter.chargeCorrelation = 1; //ignore charge correlation
2721 
2722 // Get the correlation Cuts on the legs
2723  int cutType = 0;
2724  const std::vector<esCut>& cuts = corrCond.getCuts();
2725  for (size_t jj = 0; jj < cuts.size(); jj++)
2726  {
2727  const esCut cut = cuts.at(jj);
2728 
2729  if(cut.getCutType() == esCutType::ChargeCorrelation) {
2730  if( cut.getData()=="ls" ) corrParameter.chargeCorrelation = 2;
2731  else if( cut.getData()=="os" ) corrParameter.chargeCorrelation = 4;
2732  else corrParameter.chargeCorrelation = 1; //ignore charge correlation
2733  } else {
2734 
2735 //
2736 // Unitl utm has method to calculate these, do the integer value calculation with precision.
2737 //
2738  double minV = cut.getMinimum().value;
2739  double maxV = cut.getMaximum().value;
2740 
2741  //Scale down very large numbers out of xml
2742  if(maxV > 1.0e8) maxV = 1.0e8;
2743 
2744  if(cut.getCutType() == esCutType::DeltaEta) {
2745  //std::cout << "DeltaEta Cut minV = " << minV << " Max = " << maxV << " precMin = " << cut.getMinimum().index << " precMax = " << cut.getMaximum().index << std::endl;
2746  corrParameter.minEtaCutValue = (long long)(minV * pow(10.,cut.getMinimum().index));
2747  corrParameter.maxEtaCutValue = (long long)(maxV * pow(10.,cut.getMaximum().index));
2748  corrParameter.precEtaCut = cut.getMinimum().index;
2749  cutType = cutType | 0x1;
2750  } else if (cut.getCutType() == esCutType::DeltaPhi) {
2751  //std::cout << "DeltaPhi Cut minV = " << minV << " Max = " << maxV << " precMin = " << cut.getMinimum().index << " precMax = " << cut.getMaximum().index << std::endl;
2752  corrParameter.minPhiCutValue = (long long)(minV * pow(10.,cut.getMinimum().index));
2753  corrParameter.maxPhiCutValue = (long long)(maxV * pow(10.,cut.getMaximum().index));
2754  corrParameter.precPhiCut = cut.getMinimum().index;
2755  cutType = cutType | 0x2;
2756  } else if (cut.getCutType() == esCutType::DeltaR) {
2757  //std::cout << "DeltaR Cut minV = " << minV << " Max = " << maxV << " precMin = " << cut.getMinimum().index << " precMax = " << cut.getMaximum().index << std::endl;
2758  corrParameter.minDRCutValue = (long long)(minV * pow(10.,cut.getMinimum().index));
2759  corrParameter.maxDRCutValue = (long long)(maxV * pow(10.,cut.getMaximum().index));
2760  corrParameter.precDRCut = cut.getMinimum().index;
2761  cutType = cutType | 0x4;
2762  } else if (cut.getCutType() == esCutType::Mass) {
2763  //std::cout << "Mass Cut minV = " << minV << " Max = " << maxV << " precMin = " << cut.getMinimum().index << " precMax = " << cut.getMaximum().index << std::endl;
2764  corrParameter.minMassCutValue = (long long)(minV * pow(10.,cut.getMinimum().index));
2765  corrParameter.maxMassCutValue = (long long)(maxV * pow(10.,cut.getMaximum().index));
2766  corrParameter.precMassCut = cut.getMinimum().index;
2767  cutType = cutType | 0x8;
2768  }
2769  }
2770 
2771  }
2772  corrParameter.corrCutType = cutType;
2773 
2774 // Get the two objects that form the legs
2775  const std::vector<esObject>& objects = corrCond.getObjects();
2776  if(objects.size() != 2) {
2777  edm::LogError("TriggerMenuParser")
2778  << "incorrect number of objects for the correlation condition " << name << " corrFlag " << corrFlag << std::endl;
2779  return false;
2780  }
2781 
2782 // loop over legs
2783  for (size_t jj = 0; jj < objects.size(); jj++)
2784  {
2785  const esObject object = objects.at(jj);
2786  //std::cout << " obj name = " << object.getName() << "\n";
2787  //std::cout << " obj type = " << object.getType() << "\n";
2788  //std::cout << " obj op = " << object.getComparisonOperator() << "\n";
2789  //std::cout << " obj bx = " << object.getBxOffset() << "\n";
2790 
2791 
2792 // check the leg type
2793  if(object.getType() == esObjectType::Muon) {
2794  // we have a muon
2795 
2796 /*
2797  //BLW Hold on to this code we may need to go back to it at some point.
2798  // Now we are putting ALL leg conditions into the vector (so there are duplicates)
2799  // This is potentially a place to slim down the code. Note: We currently evaluate the
2800  // conditions every time, so even if we put the condition in the vector once, we would
2801  // still evaluate it multiple times. This is a place for optimization.
2802  {
2803 
2804  parseMuonCorr(&object,chipNr);
2805  corrIndexVal[jj] = (m_corMuonTemplate[chipNr]).size() - 1;
2806 
2807  } else {
2808  LogDebug("TriggerMenuParser") << "Not Adding Correlation Muon Condition to Map...looking for the condition in Muon Cor Vector" << std::endl;
2809  bool found = false;
2810  int index = 0;
2811  while(!found && index<(int)((m_corMuonTemplate[chipNr]).size()) ) {
2812  if( (m_corMuonTemplate[chipNr]).at(index).condName() == object.getName() ) {
2813  LogDebug("TriggerMenuParser") << "Found condition " << object.getName() << " in vector at index " << index << std::endl;
2814  found = true;
2815  } else {
2816  index++;
2817  }
2818  }
2819  if(found) {
2820  corrIndexVal[jj] = index;
2821  } else {
2822  edm::LogError("TriggerMenuParser") << "FAILURE: Condition " << object.getName() << " is in map but not in cor. vector " << std::endl;
2823  }
2824 
2825  }
2826 */
2827  parseMuonCorr(&object,chipNr);
2828  corrIndexVal[jj] = (m_corMuonTemplate[chipNr]).size() - 1;
2829 
2830  //Now set some flags for this subCondition
2831  intGEq[jj] = (object.getComparisonOperator() == esComparisonOperator::GE);
2832  objType[jj] = gtMu;
2833  condCateg[jj] = CondMuon;
2834 
2835  } else if(object.getType() == esObjectType::Egamma ||
2836  object.getType() == esObjectType::Jet ||
2837  object.getType() == esObjectType::Tau ) {
2838 
2839  // we have an Calo object
2840  parseCaloCorr(&object,chipNr);
2841  corrIndexVal[jj] = (m_corCaloTemplate[chipNr]).size() - 1;
2842 
2843  //Now set some flags for this subCondition
2844  intGEq[jj] = (object.getComparisonOperator() == esComparisonOperator::GE);
2845  switch(object.getType()) {
2846  case esObjectType::Egamma: {
2847  objType[jj] = gtEG;
2848  }
2849  break;
2850  case esObjectType::Jet: {
2851  objType[jj] = gtJet;
2852  }
2853  break;
2854  case esObjectType::Tau: {
2855  objType[jj] = gtTau;
2856  }
2857  break;
2858  default: {
2859  }
2860  break;
2861  }
2862  condCateg[jj] = CondCalo;
2863 
2864 
2865 
2866 
2867  } else if(object.getType() == esObjectType::ETM ||
2868  object.getType() == esObjectType::ETMHF ||
2869  object.getType() == esObjectType::TOWERCOUNT ||
2870  object.getType() == esObjectType::HTM ) {
2871 
2872  // we have Energy Sum
2873  parseEnergySumCorr(&object,chipNr);
2874  corrIndexVal[jj] = (m_corEnergySumTemplate[chipNr]).size() - 1;
2875 
2876  //Now set some flags for this subCondition
2877  intGEq[jj] = (object.getComparisonOperator() == esComparisonOperator::GE);
2878  switch(object.getType()) {
2879  case esObjectType::ETM: {
2880  objType[jj] = GlobalObject::gtETM;
2881  }
2882  break;
2883  case esObjectType::HTM: {
2884  objType[jj] = GlobalObject::gtHTM;
2885  }
2886  break;
2887  case esObjectType::ETMHF: {
2888  objType[jj] = GlobalObject::gtETMHF;
2889  }
2890  break;
2891  case esObjectType::TOWERCOUNT: {
2892  objType[jj] = GlobalObject::gtTowerCount;
2893  }
2894  break;
2895  default: {
2896  }
2897  break;
2898  }
2899  condCateg[jj] = CondEnergySum;
2900 
2901 
2902  } else {
2903 
2904  edm::LogError("TriggerMenuParser")
2905  << "Illegal Object Type " << object.getType()
2906  << " for the correlation condition " << name << std::endl;
2907  return false;
2908 
2909  } //if block on leg types
2910 
2911  } //loop over legs
2912 
2913 
2914  // get greater equal flag for the correlation condition
2915  bool gEq = true;
2916  if (intGEq[0] != intGEq[1]) {
2917  edm::LogError("TriggerMenuParser")
2918  << "Inconsistent GEq flags for sub-conditions "
2919  << " for the correlation condition " << name << std::endl;
2920  return false;
2921 
2922  }
2923  else {
2924  gEq = (intGEq[0] != 0);
2925 
2926  }
2927 
2928 
2929  // fill the correlation condition
2930  correlationCond.setCondType(cType);
2931  correlationCond.setObjectType(objType);
2932  correlationCond.setCondGEq(gEq);
2933  correlationCond.setCondChipNr(chipNr);
2934 
2935  correlationCond.setCond0Category(condCateg[0]);
2936  correlationCond.setCond1Category(condCateg[1]);
2937 
2938  correlationCond.setCond0Index(corrIndexVal[0]);
2939  correlationCond.setCond1Index(corrIndexVal[1]);
2940 
2941  correlationCond.setCorrelationParameter(corrParameter);
2942 
2943  if (edm::isDebugEnabled() ) {
2944 
2945  std::ostringstream myCoutStream;
2946  correlationCond.print(myCoutStream);
2947  LogTrace("TriggerMenuParser") << myCoutStream.str() << "\n"
2948  << std::endl;
2949 
2950  }
2951 
2952  // insert condition into the map
2953  // condition is not duplicate, check was done at the beginning
2954 
2955  (m_vecCorrelationTemplate[chipNr]).push_back(correlationCond);
2956 
2957 
2958  //
2959  return true;
2960 }
#define LogDebug(id)
size
Write out results.
type
Definition: HCALResponse.h:21
bool isDebugEnabled()
Definition: L1GtObject.h:39
Definition: L1GtObject.h:36
std::vector< std::vector< EnergySumTemplate > > m_corEnergySumTemplate
std::vector< std::vector< CaloTemplate > > m_corCaloTemplate
std::vector< std::vector< MuonTemplate > > m_corMuonTemplate
std::vector< std::vector< CorrelationTemplate > > m_vecCorrelationTemplate
bool insertConditionIntoMap(GlobalCondition &cond, const int chipNr)
#define LogTrace(id)
bool parseCaloCorr(const tmeventsetup::esObject *corrCalo, unsigned int chipNr=0)
bool parseEnergySumCorr(const tmeventsetup::esObject *corrESum, unsigned int chipNr=0)
bool parseMuonCorr(const tmeventsetup::esObject *condMu, unsigned int chipNr=0)
typedef for correlation parameters
Power< A, B >::type pow(const A &a, const B &b)
Definition: Power.h:40
bool TriggerMenuParser::parseCorrelationWithOverlapRemoval ( const tmeventsetup::esCondition &  corrCond,
unsigned int  chipNr = 0 
)
private

parse a correlation condition with overlap removal

parseCorrelationWithOverlapRemoval Parse a correlation condition and insert an entry to the conditions map

Parameters
nodeThe corresponding node.
nameThe name of the condition.
chipNrThe number of the chip this condition is located.
Returns
"true" if succeeded, "false" if an error occurred.

Definition at line 2974 of file TriggerMenuParser.cc.

References CorrelationWithOverlapRemovalTemplate::CorrelationWithOverlapRemovalParameter::chargeCorrelation, l1t::CondCalo, l1t::CondEnergySum, l1t::CondMuon, CorrelationWithOverlapRemovalTemplate::CorrelationWithOverlapRemovalParameter::corrCutType, TkAlMuonSelectors_cfi::cut, particleFlowClusterECALTimeSelected_cfi::cuts, HiRegitMuonDetachedTripletStep_cff::DeltaEta, allConversions_cfi::DeltaPhi, HiRegitMuonDetachedTripletStep_cff::DeltaR, ETM, l1t::gtEG, l1t::gtETM, l1t::gtETMHF, l1t::gtHTM, l1t::gtJet, l1t::gtMu, l1t::gtTau, l1t::gtTowerCount, HTM, insertConditionIntoMap(), edm::isDebugEnabled(), configurableAnalysis::Jet, findQualityFiles::jj, l1t2string(), LogDebug, LogTrace, m_corCaloTemplate, m_corEnergySumTemplate, m_corMuonTemplate, m_vecCorrelationWithOverlapRemovalTemplate, bwdGsfElectronPropagator_cff::Mass, CorrelationWithOverlapRemovalTemplate::CorrelationWithOverlapRemovalParameter::maxDRCutValue, CorrelationWithOverlapRemovalTemplate::CorrelationWithOverlapRemovalParameter::maxEtaCutValue, CorrelationWithOverlapRemovalTemplate::CorrelationWithOverlapRemovalParameter::maxMassCutValue, CorrelationWithOverlapRemovalTemplate::CorrelationWithOverlapRemovalParameter::maxOverlapRemovalDRCutValue, CorrelationWithOverlapRemovalTemplate::CorrelationWithOverlapRemovalParameter::maxOverlapRemovalEtaCutValue, CorrelationWithOverlapRemovalTemplate::CorrelationWithOverlapRemovalParameter::maxOverlapRemovalPhiCutValue, CorrelationWithOverlapRemovalTemplate::CorrelationWithOverlapRemovalParameter::maxPhiCutValue, CorrelationWithOverlapRemovalTemplate::CorrelationWithOverlapRemovalParameter::minDRCutValue, CorrelationWithOverlapRemovalTemplate::CorrelationWithOverlapRemovalParameter::minEtaCutValue, CorrelationWithOverlapRemovalTemplate::CorrelationWithOverlapRemovalParameter::minMassCutValue, CorrelationWithOverlapRemovalTemplate::CorrelationWithOverlapRemovalParameter::minOverlapRemovalDRCutValue, CorrelationWithOverlapRemovalTemplate::CorrelationWithOverlapRemovalParameter::minOverlapRemovalEtaCutValue, CorrelationWithOverlapRemovalTemplate::CorrelationWithOverlapRemovalParameter::minOverlapRemovalPhiCutValue, CorrelationWithOverlapRemovalTemplate::CorrelationWithOverlapRemovalParameter::minPhiCutValue, configurableAnalysis::Muon, dataset::name, parseCaloCorr(), parseEnergySumCorr(), parseMuonCorr(), funct::pow(), CorrelationWithOverlapRemovalTemplate::CorrelationWithOverlapRemovalParameter::precDRCut, CorrelationWithOverlapRemovalTemplate::CorrelationWithOverlapRemovalParameter::precEtaCut, CorrelationWithOverlapRemovalTemplate::CorrelationWithOverlapRemovalParameter::precMassCut, CorrelationWithOverlapRemovalTemplate::CorrelationWithOverlapRemovalParameter::precOverlapRemovalDRCut, CorrelationWithOverlapRemovalTemplate::CorrelationWithOverlapRemovalParameter::precOverlapRemovalEtaCut, CorrelationWithOverlapRemovalTemplate::CorrelationWithOverlapRemovalParameter::precOverlapRemovalPhiCut, CorrelationWithOverlapRemovalTemplate::CorrelationWithOverlapRemovalParameter::precPhiCut, CorrelationWithOverlapRemovalTemplate::print(), CorrelationWithOverlapRemovalTemplate::setCond0Category(), CorrelationWithOverlapRemovalTemplate::setCond0Index(), CorrelationWithOverlapRemovalTemplate::setCond1Category(), CorrelationWithOverlapRemovalTemplate::setCond1Index(), CorrelationWithOverlapRemovalTemplate::setCond2Category(), CorrelationWithOverlapRemovalTemplate::setCond2Index(), GlobalCondition::setCondChipNr(), GlobalCondition::setCondGEq(), GlobalCondition::setCondType(), CorrelationWithOverlapRemovalTemplate::setCorrelationWithOverlapRemovalParameter(), GlobalCondition::setObjectType(), findQualityFiles::size, AlCaHLTBitMon_QueryRunRegistry::string, and l1t::Type2corWithOverlapRemoval.

Referenced by gtAlgorithmImplementation(), and parseCondFormats().

2976  {
2977 
2978  using namespace tmeventsetup;
2979 
2980  std::string condition = "corrWithOverlapRemoval";
2981  std::string particle = "test-fix" ;
2982  std::string type = l1t2string( corrCond.getType() );
2983  std::string name = l1t2string( corrCond.getName() );
2984 
2985  LogDebug("TriggerMenuParser") << " ****************************************** " << std::endl
2986  << " (in parseCorrelationWithOverlapRemoval) " << std::endl
2987  << " condition = " << condition << std::endl
2988  << " particle = " << particle << std::endl
2989  << " type = " << type << std::endl
2990  << " name = " << name << std::endl;
2991 
2992 
2993 
2994 
2995  // create a new correlation condition
2996  CorrelationWithOverlapRemovalTemplate correlationWORCond(name);
2997 
2998  // check that the condition does not exist already in the map
2999  if ( !insertConditionIntoMap(correlationWORCond, chipNr)) {
3000 
3001  edm::LogError("TriggerMenuParser")
3002  << " Error: duplicate correlation condition (" << name << ")"
3003  << std::endl;
3004 
3005  return false;
3006  }
3007 
3008 
3009 // Define some of the quantities to store the parased information
3010 
3011  // condition type BLW (Do we change this to the type of correlation condition?)
3013 
3014  // three objects (for sure)
3015  const int nrObj = 3;
3016 
3017  // object types and greater equal flag - filled in the loop
3018  int intGEq[nrObj] = { -1, -1, -1 };
3019  std::vector<GlobalObject> objType(nrObj); //BLW do we want to define these as a different type?
3020  std::vector<GtConditionCategory> condCateg(nrObj); //BLW do we want to change these categories
3021 
3022  // correlation flag and index in the cor*vector
3023  const bool corrFlag = true;
3024  int corrIndexVal[nrObj] = { -1, -1, -1 };
3025 
3026 
3027  // Storage of the correlation selection
3029  corrParameter.chargeCorrelation = 1; //ignore charge correlation for corr-legs
3030 
3031 // Get the correlation Cuts on the legs
3032  int cutType = 0;
3033  const std::vector<esCut>& cuts = corrCond.getCuts();
3034  for (size_t jj = 0; jj < cuts.size(); jj++)
3035  {
3036  const esCut cut = cuts.at(jj);
3037 
3038  if(cut.getCutType() == esCutType::ChargeCorrelation) {
3039  if( cut.getData()=="ls" ) corrParameter.chargeCorrelation = 2;
3040  else if( cut.getData()=="os" ) corrParameter.chargeCorrelation = 4;
3041  else corrParameter.chargeCorrelation = 1; //ignore charge correlation
3042  } else {
3043 
3044  //
3045  // Unitl utm has method to calculate these, do the integer value calculation with precision.
3046  //
3047  double minV = cut.getMinimum().value;
3048  double maxV = cut.getMaximum().value;
3049 
3050  //Scale down very large numbers out of xml
3051  if(maxV > 1.0e8) maxV = 1.0e8;
3052 
3053  if(cut.getCutType() == esCutType::DeltaEta) {
3054  //std::cout << "DeltaEta Cut minV = " << minV << " Max = " << maxV << " precMin = " << cut.getMinimum().index << " precMax = " << cut.getMaximum().index << std::endl;
3055  corrParameter.minEtaCutValue = (long long)(minV * pow(10.,cut.getMinimum().index));
3056  corrParameter.maxEtaCutValue = (long long)(maxV * pow(10.,cut.getMaximum().index));
3057  corrParameter.precEtaCut = cut.getMinimum().index;
3058  cutType = cutType | 0x1;
3059  } else if (cut.getCutType() == esCutType::DeltaPhi) {
3060  //std::cout << "DeltaPhi Cut minV = " << minV << " Max = " << maxV << " precMin = " << cut.getMinimum().index << " precMax = " << cut.getMaximum().index << std::endl;
3061  corrParameter.minPhiCutValue = (long long)(minV * pow(10.,cut.getMinimum().index));
3062  corrParameter.maxPhiCutValue = (long long)(maxV * pow(10.,cut.getMaximum().index));
3063  corrParameter.precPhiCut = cut.getMinimum().index;
3064  cutType = cutType | 0x2;
3065  } else if (cut.getCutType() == esCutType::DeltaR) {
3066  //std::cout << "DeltaR Cut minV = " << minV << " Max = " << maxV << " precMin = " << cut.getMinimum().index << " precMax = " << cut.getMaximum().index << std::endl;
3067  corrParameter.minDRCutValue = (long long)(minV * pow(10.,cut.getMinimum().index));
3068  corrParameter.maxDRCutValue = (long long)(maxV * pow(10.,cut.getMaximum().index));
3069  corrParameter.precDRCut = cut.getMinimum().index;
3070  cutType = cutType | 0x4;
3071  } else if (cut.getCutType() == esCutType::Mass) {
3072  //std::cout << "Mass Cut minV = " << minV << " Max = " << maxV << " precMin = " << cut.getMinimum().index << " precMax = " << cut.getMaximum().index << std::endl;
3073  corrParameter.minMassCutValue = (long long)(minV * pow(10.,cut.getMinimum().index));
3074  corrParameter.maxMassCutValue = (long long)(maxV * pow(10.,cut.getMaximum().index));
3075  corrParameter.precMassCut = cut.getMinimum().index;
3076  cutType = cutType | 0x8;
3077  }
3078  if(cut.getCutType() == esCutType::OverlapRemovalDeltaEta) {
3079  //std::cout << "OverlapRemovalDeltaEta Cut minV = " << minV << " Max = " << maxV << " precMin = " << cut.getMinimum().index << " precMax = " << cut.getMaximum().index << std::endl;
3080  corrParameter.minOverlapRemovalEtaCutValue = (long long)(minV * pow(10.,cut.getMinimum().index));
3081  corrParameter.maxOverlapRemovalEtaCutValue = (long long)(maxV * pow(10.,cut.getMaximum().index));
3082  corrParameter.precOverlapRemovalEtaCut = cut.getMinimum().index;
3083  cutType = cutType | 0x10;
3084  } else if (cut.getCutType() == esCutType::OverlapRemovalDeltaPhi) {
3085  //std::cout << "OverlapRemovalDeltaPhi Cut minV = " << minV << " Max = " << maxV << " precMin = " << cut.getMinimum().index << " precMax = " << cut.getMaximum().index << std::endl;
3086  corrParameter.minOverlapRemovalPhiCutValue = (long long)(minV * pow(10.,cut.getMinimum().index));
3087  corrParameter.maxOverlapRemovalPhiCutValue = (long long)(maxV * pow(10.,cut.getMaximum().index));
3088  corrParameter.precOverlapRemovalPhiCut = cut.getMinimum().index;
3089  cutType = cutType | 0x20;
3090  } else if (cut.getCutType() == esCutType::OverlapRemovalDeltaR) {
3091  //std::cout << "DeltaR Cut minV = " << minV << " Max = " << maxV << " precMin = " << cut.getMinimum().index << " precMax = " << cut.getMaximum().index << std::endl;
3092  corrParameter.minOverlapRemovalDRCutValue = (long long)(minV * pow(10.,cut.getMinimum().index));
3093  corrParameter.maxOverlapRemovalDRCutValue = (long long)(maxV * pow(10.,cut.getMaximum().index));
3094  corrParameter.precOverlapRemovalDRCut = cut.getMinimum().index;
3095  cutType = cutType | 0x40;
3096  }
3097 
3098  }
3099 
3100  }
3101  corrParameter.corrCutType = cutType;
3102 
3103 // Get the two objects that form the legs
3104  const std::vector<esObject>& objects = corrCond.getObjects();
3105  if(objects.size() != 3) {
3106  edm::LogError("TriggerMenuParser")
3107  << "incorrect number of objects for the correlation condition with overlap removal " << name << " corrFlag " << corrFlag << std::endl;
3108  return false;
3109  }
3110 
3111 // loop over legs
3112  for (size_t jj = 0; jj < objects.size(); jj++)
3113  {
3114  const esObject& object = objects.at(jj);
3115  //std::cout << " obj name = " << object.getName() << "\n";
3116  //std::cout << " obj type = " << object.getType() << "\n";
3117  //std::cout << " obj op = " << object.getComparisonOperator() << "\n";
3118  //std::cout << " obj bx = " << object.getBxOffset() << "\n";
3119  //std::cout << "type = done" << std::endl;
3120 
3121 
3122 // check the leg type
3123  if(object.getType() == esObjectType::Muon) {
3124  // we have a muon
3125 
3126 /*
3127  //BLW Hold on to this code we may need to go back to it at some point.
3128  // Now we are putting ALL leg conditions into the vector (so there are duplicates)
3129  // This is potentially a place to slim down the code. Note: We currently evaluate the
3130  // conditions every time, so even if we put the condition in the vector once, we would
3131  // still evaluate it multiple times. This is a place for optimization.
3132  {
3133 
3134  parseMuonCorr(&object,chipNr);
3135  corrIndexVal[jj] = (m_corMuonTemplate[chipNr]).size() - 1;
3136 
3137  } else {
3138  LogDebug("TriggerMenuParser") << "Not Adding Correlation Muon Condition to Map...looking for the condition in Muon Cor Vector" << std::endl;
3139  bool found = false;
3140  int index = 0;
3141  while(!found && index<(int)((m_corMuonTemplate[chipNr]).size()) ) {
3142  if( (m_corMuonTemplate[chipNr]).at(index).condName() == object.getName() ) {
3143  LogDebug("TriggerMenuParser") << "Found condition " << object.getName() << " in vector at index " << index << std::endl;
3144  found = true;
3145  } else {
3146  index++;
3147  }
3148  }
3149  if(found) {
3150  corrIndexVal[jj] = index;
3151  } else {
3152  edm::LogError("TriggerMenuParser") << "FAILURE: Condition " << object.getName() << " is in map but not in cor. vector " << std::endl;
3153  }
3154 
3155  }
3156 */
3157  parseMuonCorr(&object,chipNr);
3158  corrIndexVal[jj] = (m_corMuonTemplate[chipNr]).size() - 1;
3159 
3160  //Now set some flags for this subCondition
3161  intGEq[jj] = (object.getComparisonOperator() == esComparisonOperator::GE);
3162  objType[jj] = gtMu;
3163  condCateg[jj] = CondMuon;
3164 
3165  } else if(object.getType() == esObjectType::Egamma ||
3166  object.getType() == esObjectType::Jet ||
3167  object.getType() == esObjectType::Tau ) {
3168 
3169  // we have an Calo object
3170  parseCaloCorr(&object,chipNr);
3171  corrIndexVal[jj] = (m_corCaloTemplate[chipNr]).size() - 1;
3172 
3173  //Now set some flags for this subCondition
3174  intGEq[jj] = (object.getComparisonOperator() == esComparisonOperator::GE);
3175  switch(object.getType()) {
3176  case esObjectType::Egamma: {
3177  objType[jj] = gtEG;
3178  }
3179  break;
3180  case esObjectType::Jet: {
3181  objType[jj] = gtJet;
3182  }
3183  break;
3184  case esObjectType::Tau: {
3185  objType[jj] = gtTau;
3186  }
3187  break;
3188  default: {
3189  }
3190  break;
3191  }
3192  condCateg[jj] = CondCalo;
3193 
3194 
3195 
3196 
3197  } else if(object.getType() == esObjectType::ETM ||
3198  object.getType() == esObjectType::ETMHF ||
3199  object.getType() == esObjectType::TOWERCOUNT ||
3200  object.getType() == esObjectType::HTM ) {
3201 
3202  // we have Energy Sum
3203  parseEnergySumCorr(&object,chipNr);
3204  corrIndexVal[jj] = (m_corEnergySumTemplate[chipNr]).size() - 1;
3205 
3206  //Now set some flags for this subCondition
3207  intGEq[jj] = (object.getComparisonOperator() == esComparisonOperator::GE);
3208  switch(object.getType()) {
3209  case esObjectType::ETM: {
3210  objType[jj] = GlobalObject::gtETM;
3211  }
3212  break;
3213  case esObjectType::HTM: {
3214  objType[jj] = GlobalObject::gtHTM;
3215  }
3216  break;
3217  case esObjectType::ETMHF: {
3218  objType[jj] = GlobalObject::gtETMHF;
3219  }
3220  break;
3221  case esObjectType::TOWERCOUNT: {
3222  objType[jj] = GlobalObject::gtTowerCount;
3223  }
3224  break;
3225  default: {
3226  }
3227  break;
3228  }
3229  condCateg[jj] = CondEnergySum;
3230 
3231 
3232  } else {
3233 
3234  edm::LogError("TriggerMenuParser")
3235  << "Illegal Object Type " << object.getType()
3236  << " for the correlation condition " << name << std::endl;
3237  return false;
3238 
3239  } //if block on leg types
3240 
3241  } //loop over legs
3242 
3243 
3244  // get greater equal flag for the correlation condition
3245  bool gEq = true;
3246  if (intGEq[0] != intGEq[1]) {
3247  edm::LogError("TriggerMenuParser")
3248  << "Inconsistent GEq flags for sub-conditions "
3249  << " for the correlation condition " << name << std::endl;
3250  return false;
3251 
3252  }
3253  else {
3254  gEq = (intGEq[0] != 0);
3255 
3256  }
3257 
3258 
3259  // fill the correlation condition
3260  correlationWORCond.setCondType(cType);
3261  correlationWORCond.setObjectType(objType);
3262  correlationWORCond.setCondGEq(gEq);
3263  correlationWORCond.setCondChipNr(chipNr);
3264 
3265  correlationWORCond.setCond0Category(condCateg[0]);
3266  correlationWORCond.setCond1Category(condCateg[1]);
3267  correlationWORCond.setCond2Category(condCateg[2]);
3268 
3269  correlationWORCond.setCond0Index(corrIndexVal[0]);
3270  correlationWORCond.setCond1Index(corrIndexVal[1]);
3271  correlationWORCond.setCond2Index(corrIndexVal[2]);
3272 
3273  correlationWORCond.setCorrelationWithOverlapRemovalParameter(corrParameter);
3274 
3275  if (edm::isDebugEnabled() ) {
3276 
3277  std::ostringstream myCoutStream;
3278  correlationWORCond.print(myCoutStream);
3279  LogTrace("TriggerMenuParser") << myCoutStream.str() << "\n"
3280  << std::endl;
3281 
3282  }
3283 
3284  // insert condition into the map
3285  // condition is not duplicate, check was done at the beginning
3286 
3287  (m_vecCorrelationWithOverlapRemovalTemplate[chipNr]).push_back(correlationWORCond);
3288 
3289 
3290  //
3291  return true;
3292 }
#define LogDebug(id)
size
Write out results.
type
Definition: HCALResponse.h:21
bool isDebugEnabled()
Definition: L1GtObject.h:39
Definition: L1GtObject.h:36
std::vector< std::vector< EnergySumTemplate > > m_corEnergySumTemplate
std::vector< std::vector< CaloTemplate > > m_corCaloTemplate
std::vector< std::vector< CorrelationWithOverlapRemovalTemplate > > m_vecCorrelationWithOverlapRemovalTemplate
std::vector< std::vector< MuonTemplate > > m_corMuonTemplate
bool insertConditionIntoMap(GlobalCondition &cond, const int chipNr)
#define LogTrace(id)
bool parseCaloCorr(const tmeventsetup::esObject *corrCalo, unsigned int chipNr=0)
bool parseEnergySumCorr(const tmeventsetup::esObject *corrESum, unsigned int chipNr=0)
bool parseMuonCorr(const tmeventsetup::esObject *condMu, unsigned int chipNr=0)
Power< A, B >::type pow(const A &a, const B &b)
Definition: Power.h:40
void TriggerMenuParser::parseDeltaEta_Cosh_LUTS ( std::map< std::string, tmeventsetup::esScale >  scaleMap,
std::string  obj1,
std::string  obj2,
unsigned int  prec1,
unsigned int  prec2 
)
private

Definition at line 940 of file TriggerMenuParser.cc.

References m_gtScales, gen::n, l1t::GlobalScales::setLUT_Cosh(), l1t::GlobalScales::setLUT_DeltaEta(), and AlCaHLTBitMon_QueryRunRegistry::string.

Referenced by gtAlgorithmImplementation(), and parseScales().

941 {
942 
943  using namespace tmeventsetup;
944 
945  // First Delta Eta for this set
946  std::string scLabel1 = obj1;
947  scLabel1 += "-ETA";
948  std::string scLabel2 = obj2;
949  scLabel2 += "-ETA";
950 
951  //This LUT does not exist in L1 Menu file, don't fill it
952  if( scaleMap.find(scLabel1) == scaleMap.end() || scaleMap.find(scLabel2) == scaleMap.end()) return;
953 
954  const esScale* scale1 = &scaleMap.find(scLabel1)->second;
955  const esScale* scale2 = &scaleMap.find(scLabel2)->second;
956  std::vector<double> val_delta_eta;
957  std::vector<long long> lut_delta_eta;
958  size_t n = getDeltaVector(val_delta_eta, scale1, scale2);
959  setLut(lut_delta_eta, val_delta_eta, prec1);
960  std::string lutName = obj1;
961  lutName += "-";
962  lutName += obj2;
963  m_gtScales.setLUT_DeltaEta(lutName,lut_delta_eta,prec1);
964 
965  // Second Get the Cosh for this delta Eta Set
966  std::vector<long long> lut_cosh;
967  applyCosh(val_delta_eta, n);
968  setLut(lut_cosh, val_delta_eta, prec2);
969  m_gtScales.setLUT_Cosh(lutName,lut_cosh,prec2);
970 
971 }
virtual void setLUT_DeltaEta(std::string lutName, std::vector< long long > lut, unsigned int precision)
Definition: GlobalScales.cc:71
virtual void setLUT_Cosh(std::string lutName, std::vector< long long > lut, unsigned int precision)
void TriggerMenuParser::parseDeltaPhi_Cos_LUTS ( std::map< std::string, tmeventsetup::esScale >  scaleMap,
std::string  obj1,
std::string  obj2,
unsigned int  prec1,
unsigned int  prec2 
)
private

Definition at line 973 of file TriggerMenuParser.cc.

References m_gtScales, gen::n, l1t::GlobalScales::setLUT_Cos(), l1t::GlobalScales::setLUT_DeltaPhi(), and AlCaHLTBitMon_QueryRunRegistry::string.

Referenced by gtAlgorithmImplementation(), and parseScales().

974 {
975 
976  using namespace tmeventsetup;
977 
978  // First Delta phi for this set
979  std::string scLabel1 = obj1;
980  scLabel1 += "-PHI";
981  std::string scLabel2 = obj2;
982  scLabel2 += "-PHI";
983 
984  //This LUT does not exist in L1 Menu file, don't fill it
985  if( scaleMap.find(scLabel1) == scaleMap.end() || scaleMap.find(scLabel2) == scaleMap.end()) return;
986 
987  const esScale* scale1 = &scaleMap.find(scLabel1)->second;
988  const esScale* scale2 = &scaleMap.find(scLabel2)->second;
989  std::vector<double> val_delta_phi;
990  std::vector<long long> lut_delta_phi;
991  size_t n = getDeltaVector(val_delta_phi, scale1, scale2);
992  setLut(lut_delta_phi, val_delta_phi, prec1);
993  std::string lutName = obj1;
994  lutName += "-";
995  lutName += obj2;
996  m_gtScales.setLUT_DeltaPhi(lutName,lut_delta_phi,prec1);
997 
998  // Second Get the Cosh for this delta phi Set
999  std::vector<long long> lut_cos;
1000  applyCos(val_delta_phi, n);
1001  setLut(lut_cos, val_delta_phi, prec2);
1002  m_gtScales.setLUT_Cos(lutName,lut_cos,prec2);
1003 
1004 }
virtual void setLUT_Cos(std::string lutName, std::vector< long long > lut, unsigned int precision)
virtual void setLUT_DeltaPhi(std::string lutName, std::vector< long long > lut, unsigned int precision)
Definition: GlobalScales.cc:87
bool TriggerMenuParser::parseEnergySum ( tmeventsetup::esCondition  condEnergySum,
unsigned int  chipNr = 0,
const bool  corrFlag = false 
)
private

parse an "energy sum" condition

parseEnergySum Parse an "energy sum" condition and insert an entry to the conditions map

Parameters
nodeThe corresponding node.
nameThe name of the condition.
chipNrThe number of the chip this condition is located.
Returns
"true" if succeeded, "false" if an error occurred.

Definition at line 2123 of file TriggerMenuParser.cc.

References TkAlMuonSelectors_cfi::cut, particleFlowClusterECALTimeSelected_cfi::cuts, TauDecayModes::dec, reco::tau::disc::Eta(), l1t::gtETM, l1t::gtETMHF, l1t::gtETT, l1t::gtETTem, l1t::gtHTM, l1t::gtHTT, l1t::gtMinBiasHFM0, l1t::gtMinBiasHFM1, l1t::gtMinBiasHFP0, l1t::gtMinBiasHFP1, l1t::gtTowerCount, insertConditionIntoMap(), edm::isDebugEnabled(), findQualityFiles::jj, GetRecoTauVFromDQM_MC_cff::kk, l1t2string(), LogDebug, LogTrace, m_corEnergySumTemplate, m_vecEnergySumTemplate, dataset::name, colinearityKinematic::Phi, EnergySumTemplate::print(), GlobalCondition::setCondChipNr(), GlobalCondition::setCondGEq(), EnergySumTemplate::setConditionParameter(), GlobalCondition::setCondRelativeBx(), GlobalCondition::setCondType(), GlobalCondition::setObjectType(), AlCaHLTBitMon_QueryRunRegistry::string, jetExtractorBlock_cff::Threshold, l1t::TypeETM, l1t::TypeETMHF, l1t::TypeETT, l1t::TypeETTem, l1t::TypeHTM, l1t::TypeHTT, l1t::TypeMinBiasHFM0, l1t::TypeMinBiasHFM1, l1t::TypeMinBiasHFP0, l1t::TypeMinBiasHFP1, and l1t::TypeTowerCount.

Referenced by gtAlgorithmImplementation(), and parseCondFormats().

2124  {
2125 
2126 
2127 // XERCES_CPP_NAMESPACE_USE
2128  using namespace tmeventsetup;
2129 
2130  // get condition, particle name and type name
2131 
2132  std::string condition = "calo";
2133  std::string type = l1t2string( condEnergySum.getType() );
2134  std::string name = l1t2string( condEnergySum.getName() );
2135 
2136  LogDebug("TriggerMenuParser")
2137  << "\n ****************************************** "
2138  << "\n (in parseEnergySum) "
2139  << "\n condition = " << condition
2140  << "\n type = " << type
2141  << "\n name = " << name
2142  << std::endl;
2143 
2144 
2145 
2146  // determine object type type
2147  GlobalObject energySumObjType;
2148  GtConditionType cType;
2149 
2150  if( condEnergySum.getType() == esConditionType::MissingEt ){
2151  energySumObjType = GlobalObject::gtETM;
2152  cType = TypeETM;
2153  }
2154  else if( condEnergySum.getType() == esConditionType::TotalEt ){
2155  energySumObjType = GlobalObject::gtETT;
2156  cType = TypeETT;
2157  }
2158  else if( condEnergySum.getType() == esConditionType::TotalEtEM ){
2159  energySumObjType = GlobalObject::gtETTem;
2160  cType = TypeETTem;
2161  }
2162  else if( condEnergySum.getType() == esConditionType::TotalHt ){
2163  energySumObjType = GlobalObject::gtHTT;
2164  cType = TypeHTT;
2165  }
2166  else if( condEnergySum.getType() == esConditionType::MissingHt ){
2167  energySumObjType = GlobalObject::gtHTM;
2168  cType = TypeHTM;
2169  }
2170  else if( condEnergySum.getType() == esConditionType::MissingEtHF ){
2171  energySumObjType = GlobalObject::gtETMHF;
2172  cType = TypeETMHF;
2173  }
2174  else if( condEnergySum.getType() == esConditionType::TowerCount ){
2175  energySumObjType = GlobalObject::gtTowerCount;
2176  cType = TypeTowerCount;
2177  }
2178  else if( condEnergySum.getType() == esConditionType::MinBiasHFP0 ){
2179  energySumObjType = GlobalObject::gtMinBiasHFP0;
2180  cType = TypeMinBiasHFP0;
2181  }
2182  else if( condEnergySum.getType() == esConditionType::MinBiasHFM0 ){
2183  energySumObjType = GlobalObject::gtMinBiasHFM0;
2184  cType = TypeMinBiasHFM0;
2185  }
2186  else if( condEnergySum.getType() == esConditionType::MinBiasHFP1 ){
2187  energySumObjType = GlobalObject::gtMinBiasHFP1;
2188  cType = TypeMinBiasHFP1;
2189  }
2190  else if( condEnergySum.getType() == esConditionType::MinBiasHFM1 ){
2191  energySumObjType = GlobalObject::gtMinBiasHFM1;
2192  cType = TypeMinBiasHFM1;
2193  }
2194  else {
2195  edm::LogError("TriggerMenuParser")
2196  << "Wrong type for energy-sum condition (" << type
2197  << ")" << std::endl;
2198  return false;
2199  }
2200 
2201 
2202 
2203  // global object
2204  int nrObj = 1;
2205 
2206 // std::string str_etComparison = l1t2string( condEnergySum.comparison_operator() );
2207 
2208  // get values
2209 
2210  // temporary storage of the parameters
2211  std::vector<EnergySumTemplate::ObjectParameter> objParameter(nrObj);
2212 
2213 
2214  int cnt = 0;
2215 
2216 // BLW TO DO: These needs to the added to the object rather than the whole condition.
2217  int relativeBx = 0;
2218  bool gEq = false;
2219 
2220 // l1t::EnergySumsObjectRequirement objPar = condEnergySum.objectRequirement();
2221 
2222 // Loop over objects and extract the cuts on the objects
2223  const std::vector<esObject>& objects = condEnergySum.getObjects();
2224  for (size_t jj = 0; jj < objects.size(); jj++) {
2225 
2226  const esObject object = objects.at(jj);
2227  gEq = (object.getComparisonOperator() == esComparisonOperator::GE);
2228 
2229 // BLW TO DO: This needs to be added to the Object Parameters
2230  relativeBx = object.getBxOffset();
2231 
2232 // Loop over the cuts for this object
2233  int lowerThresholdInd = 0;
2234  int upperThresholdInd = -1;
2235  int cntPhi = 0;
2236  unsigned int phiWindow1Lower=-1, phiWindow1Upper=-1, phiWindow2Lower=-1, phiWindow2Upper=-1;
2237 
2238 
2239  const std::vector<esCut>& cuts = object.getCuts();
2240  for (size_t kk = 0; kk < cuts.size(); kk++)
2241  {
2242  const esCut cut = cuts.at(kk);
2243 
2244  switch(cut.getCutType()){
2245  case esCutType::Threshold:
2246  lowerThresholdInd = cut.getMinimum().index;
2247  upperThresholdInd = cut.getMaximum().index;
2248  break;
2249 
2250  case esCutType::Eta:
2251  break;
2252 
2253  case esCutType::Phi: {
2254 
2255  if(cntPhi == 0) {
2256  phiWindow1Lower = cut.getMinimum().index;
2257  phiWindow1Upper = cut.getMaximum().index;
2258  } else if(cntPhi == 1) {
2259  phiWindow2Lower = cut.getMinimum().index;
2260  phiWindow2Upper = cut.getMaximum().index;
2261  } else {
2262  edm::LogError("TriggerMenuParser") << "Too Many Phi Cuts for esum-condition ("
2263  << type << ")" << std::endl;
2264  return false;
2265  }
2266  cntPhi++;
2267 
2268  }
2269  break;
2270 
2271  case esCutType::Count:
2272  lowerThresholdInd = cut.getMinimum().index;
2273  upperThresholdInd = 0xffffff;
2274  break;
2275 
2276  default:
2277  break;
2278  } //end switch
2279 
2280  } //end loop over cuts
2281 
2282 
2283 
2284  // Fill the object parameters
2285  objParameter[cnt].etLowThreshold = lowerThresholdInd;
2286  objParameter[cnt].etHighThreshold = upperThresholdInd;
2287  objParameter[cnt].phiWindow1Lower = phiWindow1Lower;
2288  objParameter[cnt].phiWindow1Upper = phiWindow1Upper;
2289  objParameter[cnt].phiWindow2Lower = phiWindow2Lower;
2290  objParameter[cnt].phiWindow2Upper = phiWindow2Upper;
2291 
2292 
2293  // Output for debugging
2294  LogDebug("TriggerMenuParser")
2295  << "\n EnergySum ET high threshold (hex) for energy sum object " << cnt << " = "
2296  << std::hex << objParameter[cnt].etLowThreshold << " - " << objParameter[cnt].etHighThreshold
2297  << "\n phiWindow Lower / Upper for calo object " << cnt << " = 0x"
2298  << objParameter[cnt].phiWindow1Lower << " / 0x" << objParameter[cnt].phiWindow1Upper
2299  << "\n phiWindowVeto Lower / Upper for calo object " << cnt << " = 0x"
2300  << objParameter[cnt].phiWindow2Lower << " / 0x" << objParameter[cnt].phiWindow2Upper << std::dec
2301  << std::endl;
2302 
2303  cnt++;
2304  } //end loop over objects
2305 
2306  // object types - all same energySumObjType
2307  std::vector<GlobalObject> objType(nrObj, energySumObjType);
2308 
2309  // now create a new energySum condition
2310 
2311  EnergySumTemplate energySumCond(name);
2312 
2313  energySumCond.setCondType(cType);
2314  energySumCond.setObjectType(objType);
2315  energySumCond.setCondGEq(gEq);
2316  energySumCond.setCondChipNr(chipNr);
2317  energySumCond.setCondRelativeBx(relativeBx);
2318 
2319  energySumCond.setConditionParameter(objParameter);
2320 
2321  if (edm::isDebugEnabled() ) {
2322 
2323  std::ostringstream myCoutStream;
2324  energySumCond.print(myCoutStream);
2325  LogTrace("TriggerMenuParser") << myCoutStream.str() << "\n" << std::endl;
2326 
2327  }
2328 
2329  // insert condition into the map
2330  if ( !insertConditionIntoMap(energySumCond, chipNr)) {
2331 
2332  edm::LogError("TriggerMenuParser")
2333  << " Error: duplicate condition (" << name << ")"
2334  << std::endl;
2335 
2336  return false;
2337  }
2338  else {
2339 
2340  if (corrFlag) {
2341  (m_corEnergySumTemplate[chipNr]).push_back(energySumCond);
2342 
2343  }
2344  else {
2345  (m_vecEnergySumTemplate[chipNr]).push_back(energySumCond);
2346  }
2347 
2348  }
2349 
2350 
2351 
2352  //
2353  return true;
2354 }
#define LogDebug(id)
type
Definition: HCALResponse.h:21
bool isDebugEnabled()
std::vector< std::vector< EnergySumTemplate > > m_corEnergySumTemplate
bool insertConditionIntoMap(GlobalCondition &cond, const int chipNr)
#define LogTrace(id)
std::vector< std::vector< EnergySumTemplate > > m_vecEnergySumTemplate
bool TriggerMenuParser::parseEnergySumCorr ( const tmeventsetup::esObject *  corrESum,
unsigned int  chipNr = 0 
)
private

parseEnergySum Parse an "energy sum" condition and insert an entry to the conditions map

Parameters
nodeThe corresponding node.
nameThe name of the condition.
chipNrThe number of the chip this condition is located.
Returns
"true" if succeeded, "false" if an error occurred.

Definition at line 2368 of file TriggerMenuParser.cc.

References TkAlMuonSelectors_cfi::cut, particleFlowClusterECALTimeSelected_cfi::cuts, TauDecayModes::dec, reco::tau::disc::Eta(), ETM, l1t::gtETM, l1t::gtETMHF, l1t::gtHTM, l1t::gtTowerCount, HTM, edm::isDebugEnabled(), GetRecoTauVFromDQM_MC_cff::kk, l1t2string(), LogDebug, LogTrace, m_corEnergySumTemplate, dataset::name, colinearityKinematic::Phi, EnergySumTemplate::print(), GlobalCondition::setCondChipNr(), GlobalCondition::setCondGEq(), EnergySumTemplate::setConditionParameter(), GlobalCondition::setCondRelativeBx(), GlobalCondition::setCondType(), GlobalCondition::setObjectType(), AlCaHLTBitMon_QueryRunRegistry::string, jetExtractorBlock_cff::Threshold, l1t::TypeETM, l1t::TypeETMHF, l1t::TypeHTM, and l1t::TypeTowerCount.

Referenced by gtAlgorithmImplementation(), parseCorrelation(), and parseCorrelationWithOverlapRemoval().

2369  {
2370 
2371 
2372 // XERCES_CPP_NAMESPACE_USE
2373  using namespace tmeventsetup;
2374 
2375  // get condition, particle name and type name
2376 
2377  std::string condition = "calo";
2378  std::string type = l1t2string( corrESum->getType() );
2379  std::string name = l1t2string( corrESum->getName() );
2380 
2381  LogDebug("TriggerMenuParser")
2382  << "\n ****************************************** "
2383  << "\n (in parseEnergySum) "
2384  << "\n condition = " << condition
2385  << "\n type = " << type
2386  << "\n name = " << name
2387  << std::endl;
2388 
2389 
2390 
2391  // determine object type type
2392  GlobalObject energySumObjType;
2393  GtConditionType cType;
2394 
2395  if( corrESum->getType()== esObjectType::ETM ){
2396  energySumObjType = GlobalObject::gtETM;
2397  cType = TypeETM;
2398  }
2399  else if( corrESum->getType()== esObjectType::HTM ){
2400  energySumObjType = GlobalObject::gtHTM;
2401  cType = TypeHTM;
2402  }
2403  else if( corrESum->getType()== esObjectType::ETMHF ){
2404  energySumObjType = GlobalObject::gtETMHF;
2405  cType = TypeETMHF;
2406  }
2407  else if( corrESum->getType()== esObjectType::TOWERCOUNT ){
2408  energySumObjType = GlobalObject::gtTowerCount;
2409  cType = TypeTowerCount;
2410  }
2411  else {
2412  edm::LogError("TriggerMenuParser")
2413  << "Wrong type for energy-sum correclation condition (" << type
2414  << ")" << std::endl;
2415  return false;
2416  }
2417 
2418 
2419 
2420  // global object
2421  int nrObj = 1;
2422 
2423 // std::string str_etComparison = l1t2string( condEnergySum.comparison_operator() );
2424 
2425  // get values
2426 
2427  // temporary storage of the parameters
2428  std::vector<EnergySumTemplate::ObjectParameter> objParameter(nrObj);
2429 
2430 
2431  int cnt = 0;
2432 
2433 // BLW TO DO: These needs to the added to the object rather than the whole condition.
2434  int relativeBx = 0;
2435  bool gEq = false;
2436 
2437 // l1t::EnergySumsObjectRequirement objPar = condEnergySum.objectRequirement();
2438 
2439 
2440  gEq = (corrESum->getComparisonOperator() == esComparisonOperator::GE);
2441 
2442 // BLW TO DO: This needs to be added to the Object Parameters
2443  relativeBx = corrESum->getBxOffset();
2444 
2445 // Loop over the cuts for this object
2446  int lowerThresholdInd = 0;
2447  int upperThresholdInd = -1;
2448  int cntPhi = 0;
2449  unsigned int phiWindow1Lower=-1, phiWindow1Upper=-1, phiWindow2Lower=-1, phiWindow2Upper=-1;
2450 
2451 
2452  const std::vector<esCut>& cuts = corrESum->getCuts();
2453  for (size_t kk = 0; kk < cuts.size(); kk++)
2454  {
2455  const esCut cut = cuts.at(kk);
2456 
2457  switch(cut.getCutType()){
2458  case esCutType::Threshold:
2459  lowerThresholdInd = cut.getMinimum().index;
2460  upperThresholdInd = cut.getMaximum().index;
2461  break;
2462 
2463  case esCutType::Eta:
2464  break;
2465 
2466  case esCutType::Phi: {
2467 
2468  if(cntPhi == 0) {
2469  phiWindow1Lower = cut.getMinimum().index;
2470  phiWindow1Upper = cut.getMaximum().index;
2471  } else if(cntPhi == 1) {
2472  phiWindow2Lower = cut.getMinimum().index;
2473  phiWindow2Upper = cut.getMaximum().index;
2474  } else {
2475  edm::LogError("TriggerMenuParser") << "Too Many Phi Cuts for esum-condition ("
2476  << type << ")" << std::endl;
2477  return false;
2478  }
2479  cntPhi++;
2480 
2481  }
2482  break;
2483 
2484  default:
2485  break;
2486  } //end switch
2487 
2488  } //end loop over cuts
2489 
2490 
2491 
2492  // Fill the object parameters
2493  objParameter[0].etLowThreshold = lowerThresholdInd;
2494  objParameter[0].etHighThreshold = upperThresholdInd;
2495  objParameter[0].phiWindow1Lower = phiWindow1Lower;
2496  objParameter[0].phiWindow1Upper = phiWindow1Upper;
2497  objParameter[0].phiWindow2Lower = phiWindow2Lower;
2498  objParameter[0].phiWindow2Upper = phiWindow2Upper;
2499 
2500 
2501  // Output for debugging
2502  LogDebug("TriggerMenuParser")
2503  << "\n EnergySum ET high threshold (hex) for energy sum object " << cnt << " = "
2504  << std::hex << objParameter[0].etLowThreshold << " - " << objParameter[0].etLowThreshold
2505  << "\n phiWindow Lower / Upper for calo object " << cnt << " = 0x"
2506  << objParameter[0].phiWindow1Lower << " / 0x" << objParameter[0].phiWindow1Upper
2507  << "\n phiWindowVeto Lower / Upper for calo object " << cnt << " = 0x"
2508  << objParameter[0].phiWindow2Lower << " / 0x" << objParameter[0].phiWindow2Upper << std::dec
2509  << std::endl;
2510 
2511 
2512  // object types - all same energySumObjType
2513  std::vector<GlobalObject> objType(nrObj, energySumObjType);
2514 
2515  // now create a new energySum condition
2516 
2517  EnergySumTemplate energySumCond(name);
2518 
2519  energySumCond.setCondType(cType);
2520  energySumCond.setObjectType(objType);
2521  energySumCond.setCondGEq(gEq);
2522  energySumCond.setCondChipNr(chipNr);
2523  energySumCond.setCondRelativeBx(relativeBx);
2524 
2525  energySumCond.setConditionParameter(objParameter);
2526 
2527  if (edm::isDebugEnabled() ) {
2528 
2529  std::ostringstream myCoutStream;
2530  energySumCond.print(myCoutStream);
2531  LogTrace("TriggerMenuParser") << myCoutStream.str() << "\n" << std::endl;
2532 
2533  }
2534 /*
2535  // insert condition into the map
2536  if ( !insertConditionIntoMap(energySumCond, chipNr)) {
2537 
2538  edm::LogError("TriggerMenuParser")
2539  << " Error: duplicate condition (" << name << ")"
2540  << std::endl;
2541 
2542  return false;
2543  }
2544  else {
2545 
2546  (m_corEnergySumTemplate[chipNr]).push_back(energySumCond);
2547 
2548  }
2549 */
2550  (m_corEnergySumTemplate[chipNr]).push_back(energySumCond);
2551 
2552 
2553  //
2554  return true;
2555 }
#define LogDebug(id)
type
Definition: HCALResponse.h:21
bool isDebugEnabled()
Definition: L1GtObject.h:39
Definition: L1GtObject.h:36
std::vector< std::vector< EnergySumTemplate > > m_corEnergySumTemplate
#define LogTrace(id)
bool TriggerMenuParser::parseExternal ( tmeventsetup::esCondition  condExt,
unsigned int  chipNr = 0 
)
private

parseExternal Parse an External condition and insert an entry to the conditions map

Parameters
nodeThe corresponding node.
nameThe name of the condition.
chipNrThe number of the chip this condition is located.
Returns
"true" if succeeded, "false" if an error occurred.

Definition at line 2571 of file TriggerMenuParser.cc.

References l1t::gtExternal, insertConditionIntoMap(), findQualityFiles::jj, l1t2string(), LogDebug, LogTrace, m_vecExternalTemplate, dataset::name, GlobalCondition::setCondChipNr(), GlobalCondition::setCondGEq(), GlobalCondition::setCondRelativeBx(), GlobalCondition::setCondType(), ExternalTemplate::setExternalChannel(), GlobalCondition::setObjectType(), AlCaHLTBitMon_QueryRunRegistry::string, and l1t::TypeExternal.

Referenced by gtAlgorithmImplementation(), and parseCondFormats().

2572  {
2573 
2574 
2575  using namespace tmeventsetup;
2576 
2577 
2578  // get condition, particle name and type name
2579  std::string condition = "ext";
2580  std::string particle = "test-fix";
2581  std::string type = l1t2string( condExt.getType() );
2582  std::string name = l1t2string( condExt.getName() );
2583 
2584 
2585  LogDebug("TriggerMenuParser")
2586  << "\n ****************************************** "
2587  << "\n (in parseExternal) "
2588  << "\n condition = " << condition
2589  << "\n particle = " << particle
2590  << "\n type = " << type
2591  << "\n name = " << name
2592  << std::endl;
2593 
2594 
2595  // object type and condition type
2596  // object type - irrelevant for External conditions
2597  GtConditionType cType = TypeExternal;
2598  GlobalObject extSignalType = GlobalObject::gtExternal;
2599  int nrObj = 1; //only one object for these conditions
2600 
2601  int relativeBx = 0;
2602  unsigned int channelID = 0;
2603 
2604  // Get object for External conditions
2605  const std::vector<esObject>& objects = condExt.getObjects();
2606  for (size_t jj = 0; jj < objects.size(); jj++) {
2607 
2608  const esObject object = objects.at(jj);
2609  if(object.getType() == esObjectType::EXT) {
2610  relativeBx = object.getBxOffset();
2611  channelID = object.getExternalChannelId();
2612  }
2613  }
2614 
2615 
2616  // set the boolean value for the ge_eq mode - irrelevant for External conditions
2617  bool gEq = false;
2618 
2619  //object types - all same for external conditions
2620  std::vector<GlobalObject> objType(nrObj, extSignalType);
2621 
2622  // now create a new External condition
2623  ExternalTemplate externalCond(name);
2624 
2625  externalCond.setCondType(cType);
2626  externalCond.setObjectType(objType);
2627  externalCond.setCondGEq(gEq);
2628  externalCond.setCondChipNr(chipNr);
2629  externalCond.setCondRelativeBx(relativeBx);
2630  externalCond.setExternalChannel(channelID);
2631 
2632  LogTrace("TriggerMenuParser")
2633  << externalCond << "\n" << std::endl;
2634 
2635  // insert condition into the map
2636  if ( !insertConditionIntoMap(externalCond, chipNr)) {
2637 
2638  edm::LogError("TriggerMenuParser")
2639  << " Error: duplicate condition (" << name
2640  << ")" << std::endl;
2641 
2642  return false;
2643  } else {
2644 
2645  (m_vecExternalTemplate[chipNr]).push_back(externalCond);
2646 
2647  }
2648 
2649  return true;
2650 }
#define LogDebug(id)
type
Definition: HCALResponse.h:21
bool insertConditionIntoMap(GlobalCondition &cond, const int chipNr)
#define LogTrace(id)
std::vector< std::vector< ExternalTemplate > > m_vecExternalTemplate
bool TriggerMenuParser::parseMuon ( tmeventsetup::esCondition  condMu,
unsigned int  chipNr = 0,
const bool  corrFlag = false 
)
private

parse a muon condition

parseMuon Parse a muon condition and insert an entry to the conditions map

Parameters
nodeThe corresponding node.
nameThe name of the condition.
chipNrThe number of the chip this condition is located.
Returns
"true" if succeeded, "false" if an error occurred.

Definition at line 1017 of file TriggerMenuParser.cc.

References ALCARECOTkAlJpsiMuMu_cff::charge, MuonTemplate::CorrelationParameter::chargeCorrelation, TkAlMuonSelectors_cfi::cut, particleFlowClusterECALTimeSelected_cfi::cuts, reco::tau::disc::Eta(), l1t::gtMu, insertConditionIntoMap(), createfilelist::int, edm::isDebugEnabled(), findQualityFiles::jj, GetRecoTauVFromDQM_MC_cff::kk, l1t2string(), l1tstr2int(), LogDebug, LogTrace, m_corMuonTemplate, m_vecMuonTemplate, dataset::name, colinearityKinematic::Phi, MuonTemplate::print(), GlobalCondition::setCondChipNr(), GlobalCondition::setCondGEq(), MuonTemplate::setConditionParameter(), GlobalCondition::setCondRelativeBx(), GlobalCondition::setCondType(), GlobalCondition::setObjectType(), AlCaHLTBitMon_QueryRunRegistry::string, jetExtractorBlock_cff::Threshold, l1t::Type1s, l1t::Type2s, l1t::Type3s, l1t::Type4s, and l1t::TypeNull.

Referenced by gtAlgorithmImplementation(), and parseCondFormats().

1018  {
1019 
1020  using namespace tmeventsetup;
1021 
1022  // get condition, particle name (must be muon) and type name
1023  std::string condition = "muon";
1024  std::string particle = "muon";//l1t2string( condMu.objectType() );
1025  std::string type = l1t2string( condMu.getType() );
1026  std::string name = l1t2string( condMu.getName() );
1027  int nrObj = -1;
1028 
1029 
1030 
1031  GtConditionType cType = l1t::TypeNull;
1032 
1033  if (condMu.getType() == esConditionType::SingleMuon) {
1034  type = "1_s";
1035  cType = l1t::Type1s;
1036  nrObj = 1;
1037  } else if (condMu.getType() == esConditionType::DoubleMuon) {
1038  type = "2_s";
1039  cType = l1t::Type2s;
1040  nrObj = 2;
1041  } else if (condMu.getType() == esConditionType::TripleMuon) {
1042  type = "3";
1043  cType = l1t::Type3s;
1044  nrObj = 3;
1045  } else if (condMu.getType() == esConditionType::QuadMuon) {
1046  type = "4";
1047  cType = l1t::Type4s;
1048  nrObj = 4;
1049  } else {
1050  edm::LogError("TriggerMenuParser") << "Wrong type for muon-condition ("
1051  << type << ")" << std::endl;
1052  return false;
1053  }
1054 
1055  if (nrObj < 0) {
1056  edm::LogError("TriggerMenuParser") << "Unknown type for muon-condition (" << type
1057  << ")" << "\nCan not determine number of trigger objects. " << std::endl;
1058  return false;
1059  }
1060 
1061  LogDebug("TriggerMenuParser")
1062  << "\n ****************************************** "
1063  << "\n parseMuon "
1064  << "\n condition = " << condition
1065  << "\n particle = " << particle
1066  << "\n type = " << type
1067  << "\n name = " << name
1068  << std::endl;
1069 
1070 
1071 
1072 // // get values
1073 
1074  // temporary storage of the parameters
1075  std::vector<MuonTemplate::ObjectParameter> objParameter(nrObj);
1076 
1077  // Do we need this?
1078  MuonTemplate::CorrelationParameter corrParameter;
1079 
1080  // need at least two values for deltaPhi
1081  std::vector<boost::uint64_t> tmpValues((nrObj > 2) ? nrObj : 2);
1082  tmpValues.reserve( nrObj );
1083 
1084  if( int(condMu.getObjects().size())!=nrObj ){
1085  edm::LogError("TriggerMenuParser") << " condMu objects: nrObj = " << nrObj
1086  << "condMu.getObjects().size() = "
1087  << condMu.getObjects().size()
1088  << std::endl;
1089  return false;
1090  }
1091 
1092 
1093 // Look for cuts on the objects in the condition
1094  unsigned int chargeCorrelation = 1;
1095  const std::vector<esCut>& cuts = condMu.getCuts();
1096  for (size_t jj = 0; jj < cuts.size(); jj++)
1097  {
1098  const esCut cut = cuts.at(jj);
1099  if(cut.getCutType() == esCutType::ChargeCorrelation) {
1100  if( cut.getData()=="ls" ) chargeCorrelation = 2;
1101  else if( cut.getData()=="os" ) chargeCorrelation = 4;
1102  else chargeCorrelation = 1; //ignore correlation
1103  }
1104  }
1105 
1106  //set charge correlation parameter
1107  corrParameter.chargeCorrelation = chargeCorrelation;//tmpValues[0];
1108 
1109 
1110  int cnt = 0;
1111 
1112 
1113 // BLW TO DO: These needs to the added to the object rather than the whole condition.
1114  int relativeBx = 0;
1115  bool gEq = false;
1116 
1117 // Loop over objects and extract the cuts on the objects
1118  const std::vector<esObject>& objects = condMu.getObjects();
1119  for (size_t jj = 0; jj < objects.size(); jj++) {
1120 
1121  const esObject object = objects.at(jj);
1122  gEq = (object.getComparisonOperator() == esComparisonOperator::GE);
1123 
1124 // BLW TO DO: This needs to be added to the Object Parameters
1125  relativeBx = object.getBxOffset();
1126 
1127 // Loop over the cuts for this object
1128  int upperThresholdInd = -1;
1129  int lowerThresholdInd = 0;
1130  int upperIndexInd = -1;
1131  int lowerIndexInd = 0;
1132  int cntEta = 0;
1133  unsigned int etaWindow1Lower=-1, etaWindow1Upper=-1, etaWindow2Lower=-1, etaWindow2Upper=-1;
1134  int cntPhi = 0;
1135  unsigned int phiWindow1Lower=-1, phiWindow1Upper=-1, phiWindow2Lower=-1, phiWindow2Upper=-1;
1136  int isolationLUT = 0xF; //default is to ignore unless specified.
1137  int charge = -1; //default value is to ignore unless specified
1138  int qualityLUT = 0xFFFF; //default is to ignore unless specified.
1139 
1140  const std::vector<esCut>& cuts = object.getCuts();
1141  for (size_t kk = 0; kk < cuts.size(); kk++)
1142  {
1143  const esCut cut = cuts.at(kk);
1144 
1145  switch(cut.getCutType()){
1146  case esCutType::Threshold:
1147  lowerThresholdInd = cut.getMinimum().index;
1148  upperThresholdInd = cut.getMaximum().index;
1149  break;
1150 
1151  case esCutType::Index:
1152  lowerIndexInd = int(cut.getMinimum().value);
1153  upperIndexInd = int(cut.getMaximum().value);
1154  break;
1155 
1156  case esCutType::Eta: {
1157 
1158  if(cntEta == 0) {
1159  etaWindow1Lower = cut.getMinimum().index;
1160  etaWindow1Upper = cut.getMaximum().index;
1161  } else if(cntEta == 1) {
1162  etaWindow2Lower = cut.getMinimum().index;
1163  etaWindow2Upper = cut.getMaximum().index;
1164  } else {
1165  edm::LogError("TriggerMenuParser") << "Too Many Eta Cuts for muon-condition ("
1166  << particle << ")" << std::endl;
1167  return false;
1168  }
1169  cntEta++;
1170 
1171  } break;
1172 
1173  case esCutType::Phi: {
1174 
1175  if(cntPhi == 0) {
1176  phiWindow1Lower = cut.getMinimum().index;
1177  phiWindow1Upper = cut.getMaximum().index;
1178  } else if(cntPhi == 1) {
1179  phiWindow2Lower = cut.getMinimum().index;
1180  phiWindow2Upper = cut.getMaximum().index;
1181  } else {
1182  edm::LogError("TriggerMenuParser") << "Too Many Phi Cuts for muon-condition ("
1183  << particle << ")" << std::endl;
1184  return false;
1185  }
1186  cntPhi++;
1187 
1188  }break;
1189 
1190  case esCutType::Charge:
1191  if( cut.getData()=="positive" ) charge = 0;
1192  else if( cut.getData()=="negative" ) charge = 1;
1193  else charge = -1;
1194  break;
1195  case esCutType::Quality:
1196 
1197  qualityLUT = l1tstr2int(cut.getData());
1198 
1199  break;
1200  case esCutType::Isolation: {
1201 
1202  isolationLUT = l1tstr2int(cut.getData());
1203 
1204  } break;
1205  default:
1206  break;
1207  } //end switch
1208 
1209  } //end loop over cuts
1210 
1211 
1212 // Set the parameter cuts
1213  objParameter[cnt].ptHighThreshold = upperThresholdInd;
1214  objParameter[cnt].ptLowThreshold = lowerThresholdInd;
1215 
1216  objParameter[cnt].indexHigh = upperIndexInd;
1217  objParameter[cnt].indexLow = lowerIndexInd;
1218 
1219  objParameter[cnt].etaWindow1Lower = etaWindow1Lower;
1220  objParameter[cnt].etaWindow1Upper = etaWindow1Upper;
1221  objParameter[cnt].etaWindow2Lower = etaWindow2Lower;
1222  objParameter[cnt].etaWindow2Upper = etaWindow2Upper;
1223 
1224  objParameter[cnt].phiWindow1Lower = phiWindow1Lower;
1225  objParameter[cnt].phiWindow1Upper = phiWindow1Upper;
1226  objParameter[cnt].phiWindow2Lower = phiWindow2Lower;
1227  objParameter[cnt].phiWindow2Upper = phiWindow2Upper;
1228 
1229 // BLW TO DO: Do we need these anymore? Drop them?
1230  objParameter[cnt].enableMip = false;//tmpMip[i];
1231  objParameter[cnt].enableIso = false;//tmpEnableIso[i];
1232  objParameter[cnt].requestIso = false;//tmpRequestIso[i];
1233 
1234  objParameter[cnt].charge = charge;
1235  objParameter[cnt].qualityLUT = qualityLUT;
1236  objParameter[cnt].isolationLUT = isolationLUT;
1237 
1238 
1239  cnt++;
1240  } //end loop over objects
1241 
1242 
1243  // object types - all muons
1244  std::vector<GlobalObject> objType(nrObj, gtMu);
1245 
1246 
1247 
1248  // now create a new CondMuonition
1249  MuonTemplate muonCond(name);
1250 
1251  muonCond.setCondType(cType);
1252  muonCond.setObjectType(objType);
1253  muonCond.setCondGEq(gEq);
1254  muonCond.setCondChipNr(chipNr);
1255  muonCond.setCondRelativeBx(relativeBx);
1256 
1257  muonCond.setConditionParameter(objParameter, corrParameter);
1258 
1259  if (edm::isDebugEnabled()) {
1260  std::ostringstream myCoutStream;
1261  muonCond.print(myCoutStream);
1262  LogTrace("TriggerMenuParser") << myCoutStream.str() << "\n" << std::endl;
1263  }
1264 
1265  // insert condition into the map and into muon template vector
1266  if ( !insertConditionIntoMap(muonCond, chipNr)) {
1267  edm::LogError("TriggerMenuParser")
1268  << " Error: duplicate condition (" << name << ")"
1269  << std::endl;
1270  return false;
1271  }
1272  else {
1273  LogDebug("TriggerMenuParser") << "Added Condition " << name << " to the ConditionMap" << std::endl;
1274  if (corrFlag) {
1275 
1276  (m_corMuonTemplate[chipNr]).push_back(muonCond);
1277  }
1278  else {
1279  LogDebug("TriggerMenuParser") << "Added Condition " << name << " to the vecMuonTemplate vector" << std::endl;
1280  (m_vecMuonTemplate[chipNr]).push_back(muonCond);
1281  }
1282 
1283  }
1284 
1285  //
1286  return true;
1287 }
#define LogDebug(id)
type
Definition: HCALResponse.h:21
bool isDebugEnabled()
std::vector< std::vector< MuonTemplate > > m_corMuonTemplate
bool insertConditionIntoMap(GlobalCondition &cond, const int chipNr)
#define LogTrace(id)
int l1tstr2int(const std::string data)
std::vector< std::vector< MuonTemplate > > m_vecMuonTemplate
bool TriggerMenuParser::parseMuonCorr ( const tmeventsetup::esObject *  condMu,
unsigned int  chipNr = 0 
)
private

Definition at line 1290 of file TriggerMenuParser.cc.

References ALCARECOTkAlJpsiMuMu_cff::charge, MuonTemplate::CorrelationParameter::chargeCorrelation, TkAlMuonSelectors_cfi::cut, particleFlowClusterECALTimeSelected_cfi::cuts, reco::tau::disc::Eta(), l1t::gtMu, createfilelist::int, edm::isDebugEnabled(), GetRecoTauVFromDQM_MC_cff::kk, l1t2string(), l1tstr2int(), LogDebug, LogTrace, m_corMuonTemplate, dataset::name, colinearityKinematic::Phi, MuonTemplate::print(), GlobalCondition::setCondChipNr(), GlobalCondition::setCondGEq(), MuonTemplate::setConditionParameter(), GlobalCondition::setCondRelativeBx(), GlobalCondition::setCondType(), GlobalCondition::setObjectType(), AlCaHLTBitMon_QueryRunRegistry::string, jetExtractorBlock_cff::Threshold, and l1t::Type1s.

Referenced by gtAlgorithmImplementation(), parseCorrelation(), and parseCorrelationWithOverlapRemoval().

1291  {
1292 
1293 
1294 // XERCES_CPP_NAMESPACE_USE
1295  using namespace tmeventsetup;
1296 
1297  // get condition, particle name (must be muon) and type name
1298  std::string condition = "muon";
1299  std::string particle = "muon";//l1t2string( condMu.objectType() );
1300  std::string type = l1t2string( corrMu->getType() );
1301  std::string name = l1t2string( corrMu->getName() );
1302  int nrObj = 1;
1303  type = "1_s";
1304  GtConditionType cType = l1t::Type1s;
1305 
1306 
1307 
1308  if (nrObj < 0) {
1309  edm::LogError("TriggerMenuParser") << "Unknown type for muon-condition (" << type
1310  << ")" << "\nCan not determine number of trigger objects. " << std::endl;
1311  return false;
1312  }
1313 
1314  LogDebug("TriggerMenuParser")
1315  << "\n ****************************************** "
1316  << "\n parseMuon "
1317  << "\n condition = " << condition
1318  << "\n particle = " << particle
1319  << "\n type = " << type
1320  << "\n name = " << name
1321  << std::endl;
1322 
1323 
1324 
1325 // // get values
1326 
1327  // temporary storage of the parameters
1328  std::vector<MuonTemplate::ObjectParameter> objParameter(nrObj);
1329 
1330  // Do we need this?
1331  MuonTemplate::CorrelationParameter corrParameter;
1332 
1333  // need at least two values for deltaPhi
1334  std::vector<boost::uint64_t> tmpValues((nrObj > 2) ? nrObj : 2);
1335  tmpValues.reserve( nrObj );
1336 
1337 
1338 // BLW TO DO: How do we deal with these in the new format
1339 // std::string str_chargeCorrelation = l1t2string( condMu.requestedChargeCorr() );
1340  std::string str_chargeCorrelation = "ig";
1341  unsigned int chargeCorrelation = 0;
1342  if( str_chargeCorrelation=="ig" ) chargeCorrelation = 1;
1343  else if( str_chargeCorrelation=="ls" ) chargeCorrelation = 2;
1344  else if( str_chargeCorrelation=="os" ) chargeCorrelation = 4;
1345 
1346  //getXMLHexTextValue("1", dst);
1347  corrParameter.chargeCorrelation = chargeCorrelation;//tmpValues[0];
1348 
1349 
1350 
1351  // BLW TO DO: These needs to the added to the object rather than the whole condition.
1352  int relativeBx = 0;
1353  bool gEq = false;
1354 
1355 
1356  //const esObject* object = condMu;
1357  gEq = (corrMu->getComparisonOperator() == esComparisonOperator::GE);
1358 
1359  // BLW TO DO: This needs to be added to the Object Parameters
1360  relativeBx = corrMu->getBxOffset();
1361 
1362  // Loop over the cuts for this object
1363  int upperThresholdInd = -1;
1364  int lowerThresholdInd = 0;
1365  int upperIndexInd = -1;
1366  int lowerIndexInd = 0;
1367  int cntEta = 0;
1368  unsigned int etaWindow1Lower=-1, etaWindow1Upper=-1, etaWindow2Lower=-1, etaWindow2Upper=-1;
1369  int cntPhi = 0;
1370  unsigned int phiWindow1Lower=-1, phiWindow1Upper=-1, phiWindow2Lower=-1, phiWindow2Upper=-1;
1371  int isolationLUT = 0xF; //default is to ignore unless specified.
1372  int charge = -1; //defaut is to ignore unless specified
1373  int qualityLUT = 0xFFFF; //default is to ignore unless specified.
1374 
1375  const std::vector<esCut>& cuts = corrMu->getCuts();
1376  for (size_t kk = 0; kk < cuts.size(); kk++)
1377  {
1378  const esCut cut = cuts.at(kk);
1379 
1380  switch(cut.getCutType()){
1381  case esCutType::Threshold:
1382  lowerThresholdInd = cut.getMinimum().index;
1383  upperThresholdInd = cut.getMaximum().index;
1384  break;
1385 
1386  case esCutType::Index:
1387  lowerIndexInd = int(cut.getMinimum().value);
1388  upperIndexInd = int(cut.getMaximum().value);
1389  break;
1390 
1391  case esCutType::Eta: {
1392 
1393  if(cntEta == 0) {
1394  etaWindow1Lower = cut.getMinimum().index;
1395  etaWindow1Upper = cut.getMaximum().index;
1396  } else if(cntEta == 1) {
1397  etaWindow2Lower = cut.getMinimum().index;
1398  etaWindow2Upper = cut.getMaximum().index;
1399  } else {
1400  edm::LogError("TriggerMenuParser") << "Too Many Eta Cuts for muon-condition ("
1401  << particle << ")" << std::endl;
1402  return false;
1403  }
1404  cntEta++;
1405 
1406  } break;
1407 
1408  case esCutType::Phi: {
1409 
1410  if(cntPhi == 0) {
1411  phiWindow1Lower = cut.getMinimum().index;
1412  phiWindow1Upper = cut.getMaximum().index;
1413  } else if(cntPhi == 1) {
1414  phiWindow2Lower = cut.getMinimum().index;
1415  phiWindow2Upper = cut.getMaximum().index;
1416  } else {
1417  edm::LogError("TriggerMenuParser") << "Too Many Phi Cuts for muon-condition ("
1418  << particle << ")" << std::endl;
1419  return false;
1420  }
1421  cntPhi++;
1422 
1423  }break;
1424 
1425  case esCutType::Charge:
1426  if( cut.getData()=="positive" ) charge = 0;
1427  else if( cut.getData()=="negative" ) charge = 1;
1428  else charge = -1;
1429  break;
1430  case esCutType::Quality:
1431 
1432  qualityLUT = l1tstr2int(cut.getData());
1433 
1434  break;
1435  case esCutType::Isolation: {
1436 
1437  isolationLUT = l1tstr2int(cut.getData());
1438 
1439  } break;
1440  default:
1441  break;
1442  } //end switch
1443 
1444  } //end loop over cuts
1445 
1446 
1447  // Set the parameter cuts
1448  objParameter[0].ptHighThreshold = upperThresholdInd;
1449  objParameter[0].ptLowThreshold = lowerThresholdInd;
1450 
1451  objParameter[0].indexHigh = upperIndexInd;
1452  objParameter[0].indexLow = lowerIndexInd;
1453 
1454  objParameter[0].etaWindow1Lower = etaWindow1Lower;
1455  objParameter[0].etaWindow1Upper = etaWindow1Upper;
1456  objParameter[0].etaWindow2Lower = etaWindow2Lower;
1457  objParameter[0].etaWindow2Upper = etaWindow2Upper;
1458 
1459  objParameter[0].phiWindow1Lower = phiWindow1Lower;
1460  objParameter[0].phiWindow1Upper = phiWindow1Upper;
1461  objParameter[0].phiWindow2Lower = phiWindow2Lower;
1462  objParameter[0].phiWindow2Upper = phiWindow2Upper;
1463 
1464  // BLW TO DO: Do we need these anymore? Drop them?
1465  objParameter[0].enableMip = false;//tmpMip[i];
1466  objParameter[0].enableIso = false;//tmpEnableIso[i];
1467  objParameter[0].requestIso = false;//tmpRequestIso[i];
1468 
1469  objParameter[0].charge = charge;
1470  objParameter[0].qualityLUT = qualityLUT;
1471  objParameter[0].isolationLUT = isolationLUT;
1472 
1473 
1474  // object types - all muons
1475  std::vector<GlobalObject> objType(nrObj, gtMu);
1476 
1477  // now create a new CondMuonition
1478  MuonTemplate muonCond(name);
1479 
1480  muonCond.setCondType(cType);
1481  muonCond.setObjectType(objType);
1482  muonCond.setCondGEq(gEq);
1483  muonCond.setCondChipNr(chipNr);
1484  muonCond.setCondRelativeBx(relativeBx);
1485  muonCond.setConditionParameter(objParameter, corrParameter);
1486 
1487  if (edm::isDebugEnabled()) {
1488  std::ostringstream myCoutStream;
1489  muonCond.print(myCoutStream);
1490  LogTrace("TriggerMenuParser") << myCoutStream.str() << "\n" << std::endl;
1491  }
1492 
1493 /*
1494  // insert condition into the map and into muon template vector
1495  if ( !insertConditionIntoMap(muonCond, chipNr)) {
1496  edm::LogError("TriggerMenuParser")
1497  << " Error: duplicate condition (" << name << ")"
1498  << std::endl;
1499  return false;
1500  }
1501  else {
1502  LogDebug("TriggerMenuParser") << "Added Condition " << name << " to the ConditionMap" << std::endl;
1503  (m_corMuonTemplate[chipNr]).push_back(muonCond);
1504  }
1505 */
1506  (m_corMuonTemplate[chipNr]).push_back(muonCond);
1507 
1508 
1509  //
1510  return true;
1511 }
#define LogDebug(id)
type
Definition: HCALResponse.h:21
bool isDebugEnabled()
std::vector< std::vector< MuonTemplate > > m_corMuonTemplate
#define LogTrace(id)
int l1tstr2int(const std::string data)
void TriggerMenuParser::parsePt_LUTS ( std::map< std::string, tmeventsetup::esScale >  scaleMap,
std::string  obj1,
unsigned int  prec 
)
private

Definition at line 919 of file TriggerMenuParser.cc.

References m_gtScales, l1t::GlobalScales::setLUT_Pt(), and AlCaHLTBitMon_QueryRunRegistry::string.

Referenced by gtAlgorithmImplementation(), and parseScales().

920 {
921 
922  using namespace tmeventsetup;
923 
924  // First Delta Eta for this set
925  std::string scLabel1 = obj1;
926  scLabel1 += "-ET";
927 
928  //This LUT does not exist in L1 Menu file, don't fill it
929  if( scaleMap.find(scLabel1) == scaleMap.end()) return;
930 
931  const esScale* scale1 = &scaleMap.find(scLabel1)->second;
932 
933  std::vector<long long> lut_pt;
934  getLut(lut_pt, scale1, prec);
935  m_gtScales.setLUT_Pt(scLabel1,lut_pt,prec);
936 
937 
938 }
virtual void setLUT_Pt(std::string lutName, std::vector< long long > lut, unsigned int precision)
bool TriggerMenuParser::parseScales ( std::map< std::string, tmeventsetup::esScale >  scaleMap)
private

parse scales

parseScales Parse Et, Eta, and Phi Scales

Returns
"true" if succeeded, "false" if an error occurred.

Definition at line 649 of file TriggerMenuParser.cc.

References stringResolutionProvider_cfi::bin, l1t::GlobalScales::ScaleParameters::etaBins, l1t::GlobalScales::ScaleParameters::etaMax, l1t::GlobalScales::ScaleParameters::etaMin, l1t::GlobalScales::ScaleParameters::etaStep, l1t::GlobalScales::ScaleParameters::etBins, ETM, l1t::GlobalScales::ScaleParameters::etMax, l1t::GlobalScales::ScaleParameters::etMin, l1t::GlobalScales::ScaleParameters::etStep, ETT, HTM, HTT, mps_fire::i, configurableAnalysis::Jet, m_gtScales, configurableAnalysis::Muon, parseCalMuEta_LUTS(), parseCalMuPhi_LUTS(), parseDeltaEta_Cosh_LUTS(), parseDeltaPhi_Cos_LUTS(), parsePt_LUTS(), l1t::GlobalScales::ScaleParameters::phiBins, l1t::GlobalScales::ScaleParameters::phiMax, l1t::GlobalScales::ScaleParameters::phiMin, l1t::GlobalScales::ScaleParameters::phiStep, funct::pow(), Scenarios_cff::scale, l1t::GlobalScales::setEGScales(), l1t::GlobalScales::setETMHfScales(), l1t::GlobalScales::setETMScales(), l1t::GlobalScales::setETTEmScales(), l1t::GlobalScales::setETTScales(), l1t::GlobalScales::setHTMScales(), l1t::GlobalScales::setHTTScales(), l1t::GlobalScales::setJetScales(), l1t::GlobalScales::setMuonScales(), and l1t::GlobalScales::setTauScales().

Referenced by gtAlgorithmImplementation(), and parseCondFormats().

649  {
650 
651  using namespace tmeventsetup;
652 
653 // Setup ScaleParameter to hold information from parsing
654  GlobalScales::ScaleParameters muScales;
655  GlobalScales::ScaleParameters egScales;
656  GlobalScales::ScaleParameters tauScales;
657  GlobalScales::ScaleParameters jetScales;
658  GlobalScales::ScaleParameters ettScales;
659  GlobalScales::ScaleParameters ettEmScales;
660  GlobalScales::ScaleParameters etmScales;
661  GlobalScales::ScaleParameters etmHfScales;
662  GlobalScales::ScaleParameters httScales;
663  GlobalScales::ScaleParameters htmScales;
664 
665 
666 // Start by parsing the Scale Map
667  for (std::map<std::string, esScale>::const_iterator cit = scaleMap.begin();
668  cit != scaleMap.end(); cit++)
669  {
670  const esScale& scale = cit->second;
671 
672  GlobalScales::ScaleParameters *scaleParam;
673  if (scale.getObjectType() == esObjectType::Muon) scaleParam = &muScales;
674  else if (scale.getObjectType() == esObjectType::Egamma) scaleParam = &egScales;
675  else if (scale.getObjectType() == esObjectType::Tau) scaleParam = &tauScales;
676  else if (scale.getObjectType() == esObjectType::Jet) scaleParam = &jetScales;
677  else if (scale.getObjectType() == esObjectType::ETT) scaleParam = &ettScales;
678  else if (scale.getObjectType() == esObjectType::ETTEM) scaleParam = &ettEmScales;
679  else if (scale.getObjectType() == esObjectType::ETM) scaleParam = &etmScales;
680  else if (scale.getObjectType() == esObjectType::ETMHF) scaleParam = &etmHfScales;
681  else if (scale.getObjectType() == esObjectType::HTT) scaleParam = &httScales;
682  else if (scale.getObjectType() == esObjectType::HTM) scaleParam = &htmScales;
683  else scaleParam = 0;
684 
685  if(scaleParam != 0) {
686  switch(scale.getScaleType()) {
687  case esScaleType::EtScale: {
688  scaleParam->etMin = scale.getMinimum();
689  scaleParam->etMax = scale.getMaximum();
690  scaleParam->etStep = scale.getStep();
691 
692  //Get bin edges
693  const std::vector<esBin> binsV = scale.getBins();
694  for(unsigned int i=0; i<binsV.size(); i++) {
695  const esBin& bin = binsV.at(i);
696  std::pair<double, double> binLimits(bin.minimum, bin.maximum);
697  scaleParam->etBins.push_back(binLimits);
698  }
699 
700  // If this is an energy sum fill dummy values for eta and phi
701  // There are no scales for these in the XML so the other case statements will not be seen....do it here.
702  if(scale.getObjectType() == esObjectType::ETT || scale.getObjectType() == esObjectType::HTT ||
703  scale.getObjectType() == esObjectType::ETM || scale.getObjectType() == esObjectType::HTM ||
704  scale.getObjectType() == esObjectType::ETTEM || scale.getObjectType() == esObjectType::ETMHF) {
705 
706  scaleParam->etaMin = -1.;
707  scaleParam->etaMax = -1.;
708  scaleParam->etaStep = -1.;
709  if(scale.getObjectType() == esObjectType::ETT || scale.getObjectType() == esObjectType::HTT || scale.getObjectType() == esObjectType::ETTEM) {
710 // if(scale.getObjectType() == esObjectType::ETT || scale.getObjectType() == esObjectType::HTT) {
711  scaleParam->phiMin = -1.;
712  scaleParam->phiMax = -1.;
713  scaleParam->phiStep = -1.;
714  }
715  }
716  }
717  break;
718  case esScaleType::EtaScale: {
719  scaleParam->etaMin = scale.getMinimum();
720  scaleParam->etaMax = scale.getMaximum();
721  scaleParam->etaStep = scale.getStep();
722 
723  //Get bin edges
724  const std::vector<esBin> binsV = scale.getBins();
725  scaleParam->etaBins.resize(pow(2,scale.getNbits()));
726  for(unsigned int i=0; i<binsV.size(); i++) {
727  const esBin& bin = binsV.at(i);
728  std::pair<double, double> binLimits(bin.minimum, bin.maximum);
729  scaleParam->etaBins.at(bin.hw_index) = binLimits;
730  }
731  }
732  break;
733  case esScaleType::PhiScale: {
734  scaleParam->phiMin = scale.getMinimum();
735  scaleParam->phiMax = scale.getMaximum();
736  scaleParam->phiStep = scale.getStep();
737 
738  //Get bin edges
739  const std::vector<esBin> binsV = scale.getBins();
740  scaleParam->phiBins.resize(pow(2,scale.getNbits()));
741  for(unsigned int i=0; i<binsV.size(); i++) {
742  const esBin& bin = binsV.at(i);
743  std::pair<double, double> binLimits(bin.minimum, bin.maximum);
744  scaleParam->phiBins.at(bin.hw_index) = binLimits;
745  }
746  }
747  break;
748  default:
749 
750  break;
751  } //end switch
752  } //end valid scale
753  } //end loop over scaleMap
754 
755  // put the ScaleParameters into the class
756  m_gtScales.setMuonScales(muScales);
757  m_gtScales.setEGScales(egScales);
758  m_gtScales.setTauScales(tauScales);
759  m_gtScales.setJetScales(jetScales);
760  m_gtScales.setETTScales(ettScales);
761  m_gtScales.setETTEmScales(ettEmScales);
762  m_gtScales.setETMScales(etmScales);
763  m_gtScales.setETMHfScales(etmHfScales);
764  m_gtScales.setHTTScales(httScales);
765  m_gtScales.setHTMScales(htmScales);
766 
767 
768 
769 // Setup the LUT for the Scale Conversions
770  bool hasPrecision = false;
771  std::map<std::string, unsigned int> precisions;
772  getPrecisions(precisions, scaleMap);
773  for (std::map<std::string, unsigned int>::const_iterator cit = precisions.begin(); cit != precisions.end(); cit++)
774  {
775  //std::cout << cit->first << " = " << cit->second << "\n";
776  hasPrecision = true;
777  }
778 
779 
780  if (hasPrecision)
781  {
782 
783  //Start with the Cal - Muon Eta LUTS
784  //----------------------------------
785  parseCalMuEta_LUTS(scaleMap, "EG", "MU");
786  parseCalMuEta_LUTS(scaleMap, "JET", "MU");
787  parseCalMuEta_LUTS(scaleMap, "TAU", "MU");
788 
789  //Now the Cal - Muon Phi LUTS
790  //-------------------------------------
791  parseCalMuPhi_LUTS(scaleMap, "EG", "MU");
792  parseCalMuPhi_LUTS(scaleMap, "JET", "MU");
793  parseCalMuPhi_LUTS(scaleMap, "TAU", "MU");
794  parseCalMuPhi_LUTS(scaleMap, "HTM", "MU");
795  parseCalMuPhi_LUTS(scaleMap, "ETM", "MU");
796  parseCalMuPhi_LUTS(scaleMap, "ETMHF", "MU");
797 
798  // Now the Pt LUTs (??? more combinations needed ??)
799  // ---------------
800  parsePt_LUTS(scaleMap, "EG", precisions["PRECISION-EG-MU-MassPt"] );
801  parsePt_LUTS(scaleMap, "MU", precisions["PRECISION-EG-MU-MassPt"] );
802  parsePt_LUTS(scaleMap, "JET", precisions["PRECISION-EG-JET-MassPt"] );
803  parsePt_LUTS(scaleMap, "TAU", precisions["PRECISION-EG-TAU-MassPt"] );
804 
805  // Now the Delta Eta/Cosh LUTs (must be done in groups)
806  // ----------------------------------------------------
807  parseDeltaEta_Cosh_LUTS(scaleMap,"EG","EG", precisions["PRECISION-EG-EG-Delta"], precisions["PRECISION-EG-EG-Math"]);
808  parseDeltaEta_Cosh_LUTS(scaleMap,"EG","JET",precisions["PRECISION-EG-JET-Delta"],precisions["PRECISION-EG-JET-Math"]);
809  parseDeltaEta_Cosh_LUTS(scaleMap,"EG","TAU",precisions["PRECISION-EG-TAU-Delta"],precisions["PRECISION-EG-TAU-Math"]);
810  parseDeltaEta_Cosh_LUTS(scaleMap,"EG","MU", precisions["PRECISION-EG-MU-Delta"], precisions["PRECISION-EG-MU-Math"]);
811 
812  parseDeltaEta_Cosh_LUTS(scaleMap,"JET","JET",precisions["PRECISION-JET-JET-Delta"],precisions["PRECISION-JET-JET-Math"]);
813  parseDeltaEta_Cosh_LUTS(scaleMap,"JET","TAU",precisions["PRECISION-JET-TAU-Delta"],precisions["PRECISION-JET-TAU-Math"]);
814  parseDeltaEta_Cosh_LUTS(scaleMap,"JET","MU", precisions["PRECISION-JET-MU-Delta"], precisions["PRECISION-JET-MU-Math"]);
815 
816  parseDeltaEta_Cosh_LUTS(scaleMap,"TAU","TAU",precisions["PRECISION-TAU-TAU-Delta"],precisions["PRECISION-TAU-TAU-Math"]);
817  parseDeltaEta_Cosh_LUTS(scaleMap,"TAU","MU", precisions["PRECISION-TAU-MU-Delta"], precisions["PRECISION-TAU-MU-Math"]);
818 
819  parseDeltaEta_Cosh_LUTS(scaleMap,"MU","MU", precisions["PRECISION-MU-MU-Delta"], precisions["PRECISION-MU-MU-Math"]);
820 
821 
822  // Now the Delta Phi/Cos LUTs (must be done in groups)
823  // ----------------------------------------------------
824  parseDeltaPhi_Cos_LUTS(scaleMap,"EG","EG", precisions["PRECISION-EG-EG-Delta"], precisions["PRECISION-EG-EG-Math"]);
825  parseDeltaPhi_Cos_LUTS(scaleMap,"EG","JET",precisions["PRECISION-EG-JET-Delta"],precisions["PRECISION-EG-JET-Math"]);
826  parseDeltaPhi_Cos_LUTS(scaleMap,"EG","TAU",precisions["PRECISION-EG-TAU-Delta"],precisions["PRECISION-EG-TAU-Math"]);
827  parseDeltaPhi_Cos_LUTS(scaleMap,"EG","ETM",precisions["PRECISION-EG-ETM-Delta"],precisions["PRECISION-EG-ETM-Math"]);
828  parseDeltaPhi_Cos_LUTS(scaleMap,"EG","ETMHF",precisions["PRECISION-EG-ETMHF-Delta"],precisions["PRECISION-EG-ETMHF-Math"]);
829  parseDeltaPhi_Cos_LUTS(scaleMap,"EG","HTM",precisions["PRECISION-EG-HTM-Delta"],precisions["PRECISION-EG-HTM-Math"]);
830  parseDeltaPhi_Cos_LUTS(scaleMap,"EG","MU", precisions["PRECISION-EG-MU-Delta"], precisions["PRECISION-EG-MU-Math"]);
831 
832  parseDeltaPhi_Cos_LUTS(scaleMap,"JET","JET",precisions["PRECISION-JET-JET-Delta"],precisions["PRECISION-JET-JET-Math"]);
833  parseDeltaPhi_Cos_LUTS(scaleMap,"JET","TAU",precisions["PRECISION-JET-TAU-Delta"],precisions["PRECISION-JET-TAU-Math"]);
834  parseDeltaPhi_Cos_LUTS(scaleMap,"JET","ETM",precisions["PRECISION-JET-ETM-Delta"],precisions["PRECISION-JET-ETM-Math"]);
835  parseDeltaPhi_Cos_LUTS(scaleMap,"JET","ETMHF",precisions["PRECISION-JET-ETMHF-Delta"],precisions["PRECISION-JET-ETMHF-Math"]);
836  parseDeltaPhi_Cos_LUTS(scaleMap,"JET","HTM",precisions["PRECISION-JET-HTM-Delta"],precisions["PRECISION-JET-HTM-Math"]);
837  parseDeltaPhi_Cos_LUTS(scaleMap,"JET","MU", precisions["PRECISION-JET-MU-Delta"], precisions["PRECISION-JET-MU-Math"]);
838 
839  parseDeltaPhi_Cos_LUTS(scaleMap,"TAU","TAU",precisions["PRECISION-TAU-TAU-Delta"],precisions["PRECISION-TAU-TAU-Math"]);
840  parseDeltaPhi_Cos_LUTS(scaleMap,"TAU","ETM",precisions["PRECISION-TAU-ETM-Delta"],precisions["PRECISION-TAU-ETM-Math"]);
841  parseDeltaPhi_Cos_LUTS(scaleMap,"TAU","ETMHF",precisions["PRECISION-TAU-ETMHF-Delta"],precisions["PRECISION-TAU-ETMHF-Math"]);
842  parseDeltaPhi_Cos_LUTS(scaleMap,"TAU","HTM",precisions["PRECISION-TAU-HTM-Delta"],precisions["PRECISION-TAU-HTM-Math"]);
843  parseDeltaPhi_Cos_LUTS(scaleMap,"TAU","MU", precisions["PRECISION-TAU-MU-Delta"], precisions["PRECISION-TAU-MU-Math"]);
844 
845  parseDeltaPhi_Cos_LUTS(scaleMap,"MU","ETM",precisions["PRECISION-MU-ETM-Delta"],precisions["PRECISION-MU-ETM-Math"]);
846  parseDeltaPhi_Cos_LUTS(scaleMap,"MU","ETMHF",precisions["PRECISION-MU-ETMHF-Delta"],precisions["PRECISION-MU-ETMHF-Math"]);
847  parseDeltaPhi_Cos_LUTS(scaleMap,"MU","HTM",precisions["PRECISION-MU-HTM-Delta"],precisions["PRECISION-MU-HTM-Math"]);
848  parseDeltaPhi_Cos_LUTS(scaleMap,"MU","MU", precisions["PRECISION-MU-MU-Delta"], precisions["PRECISION-MU-MU-Math"]);
849 
850  //m_gtScales.dumpAllLUTs(std::cout);
851  //m_gtScales.print(std::cout);
852 
853  }
854 
855 
856 
857 
858 
859  return true;
860 }
void setETMScales(ScaleParameters &scales)
Definition: GlobalScales.h:67
void setJetScales(ScaleParameters &scales)
Definition: GlobalScales.h:62
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)
Definition: L1GtObject.h:39
Definition: L1GtObject.h:36
void setETMHfScales(ScaleParameters &scales)
Definition: GlobalScales.h:68
Definition: L1GtObject.h:38
void parseDeltaEta_Cosh_LUTS(std::map< std::string, tmeventsetup::esScale > scaleMap, std::string obj1, std::string obj2, unsigned int prec1, unsigned int prec2)
void setEGScales(ScaleParameters &scales)
Definition: GlobalScales.h:58
void setTauScales(ScaleParameters &scales)
Definition: GlobalScales.h:59
void setETTEmScales(ScaleParameters &scales)
Definition: GlobalScales.h:65
void parseDeltaPhi_Cos_LUTS(std::map< std::string, tmeventsetup::esScale > scaleMap, std::string obj1, std::string obj2, unsigned int prec1, unsigned int prec2)
bin
set the eta bin as selection string.
void setMuonScales(ScaleParameters &scales)
Definition: GlobalScales.h:60
void setHTTScales(ScaleParameters &scales)
Definition: GlobalScales.h:66
void parsePt_LUTS(std::map< std::string, tmeventsetup::esScale > scaleMap, std::string obj1, unsigned int prec)
void setHTMScales(ScaleParameters &scales)
Definition: GlobalScales.h:69
Definition: L1GtObject.h:37
void setETTScales(ScaleParameters &scales)
Definition: GlobalScales.h:64
Power< A, B >::type pow(const A &a, const B &b)
Definition: Power.h:40
void TriggerMenuParser::setCorCaloTemplate ( const std::vector< std::vector< CaloTemplate > > &  corCaloTempl)

Definition at line 179 of file TriggerMenuParser.cc.

References m_corCaloTemplate.

Referenced by corCaloTemplate().

180  {
181 
182  m_corCaloTemplate = corCaloTempl;
183 }
std::vector< std::vector< CaloTemplate > > m_corCaloTemplate
void TriggerMenuParser::setCorEnergySumTemplate ( const std::vector< std::vector< EnergySumTemplate > > &  corEnergySumTempl)

Definition at line 185 of file TriggerMenuParser.cc.

References m_corEnergySumTemplate.

Referenced by corEnergySumTemplate().

186  {
187 
188  m_corEnergySumTemplate = corEnergySumTempl;
189 }
std::vector< std::vector< EnergySumTemplate > > m_corEnergySumTemplate
void TriggerMenuParser::setCorMuonTemplate ( const std::vector< std::vector< MuonTemplate > > &  corMuonTempl)

Definition at line 173 of file TriggerMenuParser.cc.

References m_corMuonTemplate.

Referenced by corMuonTemplate().

174  {
175 
176  m_corMuonTemplate = corMuonTempl;
177 }
std::vector< std::vector< MuonTemplate > > m_corMuonTemplate
void TriggerMenuParser::setGtAlgorithmAliasMap ( const AlgorithmMap algoMap)

Definition at line 200 of file TriggerMenuParser.cc.

References m_algorithmAliasMap.

Referenced by gtAlgorithmAliasMap().

200  {
201  m_algorithmAliasMap = algoMap;
202 }
AlgorithmMap m_algorithmAliasMap
map containing the physics algorithms (by alias)
void TriggerMenuParser::setGtAlgorithmImplementation ( const std::string &  val)

Definition at line 479 of file TriggerMenuParser.cc.

References m_algorithmImplementation, and heppy_batch::val.

Referenced by gtAlgorithmImplementation().

479  {
480 
482 
483 }
std::string m_algorithmImplementation
void TriggerMenuParser::setGtAlgorithmMap ( const AlgorithmMap algoMap)

Definition at line 195 of file TriggerMenuParser.cc.

References m_algorithmMap.

Referenced by gtAlgorithmMap().

195  {
196  m_algorithmMap = algoMap;
197 }
AlgorithmMap m_algorithmMap
map containing the physics algorithms (by name)
void TriggerMenuParser::setGtConditionMap ( const std::vector< ConditionMap > &  condMap)

Definition at line 104 of file TriggerMenuParser.cc.

References m_conditionMap.

Referenced by gtConditionMap().

104  {
105  m_conditionMap = condMap;
106 }
std::vector< ConditionMap > m_conditionMap
map containing the conditions (per condition chip) - transient
void TriggerMenuParser::setGtNumberConditionChips ( const unsigned int &  numberConditionChipsValue)

Definition at line 71 of file TriggerMenuParser.cc.

References m_numberConditionChips.

Referenced by gtNumberConditionChips(), and L1TGlobalProducer::produce().

72  {
73 
74  m_numberConditionChips = numberConditionChipsValue;
75 
76 }
unsigned int m_numberConditionChips
hardware limits
void TriggerMenuParser::setGtNumberPhysTriggers ( const unsigned int &  numberPhysTriggersValue)

Definition at line 95 of file TriggerMenuParser.cc.

References m_numberPhysTriggers.

Referenced by gtNumberPhysTriggers(), and L1TGlobalProducer::produce().

96  {
97 
98  m_numberPhysTriggers = numberPhysTriggersValue;
99 
100 }
unsigned int m_numberPhysTriggers
number of physics trigger algorithms
void TriggerMenuParser::setGtOrderConditionChip ( const std::vector< int > &  orderConditionChipValue)

Definition at line 87 of file TriggerMenuParser.cc.

References m_orderConditionChip.

Referenced by gtOrderConditionChip(), and L1TGlobalProducer::produce().

88  {
89 
90  m_orderConditionChip = orderConditionChipValue;
91 
92 }
std::vector< int > m_orderConditionChip
void TriggerMenuParser::setGtPinsOnConditionChip ( const unsigned int &  pinsOnConditionChipValue)

Definition at line 79 of file TriggerMenuParser.cc.

References m_pinsOnConditionChip.

Referenced by gtPinsOnConditionChip(), and L1TGlobalProducer::produce().

79  {
80 
81  m_pinsOnConditionChip = pinsOnConditionChipValue;
82 
83 }
unsigned int m_pinsOnConditionChip
number of pins on the GTL condition chips
void TriggerMenuParser::setGtScaleDbKey ( const std::string &  scaleKey)

Definition at line 127 of file TriggerMenuParser.cc.

References m_scaleDbKey.

Referenced by gtScales().

127  {
128  m_scaleDbKey = scaleKey;
129 }
std::string m_scaleDbKey
menu associated scale key
void TriggerMenuParser::setGtTriggerMenuAuthor ( const std::string &  val)

Definition at line 467 of file TriggerMenuParser.cc.

References m_triggerMenuAuthor, and heppy_batch::val.

Referenced by gtTriggerMenuAuthor().

467  {
468 
470 
471 }
void TriggerMenuParser::setGtTriggerMenuDate ( const std::string &  val)

Definition at line 461 of file TriggerMenuParser.cc.

References m_triggerMenuDate, and heppy_batch::val.

Referenced by gtTriggerMenuDate().

461  {
462 
464 
465 }
void TriggerMenuParser::setGtTriggerMenuDescription ( const std::string &  val)

Definition at line 473 of file TriggerMenuParser.cc.

References m_triggerMenuDescription, and heppy_batch::val.

Referenced by gtTriggerMenuDescription().

473  {
474 
476 
477 }
std::string m_triggerMenuDescription
void TriggerMenuParser::setGtTriggerMenuImplementation ( const unsigned long &  menuImplementation)

Definition at line 122 of file TriggerMenuParser.cc.

References m_triggerMenuImplementation.

Referenced by gtTriggerMenuImplementation().

122  {
123  m_triggerMenuImplementation = menuImplementation;
124 }
unsigned long m_triggerMenuImplementation
void TriggerMenuParser::setGtTriggerMenuInterface ( const std::string &  menuInterface)

Definition at line 109 of file TriggerMenuParser.cc.

References m_triggerMenuInterface.

Referenced by gtTriggerMenuInterface().

109  {
110  m_triggerMenuInterface = menuInterface;
111 }
std::string m_triggerMenuInterface
menu names
void TriggerMenuParser::setGtTriggerMenuInterfaceAuthor ( const std::string &  val)

Definition at line 448 of file TriggerMenuParser.cc.

References m_triggerMenuInterfaceAuthor, and heppy_batch::val.

Referenced by gtTriggerMenuInterfaceAuthor().

448  {
449 
451 
452 }
std::string m_triggerMenuInterfaceAuthor
void TriggerMenuParser::setGtTriggerMenuInterfaceDate ( const std::string &  val)

Definition at line 442 of file TriggerMenuParser.cc.

References m_triggerMenuInterfaceDate, and heppy_batch::val.

Referenced by gtTriggerMenuInterfaceDate().

442  {
443 
445 
446 }
std::string m_triggerMenuInterfaceDate
number of technical triggers
void TriggerMenuParser::setGtTriggerMenuInterfaceDescription ( const std::string &  val)

Definition at line 454 of file TriggerMenuParser.cc.

References m_triggerMenuInterfaceDescription, and heppy_batch::val.

Referenced by gtTriggerMenuInterfaceDescription().

454  {
455 
457 
458 }
std::string m_triggerMenuInterfaceDescription
void TriggerMenuParser::setGtTriggerMenuName ( const std::string &  menuName)

Definition at line 118 of file TriggerMenuParser.cc.

References m_triggerMenuName.

Referenced by gtTriggerMenuName().

118  {
119  m_triggerMenuName = menuName;
120 }
void TriggerMenuParser::setGtTriggerMenuUUID ( const int  uuid)

Definition at line 114 of file TriggerMenuParser.cc.

References m_triggerMenuUUID, and createPayload::uuid.

Referenced by gtTriggerMenuUUID().

114  {
116 }
unsigned long m_triggerMenuUUID
void TriggerMenuParser::setVecCaloTemplate ( const std::vector< std::vector< CaloTemplate > > &  vecCaloTempl)

Definition at line 138 of file TriggerMenuParser.cc.

References m_vecCaloTemplate.

Referenced by vecCaloTemplate().

139  {
140 
141  m_vecCaloTemplate = vecCaloTempl;
142 }
std::vector< std::vector< CaloTemplate > > m_vecCaloTemplate
void TriggerMenuParser::setVecCorrelationTemplate ( const std::vector< std::vector< CorrelationTemplate > > &  vecCorrelationTempl)

Definition at line 159 of file TriggerMenuParser.cc.

References m_vecCorrelationTemplate.

Referenced by vecCorrelationTemplate().

160  {
161 
162  m_vecCorrelationTemplate = vecCorrelationTempl;
163 }
std::vector< std::vector< CorrelationTemplate > > m_vecCorrelationTemplate
void TriggerMenuParser::setVecCorrelationWithOverlapRemovalTemplate ( const std::vector< std::vector< CorrelationWithOverlapRemovalTemplate > > &  vecCorrelationWithOverlapRemovalTempl)

Definition at line 165 of file TriggerMenuParser.cc.

References m_vecCorrelationWithOverlapRemovalTemplate.

Referenced by vecCorrelationWithOverlapRemovalTemplate().

166  {
167 
168  m_vecCorrelationWithOverlapRemovalTemplate = vecCorrelationWithOverlapRemovalTempl;
169 }
std::vector< std::vector< CorrelationWithOverlapRemovalTemplate > > m_vecCorrelationWithOverlapRemovalTemplate
void TriggerMenuParser::setVecEnergySumTemplate ( const std::vector< std::vector< EnergySumTemplate > > &  vecEnergySumTempl)

Definition at line 144 of file TriggerMenuParser.cc.

References m_vecEnergySumTemplate.

Referenced by vecEnergySumTemplate().

145  {
146 
147  m_vecEnergySumTemplate = vecEnergySumTempl;
148 }
std::vector< std::vector< EnergySumTemplate > > m_vecEnergySumTemplate
void TriggerMenuParser::setVecExternalTemplate ( const std::vector< std::vector< ExternalTemplate > > &  vecExternalTempl)

Definition at line 152 of file TriggerMenuParser.cc.

References m_vecExternalTemplate.

Referenced by vecExternalTemplate().

153  {
154 
155  m_vecExternalTemplate = vecExternalTempl;
156 }
std::vector< std::vector< ExternalTemplate > > m_vecExternalTemplate
void TriggerMenuParser::setVecMuonTemplate ( const std::vector< std::vector< MuonTemplate > > &  vecMuonTempl)

Definition at line 132 of file TriggerMenuParser.cc.

References m_vecMuonTemplate.

Referenced by vecMuonTemplate().

133  {
134 
135  m_vecMuonTemplate = vecMuonTempl;
136 }
std::vector< std::vector< MuonTemplate > > m_vecMuonTemplate
const std::vector<std::vector<CaloTemplate> >& l1t::TriggerMenuParser::vecCaloTemplate ( ) const
inline

Definition at line 149 of file TriggerMenuParser.h.

References m_vecCaloTemplate, and setVecCaloTemplate().

Referenced by L1TGlobalProducer::produce().

149  {
150  return m_vecCaloTemplate;
151  }
std::vector< std::vector< CaloTemplate > > m_vecCaloTemplate
const std::vector<std::vector<CorrelationTemplate> >& l1t::TriggerMenuParser::vecCorrelationTemplate ( ) const
inline

Definition at line 176 of file TriggerMenuParser.h.

References m_vecCorrelationTemplate, and setVecCorrelationTemplate().

Referenced by L1TGlobalProducer::produce().

176  {
177 
179  }
std::vector< std::vector< CorrelationTemplate > > m_vecCorrelationTemplate
const std::vector<std::vector<CorrelationWithOverlapRemovalTemplate> >& l1t::TriggerMenuParser::vecCorrelationWithOverlapRemovalTemplate ( ) const
inline

Definition at line 184 of file TriggerMenuParser.h.

References m_vecCorrelationWithOverlapRemovalTemplate, and setVecCorrelationWithOverlapRemovalTemplate().

Referenced by L1TGlobalProducer::produce().

184  {
185 
187  }
std::vector< std::vector< CorrelationWithOverlapRemovalTemplate > > m_vecCorrelationWithOverlapRemovalTemplate
const std::vector<std::vector<EnergySumTemplate> >& l1t::TriggerMenuParser::vecEnergySumTemplate ( ) const
inline

Definition at line 156 of file TriggerMenuParser.h.

References m_vecEnergySumTemplate, and setVecEnergySumTemplate().

Referenced by L1TGlobalProducer::produce().

156  {
157 
158  return m_vecEnergySumTemplate;
159  }
std::vector< std::vector< EnergySumTemplate > > m_vecEnergySumTemplate
const std::vector<std::vector<ExternalTemplate> >& l1t::TriggerMenuParser::vecExternalTemplate ( ) const
inline

Definition at line 167 of file TriggerMenuParser.h.

References m_vecExternalTemplate, and setVecExternalTemplate().

Referenced by L1TGlobalProducer::produce().

167  {
168 
169  return m_vecExternalTemplate;
170  }
std::vector< std::vector< ExternalTemplate > > m_vecExternalTemplate
const std::vector<std::vector<MuonTemplate> >& l1t::TriggerMenuParser::vecMuonTemplate ( ) const
inline

get / set the vectors containing the conditions

Definition at line 143 of file TriggerMenuParser.h.

References m_vecMuonTemplate, and setVecMuonTemplate().

Referenced by L1TGlobalProducer::produce().

143  {
144  return m_vecMuonTemplate;
145  }
std::vector< std::vector< MuonTemplate > > m_vecMuonTemplate

Member Data Documentation

AlgorithmMap l1t::TriggerMenuParser::m_algorithmAliasMap
private

map containing the physics algorithms (by alias)

Definition at line 462 of file TriggerMenuParser.h.

Referenced by gtAlgorithmAliasMap(), insertAlgorithmIntoMap(), and setGtAlgorithmAliasMap().

std::string l1t::TriggerMenuParser::m_algorithmImplementation
private

Definition at line 426 of file TriggerMenuParser.h.

Referenced by gtAlgorithmImplementation(), and setGtAlgorithmImplementation().

AlgorithmMap l1t::TriggerMenuParser::m_algorithmMap
private

map containing the physics algorithms (by name)

Definition at line 459 of file TriggerMenuParser.h.

Referenced by clearMaps(), gtAlgorithmMap(), insertAlgorithmIntoMap(), and setGtAlgorithmMap().

std::vector<ConditionMap> l1t::TriggerMenuParser::m_conditionMap
private

map containing the conditions (per condition chip) - transient

Definition at line 432 of file TriggerMenuParser.h.

Referenced by clearMaps(), gtConditionMap(), insertConditionIntoMap(), parseCondFormats(), and setGtConditionMap().

std::vector<std::vector<CaloTemplate> > l1t::TriggerMenuParser::m_corCaloTemplate
private
std::vector<std::vector<EnergySumTemplate> > l1t::TriggerMenuParser::m_corEnergySumTemplate
private
std::vector<std::vector<MuonTemplate> > l1t::TriggerMenuParser::m_corMuonTemplate
private
GlobalScales l1t::TriggerMenuParser::m_gtScales
private
unsigned int l1t::TriggerMenuParser::m_numberConditionChips
private

hardware limits

number of condition chips

Definition at line 399 of file TriggerMenuParser.h.

Referenced by gtNumberConditionChips(), insertAlgorithmIntoMap(), parseCondFormats(), and setGtNumberConditionChips().

unsigned int l1t::TriggerMenuParser::m_numberPhysTriggers
private

number of physics trigger algorithms

Definition at line 409 of file TriggerMenuParser.h.

Referenced by gtNumberPhysTriggers(), insertAlgorithmIntoMap(), and setGtNumberPhysTriggers().

std::vector<int> l1t::TriggerMenuParser::m_orderConditionChip
private

correspondence "condition chip - GTL algorithm word" in the hardware chip 2: 0 - 95; chip 1: 96 - 128 (191)

Definition at line 406 of file TriggerMenuParser.h.

Referenced by gtOrderConditionChip(), insertAlgorithmIntoMap(), and setGtOrderConditionChip().

unsigned int l1t::TriggerMenuParser::m_pinsOnConditionChip
private

number of pins on the GTL condition chips

Definition at line 402 of file TriggerMenuParser.h.

Referenced by gtPinsOnConditionChip(), insertAlgorithmIntoMap(), and setGtPinsOnConditionChip().

std::string l1t::TriggerMenuParser::m_scaleDbKey
private

menu associated scale key

Definition at line 443 of file TriggerMenuParser.h.

Referenced by gtScaleDbKey(), and setGtScaleDbKey().

std::string l1t::TriggerMenuParser::m_triggerMenuAuthor
private

Definition at line 423 of file TriggerMenuParser.h.

Referenced by gtTriggerMenuAuthor(), and setGtTriggerMenuAuthor().

std::string l1t::TriggerMenuParser::m_triggerMenuDate
private

Definition at line 422 of file TriggerMenuParser.h.

Referenced by gtTriggerMenuDate(), parseCondFormats(), and setGtTriggerMenuDate().

std::string l1t::TriggerMenuParser::m_triggerMenuDescription
private
unsigned long l1t::TriggerMenuParser::m_triggerMenuImplementation
private
std::string l1t::TriggerMenuParser::m_triggerMenuInterface
private

menu names

Definition at line 437 of file TriggerMenuParser.h.

Referenced by gtTriggerMenuInterface(), parseCondFormats(), and setGtTriggerMenuInterface().

std::string l1t::TriggerMenuParser::m_triggerMenuInterfaceAuthor
private
std::string l1t::TriggerMenuParser::m_triggerMenuInterfaceDate
private

number of technical triggers

Definition at line 418 of file TriggerMenuParser.h.

Referenced by gtTriggerMenuInterfaceDate(), and setGtTriggerMenuInterfaceDate().

std::string l1t::TriggerMenuParser::m_triggerMenuInterfaceDescription
private
std::string l1t::TriggerMenuParser::m_triggerMenuName
private

Definition at line 438 of file TriggerMenuParser.h.

Referenced by gtTriggerMenuName(), parseCondFormats(), and setGtTriggerMenuName().

unsigned long l1t::TriggerMenuParser::m_triggerMenuUUID
private

Definition at line 440 of file TriggerMenuParser.h.

Referenced by gtTriggerMenuUUID(), parseCondFormats(), and setGtTriggerMenuUUID().

std::vector<std::vector<CaloTemplate> > l1t::TriggerMenuParser::m_vecCaloTemplate
private
std::vector<std::vector<CorrelationTemplate> > l1t::TriggerMenuParser::m_vecCorrelationTemplate
private
std::vector<std::vector<CorrelationWithOverlapRemovalTemplate> > l1t::TriggerMenuParser::m_vecCorrelationWithOverlapRemovalTemplate
private
std::vector<std::vector<EnergySumTemplate> > l1t::TriggerMenuParser::m_vecEnergySumTemplate
private
std::vector<std::vector<ExternalTemplate> > l1t::TriggerMenuParser::m_vecExternalTemplate
private
std::vector<std::vector<MuonTemplate> > l1t::TriggerMenuParser::m_vecMuonTemplate
private

vectors containing the conditions explicit, due to persistency...

Definition at line 447 of file TriggerMenuParser.h.

Referenced by parseCondFormats(), parseMuon(), setVecMuonTemplate(), and vecMuonTemplate().