CMS 3D CMS Logo

List of all members | Public Member Functions | Private Member Functions | Private Attributes
HLTSeedL1LogicScalers Class Reference

#include <HLTSeedL1LogicScalers.h>

Inheritance diagram for HLTSeedL1LogicScalers:
DQMEDAnalyzer edm::one::EDProducer< edm::EndRunProducer, edm::one::WatchRuns, edm::EndLuminosityBlockProducer, edm::one::WatchLuminosityBlocks, edm::Accumulator > edm::one::EDProducerBase edm::ProducerBase edm::EDConsumerBase edm::ProductRegistryHelper

Public Member Functions

 HLTSeedL1LogicScalers (const edm::ParameterSet &)
 
 ~HLTSeedL1LogicScalers () override
 
- Public Member Functions inherited from DQMEDAnalyzer
void accumulate (edm::Event const &event, edm::EventSetup const &setup) final
 
virtual void analyze (edm::Event const &, edm::EventSetup const &)
 
void beginLuminosityBlock (edm::LuminosityBlock const &lumi, edm::EventSetup const &setup) final
 
void beginRun (edm::Run const &run, edm::EventSetup const &setup) final
 
virtual void dqmBeginLuminosityBlock (edm::LuminosityBlock const &, edm::EventSetup const &)
 
virtual void dqmBeginRun (edm::Run const &, edm::EventSetup const &)
 
 DQMEDAnalyzer ()
 
virtual void dqmEndLuminosityBlock (edm::LuminosityBlock const &, edm::EventSetup const &)
 
virtual void dqmEndRun (edm::Run const &, edm::EventSetup const &)
 
void endLuminosityBlock (edm::LuminosityBlock const &, edm::EventSetup const &) final
 
void endLuminosityBlockProduce (edm::LuminosityBlock &lumi, edm::EventSetup const &setup) final
 
void endRun (edm::Run const &, edm::EventSetup const &) final
 
void endRunProduce (edm::Run &run, edm::EventSetup const &setup) final
 
virtual bool getCanSaveByLumi ()
 
- Public Member Functions inherited from edm::one::EDProducer< edm::EndRunProducer, edm::one::WatchRuns, edm::EndLuminosityBlockProducer, edm::one::WatchLuminosityBlocks, edm::Accumulator >
 EDProducer ()=default
 
SerialTaskQueueglobalLuminosityBlocksQueue () final
 
SerialTaskQueueglobalRunsQueue () final
 
bool hasAbilityToProduceInBeginLumis () const final
 
bool hasAbilityToProduceInBeginRuns () const final
 
bool hasAbilityToProduceInEndLumis () const final
 
bool hasAbilityToProduceInEndRuns () const final
 
bool wantsGlobalLuminosityBlocks () const final
 
bool wantsGlobalRuns () const final
 
- Public Member Functions inherited from edm::one::EDProducerBase
 EDProducerBase ()
 
ModuleDescription const & moduleDescription () const
 
bool wantsStreamLuminosityBlocks () const
 
bool wantsStreamRuns () const
 
 ~EDProducerBase () override
 
- Public Member Functions inherited from edm::ProducerBase
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
std::vector< edm::ProductResolverIndex > const & indiciesForPutProducts (BranchType iBranchType) const
 
 ProducerBase ()
 
std::vector< edm::ProductResolverIndex > const & putTokenIndexToProductResolverIndex () const
 
void registerProducts (ProducerBase *, ProductRegistry *, ModuleDescription const &)
 
std::function< void(BranchDescription const &)> registrationCallback () const
 used by the fwk to register list of products More...
 
void resolvePutIndicies (BranchType iBranchType, ModuleToResolverIndicies const &iIndicies, std::string const &moduleLabel)
 
 ~ProducerBase () noexcept(false) override
 
- Public Member Functions inherited from edm::EDConsumerBase
std::vector< ConsumesInfoconsumesInfo () const
 
void convertCurrentProcessAlias (std::string const &processName)
 Convert "@currentProcess" in InputTag process names to the actual current process name. More...
 
 EDConsumerBase ()
 
 EDConsumerBase (EDConsumerBase const &)=delete
 
 EDConsumerBase (EDConsumerBase &&)=default
 
