|
|
#include <L1TGMT.h>
|
static const double | piconv_ = 180. / acos(-1.) |
|
Definition at line 46 of file L1TGMT.h.
◆ ensubs
Enumerator |
---|
DTTF | |
RPCb | |
CSCTF | |
RPCf | |
GMT | |
Definition at line 63 of file L1TGMT.h.
◆ L1TGMT()
◆ ~L1TGMT()
◆ analyze()
Reimplemented from DQMEDAnalyzer.
Definition at line 38 of file L1TGMT.cc.
40 cout <<
"L1TGMT: analyze...." << endl;
46 edm::LogInfo(
"DataNotFound") <<
"can't find L1MuGMTReadoutCollection";
51 int bx1st[4] = {9, 9, 9, 9};
56 vector<L1MuGMTReadoutRecord> gmt_records = gmtrc->
getRecords();
58 vector<L1MuGMTReadoutRecord>::const_iterator RRItr;
60 for (RRItr = gmt_records.begin(); RRItr != gmt_records.end(); RRItr++) {
61 vector<L1MuRegionalCand> INPCands[4] = {
62 RRItr->getDTBXCands(), RRItr->getBrlRPCCands(), RRItr->getCSCCands(), RRItr->getFwdRPCCands()};
63 vector<L1MuGMTExtendedCand> GMTCands = RRItr->getGMTCands();
65 vector<L1MuRegionalCand>::const_iterator INPItr;
66 vector<L1MuGMTExtendedCand>::const_iterator GMTItr;
67 vector<L1MuGMTExtendedCand>::const_iterator GMTItr2;
69 int BxInEvent = RRItr->getBxInEvent();
72 int nSUBS[5] = {0, 0, 0, 0, 0};
73 for (
int i = 0;
i < 4;
i++) {
74 for (INPItr = INPCands[
i].begin(); INPItr != INPCands[
i].end(); ++INPItr) {
75 if (!INPItr->empty()) {
84 for (GMTItr = GMTCands.begin(); GMTItr != GMTCands.end(); ++GMTItr) {
96 int Bx = RRItr->getBxNr();
100 for (
int i = 0;
i < 4;
i++) {
101 for (INPItr = INPCands[
i].begin(); INPItr != INPCands[
i].end(); ++INPItr) {
110 int word = INPItr->getDataWord();
111 for (
int j = 0;
j < 32;
j++) {
118 for (GMTItr = GMTCands.begin(); GMTItr != GMTCands.end(); ++GMTItr) {
127 int word = GMTItr->getDataWord();
128 for (
int j = 0;
j < 32;
j++) {
133 if (GMTItr->isMatchedCand()) {
134 if (GMTItr->quality() > 3) {
139 }
else if (GMTItr->isRPC()) {
140 if (GMTItr->quality() > 3) {
146 if (GMTItr->quality() > 3) {
152 if (GMTItr != GMTCands.end()) {
153 for (GMTItr2 = GMTCands.begin(); GMTItr2 != GMTCands.end(); ++GMTItr2) {
154 if (GMTItr2 == GMTItr)
156 if (GMTItr2->empty())
158 if (GMTItr2->isRPC()) {
159 if (GMTItr->isFwd()) {
167 if (!(GMTItr->isFwd()) && GMTItr2->isFwd()) {
170 }
else if (GMTItr->isFwd() && !(GMTItr2->isFwd())) {
188 for (
int i = 0;
i < 4;
i++) {
206 for (
int id = 0;
id < 4;
id++) {
208 for (
int i = 0;
i < 4;
i++) {
220 for (
int i = 0;
i < 4;
i++) {
226 if (bx1st[
DTTF] < 9 && bx1st[
RPCb] < 9)
References bx_csc_rpc, bx_dt_csc, bx_dt_rpc, bx_number, bxnum_old_, gather_cfg::cout, CSCTF, dist_eta_csc_rpc, dist_eta_dt_csc, dist_eta_dt_rpc, dist_phi_csc_rpc, dist_phi_dt_csc, dist_phi_dt_rpc, DTTF, MillePedeFileConverter_cfg::e, eta_dtcsc_and_rpc, eta_dtcsc_only, eta_rpc_only, etaphi_dtcsc_and_rpc, etaphi_dtcsc_only, etaphi_rpc_only, dqm::impl::MonitorElement::Fill(), L1MuGMTReadoutCollection::getRecords(), GMT, gmtSource_, mps_fire::i, edm::HandleBase::isValid(), dqmiolumiharvest::j, n_csctf_vs_dttf, n_rpcb_vs_dttf, n_rpcf_vs_csctf, obnum_old_, phi_dtcsc_and_rpc, phi_dtcsc_only, phi_rpc_only, phiconv_(), edm::Handle< T >::product(), regional_triggers, RPCb, RPCf, subs_bits, subs_dbx, subs_eta, subs_etaphi, subs_etaqty, subs_nbx, subs_phi, subs_pt, subs_qty, trsrc_old_, and verbose_.
◆ book_()
◆ bookHistograms()
Implements DQMEDAnalyzer.
Definition at line 241 of file L1TGMT.cc.
242 std::string subs[5] = {
"DTTF",
"RPCb",
"CSCTF",
"RPCf",
"GMT"};
250 double qtymin = -0.5;
267 for (
int j = 0;
j < 9;
j++) {
268 qscale[
j] = -0.5 +
j;
286 float etascale[5][66];
347 netascale[
GMT] =
i - 1;
353 for (
int i = 0;
i < 5;
i++) {
354 hname = subs[
i] +
"_nbx";
355 htitle = subs[
i] +
" multiplicity in bx";
356 subs_nbx[
i] = ibooker.
book2D(hname.data(), htitle.data(), 4, 1., 5., 5, -2.5, 2.5);
360 hname = subs[
i] +
"_eta";
361 htitle = subs[
i] +
" eta value";
362 subs_eta[
i] = ibooker.
book1D(hname.data(), htitle.data(), netascale[
i], etascale[
i]);
365 hname = subs[
i] +
"_phi";
366 htitle = subs[
i] +
" phi value";
367 subs_phi[
i] = ibooker.
book1D(hname.data(), htitle.data(), nphiscale, phiscale);
370 hname = subs[
i] +
"_pt";
371 htitle = subs[
i] +
" pt value";
375 hname = subs[
i] +
"_qty";
376 htitle = subs[
i] +
" qty value";
377 subs_qty[
i] = ibooker.
book1D(hname.data(), htitle.data(), nqty, qtymin, qtymax);
380 hname = subs[
i] +
"_etaphi";
381 htitle = subs[
i] +
" phi vs eta";
382 subs_etaphi[
i] = ibooker.
book2D(hname.data(), htitle.data(), netascale[
i], etascale[
i], nphiscale, phiscale);
386 hname = subs[
i] +
"_etaqty";
387 htitle = subs[
i] +
" qty vs eta";
388 subs_etaqty[
i] = ibooker.
book2D(hname.data(), htitle.data(), netascale[
i], etascale[
i], nqty, qscale);
392 hname = subs[
i] +
"_bits";
393 htitle = subs[
i] +
" bit population";
428 bx_number = ibooker.
book1D(
"Bx_Number",
"Bx number ROP chip", 3564, 0., 3564.);
431 dbx_chip = ibooker.
bookProfile(
"dbx_Chip",
"bx count difference wrt ROP chip", 5, 0., 5., 100, -4000., 4000.,
"i");
441 ibooker.
book1D(
"eta_DTCSC_and_RPC",
"eta of confirmed GMT candidates", netascale[
GMT], etascale[
GMT]);
445 ibooker.
book1D(
"eta_DTCSC_only",
"eta of unconfirmed DT/CSC candidates", netascale[
GMT], etascale[
GMT]);
451 phi_dtcsc_and_rpc = ibooker.
book1D(
"phi_DTCSC_and_RPC",
"phi of confirmed GMT candidates", nphiscale, phiscale);
454 phi_dtcsc_only = ibooker.
book1D(
"phi_DTCSC_only",
"phi of unconfirmed DT/CSC candidates", nphiscale, phiscale);
457 phi_rpc_only = ibooker.
book1D(
"phi_RPC_only",
"phi of unconfirmed RPC candidates", nphiscale, phiscale);
461 "eta vs phi map of confirmed GMT candidates",
470 "eta vs phi map of unconfirmed DT/CSC candidates",
479 "eta vs phi map of unconfirmed RPC candidates",
487 dist_phi_dt_rpc = ibooker.
book1D(
"dist_phi_DT_RPC",
"Dphi between DT and RPC candidates", 100, -125., 125.);
490 dist_phi_csc_rpc = ibooker.
book1D(
"dist_phi_CSC_RPC",
"Dphi between CSC and RPC candidates", 100, -125., 125.);
493 dist_phi_dt_csc = ibooker.
book1D(
"dist_phi_DT_CSC",
"Dphi between DT and CSC candidates", 100, -125., 125.);
496 dist_eta_dt_rpc = ibooker.
book1D(
"dist_eta_DT_RPC",
"Deta between DT and RPC candidates", 40, -1., 1.);
499 dist_eta_csc_rpc = ibooker.
book1D(
"dist_eta_CSC_RPC",
"Deta between CSC and RPC candidates", 40, -1., 1.);
502 dist_eta_dt_csc = ibooker.
book1D(
"dist_eta_DT_CSC",
"Deta between DT and CSC candidates", 40, -1., 1.);
505 n_rpcb_vs_dttf = ibooker.
book2D(
"n_RPCb_vs_DTTF",
"n cands RPCb vs DTTF", 5, -0.5, 4.5, 5, -0.5, 4.5);
509 n_rpcf_vs_csctf = ibooker.
book2D(
"n_RPCf_vs_CSCTF",
"n cands RPCf vs CSCTF", 5, -0.5, 4.5, 5, -0.5, 4.5);
513 n_csctf_vs_dttf = ibooker.
book2D(
"n_CSCTF_vs_DTTF",
"n cands CSCTF vs DTTF", 5, -0.5, 4.5, 5, -0.5, 4.5);
517 bx_dt_rpc = ibooker.
book2D(
"bx_DT_vs_RPC",
"1st bx DT vs. RPC", 5, -2.5, 2.5, 5, -2.5, 2.5);
521 bx_csc_rpc = ibooker.
book2D(
"bx_CSC_vs_RPC",
"1st bx CSC vs. RPC", 5, -2.5, 2.5, 5, -2.5, 2.5);
525 bx_dt_csc = ibooker.
book2D(
"bx_DT_vs_CSC",
"1st bx DT vs. CSC", 5, -2.5, 2.5, 5, -2.5, 2.5);
529 for (
int i = 0;
i < 4;
i++) {
530 hname = subs[
i] +
"_dbx";
531 htitle =
"dBx " + subs[
i] +
" to previous event";
532 subs_dbx[
i] = ibooker.
book2D(hname.data(), htitle.data(), 1000, 0., 1000., 4, 0., 4.);
533 for (
int j = 0;
j < 4;
j++) {
References dqm::implementation::IBooker::book1D(), dqm::implementation::IBooker::book2D(), dqm::implementation::IBooker::bookProfile(), bx_csc_rpc, bx_dt_csc, bx_dt_rpc, bx_number, c, CSCTF, dbx_chip, dist_eta_csc_rpc, dist_eta_dt_csc, dist_eta_dt_rpc, dist_phi_csc_rpc, dist_phi_dt_csc, dist_phi_dt_rpc, DTTF, eta_dtcsc_and_rpc, eta_dtcsc_only, eta_rpc_only, etaphi_dtcsc_and_rpc, etaphi_dtcsc_only, etaphi_rpc_only, L1MuTriggerScales::getGMTEtaScale(), L1MuScale::getNBins(), L1MuTriggerScales::getPhiScale(), L1MuTriggerPtScale::getPtScale(), L1MuTriggerScales::getRegionalEtaScale(), L1MuScale::getValue(), GMT, mps_fire::i, cuy::ib, dqmiolumiharvest::j, l1muTrigscaleToken_, l1TrigptscaleToken_, n_csctf_vs_dttf, n_rpcb_vs_dttf, n_rpcf_vs_csctf, LaserClient_cfi::nbins, phi_dtcsc_and_rpc, phi_dtcsc_only, phi_rpc_only, piconv_, emtf::ptscale, regional_triggers, RPCb, RPCf, dqm::impl::MonitorElement::setAxisTitle(), dqm::impl::MonitorElement::setBinLabel(), dqm::implementation::NavigatorBase::setCurrentFolder(), AlCaHLTBitMon_QueryRunRegistry::string, subs_bits, subs_dbx, subs_eta, subs_etaphi, subs_etaqty, subs_nbx, subs_phi, subs_pt, and subs_qty.
◆ phiconv_()
double L1TGMT::phiconv_ |
( |
float |
phi | ) |
|
|
private |
◆ bx_csc_rpc
◆ bx_dt_csc
◆ bx_dt_rpc
◆ bx_number
◆ bxnum_old_
◆ dbx_chip
◆ dist_eta_csc_rpc
◆ dist_eta_dt_csc
◆ dist_eta_dt_rpc
◆ dist_phi_csc_rpc
◆ dist_phi_dt_csc
◆ dist_phi_dt_rpc
◆ eta_dtcsc_and_rpc
◆ eta_dtcsc_only
◆ eta_rpc_only
◆ etaphi_dtcsc_and_rpc
◆ etaphi_dtcsc_only
◆ etaphi_rpc_only
◆ gmtSource_
◆ l1muTrigscaleToken_
◆ l1TrigptscaleToken_
◆ logFile_
std::ofstream L1TGMT::logFile_ |
|
private |
◆ n_csctf_vs_dttf
◆ n_rpcb_vs_dttf
◆ n_rpcf_vs_csctf
◆ obnum_old_
◆ phi_dtcsc_and_rpc
◆ phi_dtcsc_only
◆ phi_rpc_only
◆ piconv_
const double L1TGMT::piconv_ = 180. / acos(-1.) |
|
staticprivate |
◆ regional_triggers
◆ subs_bits
◆ subs_dbx
◆ subs_eta
◆ subs_etaphi
◆ subs_etaqty
◆ subs_nbx
◆ subs_phi
◆ subs_pt
◆ subs_qty
◆ trsrc_old_
◆ verbose_
const bool L1TGMT::verbose_ |
|
private |
MonitorElement * phi_rpc_only
MonitorElement * etaphi_dtcsc_only
edm::ESGetToken< L1MuTriggerPtScale, L1MuTriggerPtScaleRcd > l1TrigptscaleToken_
MonitorElement * eta_rpc_only
virtual unsigned getNBins() const =0
get number of bins
const L1MuScale * getGMTEtaScale() const
get the GMT eta scale
T const * product() const
MonitorElement * dist_phi_dt_rpc
MonitorElement * dbx_chip
MonitorElement * dist_phi_dt_csc
MonitorElement * dist_eta_dt_csc
MonitorElement * phi_dtcsc_and_rpc
virtual void setCurrentFolder(std::string const &fullpath)
MonitorElement * dist_eta_csc_rpc
virtual float getValue(unsigned i) const =0
get value of the underlying vector for bin i
MonitorElement * n_csctf_vs_dttf
T getUntrackedParameter(std::string const &, T const &) const
Log< level::Info, false > LogInfo
MonitorElement * regional_triggers
MonitorElement * etaphi_dtcsc_and_rpc
MonitorElement * subs_qty[5]
const L1MuScale * getPhiScale() const
get the phi scale
MonitorElement * subs_phi[5]
MonitorElement * dist_phi_csc_rpc
const L1MuScale * getRegionalEtaScale(int isys) const
get the regioanl muon trigger eta scale, isys = 0(DT), 1(bRPC), 2(CSC), 3(fwdRPC)
MonitorElement * n_rpcf_vs_csctf
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())
MonitorElement * subs_dbx[4]
MonitorElement * dist_eta_dt_rpc
std::vector< L1MuGMTReadoutRecord > const & getRecords() const
const L1MuScale * getPtScale() const
get the Pt scale
MonitorElement * eta_dtcsc_and_rpc
MonitorElement * eta_dtcsc_only
virtual void setBinLabel(int bin, const std::string &label, int axis=1)
set bin label for x, y or z axis (axis=1, 2, 3 respectively)
MonitorElement * phi_dtcsc_only
MonitorElement * bx_csc_rpc
MonitorElement * etaphi_rpc_only
MonitorElement * subs_nbx[5]
MonitorElement * bx_dt_csc
edm::ESGetToken< L1MuTriggerScales, L1MuTriggerScalesRcd > l1muTrigscaleToken_
MonitorElement * subs_etaqty[5]
MonitorElement * subs_eta[5]
double phiconv_(float phi)
MonitorElement * subs_bits[5]
MonitorElement * book2D(TString const &name, TString const &title, int nchX, double lowX, double highX, int nchY, double lowY, double highY, FUNC onbooking=NOOP())
T getParameter(std::string const &) const
MonitorElement * subs_etaphi[5]
MonitorElement * subs_pt[5]
const edm::EDGetTokenT< L1MuGMTReadoutCollection > gmtSource_
MonitorElement * bx_number
static const double piconv_
virtual void setAxisTitle(const std::string &title, int axis=1)
set x-, y- or z-axis title (axis=1, 2, 3 respectively)
MonitorElement * n_rpcb_vs_dttf
MonitorElement * book1D(TString const &name, TString const &title, int const nchX, double const lowX, double const highX, FUNC onbooking=NOOP())
MonitorElement * bx_dt_rpc