7 std::cout <<
"BxTiming::BxTiming()...\n" << std::flush;
21 histFolder_ =
"L1T/BXSynch_EvF";
23 std::cout <<
"Filter farm run setting?" << runInFF_ <<
"\n" << std::flush;
29 for (
int i = 0;
i < ngtbits;
i++)
34 std::cout <<
"BxTiming: gt bits set for timing dqm:";
44 std::cout <<
"BxTiming::BxTiming constructor...done.\n" << std::flush;
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";
145 lbl +=
"BxOccyOneFed";
153 lbl +=
"BxOccyGtTrigType";
159 for (
int i = 0;
i <
NSYS;
i++) {
164 lbl +=
"BxOccyGtBit";
174 lbl +=
"BX(fed)-BX(";
180 lbl +=
"BX(fed)-BX(";
182 lbl +=
") " + spreadLabel[
i];
186 lbl +=
"Bx FED occupancy";
188 lbl += spreadLabel[
i];
195 lbl +=
"Combined FED occupancy";
202 for (
int i = 0;
i <
NSYS;
i++) {
227 lbl +=
"GT occupancy for trigger type ";
232 for (
int i = 0;
i <
NSYS;
i++) {
237 lbl +=
" Bx occupancy for Trigger bit ";
247 std::cout <<
"BxTiming::analyze() start\n" << std::flush;
257 std::cout <<
"BxTiming::analyze() | FEDRawDataCollection with input tag " <<
fedSource_ <<
" not found.";
265 std::vector<bool> gtbits;
267 gtbits.reserve(ngtbits);
268 for (
int i = 0;
i < ngtbits;
i++)
271 gtbits = gtdata->decisionWord();
273 if (gtbits.empty()) {
274 gtbits.push_back(
true);
276 std::cout <<
"BxTiming::analyze() | unexpected empty decision bits!";
280 std::cout <<
"BxTiming::analyze() gt data valid:" << (int)(gtdata.
isValid() ? 0 : 1)
281 <<
" decision word size:" << (
int)(gtbits.size()) <<
" bits: ";
282 for (
size_t i = 0;
i != gtbits.size();
i++) {
283 int ii = gtbits.at(
i) ? 1 : 0;
305 int bx = header.bxID();
321 std::cout <<
" fed:" <<
i <<
" bx:" << bx <<
" bxRef:" << bxRef <<
" diff:" << bxDiff <<
" nBxDiff"
342 std::cout <<
"BxTiming analyze | problem with vector size!\n" << std::endl;
346 for (
int j = 0;
j <
NSYS;
j++) {
366 if (nBxDiff[
i][0] < 0 || nBxOccy[
i][0] < 0)
374 <<
" del:" << nBxDiff[
i][0] <<
" min:" << nBxDiff[
i][1] <<
" max:" << nBxDiff[
i][2] <<
" Occy: "
375 <<
" del:" << nBxOccy[
i][0] <<
" min:" << nBxOccy[
i][1] <<
" max:" << nBxOccy[
i][2] <<
"\n"
380 std::cout <<
"BxTiming::analyze() end.\n" << std::flush;
386 int diff = bx1 - bx2;
T getUntrackedParameter(std::string const &, T const &) const
MonitorElement * hBxDiffAllFed
histograms
int nBxOccy[FEDNumbering::MAXFEDID+1][nspr_]
virtual void setCurrentFolder(std::string const &fullpath)
MonitorElement * hBxDiffAllFedSpread[nspr_]
bool getByToken(EDGetToken token, Handle< PROD > &result) const
std::vector< int > listGtBits_
std::string to_string(const V &value)
EventAuxiliary const & eventAuxiliary() const override
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_]
MonitorElement * bookProfile(TString const &name, TString const &title, int nchX, double lowX, double highX, int, double lowY, double highY, char const *option="s", FUNC onbooking=NOOP())
static const int half_norb_
std::pair< int, int > fedRange_[NSYS]
void bookHistograms(DQMStore::IBooker &ibooker, edm::Run const &, edm::EventSetup const &) override
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_]
void analyze(const edm::Event &, const edm::EventSetup &) override
MonitorElement * book1D(TString const &name, TString const &title, int const nchX, double const lowX, double const highX, FUNC onbooking=NOOP())
MonitorElement * hBxOccyAllFedSpread[nspr_]
BxTiming(const edm::ParameterSet &)
tuple size
Write out results.
virtual void setAxisTitle(const std::string &title, int axis=1)
set x-, y- or z-axis title (axis=1, 2, 3 respectively)