ESProxyIndex const * esGetTokenIndices (edm::Transition iTrans) const
 
ProductResolverIndexAndSkipBit indexFrom (EDGetToken, BranchType, TypeID const &) const
 
void itemsMayGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
void itemsToGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
std::vector< ProductResolverIndexAndSkipBit > const & itemsToGetFrom (BranchType iType) const
 
void labelsForToken (EDGetToken iToken, Labels &oLabels) const
 
void modulesWhoseProductsAreConsumed (std::vector< ModuleDescription const * > &modules, ProductRegistry const &preg, std::map< std::string, ModuleDescription const * > const &labelsToDesc, std::string const &processName) const
 
EDConsumerBase const & operator= (EDConsumerBase const &)=delete
 
EDConsumerBaseoperator= (EDConsumerBase &&)=default
 
bool registeredToConsume (ProductResolverIndex, bool, BranchType) const
 
bool registeredToConsumeMany (TypeID const &, BranchType) const
 
ProductResolverIndexAndSkipBit uncheckedIndexFrom (EDGetToken) const
 
void updateLookup (BranchType iBranchType, ProductResolverIndexHelper const &, bool iPrefetchMayGet)
 
void updateLookup (eventsetup::ESRecordsToProxyIndices const &)
 
virtual ~EDConsumerBase () noexcept(false)
 

Private Member Functions

void analyze (const edm::Event &, const edm::EventSetup &) override
 
bool analyzeL1GtUtils (const edm::Event &, const edm::EventSetup &, const std::string &)
 
void bookHistograms (DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
 
void dqmBeginRun (const edm::Run &run, const edm::EventSetup &c) override
 

Private Attributes

std::string fDQMFolder
 
HLTConfigProvider fHLTConfig
 
bool fL1BeforeMask
 
edm::InputTag fL1GtDaqReadoutRecordInputTag
 
edm::InputTag fL1GtRecordInputTag
 
std::vector< std::pair< MonitorElement *, std::vector< std::string > > > fMapMEL1Algos
 
std::vector< std::string > fMonitorPaths
 
std::vector< MonitorElement * > fMonitorPathsME
 
std::string fProcessname
 
L1GtUtils m_l1GtUtils
 

Additional Inherited Members

- Public Types inherited from DQMEDAnalyzer
typedef dqm::reco::DQMStore DQMStore
 
typedef dqm::reco::MonitorElement MonitorElement
 
- Public Types inherited from edm::one::EDProducerBase
typedef EDProducerBase ModuleType
 
- Public Types inherited from edm::ProducerBase
using ModuleToResolverIndicies = std::unordered_multimap< std::string, std::tuple< edm::TypeID const *, const char *, edm::ProductResolverIndex >>
 
typedef ProductRegistryHelper::TypeLabelList TypeLabelList
 
- Public Types inherited from edm::EDConsumerBase
typedef ProductLabels Labels
 
- Static Public Member Functions inherited from edm::one::EDProducerBase
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &descriptions)
 
- Protected Member Functions inherited from edm::ProducerBase
ProducesCollector producesCollector ()
 
- Protected Member Functions inherited from edm::EDConsumerBase
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > consumes (edm::InputTag const &tag)
 
