8 std::cout <<
"BxTiming::BxTiming()...\n" << std::flush;
22 (
"HistFolder",
"L1T/BXSynch");
25 if(runInFF_) histFolder_ =
"L1T/BXSynch_EvF";
27 std::cout <<
"Filter farm run setting?" << runInFF_
28 <<
"\n" << std::flush;
34 for(
int i=0;
i<ngtbits;
i++)
39 std::cout <<
"BxTiming: gt bits set for timing dqm:";
49 std::cout <<
"BxTiming::BxTiming constructor...done.\n" << std::flush;
67 "PreShower",
"ECAL",
"HCAL",
"GCT",
"CSCTPG",
"CSCTF",
"DTTPG",
"DTTF",
"RPC",
"GT"
70 typedef std::pair<int, int> FEDRange;
72 std::pair<int,int> fedRange[
NSYS] = {
94 refName+=SysLabel[fedRefSys];
100 const int dbx =
nbig_;
105 nfed_ + 1, -0.5, nfed_+0.5,
106 2*dbx+1, -1*dbx-0.5,dbx+0.5
110 lbl.clear();lbl+=
"BxDiffAllFed";lbl+=spreadLabel[
i];
112 lbl.clear();lbl+=
"BxOccyAllFed";lbl+=spreadLabel[
i];
115 lbl.clear();lbl+=
"BxOccyAllFed";
126 lbl.clear();lbl+=SysLabel[
i];lbl+=
"FedBxDiff";
128 nfeds = (nfeds>0)? nfeds:1;
131 2*dbx+1,-1*dbx-0.5,dbx+0.5);
136 lbl.clear();lbl+=
"BxOccyAllFed";
140 lbl.clear(); lbl+=
"BxOccyOneFed";
141 char *
ii =
new char[1000]; std::sprintf(ii,
"%d",
i);lbl+=
ii;
148 lbl.clear();lbl+=
"BxOccyGtTrigType";
149 char *
ii =
new char[10]; std::sprintf(ii,
"%d",
i+1);lbl+=
ii;
158 lbl.clear();lbl+=SysLabel[
i];lbl+=
"BxOccyGtBit";
159 char *
ii =
new char[1000]; std::sprintf(ii,
"%d",
listGtBits_.at(
j)); lbl+=
ii;
169 lbl.clear(); lbl+=
"BX(fed)-BX("; lbl+=refName; lbl+=
")";
172 lbl.clear(); lbl+=
"BX(fed)-BX("; lbl+=refName; lbl+=
") "+spreadLabel[
i];
175 lbl.clear(); lbl+=
"Bx FED occupancy"; lbl+=
" "; lbl+=spreadLabel[
i];
181 lbl.clear(); lbl+=
"Combined FED occupancy";
189 lbl.clear(); lbl+=SysLabel[
i]; lbl+=
" FED ID";
191 lbl.clear(); lbl+=
"BX("; lbl+=SysLabel[
i]; lbl+=
")-BX(";lbl+=refName; lbl+=
")";
197 lbl.clear(); lbl+=
" FED ";
char *
ii =
new char[1000]; std::sprintf(ii,
"%d",
i);lbl+=
ii; lbl+=
" occupancy";
203 lbl.clear(); lbl+=
"GT occupancy for trigger type ";
char *
ii =
new char[10]; std::sprintf(ii,
"%d",
i+1);lbl+=
ii;
211 lbl.clear();lbl+=SysLabel[
i];lbl+=
" Bx occupancy for Trigger bit ";
229 std::cout <<
"BxTiming::analyze() start\n" << std::flush;
241 <<
"BxTiming::analyze() | FEDRawDataCollection with input tag "
250 std::vector<bool> gtbits;
252 gtbits.reserve(ngtbits);
for(
int i=0;
i<ngtbits;
i++) gtbits[
i]=
false;
254 gtbits = gtdata->decisionWord();
256 if(gtbits.size()==0) {
257 gtbits.push_back(
true);
259 std::cout <<
"BxTiming::analyze() | unexpected empty decision bits!";
263 std::cout <<
"BxTiming::analyze() gt data valid:" << (int)(gtdata.
isValid()?0:1)
264 <<
" decision word size:" << (
int)(gtbits.size()) <<
" bits: ";
265 for(
size_t i=0;
i!=gtbits.size();
i++) {
266 int ii = gtbits.at(
i)? 1:0;
288 int bx = header.
bxID();
302 <<
" bxRef:" << bxRef
303 <<
" diff:" << bxDiff
306 <<
"\n" << std::flush;
325 std::cout <<
"BxTiming analyze | problem with vector size!\n" << std::endl;
341 if(ttype!=1)
continue;
350 if(nBxDiff[
i][0]<0 || nBxOccy[
i][0]<0)
continue;
357 <<
" Bx-Bx(" <<
fedRef_ <<
")::"
358 <<
" del:" << nBxDiff[
i][0]
359 <<
" min:" << nBxDiff[
i][1]
360 <<
" max:" << nBxDiff[
i][2]
362 <<
" del:" << nBxOccy[
i][0]
363 <<
" min:" << nBxOccy[
i][1]
364 <<
" max:" << nBxOccy[
i][2]
365 <<
"\n" << std::flush;
371 std::cout <<
"BxTiming::analyze() end.\n" << std::flush;
379 int diff = bx1 - bx2;
T getUntrackedParameter(std::string const &, T const &) const
MonitorElement * hBxDiffAllFed
histograms
void setBinContent(int binx, double content)
set content of bin (1-D)
int nBxOccy[FEDNumbering::MAXFEDID+1][nspr_]
virtual void dqmBeginRun(edm::Run const &iRun, edm::EventSetup const &iSetup)
MonitorElement * bookProfile(Args &&...args)
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_]
MonitorElement * book1D(Args &&...args)
static const int half_norb_
virtual void analyze(const edm::Event &, const edm::EventSetup &)
EventAuxiliary const & eventAuxiliary() const
virtual void bookHistograms(DQMStore::IBooker &ibooker, edm::Run const &, edm::EventSetup const &) override
void setCurrentFolder(const std::string &fullpath)
edm::EDGetTokenT< FEDRawDataCollection > fedSource_token_
MonitorElement * hBxDiffSysFed[NSYS]
MonitorElement ** hBxOccyTrigBit[NSYS]
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_]
std::pair< int, int > fedRange_[NSYS]
MonitorElement * hBxOccyAllFedSpread[nspr_]
void setAxisTitle(const std::string &title, int axis=1)
set x-, y- or z-axis title (axis=1, 2, 3 respectively)
BxTiming(const edm::ParameterSet &)
tuple size
Write out results.