CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Static Public Member Functions | Private Attributes
L1TGlobalSummary Class Reference
Inheritance diagram for L1TGlobalSummary:
edm::one::EDAnalyzer< edm::one::WatchRuns > edm::one::EDAnalyzerBase edm::EDConsumerBase

Public Member Functions

virtual void analyze (const edm::Event &, const edm::EventSetup &) override
 
virtual void beginRun (Run const &, EventSetup const &) override
 
virtual void endRun (Run const &, EventSetup const &) override
 
 L1TGlobalSummary (const edm::ParameterSet &)
 
virtual ~L1TGlobalSummary ()
 
- Public Member Functions inherited from edm::one::EDAnalyzer< edm::one::WatchRuns >
 EDAnalyzer ()=default
 
- Public Member Functions inherited from edm::one::EDAnalyzerBase
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
 EDAnalyzerBase ()
 
ModuleDescription const & moduleDescription () const
 
virtual ~EDAnalyzerBase ()
 
- Public Member Functions inherited from edm::EDConsumerBase
std::vector< ConsumesInfoconsumesInfo () const
 
 EDConsumerBase ()
 
ProductHolderIndexAndSkipBit indexFrom (EDGetToken, BranchType, TypeID const &) const
 
void itemsMayGet (BranchType, std::vector< ProductHolderIndexAndSkipBit > &) const
 
void itemsToGet (BranchType, std::vector< ProductHolderIndexAndSkipBit > &) const
 
std::vector
< ProductHolderIndexAndSkipBit >
const & 
itemsToGetFromEvent () const
 
void labelsForToken (EDGetToken iToken, Labels &oLabels) const
 
void modulesDependentUpon (std::string const &iProcessName, std::string const &iModuleLabel, bool iPrint, std::vector< char const * > &oModuleLabels) const
 
void modulesWhoseProductsAreConsumed (std::vector< ModuleDescription const * > &modules, ProductRegistry const &preg, std::map< std::string, ModuleDescription const * > const &labelsToDesc, std::string const &processName) const
 
bool registeredToConsume (ProductHolderIndex, bool, BranchType) const
 
bool registeredToConsumeMany (TypeID const &, BranchType) const
 
void updateLookup (BranchType iBranchType, ProductHolderIndexHelper const &)
 
virtual ~EDConsumerBase ()
 

Static Public Member Functions

static void fillDescriptions (edm::ConfigurationDescriptions &descriptions)
 
- Static Public Member Functions inherited from edm::one::EDAnalyzerBase
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &descriptions)
 

Private Attributes

EDGetToken algToken_
 
std::vector< int > decisionCount_
 
bool dumpRecord_
 
bool dumpTriggerResults_
 
bool dumpTriggerSummary_
 
EDGetToken extToken_
 
std::vector< int > finalCount_
 
int finalOrCount
 
L1TGlobalUtilgtUtil_
 
int maxBx_
 
int minBx_
 
std::vector< int > prescaledCount_
 

Additional Inherited Members

- Public Types inherited from edm::one::EDAnalyzerBase
typedef EDAnalyzerBase ModuleType
 
- Public Types inherited from edm::EDConsumerBase
typedef ProductLabels Labels
 
- 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 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)
 

Detailed Description

Definition at line 32 of file L1TGlobalSummary.cc.

Constructor & Destructor Documentation

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

Definition at line 57 of file L1TGlobalSummary.cc.

References edm::ParameterSet::getParameter().

57  {
58  algToken_ = consumes<BXVector<GlobalAlgBlk>>(iConfig.getParameter<InputTag>("AlgInputTag"));
59  extToken_ = consumes<BXVector<GlobalExtBlk>>(iConfig.getParameter<InputTag>("ExtInputTag"));
60  dumpRecord_ = iConfig.getParameter<bool>("DumpRecord");
61  dumpTriggerResults_ = iConfig.getParameter<bool>("DumpTrigResults");
62  dumpTriggerSummary_ = iConfig.getParameter<bool>("DumpTrigSummary");
63  minBx_ = iConfig.getParameter<int>("MinBx");
64  maxBx_ = iConfig.getParameter<int>("MaxBx");
65  gtUtil_ = new L1TGlobalUtil();
66  finalOrCount = 0;
67 }
T getParameter(std::string const &) const
L1TGlobalUtil * gtUtil_
virtual L1TGlobalSummary::~L1TGlobalSummary ( )
inlinevirtual

Definition at line 35 of file L1TGlobalSummary.cc.

35 {};

Member Function Documentation

void L1TGlobalSummary::analyze ( const edm::Event iEvent,
const edm::EventSetup evSetup 
)
overridevirtual