EDGetToken consumes (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken consumes (TypeToGet const &id, edm::InputTag const &tag)
 
ConsumesCollector consumesCollector ()
 Use a ConsumesCollector to gather consumes information from helper functions. More...
 
template<typename ProductType , BranchType B = InEvent>
void consumesMany ()
 
void consumesMany (const TypeToGet &id)
 
template<BranchType B>
void consumesMany (const TypeToGet &id)
 
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes ()
 
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes (ESInputTag const &tag)
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > mayConsume (edm::InputTag const &tag)
 
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
- Protected Attributes inherited from DQMEDAnalyzer
edm::EDPutTokenT< DQMTokenlumiToken_
 
edm::EDPutTokenT< DQMTokenrunToken_
 

Detailed Description

DQM/HLTSeedL1LogicScalers/src/HLTSeedL1LogicScalers.cc

Description: [one line class summary]

Implementation: [Notes on implementation]

Definition at line 45 of file HLTSeedL1LogicScalers.h.

Constructor & Destructor Documentation

HLTSeedL1LogicScalers::HLTSeedL1LogicScalers ( const edm::ParameterSet iConfig)
explicit

Definition at line 17 of file HLTSeedL1LogicScalers.cc.

References fDQMFolder, fL1BeforeMask, fMonitorPaths, fProcessname, edm::ParameterSet::getParameter(), edm::ParameterSet::getUntrackedParameter(), LogDebug, and AlCaHLTBitMon_QueryRunRegistry::string.

18  : fL1GtDaqReadoutRecordInputTag(iConfig.getParameter<edm::InputTag>("L1GtDaqReadoutRecordInputTag")),
19  fL1GtRecordInputTag(iConfig.getParameter<edm::InputTag>("L1GtRecordInputTag")),
20  m_l1GtUtils(iConfig,
22  false,
23  *this,
26  edm::InputTag()) {
27  // now do what ever initialization is needed
28  LogDebug("HLTSeedL1LogicScalers") << "constructor";
29 
30  // get untracked parameters
32  fL1BeforeMask = iConfig.getParameter<bool>("l1BeforeMask");
33  fProcessname = iConfig.getParameter<std::string>("processname");
34 
35  // get untracked parameters
36  fDQMFolder = iConfig.getUntrackedParameter("DQMFolder", string("HLT/HLTSeedL1LogicScalers/HLT_LogicL1"));
37  fMonitorPaths = iConfig.getUntrackedParameter<std::vector<std::string> >("monitorPaths");
38 }
#define LogDebug(id)
T getParameter(std::string const &) const
T getUntrackedParameter(std::string const &, T const &) const
ConsumesCollector consumesCollector()
Use a ConsumesCollector to gather consumes information from helper functions.
edm::InputTag fL1GtDaqReadoutRecordInputTag
std::vector< std::string > fMonitorPaths
HLTSeedL1LogicScalers::~HLTSeedL1LogicScalers ( )
override

Definition at line 40 of file HLTSeedL1LogicScalers.cc.

40 {}

Member Function Documentation

void HLTSeedL1LogicScalers::analyze ( const edm::Event iEvent,
const edm::EventSetup iSetup 
)
overrideprivate

Definition at line 130 of file HLTSeedL1LogicScalers.cc.

References analyzeL1GtUtils(), dqm::impl::MonitorElement::Fill(), fMapMEL1Algos, dqm::impl::MonitorElement::getName(), mps_fire::i, dqmiolumiharvest::j, LogDebug, LogTrace, m_l1GtUtils, hlt_dqm_clientPB-live_cfg::me, and L1GtUtils::retrieveL1EventSetup().

130  {
131  LogDebug("HLTSeedL1LogicScalers") << "HLTSeedL1LogicScalers::analyze event ";
132 
133  // before accessing any result from L1GtUtils, one must retrieve and cache
134  // the L1 trigger event setup
135  // add this call in the analyze / produce / filter method of your
136  // analyzer / producer / filter
137 
139 
140  // loop over maps of ME-L1Algos
141  for (unsigned int i = 0; i < fMapMEL1Algos.size(); i++) {
142  MonitorElement* me = fMapMEL1Algos[i].first;
143  LogTrace("HLTSeedL1LogicScalers") << "ME = " << me->getName() << endl;
144 
145  const vector<string>& l1Algos = fMapMEL1Algos[i].second;
146 
147  // word to bit-pack decisions of l1Algos
148  unsigned int myL1Word = 0;
149 
150  // loop over l1Algos
151  for (unsigned int j = 0; j < l1Algos.size(); j++) {
152  // check if this l1Algo passed
153  bool l1Pass = analyzeL1GtUtils(iEvent, iSetup, l1Algos[j]);
154  LogTrace("HLTSeedL1LogicScalers") << "l1Algo = " << l1Algos[j] << " l1Pass = " << l1Pass << endl;
155  if (l1Pass) {
156  // bit-wise pack
157  myL1Word |= (1 << j);
158  }
159  }
160  me->Fill(myL1Word);
161  } // end for i maps
162 }
#define LogDebug(id)
bool analyzeL1GtUtils(const edm::Event &, const edm::EventSetup &, const std::string &)
const std::string & getName() const
get name of ME
void Fill(long long x)
void retrieveL1EventSetup(const edm::EventSetup &)
retrieve all the relevant L1 trigger event setup records and cache them to improve the speed ...
Definition: L1GtUtils.cc:112
#define LogTrace(id)
std::vector< std::pair< MonitorElement *, std::vector< std::string > > > fMapMEL1Algos
bool HLTSeedL1LogicScalers::analyzeL1GtUtils ( const edm::Event ,
const edm::EventSetup ,
const std::string &   
)
private

Definition at line 164 of file HLTSeedL1LogicScalers.cc.

References L1GtUtils::decisionAfterMask(), L1GtUtils::decisionBeforeMask(), fL1BeforeMask, LogTrace, and m_l1GtUtils.

Referenced by analyze().

166  {
167  LogTrace("HLTSeedL1LogicScalers") << "analyzeL1GtUtils..." << endl;
168 
169  // access L1 trigger results using public methods from L1GtUtils
170  // always check on error code returned by that method
171 
172  int iErrorCode = -1;
173 
174  LogTrace("HLTSeedL1LogicScalers") << "l1AlgoName = " << l1AlgoName << endl;
175 
176  bool decisionAlgTechTrig = false;
177 
178  // check flag L1BeforeMask
179  if (fL1BeforeMask) {
180  decisionAlgTechTrig = m_l1GtUtils.decisionBeforeMask(iEvent, l1AlgoName, iErrorCode);
181  } else {
182  decisionAlgTechTrig = m_l1GtUtils.decisionAfterMask(iEvent, l1AlgoName, iErrorCode);
183  }
184 
185  LogTrace("HLTSeedL1LogicScalers") << "bool L1BeforeMask = " << fL1BeforeMask
186  << " decisionAlgTechTrig = " << decisionAlgTechTrig << endl;
187 
188  if (iErrorCode == 0) {
189  return decisionAlgTechTrig;
190  } else if (iErrorCode == 1) {
191  // algorithm / technical trigger does not exist in the L1 menu
192  LogWarning("HLTSeedL1LogicScalers") << "L1 algorithm " << l1AlgoName
193  << " not in L1 menu, but HLTConfigProvider found it in "
194  "L1SeedsLogicalExpression of at least one HLT path of the HLT menu."
195  << endl;
196  return false;
197  } else {
198  // error - see error code
199  // do whatever needed
200  return false;
201  }
202  return false;
203 }
int iEvent
Definition: GenABIO.cc:224
#define LogTrace(id)
const bool decisionBeforeMask(const edm::Event &iEvent, const std::string &nameAlgoTechTrig, int &errorCode) const
return decision before trigger mask for a given algorithm or technical trigger
Definition: L1GtUtils.cc:996
const bool decisionAfterMask(const edm::Event &iEvent, const std::string &nameAlgoTechTrig, int &errorCode) const
return decision after trigger mask for a given algorithm or technical trigger
Definition: L1GtUtils.cc:1010
void HLTSeedL1LogicScalers::bookHistograms ( DQMStore::IBooker iBooker,
edm::Run const &  ,
edm::EventSetup const &   
)
overrideprivatevirtual

Implements DQMEDAnalyzer.

Definition at line 56 of file HLTSeedL1LogicScalers.cc.

References dqm::dqmstoreimpl::DQMStore::IBooker::book1D(), fDQMFolder, fHLTConfig, dqmdumpme::first, fMapMEL1Algos, fMonitorPaths, fMonitorPathsME, ALCARECODTCalibSynchCosmicsDQM_cff::folderName, HLTConfigProvider::hltL1GTSeeds(), dqmdumpme::k, LogTrace, hlt_dqm_clientPB-live_cfg::me, Skims_PA_cff::name, seedmultiplicitymonitor_newtracking_cfi::nBins, edm::second(), dqm::impl::MonitorElement::setAxisTitle(), dqm::dqmstoreimpl::DQMStore::IBooker::setCurrentFolder(), HLTConfigProvider::size(), overlapproblemtsosanalyzer_cfi::title, and HLTConfigProvider::triggerIndex().

56  {
57  // book histos for L1 logic of specificified HLT paths
58  LogTrace("HLTSeedL1LogicScalers") << "size of vector of paths to monitor = " << fMonitorPaths.size() << endl;
59  for (unsigned int iPath = 0; iPath < fMonitorPaths.size(); iPath++) {
60  string monPath = fMonitorPaths[iPath];
61  LogTrace("HLTSeedL1LogicScalers") << "monPath = " << monPath << endl;
62 
63  string folderName = fDQMFolder + "/" + monPath;
64  iBooker.setCurrentFolder(folderName);
65 
66  // do nothing if monPath is not in the HLT menu
67  if (fHLTConfig.triggerIndex(monPath) == fHLTConfig.size())
68  continue;
69  // get L1SeedLogicalExpression of this path
70  vector<pair<bool, string> > hltL1GTSeed = fHLTConfig.hltL1GTSeeds(monPath);
71  LogTrace("HLTSeedL1LogicScalers") << endl
72  << "size of vector of GTSeedL1LogicalExpression = " << hltL1GTSeed.size() << endl;
73 
74  // each GT Seed of each path contains l1Algos
75  for (unsigned int iSeed = 0; iSeed < hltL1GTSeed.size(); iSeed++) {
76  LogTrace("HLTSeedL1LogicScalers") << " TechBit_flag = " << hltL1GTSeed[iSeed].first
77  << " GTSeedL1LogicalExpression = " << hltL1GTSeed[iSeed].second << endl;
78 
79  istringstream totalSString(hltL1GTSeed[iSeed].second);
80  string temp_string;
81 
82  vector<string> l1Algos;
83 
84  // only if not TechBit flag
85  while (!hltL1GTSeed[iSeed].first) {
86  totalSString >> temp_string;
87 
88  if (!l1Algos.empty()) {
89  if (temp_string == l1Algos.back())
90  break;
91  }
92  if (temp_string != "OR" && temp_string != "AND" && temp_string != "NOT" && temp_string != "(" &&
93  temp_string != ")" && !temp_string.empty()) {
94  l1Algos.push_back(temp_string);
95  }
96  }
97 
98  int nL1Algo = l1Algos.size();
99 
100  // put an upper limit on the size of l1Algos
101  if (nL1Algo > 32) {
102  LogWarning("HLTSeedL1LogicScalers") << " number of l1 Algos grater than 32. Using only the first 32." << endl;
103  l1Algos.resize(32);
104  }
105  int nBins = 1 << nL1Algo;
106 
107  for (unsigned int k = 0; k < l1Algos.size(); k++) {
108  LogTrace("HLTSeedL1LogicScalers") << " l1 Algo = " << l1Algos[k] << endl;
109  } // end for k
110 
111  std::stringstream title;
112  std::stringstream name;
113 
114  name << monPath << "_Seed_" << iSeed << "_L1BitLogic";
115  title << monPath << " BitPacked L1Algos of GTSeed " << iSeed << ": '" << hltL1GTSeed[iSeed].second << "'";
116 
117  LogTrace("HLTSeedL1LogicScalers") << " MonitorElement name = " << name.str() << endl;
118  LogTrace("HLTSeedL1LogicScalers") << " MonitorElement title = " << title.str() << endl;
119  LogTrace("HLTSeedL1LogicScalers") << " MonitorElement nBins = " << nBins << endl << endl;
120 
121  MonitorElement* me = iBooker.book1D(name.str().c_str(), title.str().c_str(), nBins, 0, nBins);
122  me->setAxisTitle("bit-packed word L1 Algorithms");
123  fMonitorPathsME.push_back(me);
124 
125  fMapMEL1Algos.push_back(make_pair(me, l1Algos));
126  } // end for Seeds
127  } // end for monitoring paths
128 }
unsigned int size() const
number of trigger paths in trigger table
unsigned int triggerIndex(const std::string &triggerName) const
slot position of trigger path in trigger table (0 to size-1)
U second(std::pair< T, U > const &p)
#define LogTrace(id)
HLTConfigProvider fHLTConfig
const std::vector< std::vector< std::pair< bool, std::string > > > & hltL1GTSeeds() const
std::vector< std::string > fMonitorPaths
std::vector< MonitorElement * > fMonitorPathsME
std::vector< std::pair< MonitorElement *, std::vector< std::string > > > fMapMEL1Algos
virtual void setAxisTitle(const std::string &title, int axis=1)
set x-, y- or z-axis title (axis=1, 2, 3 respectively)
void HLTSeedL1LogicScalers::dqmBeginRun ( const edm::Run run,
const edm::EventSetup c 
)
overrideprivate

Definition at line 42 of file HLTSeedL1LogicScalers.cc.

References fHLTConfig, fProcessname, HLTConfigProvider::init(), dqmiolumiharvest::j, LogDebug, LogTrace, dqmiodumpmetadata::n, HLTConfigProvider::size(), and HLTConfigProvider::triggerName().

42  {
43  // HLT config does not change within runs!
44  bool changed = false;
45  if (!fHLTConfig.init(run, iSetup, fProcessname, changed)) {
46  LogDebug("HLTSeedL1LogicScalers") << "HLTConfigProvider failed to initialize.";
47  return;
48  }
49 
50  const unsigned int n(fHLTConfig.size());
51  for (unsigned int j = 0; j != n; ++j) {
52  LogTrace("HLTSeedL1LogicScalers") << "HLTConfig path " << fHLTConfig.triggerName(j) << endl;
53  }
54 }
#define LogDebug(id)
unsigned int size() const
number of trigger paths in trigger table
const std::string & triggerName(unsigned int triggerIndex) const
#define LogTrace(id)
HLTConfigProvider fHLTConfig
bool init(const edm::Run &iRun, const edm::EventSetup &iSetup, const std::string &processName, bool &changed)
d&#39;tor

Member Data Documentation

std::string HLTSeedL1LogicScalers::fDQMFolder
private

Definition at line 59 of file HLTSeedL1LogicScalers.h.

Referenced by bookHistograms(), and HLTSeedL1LogicScalers().

HLTConfigProvider HLTSeedL1LogicScalers::fHLTConfig
private

Definition at line 62 of file HLTSeedL1LogicScalers.h.

Referenced by bookHistograms(), and dqmBeginRun().

bool HLTSeedL1LogicScalers::fL1BeforeMask
private

Definition at line 58 of file HLTSeedL1LogicScalers.h.

Referenced by analyzeL1GtUtils(), and HLTSeedL1LogicScalers().

edm::InputTag HLTSeedL1LogicScalers::fL1GtDaqReadoutRecordInputTag
private

Definition at line 63 of file HLTSeedL1LogicScalers.h.

edm::InputTag HLTSeedL1LogicScalers::fL1GtRecordInputTag
private

Definition at line 64 of file HLTSeedL1LogicScalers.h.

std::vector<std::pair<MonitorElement *, std::vector<std::string> > > HLTSeedL1LogicScalers::fMapMEL1Algos
private

Definition at line 69 of file HLTSeedL1LogicScalers.h.

Referenced by analyze(), and bookHistograms().

std::vector<std::string> HLTSeedL1LogicScalers::fMonitorPaths
private

Definition at line 67 of file HLTSeedL1LogicScalers.h.

Referenced by bookHistograms(), and HLTSeedL1LogicScalers().

std::vector<MonitorElement *> HLTSeedL1LogicScalers::fMonitorPathsME
private

Definition at line 68 of file HLTSeedL1LogicScalers.h.

Referenced by bookHistograms().

std::string HLTSeedL1LogicScalers::fProcessname
private

Definition at line 60 of file HLTSeedL1LogicScalers.h.

Referenced by dqmBeginRun(), and HLTSeedL1LogicScalers().

L1GtUtils HLTSeedL1LogicScalers::m_l1GtUtils
private

Definition at line 65 of file HLTSeedL1LogicScalers.h.

Referenced by analyze(), and analyzeL1GtUtils().