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:";
60 std::cout <<
"BxTiming::BxTiming constructor...done.\n" << std::flush;
69 std::cout <<
"BxTiming::beginJob() start\n" << std::flush;
72 std::cout <<
"BxTiming::beginJob() end.\n" << std::flush;
92 "PreShower",
"ECAL",
"HCAL",
"GCT",
"CSCTPG",
"CSCTF",
"DTTPG",
"DTTF",
"RPC",
"GT"
95 typedef std::pair<int, int> FEDRange;
97 std::pair<int,int> fedRange[
NSYS] = {
115 {fedRefSys=
i;
break;}
119 refName+=SysLabel[fedRefSys];
125 const int dbx =
nbig_;
132 nfed_ + 1, -0.5, nfed_+0.5,
133 2*dbx+1, -1*dbx-0.5,dbx+0.5
137 lbl.clear();lbl+=
"BxDiffAllFed";lbl+=spreadLabel[
i];
139 lbl.clear();lbl+=
"BxOccyAllFed";lbl+=spreadLabel[
i];
143 lbl.clear();lbl+=
"BxOccyAllFed";
154 lbl.clear();lbl+=SysLabel[
i];lbl+=
"FedBxDiff";
156 nfeds = (nfeds>0)? nfeds:1;
159 2*dbx+1,-1*dbx-0.5,dbx+0.5);
164 lbl.clear();lbl+=
"BxOccyAllFed";
168 lbl.clear(); lbl+=
"BxOccyOneFed";
169 char *
ii =
new char[1000]; std::sprintf(ii,
"%d",
i);lbl+=
ii;
176 lbl.clear();lbl+=
"BxOccyGtTrigType";
177 char *
ii =
new char[10]; std::sprintf(ii,
"%d",
i+1);lbl+=
ii;
186 lbl.clear();lbl+=SysLabel[
i];lbl+=
"BxOccyGtBit";
187 char *
ii =
new char[1000]; std::sprintf(ii,
"%d",
listGtBits_.at(
j)); lbl+=
ii;
197 lbl.clear(); lbl+=
"BX(fed)-BX("; lbl+=refName; lbl+=
")";
200 lbl.clear(); lbl+=
"BX(fed)-BX("; lbl+=refName; lbl+=
") "+spreadLabel[
i];
203 lbl.clear(); lbl+=
"Bx FED occupancy"; lbl+=
" "; lbl+=spreadLabel[
i];
209 lbl.clear(); lbl+=
"Combined FED occupancy";
217 lbl.clear(); lbl+=SysLabel[
i]; lbl+=
" FED ID";
219 lbl.clear(); lbl+=
"BX("; lbl+=SysLabel[
i]; lbl+=
")-BX(";lbl+=refName; lbl+=
")";
225 lbl.clear(); lbl+=
" FED ";
char *
ii =
new char[1000]; std::sprintf(ii,
"%d",
i);lbl+=
ii; lbl+=
" occupancy";
231 lbl.clear(); lbl+=
"GT occupancy for trigger type ";
char *
ii =
new char[10]; std::sprintf(ii,
"%d",
i+1);lbl+=
ii;
239 lbl.clear();lbl+=SysLabel[
i];lbl+=
" Bx occupancy for Trigger bit ";
251 std::cout <<
"BxTiming::endJob Nevents: " <<
nEvt_ <<
"\n" << std::flush;
257 std::cout <<
"BxTiming::endJob() end.\n" << std::flush;
266 std::cout <<
"BxTiming::analyze() start\n" << std::flush;
278 <<
"BxTiming::analyze() | FEDRawDataCollection with input tag "
287 std::vector<bool> gtbits;
289 gtbits.reserve(ngtbits);
for(
int i=0;
i<ngtbits;
i++) gtbits[
i]=
false;
291 gtbits = gtdata->decisionWord();
293 if(gtbits.size()==0) {
294 gtbits.push_back(
true);
296 std::cout <<
"BxTiming::analyze() | unexpected empty decision bits!";
300 std::cout <<
"BxTiming::analyze() gt data valid:" << (int)(gtdata.
isValid()?0:1)
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;
315 int ttype =
FEDHeader(rawdata->FEDData(812).data()).triggerType();
325 int bx = header.
bxID();
339 <<
" bxRef:" << bxRef
340 <<
" diff:" << bxDiff
343 <<
"\n" << std::flush;
362 std::cout <<
"BxTiming analyze | problem with vector size!\n" << std::endl;
378 if(ttype!=1)
continue;
387 if(nBxDiff[
i][0]<0 || nBxOccy[
i][0]<0)
continue;
394 <<
" Bx-Bx(" <<
fedRef_ <<
")::"
395 <<
" del:" << nBxDiff[
i][0]
396 <<
" min:" << nBxDiff[
i][1]
397 <<
" max:" << nBxDiff[
i][2]
399 <<
" del:" << nBxOccy[
i][0]
400 <<
" min:" << nBxOccy[
i][1]
401 <<
" max:" << nBxOccy[
i][2]
402 <<
"\n" << std::flush;
408 std::cout <<
"BxTiming::analyze() end.\n" << std::flush;
416 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)
MonitorElement * book1D(const char *name, const char *title, int nchX, double lowX, double highX)
Book 1D histogram.
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_
U second(std::pair< T, U > const &p)
virtual void beginJob(void)
MonitorElement * hBxOccyGtTrigType[nttype_]
virtual void beginRun(edm::Run const &iRun, edm::EventSetup const &iSetup)
void save(const std::string &filename, const std::string &path="", const std::string &pattern="", const std::string &rewrite="", const uint32_t run=0, SaveReferenceTag ref=SaveWithReference, int minStatus=dqm::qstatus::STATUS_OK, const std::string &fileupdate="RECREATE")
static const int half_norb_
MonitorElement * bookProfile(const char *name, const char *title, int nchX, double lowX, double highX, int nchY, double lowY, double highY, const char *option="s")
void setVerbose(unsigned level)
virtual void analyze(const edm::Event &, const edm::EventSetup &)
edm::EDGetTokenT< FEDRawDataCollection > fedSource_token_
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)
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.
void setCurrentFolder(const std::string &fullpath)