Implements edm::one::EDAnalyzerBase.

Definition at line 141 of file L1TGlobalSummary.cc.

References gather_cfg::cout, TauDecayModes::dec, edm::first(), edm::Event::getByToken(), i, edm::HandleBase::isValid(), LogDebug, masks, mergeVDriftHistosByStation::name, makeHLTPrescaleTable::prescales, edm::second(), AlCaHLTBitMon_QueryRunRegistry::string, and TriggerAnalyzer::veto.

141  {
142 
144  iEvent.getByToken(algToken_,alg);
145 
147  iEvent.getByToken(extToken_,ext);
148 
149  LogDebug("l1t|Global") << "retrieved L1 GT data blocks" << endl;
150 
152 
153  //Fill the L1 result maps
154  gtUtil_->retrieveL1(iEvent,evSetup,algToken_);
155 
156  LogDebug("l1t|Global") << "retrieved L1 data from GT Util" << endl;
157 
158  // grab the map for the final decisions
159  const std::vector<std::pair<std::string, bool> > initialDecisions = gtUtil_->decisionsInitial();
160  const std::vector<std::pair<std::string, bool> > prescaledDecisions = gtUtil_->decisionsPrescaled();
161  const std::vector<std::pair<std::string, bool> > finalDecisions = gtUtil_->decisionsFinal();
162  const std::vector<std::pair<std::string, int> > prescales = gtUtil_->prescales();
163  const std::vector<std::pair<std::string, bool> > masks = gtUtil_->masks();
164  const std::vector<std::pair<std::string, bool> > vetoMasks = gtUtil_->vetoMasks();
165 
166  if ((decisionCount_.size() != gtUtil_->decisionsInitial().size())
167  ||(prescaledCount_.size() != gtUtil_->decisionsPrescaled().size())
168  ||(finalCount_.size() != gtUtil_->decisionsFinal().size())){
169  LogError("l1t|Global") << "gtUtil sizes inconsistent across run." << endl;
170  return;
171  }
172 
174  cout << " Bit Algorithm Name Init PScd Final PS Factor Masked Veto " << endl;
175  cout << "============================================================================================================" << endl;
176  }
177  for(unsigned int i=0; i<initialDecisions.size(); i++) {
178 
179  // get the name and trigger result
180  std::string name = (initialDecisions.at(i)).first;
181  if(name == "NULL") continue;
182 
183  bool resultInit = (initialDecisions.at(i)).second;
184 
185  // get prescaled and final results (need some error checking here)
186  bool resultPre = (prescaledDecisions.at(i)).second;
187  bool resultFin = (finalDecisions.at(i)).second;
188 
189  // get the prescale and mask (needs some error checking here)
190  int prescale = (prescales.at(i)).second;
191  bool mask = (masks.at(i)).second;
192  bool veto = (vetoMasks.at(i)).second;
193 
194  if (resultInit) decisionCount_[i]++;
195  if (resultPre) prescaledCount_[i]++;
196  if (resultFin) finalCount_[i]++;
197 
198  //cout << i << " " << decisionCount_[i] << "\n";
199 
201  cout << std::dec << setfill(' ') << " " << setw(5) << i << " " << setw(40) << name.c_str() << " " << setw(7) << resultInit << setw(7) << resultPre << setw(7) << resultFin << setw(10) << prescale << setw(11) << mask << setw(9) << veto << endl;
202  }
203  }
204  bool finOR = gtUtil_->getFinalOR();
205  if (finOR) finalOrCount++;
207  cout << " FinalOR = " << finOR <<endl;
208  cout << "===========================================================================================================" << endl;
209  }
210  }
211 
212  if (dumpRecord_){
213  int i = 0; // now now just printing BX=0...
214 
215  // Dump the coutput record
216  cout << " ------ ext ----------" << endl;
217  if(ext.isValid()) {
218  if(i>=ext->getFirstBX() && i<=ext->getLastBX()) {
219  for(std::vector<GlobalExtBlk>::const_iterator extBlk = ext->begin(i); extBlk != ext->end(i); ++extBlk) {
220  extBlk->print(cout);
221  }
222  } else {
223  cout << "No Ext Conditions stored for this bx " << i << endl;
224  }
225  } else {
226  LogError("L1TGlobalSummary") << "No ext Data in this event " << endl;
227  }
228 
229  // Dump the coutput record
230  cout << " ------ alg ----------" << endl;
231  if(alg.isValid()) {
232  if(i>=alg->getFirstBX() && i<=alg->getLastBX()) {
233  for(std::vector<GlobalAlgBlk>::const_iterator algBlk = alg->begin(i); algBlk != alg->end(i); ++algBlk) {
234  algBlk->print(cout);
235  }
236  } else {
237  cout << "No Alg Decisions stored for this bx " << i << endl;
238  }
239  } else {
240  LogError("L1TGlobalSummary") << "No alg Data in this event " << endl;
241  }
242  }
243 
244 }
#define LogDebug(id)
int i
Definition: DBlmapReader.cc:9
const std::vector< std::pair< std::string, int > > & prescales()
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:462
L1TGlobalUtil * gtUtil_
const std::vector< std::pair< std::string, bool > > & masks()
void retrieveL1(const edm::Event &iEvent, const edm::EventSetup &evSetup, edm::EDGetToken gtAlgToken)
initialize the class (mainly reserve)
std::vector< int > prescaledCount_
U second(std::pair< T, U > const &p)
const std::vector< std::pair< std::string, bool > > & vetoMasks()
std::vector< int > finalCount_
const std::vector< std::pair< std::string, bool > > & decisionsInitial()
Definition: L1TGlobalUtil.h:95
std::vector< int > decisionCount_
bool isValid() const
Definition: HandleBase.h:75
constexpr uint32_t masks[]
Definition: CaloRecHit.cc:12
const std::vector< std::pair< std::string, bool > > & decisionsPrescaled()
Definition: L1TGlobalUtil.h:96
const std::vector< std::pair< std::string, bool > > & decisionsFinal()
Definition: L1TGlobalUtil.h:97
tuple cout
Definition: gather_cfg.py:145
void L1TGlobalSummary::beginRun ( Run const &  ,
EventSetup const &  evSetup 
)
overridevirtual

