|
| BxTiming (const edm::ParameterSet &) |
|
| ~BxTiming () override |
|
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 &) |
|
| 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 () |
|
| EDProducer ()=default |
|
SerialTaskQueue * | globalLuminosityBlocksQueue () final |
|
SerialTaskQueue * | globalRunsQueue () 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 |
|
| EDProducerBase () |
|
ModuleDescription const & | moduleDescription () const |
|
bool | wantsStreamLuminosityBlocks () const |
|
bool | wantsStreamRuns () const |
|
| ~EDProducerBase () override |
|
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 |
|
std::vector< ConsumesInfo > | consumesInfo () 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 |
|
EDConsumerBase & | operator= (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) |
|
|
void | analyze (const edm::Event &, const edm::EventSetup &) override |
|
void | bookHistograms (DQMStore::IBooker &ibooker, edm::Run const &, edm::EventSetup const &) override |
|
void | dqmBeginRun (edm::Run const &iRun, edm::EventSetup const &iSetup) override |
|
ProducesCollector | producesCollector () |
|
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) |
|
Definition at line 33 of file BxTiming.h.
get the raw data - if not found, return
Definition at line 265 of file BxTiming.cc.
References l1GtPatternGenerator_cfi::bx, calcBxDiff(), gather_cfg::cout, FEDRawData::data(), data, L1GlobalTriggerReadoutRecord::decisionWord(), edm::Event::eventAuxiliary(), edm::EventAuxiliary::experimentType(), FEDRawDataCollection::FEDData(), fedRange_, fedRef_, fedSource_, fedSource_token_, dqm::impl::MonitorElement::Fill(), dqmdumpme::first, edm::Event::getByToken(), GLT, gtSource_token_, hBxDiffAllFed, hBxDiffAllFedSpread, hBxDiffSysFed, hBxOccyAllFed, hBxOccyAllFedSpread, hBxOccyGtTrigType, hBxOccyOneFed, hBxOccyTrigBit, RecoTauValidation_cfi::header, mps_fire::i, cuy::ii, createfilelist::int, edm::HandleBase::isValid(), dqmiolumiharvest::j, dqmdumpme::k, listGtBits_, FEDNumbering::MAXFEDID, nBxDiff, nBxOccy, nEvt_, nfed_, nspr_, NSYS, nttype_, runInFF_, edm::second(), dqm::impl::MonitorElement::setBinContent(), FEDRawData::size(), findQualityFiles::size, and verbose().
267 std::cout <<
"BxTiming::analyze() start\n" << std::flush;
277 std::cout <<
"BxTiming::analyze() | FEDRawDataCollection with input tag " <<
fedSource_ <<
" not found.";
285 std::vector<bool> gtbits;
287 gtbits.reserve(ngtbits);
288 for (
int i = 0;
i < ngtbits;
i++)
293 if (gtbits.empty()) {
294 gtbits.push_back(
true);
296 std::cout <<
"BxTiming::analyze() | unexpected empty decision bits!";
301 <<
" decision word size:" << (
int)(gtbits.size()) <<
" bits: ";
302 for (
size_t i = 0;
i != gtbits.size();
i++) {
303 int ii = gtbits.at(
i) ? 1 : 0;
341 std::cout <<
" fed:" <<
i <<
" bx:" << bx <<
" bxRef:" << bxRef <<
" diff:" << bxDiff <<
" nBxDiff" 362 std::cout <<
"BxTiming analyze | problem with vector size!\n" << std::endl;
366 for (
int j = 0;
j <
NSYS;
j++) {
386 if (nBxDiff[
i][0] < 0 || nBxOccy[
i][0] < 0)
394 <<
" del:" << nBxDiff[
i][0] <<
" min:" << nBxDiff[
i][1] <<
" max:" << nBxDiff[
i][2] <<
" Occy: " 395 <<
" del:" << nBxOccy[
i][0] <<
" min:" << nBxOccy[
i][1] <<
" max:" << nBxOccy[
i][2] <<
"\n" 400 std::cout <<
"BxTiming::analyze() end.\n" << std::flush;
MonitorElement * hBxDiffAllFed
histograms
int nBxOccy[FEDNumbering::MAXFEDID+1][nspr_]
EventAuxiliary const & eventAuxiliary() const override
MonitorElement * hBxDiffAllFedSpread[nspr_]
bool getByToken(EDGetToken token, Handle< PROD > &result) const
std::vector< int > listGtBits_
MonitorElement * hBxOccyAllFed
MonitorElement ** hBxOccyOneFed
size_t size() const
Lenght of the data buffer in bytes.
edm::EDGetTokenT< L1GlobalTriggerReadoutRecord > gtSource_token_
ExperimentType experimentType() const
U second(std::pair< T, U > const &p)
MonitorElement * hBxOccyGtTrigType[nttype_]
const FEDRawData & FEDData(int fedid) const
retrieve data for fed
const DecisionWord & decisionWord(int bxInEventValue) const
std::pair< int, int > fedRange_[NSYS]
edm::EDGetTokenT< FEDRawDataCollection > fedSource_token_
virtual void setBinContent(int binx, double content)
set content of bin (1-D)
MonitorElement * hBxDiffSysFed[NSYS]
MonitorElement ** hBxOccyTrigBit[NSYS]
char data[epos_bytes_allocation]
const unsigned char * data() const
Return a const pointer to the beginning of the data buffer.
int calcBxDiff(int bx1, int bx2)
int nBxDiff[FEDNumbering::MAXFEDID+1][nspr_]
MonitorElement * hBxOccyAllFedSpread[nspr_]
initialize counters
book the histograms
labeling (cosmetics added here)
Implements DQMEDAnalyzer.
Definition at line 49 of file BxTiming.cc.
References dqm::dqmstoreimpl::DQMStore::IBooker::book1D(), dqm::dqmstoreimpl::DQMStore::IBooker::bookProfile(), fedRange_, fedRef_, dqmdumpme::first, hBxDiffAllFed, hBxDiffAllFedSpread, hBxDiffSysFed, hBxOccyAllFed, hBxOccyAllFedSpread, hBxOccyGtTrigType, hBxOccyOneFed, hBxOccyTrigBit, histFolder_, mps_fire::i, cuy::ii, dqmiolumiharvest::j, listGtBits_, FEDNumbering::MAXCSCFEDID, FEDNumbering::MAXCSCTFFEDID, FEDNumbering::MAXDTFEDID, FEDNumbering::MAXDTTFFEDID, FEDNumbering::MAXECALFEDID, FEDNumbering::MAXHCALFEDID, FEDNumbering::MAXPreShowerFEDID, FEDNumbering::MAXRPCFEDID, FEDNumbering::MAXTriggerEGTPFEDID, FEDNumbering::MAXTriggerGTPFEDID, FEDNumbering::MINCSCFEDID, FEDNumbering::MINCSCTFFEDID, FEDNumbering::MINDTFEDID, FEDNumbering::MINDTTFFEDID, FEDNumbering::MINECALFEDID, FEDNumbering::MINHCALFEDID, FEDNumbering::MINPreShowerFEDID, FEDNumbering::MINRPCFEDID, FEDNumbering::MINTriggerGCTFEDID, FEDNumbering::MINTriggerGTPFEDID, nbig_, nBxDiff, nBxOccy, nfed_, norb_, nspr_, NSYS, nttype_, runInFF_, edm::second(), dqm::impl::MonitorElement::setAxisTitle(), dqm::dqmstoreimpl::DQMStore::IBooker::setCurrentFolder(), and AlCaHLTBitMon_QueryRunRegistry::string.
63 std::string SysLabel[
NSYS] = {
"PreShower",
"ECAL",
"HCAL",
"GCT",
"CSCTPG",
"CSCTF",
"DTTPG",
"DTTF",
"RPC",
"GT"};
65 typedef std::pair<int, int> FEDRange;
67 std::pair<int, int> fedRange[
NSYS] = {
91 refName += SysLabel[fedRefSys];
97 const int dbx =
nbig_;
102 "BxDiffAllFed",
"BxDiffAllFed", nfed_ + 1, -0.5, nfed_ + 0.5, 2 * dbx + 1, -1 * dbx - 0.5, dbx + 0.5);
106 lbl +=
"BxDiffAllFed";
107 lbl += spreadLabel[
i];
110 lbl +=
"BxOccyAllFed";
111 lbl += spreadLabel[
i];
115 lbl +=
"BxOccyAllFed";
123 for (
int i = 0;
i <
NSYS;
i++) {
128 nfeds = (nfeds > 0) ? nfeds : 1;
140 lbl +=
"BxOccyAllFed";
142 ibooker.setCurrentFolder(
histFolder_ +
"/SingleFed");
145 lbl +=
"BxOccyOneFed";
146 char *
ii =
new char[1000];
147 std::sprintf(ii,
"%d",
i);
156 lbl +=
"BxOccyGtTrigType";
157 char *ii =
new char[16];
158 std::sprintf(ii,
"%d",
i + 1);
164 ibooker.setCurrentFolder(
histFolder_ +
"/SingleBit");
165 for (
int i = 0;
i <
NSYS;
i++) {
170 lbl +=
"BxOccyGtBit";
171 char *ii =
new char[1000];
183 lbl +=
"BX(fed)-BX(";
189 lbl +=
"BX(fed)-BX(";
191 lbl +=
") " + spreadLabel[
i];
195 lbl +=
"Bx FED occupancy";
197 lbl += spreadLabel[
i];
204 lbl +=
"Combined FED occupancy";
211 for (
int i = 0;
i <
NSYS;
i++) {
229 char *ii =
new char[1000];
230 std::sprintf(ii,
"%d",
i);
239 lbl +=
"GT occupancy for trigger type ";
240 char *ii =
new char[16];
241 std::sprintf(ii,
"%d",
i + 1);
247 for (
int i = 0;
i <
NSYS;
i++) {
252 lbl +=
" Bx occupancy for Trigger bit ";
253 char *ii =
new char[10];
MonitorElement * hBxDiffAllFed
histograms
int nBxOccy[FEDNumbering::MAXFEDID+1][nspr_]
MonitorElement * hBxDiffAllFedSpread[nspr_]
std::vector< int > listGtBits_
MonitorElement * hBxOccyAllFed
MonitorElement ** hBxOccyOneFed
U second(std::pair< T, U > const &p)
MonitorElement * hBxOccyGtTrigType[nttype_]
std::pair< int, int > fedRange_[NSYS]
MonitorElement * hBxDiffSysFed[NSYS]
MonitorElement ** hBxOccyTrigBit[NSYS]
int nBxDiff[FEDNumbering::MAXFEDID+1][nspr_]
MonitorElement * hBxOccyAllFedSpread[nspr_]
virtual void setAxisTitle(const std::string &title, int axis=1)
set x-, y- or z-axis title (axis=1, 2, 3 respectively)
int BxTiming::calcBxDiff |
( |
int |
bx1, |
|
|
int |
bx2 |
|
) |
| |
|
private |
calculates the difference (closest distance) between two bunch crossing numbers. This is similar to calculating delta phi between two vectors.
Calculates bx1 - bx2 but makes sure that the value is in the range -num_bx_per_orbit / 2 .. + num_bx_per_orbit / 2 .
Definition at line 405 of file BxTiming.cc.
References change_name::diff, half_norb_, and norb_.
Referenced by analyze(), and verbose().
406 int diff = bx1 - bx2;
static const int half_norb_