Definition at line 84 of file L1TGlobalSummary.cc.

References lumiContext::fill, and findQualityFiles::size.

84  {
85  decisionCount_.clear();
86  prescaledCount_.clear();
87  finalCount_.clear();
88 
89  finalOrCount = 0;
90  gtUtil_->retrieveL1Run(evSetup);
91  gtUtil_->retrieveL1LumiBlock(evSetup);
92 
93  int size = gtUtil_->decisionsInitial().size();
94  decisionCount_ .resize(size);
95  prescaledCount_ .resize(size);
96  finalCount_ .resize(size);
97  std::fill(decisionCount_.begin(), decisionCount_.end(), 0);
98  std::fill(prescaledCount_.begin(), prescaledCount_.end(), 0);
99  std::fill(finalCount_.begin(), finalCount_.end(), 0);
100 
101 }
string fill
Definition: lumiContext.py:319
L1TGlobalUtil * gtUtil_
void retrieveL1LumiBlock(const edm::EventSetup &evSetup)
std::vector< int > prescaledCount_
std::vector< int > finalCount_
const std::vector< std::pair< std::string, bool > > & decisionsInitial()
Definition: L1TGlobalUtil.h:95
std::vector< int > decisionCount_
void retrieveL1Run(const edm::EventSetup &evSetup)
tuple size
Write out results.
void L1TGlobalSummary::endRun ( Run const &  ,
EventSetup const &   
)
overridevirtual

Definition at line 103 of file L1TGlobalSummary.cc.

References TauDecayModes::dec, edm::first(), i, masks, mergeVDriftHistosByStation::name, makeHLTPrescaleTable::prescales, edm::second(), AlCaHLTBitMon_QueryRunRegistry::string, and TriggerAnalyzer::veto.

103  {
104 
105  if(dumpTriggerSummary_) {
106 
107  const std::vector<std::pair<std::string, int> > prescales = gtUtil_->prescales();
108  const std::vector<std::pair<std::string, bool> > masks = gtUtil_->masks();
109  const std::vector<std::pair<std::string, bool> > vetoMasks = gtUtil_->vetoMasks();
110 
111  // Dump the results
112  LogVerbatim("L1TGlobalSummary") << " " << endl;
113  LogVerbatim("L1TGlobalSummary") << " L1T menu Name : " << gtUtil_->gtTriggerMenuName() << endl;
114  LogVerbatim("L1TGlobalSummary") << " L1T menu Version: " << gtUtil_->gtTriggerMenuVersion() << endl;
115  LogVerbatim("L1TGlobalSummary") << " L1T menu Comment: " << gtUtil_->gtTriggerMenuComment() << endl;
116  LogVerbatim("L1TGlobalSummary") << " " << endl;
117  LogVerbatim("L1TGlobalSummary") << " Bit Algorithm Name Init PScd Final PS Factor Masked Veto " << endl;
118  LogVerbatim("L1TGlobalSummary") << "============================================================================================================" << endl;
119  for(unsigned int i=0; i<prescales.size(); i++) {
120 
121 
122  // get the prescale and mask (needs some error checking here)
123  int resultInit = decisionCount_[i];
124  int resultPre = prescaledCount_[i];
125  int resultFin = finalCount_[i];
126 
127  std::string name = (prescales.at(i)).first;
128  int prescale = (prescales.at(i)).second;
129  bool mask = (masks.at(i)).second;
130  bool veto = (vetoMasks.at(i)).second;
131 
132  if(name != "NULL") LogVerbatim("L1TGlobalSummary") << std::dec << setfill(' ') << " " << setw(5) << i << " " << setw(40) << name.c_str() << " " << setw(7) << resultInit << setw(7) << resultPre << setw(7) << resultFin << setw(10) << prescale << setw(11) << mask << setw(9) << veto << endl;
133  }
134  LogVerbatim("L1TGlobalSummary") << " Final OR Count = " << finalOrCount <<endl;
135  LogVerbatim("L1TGlobalSummary") << "===========================================================================================================" << endl;
136  }
137 
138 }
int i
Definition: DBlmapReader.cc:9
const std::string & gtTriggerMenuComment() const
const std::vector< std::pair< std::string, int > > & prescales()
L1TGlobalUtil * gtUtil_
const std::vector< std::pair< std::string, bool > > & masks()
const std::string & gtTriggerMenuVersion() const
std::vector< int > prescaledCount_
U second(std::pair< T, U > const &p)
const std::vector< std::pair< std::string, bool > > & vetoMasks()
std::vector< int > finalCount_
const std::string & gtTriggerMenuName() const
std::vector< int > decisionCount_
constexpr uint32_t masks[]
Definition: CaloRecHit.cc:12
void L1TGlobalSummary::fillDescriptions ( edm::ConfigurationDescriptions descriptions)
static

Definition at line 69 of file L1TGlobalSummary.cc.

References edm::ConfigurationDescriptions::add(), edm::ParameterSetDescription::add(), and HLT_FULL_cff::InputTag.

69  {
71  // These parameters are part of the L1T/HLT interface, avoid changing if possible::
72  desc.add<edm::InputTag> ("AlgInputTag", edm::InputTag(""))->setComment("InputTag for uGT Algorithm Block (required parameter: default value is invalid)");
73  desc.add<edm::InputTag> ("ExtInputTag", edm::InputTag(""))->setComment("InputTag for uGT External Block (required parameter: default value is invalid)");
74  // These parameters have well defined default values and are not currently
75  // part of the L1T/HLT interface. They can be cleaned up or updated at will:
76  desc.add<int> ("MinBx",0);
77  desc.add<int> ("MaxBx",0);
78  desc.add<bool> ("DumpTrigResults",false);
79  desc.add<bool> ("DumpRecord",false);
80  desc.add<bool> ("DumpTrigSummary",true);
81  descriptions.add("L1TGlobalSummary", desc);
82 }
ParameterDescriptionBase * add(U const &iLabel, T const &value)
void add(std::string const &label, ParameterSetDescription const &psetDescription)

Member Data Documentation

EDGetToken L1TGlobalSummary::algToken_
private

Definition at line 42 of file L1TGlobalSummary.cc.

std::vector<int> L1TGlobalSummary::decisionCount_
private

Definition at line 51 of file L1TGlobalSummary.cc.

bool L1TGlobalSummary::dumpRecord_
private

Definition at line 44 of file L1TGlobalSummary.cc.

bool L1TGlobalSummary::dumpTriggerResults_
private

Definition at line 45 of file L1TGlobalSummary.cc.

bool L1TGlobalSummary::dumpTriggerSummary_
private

Definition at line 46 of file L1TGlobalSummary.cc.

EDGetToken L1TGlobalSummary::extToken_
private

Definition at line 43 of file L1TGlobalSummary.cc.

std::vector<int> L1TGlobalSummary::finalCount_
private

Definition at line 53 of file L1TGlobalSummary.cc.

int L1TGlobalSummary::finalOrCount
private

Definition at line 54 of file L1TGlobalSummary.cc.

L1TGlobalUtil* L1TGlobalSummary::gtUtil_
private

Definition at line 49 of file L1TGlobalSummary.cc.

int L1TGlobalSummary::maxBx_
private

Definition at line 48 of file L1TGlobalSummary.cc.

int L1TGlobalSummary::minBx_
private

Definition at line 47 of file L1TGlobalSummary.cc.

std::vector<int> L1TGlobalSummary::prescaledCount_
private

Definition at line 52 of file L1TGlobalSummary.cc.