CMS 3D CMS Logo

List of all members | Public Member Functions | Protected Member Functions | Private Types | Private Member Functions | Private Attributes | Static Private Attributes
L1TGMT Class Reference

#include <L1TGMT.h>

Inheritance diagram for L1TGMT:
DQMEDAnalyzer edm::one::EDProducer< edm::EndRunProducer, edm::one::WatchRuns, edm::EndLuminosityBlockProducer, edm::one::WatchLuminosityBlocks, edm::Accumulator > edm::one::EDProducerBase edm::ProducerBase edm::EDConsumerBase edm::ProductRegistryHelper

Public Member Functions

 L1TGMT (const edm::ParameterSet &ps)
 
 ~L1TGMT () override
 
- Public Member Functions inherited from DQMEDAnalyzer
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 &)
 
virtual void dqmBeginRun (edm::Run 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 ()
 
- Public Member Functions inherited from edm::one::EDProducer< edm::EndRunProducer, edm::one::WatchRuns, edm::EndLuminosityBlockProducer, edm::one::WatchLuminosityBlocks, edm::Accumulator >
 EDProducer ()=default
 
SerialTaskQueueglobalLuminosityBlocksQueue () final
 
SerialTaskQueueglobalRunsQueue () 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
 
- Public Member Functions inherited from edm::one::EDProducerBase
 EDProducerBase ()
 
ModuleDescription const & moduleDescription () const
 
bool wantsStreamLuminosityBlocks () const
 
bool wantsStreamRuns () const
 
 ~EDProducerBase () override
 
- Public Member Functions inherited from edm::ProducerBase
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
 
- Public Member Functions inherited from edm::EDConsumerBase
std::vector< ConsumesInfoconsumesInfo () 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
 
EDConsumerBaseoperator= (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)
 

Protected Member Functions

void analyze (const edm::Event &e, const edm::EventSetup &c) override
 
void bookHistograms (DQMStore::IBooker &ibooker, edm::Run const &, edm::EventSetup const &) override
 
void dqmBeginRun (const edm::Run &, const edm::EventSetup &) override
 
- Protected Member Functions inherited from edm::ProducerBase
ProducesCollector producesCollector ()
 
- Protected Member Functions inherited from edm::EDConsumerBase
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)
 

Private Types

enum  ensubs {
  DTTF = 0, RPCb, CSCTF, RPCf,
  GMT
}
 

Private Member Functions

void book_ (const edm::EventSetup &c)
 
double phiconv_ (float phi)
 

Private Attributes

MonitorElementbx_csc_rpc
 
MonitorElementbx_dt_csc
 
MonitorElementbx_dt_rpc
 
MonitorElementbx_number
 
int bxnum_old_
 
MonitorElementdbx_chip
 
MonitorElementdist_eta_csc_rpc
 
MonitorElementdist_eta_dt_csc
 
MonitorElementdist_eta_dt_rpc
 
MonitorElementdist_phi_csc_rpc
 
MonitorElementdist_phi_dt_csc
 
MonitorElementdist_phi_dt_rpc
 
MonitorElementeta_dtcsc_and_rpc
 
MonitorElementeta_dtcsc_only
 
MonitorElementeta_rpc_only
 
MonitorElementetaphi_dtcsc_and_rpc
 
MonitorElementetaphi_dtcsc_only
 
MonitorElementetaphi_rpc_only
 
const edm::EDGetTokenT< L1MuGMTReadoutCollectiongmtSource_
 
std::ofstream logFile_
 
MonitorElementn_csctf_vs_dttf
 
MonitorElementn_rpcb_vs_dttf
 
MonitorElementn_rpcf_vs_csctf
 
int obnum_old_
 
MonitorElementphi_dtcsc_and_rpc
 
MonitorElementphi_dtcsc_only
 
MonitorElementphi_rpc_only
 
MonitorElementregional_triggers
 
MonitorElementsubs_bits [5]
 
MonitorElementsubs_dbx [4]
 
MonitorElementsubs_eta [5]
 
MonitorElementsubs_etaphi [5]
 
MonitorElementsubs_etaqty [5]
 
MonitorElementsubs_nbx [5]
 
MonitorElementsubs_phi [5]
 
MonitorElementsubs_pt [5]
 
MonitorElementsubs_qty [5]
 
int trsrc_old_
 
const bool verbose_
 

Static Private Attributes

static const double piconv_ = 180. / acos(-1.)
 

Additional Inherited Members

- Public Types inherited from DQMEDAnalyzer
typedef dqm::reco::DQMStore DQMStore
 
typedef dqm::reco::MonitorElement MonitorElement
 
- Public Types inherited from edm::one::EDProducerBase
typedef EDProducerBase ModuleType
 
- Public Types inherited from edm::ProducerBase
using ModuleToResolverIndicies = std::unordered_multimap< std::string, std::tuple< edm::TypeID const *, const char *, edm::ProductResolverIndex >>
 
typedef ProductRegistryHelper::TypeLabelList TypeLabelList
 
- Public Types inherited from edm::EDConsumerBase
typedef ProductLabels Labels
 
- Static Public Member Functions inherited from edm::one::EDProducerBase
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &descriptions)
 
- Protected Attributes inherited from DQMEDAnalyzer
edm::EDPutTokenT< DQMTokenlumiToken_
 
edm::EDPutTokenT< DQMTokenrunToken_
 

Detailed Description

Definition at line 42 of file L1TGMT.h.

Member Enumeration Documentation

enum L1TGMT::ensubs
private
Enumerator
DTTF 
RPCb 
CSCTF 
RPCf 
GMT 

Definition at line 62 of file L1TGMT.h.

Constructor & Destructor Documentation

L1TGMT::L1TGMT ( const edm::ParameterSet ps)

Definition at line 23 of file L1TGMT.cc.

References gather_cfg::cout, and verbose_.

24  : verbose_(ps.getUntrackedParameter<bool>("verbose", false)) // verbosity switch
25  ,
26  gmtSource_(consumes<L1MuGMTReadoutCollection>(ps.getParameter<InputTag>("gmtSource"))),
27  bxnum_old_(0),
28  obnum_old_(0),
29  trsrc_old_(0) {
30  if (verbose_)
31  cout << "L1TGMT: constructor...." << endl;
32 }
T getParameter(std::string const &) const
T getUntrackedParameter(std::string const &, T const &) const
const bool verbose_
Definition: L1TGMT.h:102
int obnum_old_
Definition: L1TGMT.h:107
int bxnum_old_
Definition: L1TGMT.h:106
int trsrc_old_
Definition: L1TGMT.h:108
const edm::EDGetTokenT< L1MuGMTReadoutCollection > gmtSource_
Definition: L1TGMT.h:104
L1TGMT::~L1TGMT ( )
override

Definition at line 34 of file L1TGMT.cc.

34 {}

Member Function Documentation

void L1TGMT::analyze ( const edm::Event e,
const edm::EventSetup c 
)
overrideprotected

Definition at line 38 of file L1TGMT.cc.

References begin, 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, eta_dtcsc_and_rpc, eta_dtcsc_only, eta_rpc_only, etaphi_dtcsc_and_rpc, etaphi_dtcsc_only, etaphi_rpc_only, dqm::impl::MonitorElement::Fill(), edm::Event::getByToken(), 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_, edm::EventBase::orbitNumber(), 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_.

38  {
39  if (verbose_)
40  cout << "L1TGMT: analyze...." << endl;
41 
43  e.getByToken(gmtSource_, pCollection);
44 
45  if (!pCollection.isValid()) {
46  edm::LogInfo("DataNotFound") << "can't find L1MuGMTReadoutCollection";
47  return;
48  }
49 
50  // remember the bx of 1st candidate of each system (9=none)
51  int bx1st[4] = {9, 9, 9, 9};
52 
53  // get GMT readout collection
54  L1MuGMTReadoutCollection const* gmtrc = pCollection.product();
55  // get record vector
56  vector<L1MuGMTReadoutRecord> gmt_records = gmtrc->getRecords();
57  // loop over records of individual bx's
58  vector<L1MuGMTReadoutRecord>::const_iterator RRItr;
59 
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();
64 
65  vector<L1MuRegionalCand>::const_iterator INPItr;
66  vector<L1MuGMTExtendedCand>::const_iterator GMTItr;
67  vector<L1MuGMTExtendedCand>::const_iterator GMTItr2;
68 
69  int BxInEvent = RRItr->getBxInEvent();
70 
71  // count non-empty candidates in this bx
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()) {
76  nSUBS[i]++;
77  if (bx1st[i] == 9)
78  bx1st[i] = BxInEvent;
79  }
80  }
81  subs_nbx[i]->Fill(float(nSUBS[i]), float(BxInEvent));
82  }
83 
84  for (GMTItr = GMTCands.begin(); GMTItr != GMTCands.end(); ++GMTItr) {
85  if (!GMTItr->empty())
86  nSUBS[GMT]++;
87  }
88  subs_nbx[GMT]->Fill(float(nSUBS[GMT]), float(BxInEvent));
89 
91  // from here care only about the L1A bunch crossing
92  if (BxInEvent != 0)
93  continue;
94 
95  // get the absolute bx number of the L1A
96  int Bx = RRItr->getBxNr();
97 
98  bx_number->Fill(double(Bx));
99 
100  for (int i = 0; i < 4; i++) {
101  for (INPItr = INPCands[i].begin(); INPItr != INPCands[i].end(); ++INPItr) {
102  if (INPItr->empty())
103  continue;
104  subs_eta[i]->Fill(INPItr->etaValue());
105  subs_phi[i]->Fill(phiconv_(INPItr->phiValue()));
106  subs_pt[i]->Fill(INPItr->ptValue());
107  subs_qty[i]->Fill(INPItr->quality());
108  subs_etaphi[i]->Fill(INPItr->etaValue(), phiconv_(INPItr->phiValue()));
109  subs_etaqty[i]->Fill(INPItr->etaValue(), INPItr->quality());
110  int word = INPItr->getDataWord();
111  for (int j = 0; j < 32; j++) {
112  if (word & (1 << j))
113  subs_bits[i]->Fill(float(j));
114  }
115  }
116  }
117 
118  for (GMTItr = GMTCands.begin(); GMTItr != GMTCands.end(); ++GMTItr) {
119  if (GMTItr->empty())
120  continue;
121  subs_eta[GMT]->Fill(GMTItr->etaValue());
122  subs_phi[GMT]->Fill(phiconv_(GMTItr->phiValue()));
123  subs_pt[GMT]->Fill(GMTItr->ptValue());
124  subs_qty[GMT]->Fill(GMTItr->quality());
125  subs_etaphi[GMT]->Fill(GMTItr->etaValue(), phiconv_(GMTItr->phiValue()));
126  subs_etaqty[GMT]->Fill(GMTItr->etaValue(), GMTItr->quality());
127  int word = GMTItr->getDataWord();
128  for (int j = 0; j < 32; j++) {
129  if (word & (1 << j))
130  subs_bits[GMT]->Fill(float(j));
131  }
132 
133  if (GMTItr->isMatchedCand()) {
134  if (GMTItr->quality() > 3) {
135  eta_dtcsc_and_rpc->Fill(GMTItr->etaValue());
136  phi_dtcsc_and_rpc->Fill(phiconv_(GMTItr->phiValue()));
137  etaphi_dtcsc_and_rpc->Fill(GMTItr->etaValue(), phiconv_(GMTItr->phiValue()));
138  }
139  } else if (GMTItr->isRPC()) {
140  if (GMTItr->quality() > 3) {
141  eta_rpc_only->Fill(GMTItr->etaValue());
142  phi_rpc_only->Fill(phiconv_(GMTItr->phiValue()));
143  etaphi_rpc_only->Fill(GMTItr->etaValue(), phiconv_(GMTItr->phiValue()));
144  }
145  } else {
146  if (GMTItr->quality() > 3) {
147  eta_dtcsc_only->Fill(GMTItr->etaValue());
148  phi_dtcsc_only->Fill(phiconv_(GMTItr->phiValue()));
149  etaphi_dtcsc_only->Fill(GMTItr->etaValue(), phiconv_(GMTItr->phiValue()));
150  }
151 
152  if (GMTItr != GMTCands.end()) {
153  for (GMTItr2 = GMTCands.begin(); GMTItr2 != GMTCands.end(); ++GMTItr2) {
154  if (GMTItr2 == GMTItr)
155  continue;
156  if (GMTItr2->empty())
157  continue;
158  if (GMTItr2->isRPC()) {
159  if (GMTItr->isFwd()) {
160  dist_eta_csc_rpc->Fill(GMTItr->etaValue() - GMTItr2->etaValue());
161  dist_phi_csc_rpc->Fill(phiconv_(GMTItr->phiValue()) - phiconv_(GMTItr2->phiValue()));
162  } else {
163  dist_eta_dt_rpc->Fill(GMTItr->etaValue() - GMTItr2->etaValue());
164  dist_phi_dt_rpc->Fill(phiconv_(GMTItr->phiValue()) - phiconv_(GMTItr2->phiValue()));
165  }
166  } else {
167  if (!(GMTItr->isFwd()) && GMTItr2->isFwd()) {
168  dist_eta_dt_csc->Fill(GMTItr->etaValue() - GMTItr2->etaValue());
169  dist_phi_dt_csc->Fill(phiconv_(GMTItr->phiValue()) - phiconv_(GMTItr2->phiValue()));
170  } else if (GMTItr->isFwd() && !(GMTItr2->isFwd())) {
171  dist_eta_dt_csc->Fill(GMTItr2->etaValue() - GMTItr->etaValue());
172  dist_phi_dt_csc->Fill(phiconv_(GMTItr->phiValue()) - phiconv_(GMTItr2->phiValue()));
173  }
174  }
175  }
176  }
177  }
178  }
179 
180  n_rpcb_vs_dttf->Fill(float(nSUBS[DTTF]), float(nSUBS[RPCb]));
181  n_rpcf_vs_csctf->Fill(float(nSUBS[CSCTF]), float(nSUBS[RPCf]));
182  n_csctf_vs_dttf->Fill(float(nSUBS[DTTF]), float(nSUBS[CSCTF]));
183 
184  regional_triggers->Fill(-1.); // fill underflow for normalization
185  if (nSUBS[GMT])
186  regional_triggers->Fill(0.); // fill all muon bin
187  int ioff = 1;
188  for (int i = 0; i < 4; i++) {
189  if (nSUBS[i])
190  regional_triggers->Fill(float(5 * i + nSUBS[i] + ioff));
191  }
192  if (nSUBS[DTTF] && (nSUBS[RPCb] || nSUBS[RPCf]))
193  regional_triggers->Fill(22.);
194  if (nSUBS[DTTF] && nSUBS[CSCTF])
195  regional_triggers->Fill(23.);
196  if (nSUBS[CSCTF] && (nSUBS[RPCb] || nSUBS[RPCf]))
197  regional_triggers->Fill(24.);
198  if (nSUBS[DTTF] && nSUBS[CSCTF] && (nSUBS[RPCb] || nSUBS[RPCf]))
199  regional_triggers->Fill(25.);
200 
201  // fill only if previous event corresponds to previous trigger
202  // if( (Ev - evnum_old_) == 1 && bxnum_old_ > -1 ) {
203  // assume getting all events in a sequence (usefull only from reco data)
204  if (bxnum_old_ > -1) {
205  int dBx = Bx - bxnum_old_ + 3564 * (e.orbitNumber() - obnum_old_);
206  for (int id = 0; id < 4; id++) {
207  if (trsrc_old_ & (1 << id)) {
208  for (int i = 0; i < 4; i++) {
209  if (nSUBS[i])
210  subs_dbx[i]->Fill(float(dBx), float(id));
211  }
212  }
213  }
214  }
215 
216  // save quantities for the next event
217  bxnum_old_ = Bx;
218  obnum_old_ = e.orbitNumber();
219  trsrc_old_ = 0;
220  for (int i = 0; i < 4; i++) {
221  if (nSUBS[i])
222  trsrc_old_ |= (1 << i);
223  }
224  }
225 
226  if (bx1st[DTTF] < 9 && bx1st[RPCb] < 9)
227  bx_dt_rpc->Fill(bx1st[DTTF], bx1st[RPCb]);
228  if (bx1st[CSCTF] < 9 && bx1st[RPCf] < 9)
229  bx_csc_rpc->Fill(bx1st[CSCTF], bx1st[RPCf]);
230  if (bx1st[DTTF] < 9 && bx1st[CSCTF] < 9)
231  bx_dt_csc->Fill(bx1st[DTTF], bx1st[CSCTF]);
232 }
MonitorElement * bx_number
Definition: L1TGMT.h:75
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:525
MonitorElement * phi_rpc_only
Definition: L1TGMT.h:82
const bool verbose_
Definition: L1TGMT.h:102
MonitorElement * subs_eta[5]
Definition: L1TGMT.h:65
int obnum_old_
Definition: L1TGMT.h:107
MonitorElement * subs_nbx[5]
Definition: L1TGMT.h:64
double phiconv_(float phi)
Definition: L1TGMT.cc:234
int bxnum_old_
Definition: L1TGMT.h:106
MonitorElement * dist_eta_dt_rpc
Definition: L1TGMT.h:89
MonitorElement * subs_bits[5]
Definition: L1TGMT.h:71
MonitorElement * subs_dbx[4]
Definition: L1TGMT.h:100
MonitorElement * n_csctf_vs_dttf
Definition: L1TGMT.h:98
void Fill(long long x)
MonitorElement * eta_dtcsc_and_rpc
Definition: L1TGMT.h:77
uint64_t word
MonitorElement * dist_eta_csc_rpc
Definition: L1TGMT.h:90
MonitorElement * subs_etaphi[5]
Definition: L1TGMT.h:69
int trsrc_old_
Definition: L1TGMT.h:108
const edm::EDGetTokenT< L1MuGMTReadoutCollection > gmtSource_
Definition: L1TGMT.h:104
MonitorElement * regional_triggers
Definition: L1TGMT.h:73
MonitorElement * etaphi_dtcsc_and_rpc
Definition: L1TGMT.h:83
MonitorElement * etaphi_rpc_only
Definition: L1TGMT.h:85
MonitorElement * eta_dtcsc_only
Definition: L1TGMT.h:78
MonitorElement * eta_rpc_only
Definition: L1TGMT.h:79
MonitorElement * n_rpcb_vs_dttf
Definition: L1TGMT.h:96
MonitorElement * phi_dtcsc_only
Definition: L1TGMT.h:81
MonitorElement * bx_dt_csc
Definition: L1TGMT.h:94
int orbitNumber() const
Definition: EventBase.h:65
MonitorElement * subs_phi[5]
Definition: L1TGMT.h:66
bool isValid() const
Definition: HandleBase.h:70
MonitorElement * dist_phi_dt_rpc
Definition: L1TGMT.h:86
MonitorElement * dist_phi_dt_csc
Definition: L1TGMT.h:88
T const * product() const
Definition: Handle.h:69
MonitorElement * phi_dtcsc_and_rpc
Definition: L1TGMT.h:80
MonitorElement * subs_pt[5]
Definition: L1TGMT.h:67
MonitorElement * subs_qty[5]
Definition: L1TGMT.h:68
#define begin
Definition: vmac.h:32
MonitorElement * bx_csc_rpc
Definition: L1TGMT.h:93
std::vector< L1MuGMTReadoutRecord > const & getRecords() const
MonitorElement * bx_dt_rpc
Definition: L1TGMT.h:92
MonitorElement * dist_phi_csc_rpc
Definition: L1TGMT.h:87
MonitorElement * etaphi_dtcsc_only
Definition: L1TGMT.h:84
MonitorElement * subs_etaqty[5]
Definition: L1TGMT.h:70
MonitorElement * dist_eta_dt_csc
Definition: L1TGMT.h:91
MonitorElement * n_rpcf_vs_csctf
Definition: L1TGMT.h:97
void L1TGMT::book_ ( const edm::EventSetup c)
private
void L1TGMT::bookHistograms ( DQMStore::IBooker ibooker,
edm::Run const &  ,
edm::EventSetup const &  c 
)
overrideprotectedvirtual

Implements DQMEDAnalyzer.

Definition at line 241 of file L1TGMT.cc.

References dqm::dqmstoreimpl::DQMStore::IBooker::book1D(), dqm::dqmstoreimpl::DQMStore::IBooker::book2D(), dqm::dqmstoreimpl::DQMStore::IBooker::bookProfile(), bx_csc_rpc, bx_dt_csc, bx_dt_rpc, bx_number, 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, edm::EventSetup::get(), L1MuTriggerScales::getGMTEtaScale(), L1MuScale::getNBins(), L1MuTriggerScales::getPhiScale(), L1MuTriggerPtScale::getPtScale(), L1MuTriggerScales::getRegionalEtaScale(), L1MuScale::getValue(), GMT, mps_fire::i, cuy::ib, dqmiolumiharvest::j, 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_, edm::ESHandle< T >::product(), emtf::ptscale, regional_triggers, RPCb, RPCf, dqm::impl::MonitorElement::setAxisTitle(), dqm::impl::MonitorElement::setBinLabel(), dqm::dqmstoreimpl::DQMStore::IBooker::setCurrentFolder(), AlCaHLTBitMon_QueryRunRegistry::string, subs_bits, subs_dbx, subs_eta, subs_etaphi, subs_etaqty, subs_nbx, subs_phi, subs_pt, and subs_qty.

241  {
242  std::string subs[5] = {"DTTF", "RPCb", "CSCTF", "RPCf", "GMT"};
243 
245  c.get<L1MuTriggerScalesRcd>().get(trigscales_h);
246  const L1MuTriggerScales* scales = trigscales_h.product();
247 
248  edm::ESHandle<L1MuTriggerPtScale> trigptscale_h;
249  c.get<L1MuTriggerPtScaleRcd>().get(trigptscale_h);
250  const L1MuTriggerPtScale* scalept = trigptscale_h.product();
251 
252  ibooker.setCurrentFolder("L1T/L1TGMT");
253 
254  int nqty = 8;
255  double qtymin = -0.5;
256  double qtymax = 7.5;
257 
258  float phiscale[145];
259  int nphiscale;
260  {
261  int nbins = scales->getPhiScale()->getNBins();
262  if (nbins > 144)
263  nbins = 144;
264  for (int j = 0; j <= nbins; j++) {
265  phiscale[j] = piconv_ * scales->getPhiScale()->getValue(j);
266  }
267  nphiscale = nbins;
268  }
269 
270  float qscale[9];
271  {
272  for (int j = 0; j < 9; j++) {
273  qscale[j] = -0.5 + j;
274  }
275  }
276 
277  // pt scale first bin reserved for empty muon
278  float ptscale[32];
279  int nptscale;
280  {
281  int nbins = scalept->getPtScale()->getNBins() - 1;
282  if (nbins > 31)
283  nbins = 31;
284  for (int j = 1; j <= nbins; j++) {
285  ptscale[j - 1] = scalept->getPtScale()->getValue(j);
286  }
287  ptscale[nbins] = ptscale[nbins - 1] + 10.; // make reasonable size last bin
288  nptscale = nbins;
289  }
290 
291  float etascale[5][66];
292  int netascale[5];
293  // DTTF eta scale
294  {
295  int nbins = scales->getRegionalEtaScale(DTTF)->getNBins();
296  if (nbins > 65)
297  nbins = 65;
298  for (int j = 0; j <= nbins; j++) {
299  etascale[DTTF][j] = scales->getRegionalEtaScale(DTTF)->getValue(j);
300  }
301  netascale[DTTF] = nbins;
302  }
303  // RPCb etascale
304  {
305  int nbins = scales->getRegionalEtaScale(RPCb)->getNBins();
306  if (nbins > 65)
307  nbins = 65;
308  for (int j = 0; j <= nbins; j++) {
309  etascale[RPCb][j] = scales->getRegionalEtaScale(RPCb)->getValue(j);
310  }
311  netascale[RPCb] = nbins;
312  }
313  // CSCTF etascale
314  // special case - need to mirror 2*32 bins
315  {
316  int nbins = scales->getRegionalEtaScale(CSCTF)->getNBins();
317  if (nbins > 32)
318  nbins = 32;
319 
320  int i = 0;
321  for (int j = nbins; j >= 0; j--, i++) {
322  etascale[CSCTF][i] = (-1) * scales->getRegionalEtaScale(CSCTF)->getValue(j);
323  }
324  for (int j = 0; j <= nbins; j++, i++) {
325  etascale[CSCTF][i] = scales->getRegionalEtaScale(CSCTF)->getValue(j);
326  }
327  netascale[CSCTF] = i - 1;
328  }
329  // RPCf etascale
330  {
331  int nbins = scales->getRegionalEtaScale(RPCf)->getNBins();
332  if (nbins > 65)
333  nbins = 65;
334  for (int j = 0; j <= nbins; j++) {
335  etascale[RPCf][j] = scales->getRegionalEtaScale(RPCf)->getValue(j);
336  }
337  netascale[RPCf] = nbins;
338  }
339  // GMT etascale
340  {
341  int nbins = scales->getGMTEtaScale()->getNBins();
342  if (nbins > 32)
343  nbins = 32;
344 
345  int i = 0;
346  for (int j = nbins; j > 0; j--, i++) {
347  etascale[GMT][i] = (-1) * scales->getGMTEtaScale()->getValue(j);
348  }
349  for (int j = 0; j <= nbins; j++, i++) {
350  etascale[GMT][i] = scales->getGMTEtaScale()->getValue(j);
351  }
352  netascale[GMT] = i - 1;
353  }
354 
355  std::string hname("");
356  std::string htitle("");
357 
358  for (int i = 0; i < 5; i++) {
359  hname = subs[i] + "_nbx";
360  htitle = subs[i] + " multiplicity in bx";
361  subs_nbx[i] = ibooker.book2D(hname.data(), htitle.data(), 4, 1., 5., 5, -2.5, 2.5);
362  subs_nbx[i]->setAxisTitle(subs[i] + " candidates", 1);
363  subs_nbx[i]->setAxisTitle("bx wrt L1A", 2);
364 
365  hname = subs[i] + "_eta";
366  htitle = subs[i] + " eta value";
367  subs_eta[i] = ibooker.book1D(hname.data(), htitle.data(), netascale[i], etascale[i]);
368  subs_eta[i]->setAxisTitle("eta", 1);
369 
370  hname = subs[i] + "_phi";
371  htitle = subs[i] + " phi value";
372  subs_phi[i] = ibooker.book1D(hname.data(), htitle.data(), nphiscale, phiscale);
373  subs_phi[i]->setAxisTitle("phi (deg)", 1);
374 
375  hname = subs[i] + "_pt";
376  htitle = subs[i] + " pt value";
377  subs_pt[i] = ibooker.book1D(hname.data(), htitle.data(), nptscale, ptscale);
378  subs_pt[i]->setAxisTitle("L1 pT (GeV)", 1);
379 
380  hname = subs[i] + "_qty";
381  htitle = subs[i] + " qty value";
382  subs_qty[i] = ibooker.book1D(hname.data(), htitle.data(), nqty, qtymin, qtymax);
383  subs_qty[i]->setAxisTitle(subs[i] + " quality", 1);
384 
385  hname = subs[i] + "_etaphi";
386  htitle = subs[i] + " phi vs eta";
387  subs_etaphi[i] = ibooker.book2D(hname.data(), htitle.data(), netascale[i], etascale[i], nphiscale, phiscale);
388  subs_etaphi[i]->setAxisTitle("eta", 1);
389  subs_etaphi[i]->setAxisTitle("phi (deg)", 2);
390 
391  hname = subs[i] + "_etaqty";
392  htitle = subs[i] + " qty vs eta";
393  subs_etaqty[i] = ibooker.book2D(hname.data(), htitle.data(), netascale[i], etascale[i], nqty, qscale);
394  subs_etaqty[i]->setAxisTitle("eta", 1);
395  subs_etaqty[i]->setAxisTitle(subs[i] + " quality", 2);
396 
397  hname = subs[i] + "_bits";
398  htitle = subs[i] + " bit population";
399  subs_bits[i] = ibooker.book1D(hname.data(), htitle.data(), 32, -0.5, 31.5);
400  subs_bits[i]->setAxisTitle("bit number", 1);
401  }
402 
403  regional_triggers = ibooker.book1D("Regional_trigger", "Muon trigger contribution", 27, 0., 27.);
404  regional_triggers->setAxisTitle("regional trigger", 1);
405  int ib = 1;
406  regional_triggers->setBinLabel(ib++, "All muons", 1);
407  ib++;
408  regional_triggers->setBinLabel(ib++, "DT 1mu", 1);
409  regional_triggers->setBinLabel(ib++, "DT 2mu", 1);
410  regional_triggers->setBinLabel(ib++, "DT 3mu", 1);
411  regional_triggers->setBinLabel(ib++, "DT 4mu", 1);
412  ib++;
413  regional_triggers->setBinLabel(ib++, "RPCb 1mu", 1);
414  regional_triggers->setBinLabel(ib++, "RPCb 2mu", 1);
415  regional_triggers->setBinLabel(ib++, "RPCb 3mu", 1);
416  regional_triggers->setBinLabel(ib++, "RPCb 4mu", 1);
417  ib++;
418  regional_triggers->setBinLabel(ib++, "CSC 1mu", 1);
419  regional_triggers->setBinLabel(ib++, "CSC 2mu", 1);
420  regional_triggers->setBinLabel(ib++, "CSC 3mu", 1);
421  regional_triggers->setBinLabel(ib++, "CSC 4mu", 1);
422  ib++;
423  regional_triggers->setBinLabel(ib++, "RPCf 1mu", 1);
424  regional_triggers->setBinLabel(ib++, "RPCf 2mu", 1);
425  regional_triggers->setBinLabel(ib++, "RPCf 3mu", 1);
426  regional_triggers->setBinLabel(ib++, "RPCf 4mu", 1);
427  ib++;
428  regional_triggers->setBinLabel(ib++, "DT & RPC", 1);
429  regional_triggers->setBinLabel(ib++, "DT & CSC", 1);
430  regional_triggers->setBinLabel(ib++, "CSC & RPC", 1);
431  regional_triggers->setBinLabel(ib++, "DT & CSC & RPC", 1);
432 
433  bx_number = ibooker.book1D("Bx_Number", "Bx number ROP chip", 3564, 0., 3564.);
434  bx_number->setAxisTitle("bx number", 1);
435 
436  dbx_chip = ibooker.bookProfile("dbx_Chip", "bx count difference wrt ROP chip", 5, 0., 5., 100, -4000., 4000., "i");
437  dbx_chip->setAxisTitle("chip name", 1);
438  dbx_chip->setAxisTitle("delta bx", 2);
439  dbx_chip->setBinLabel(1, "IND", 1);
440  dbx_chip->setBinLabel(2, "INB", 1);
441  dbx_chip->setBinLabel(3, "INC", 1);
442  dbx_chip->setBinLabel(4, "INF", 1);
443  dbx_chip->setBinLabel(5, "SRT", 1);
444 
446  ibooker.book1D("eta_DTCSC_and_RPC", "eta of confirmed GMT candidates", netascale[GMT], etascale[GMT]);
447  eta_dtcsc_and_rpc->setAxisTitle("eta", 1);
448 
450  ibooker.book1D("eta_DTCSC_only", "eta of unconfirmed DT/CSC candidates", netascale[GMT], etascale[GMT]);
451  eta_dtcsc_only->setAxisTitle("eta", 1);
452 
453  eta_rpc_only = ibooker.book1D("eta_RPC_only", "eta of unconfirmed RPC candidates", netascale[GMT], etascale[GMT]);
454  eta_rpc_only->setAxisTitle("eta", 1);
455 
456  phi_dtcsc_and_rpc = ibooker.book1D("phi_DTCSC_and_RPC", "phi of confirmed GMT candidates", nphiscale, phiscale);
457  phi_dtcsc_and_rpc->setAxisTitle("phi (deg)", 1);
458 
459  phi_dtcsc_only = ibooker.book1D("phi_DTCSC_only", "phi of unconfirmed DT/CSC candidates", nphiscale, phiscale);
460  phi_dtcsc_only->setAxisTitle("phi (deg)", 1);
461 
462  phi_rpc_only = ibooker.book1D("phi_RPC_only", "phi of unconfirmed RPC candidates", nphiscale, phiscale);
463  phi_rpc_only->setAxisTitle("phi (deg)", 1);
464 
465  etaphi_dtcsc_and_rpc = ibooker.book2D("etaphi_DTCSC_and_RPC",
466  "eta vs phi map of confirmed GMT candidates",
467  netascale[GMT],
468  etascale[GMT],
469  nphiscale,
470  phiscale);
472  etaphi_dtcsc_and_rpc->setAxisTitle("phi (deg)", 2);
473 
474  etaphi_dtcsc_only = ibooker.book2D("etaphi_DTCSC_only",
475  "eta vs phi map of unconfirmed DT/CSC candidates",
476  netascale[GMT],
477  etascale[GMT],
478  nphiscale,
479  phiscale);
480  etaphi_dtcsc_only->setAxisTitle("eta", 1);
481  etaphi_dtcsc_only->setAxisTitle("phi (deg)", 2);
482 
483  etaphi_rpc_only = ibooker.book2D("etaphi_RPC_only",
484  "eta vs phi map of unconfirmed RPC candidates",
485  netascale[GMT],
486  etascale[GMT],
487  nphiscale,
488  phiscale);
489  etaphi_rpc_only->setAxisTitle("eta", 1);
490  etaphi_rpc_only->setAxisTitle("phi (deg)", 2);
491 
492  dist_phi_dt_rpc = ibooker.book1D("dist_phi_DT_RPC", "Dphi between DT and RPC candidates", 100, -125., 125.);
493  dist_phi_dt_rpc->setAxisTitle("delta phi (deg)", 1);
494 
495  dist_phi_csc_rpc = ibooker.book1D("dist_phi_CSC_RPC", "Dphi between CSC and RPC candidates", 100, -125., 125.);
496  dist_phi_csc_rpc->setAxisTitle("delta phi (deg)", 1);
497 
498  dist_phi_dt_csc = ibooker.book1D("dist_phi_DT_CSC", "Dphi between DT and CSC candidates", 100, -125., 125.);
499  dist_phi_dt_csc->setAxisTitle("delta phi (deg)", 1);
500 
501  dist_eta_dt_rpc = ibooker.book1D("dist_eta_DT_RPC", "Deta between DT and RPC candidates", 40, -1., 1.);
502  dist_eta_dt_rpc->setAxisTitle("delta eta", 1);
503 
504  dist_eta_csc_rpc = ibooker.book1D("dist_eta_CSC_RPC", "Deta between CSC and RPC candidates", 40, -1., 1.);
505  dist_eta_csc_rpc->setAxisTitle("delta eta", 1);
506 
507  dist_eta_dt_csc = ibooker.book1D("dist_eta_DT_CSC", "Deta between DT and CSC candidates", 40, -1., 1.);
508  dist_eta_dt_csc->setAxisTitle("delta eta", 1);
509 
510  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);
511  n_rpcb_vs_dttf->setAxisTitle("DTTF candidates", 1);
512  n_rpcb_vs_dttf->setAxisTitle("barrel RPC candidates", 2);
513 
514  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);
515  n_rpcf_vs_csctf->setAxisTitle("CSCTF candidates", 1);
516  n_rpcf_vs_csctf->setAxisTitle("endcap RPC candidates", 2);
517 
518  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);
519  n_csctf_vs_dttf->setAxisTitle("DTTF candidates", 1);
520  n_csctf_vs_dttf->setAxisTitle("CSCTF candidates", 2);
521 
522  bx_dt_rpc = ibooker.book2D("bx_DT_vs_RPC", "1st bx DT vs. RPC", 5, -2.5, 2.5, 5, -2.5, 2.5);
523  bx_dt_rpc->setAxisTitle("bx of 1st DTTF candidate", 1);
524  bx_dt_rpc->setAxisTitle("bx of 1st RPCb candidate", 2);
525 
526  bx_csc_rpc = ibooker.book2D("bx_CSC_vs_RPC", "1st bx CSC vs. RPC", 5, -2.5, 2.5, 5, -2.5, 2.5);
527  bx_csc_rpc->setAxisTitle("bx of 1st CSCTF candidate", 1);
528  bx_csc_rpc->setAxisTitle("bx of 1st RPCf candidate", 2);
529 
530  bx_dt_csc = ibooker.book2D("bx_DT_vs_CSC", "1st bx DT vs. CSC", 5, -2.5, 2.5, 5, -2.5, 2.5);
531  bx_dt_csc->setAxisTitle("bx of 1st DTTF candidate", 1);
532  bx_dt_csc->setAxisTitle("bx of 1st CSCTF candidate", 2);
533 
534  for (int i = 0; i < 4; i++) {
535  hname = subs[i] + "_dbx";
536  htitle = "dBx " + subs[i] + " to previous event";
537  subs_dbx[i] = ibooker.book2D(hname.data(), htitle.data(), 1000, 0., 1000., 4, 0., 4.);
538  for (int j = 0; j < 4; j++) {
539  subs_dbx[i]->setBinLabel((j + 1), subs[j], 2);
540  }
541  }
542 }
MonitorElement * bx_number
Definition: L1TGMT.h:75
const L1MuScale * getPtScale() const
get the Pt scale
MonitorElement * phi_rpc_only
Definition: L1TGMT.h:82
MonitorElement * subs_eta[5]
Definition: L1TGMT.h:65
MonitorElement * subs_nbx[5]
Definition: L1TGMT.h:64
MonitorElement * dist_eta_dt_rpc
Definition: L1TGMT.h:89
MonitorElement * subs_bits[5]
Definition: L1TGMT.h:71
MonitorElement * subs_dbx[4]
Definition: L1TGMT.h:100
MonitorElement * n_csctf_vs_dttf
Definition: L1TGMT.h:98
MonitorElement * eta_dtcsc_and_rpc
Definition: L1TGMT.h:77
MonitorElement * dist_eta_csc_rpc
Definition: L1TGMT.h:90
MonitorElement * subs_etaphi[5]
Definition: L1TGMT.h:69
MonitorElement * regional_triggers
Definition: L1TGMT.h:73
static const double piconv_
Definition: L1TGMT.h:110
MonitorElement * etaphi_dtcsc_and_rpc
Definition: L1TGMT.h:83
MonitorElement * etaphi_rpc_only
Definition: L1TGMT.h:85
MonitorElement * eta_dtcsc_only
Definition: L1TGMT.h:78
MonitorElement * eta_rpc_only
Definition: L1TGMT.h:79
MonitorElement * n_rpcb_vs_dttf
Definition: L1TGMT.h:96
MonitorElement * phi_dtcsc_only
Definition: L1TGMT.h:81
const L1MuScale * getPhiScale() const
get the phi scale
MonitorElement * bx_dt_csc
Definition: L1TGMT.h:94
MonitorElement * subs_phi[5]
Definition: L1TGMT.h:66
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)
virtual unsigned getNBins() const =0
get number of bins
MonitorElement * dbx_chip
Definition: L1TGMT.h:76
MonitorElement * dist_phi_dt_rpc
Definition: L1TGMT.h:86
MonitorElement * dist_phi_dt_csc
Definition: L1TGMT.h:88
MonitorElement * phi_dtcsc_and_rpc
Definition: L1TGMT.h:80
MonitorElement * subs_pt[5]
Definition: L1TGMT.h:67
const double ptscale[31]
Definition: Utilities.cc:29
MonitorElement * subs_qty[5]
Definition: L1TGMT.h:68
const L1MuScale * getRegionalEtaScale(int isys) const
get the regioanl muon trigger eta scale, isys = 0(DT), 1(bRPC), 2(CSC), 3(fwdRPC) ...
MonitorElement * bx_csc_rpc
Definition: L1TGMT.h:93
MonitorElement * bx_dt_rpc
Definition: L1TGMT.h:92
MonitorElement * dist_phi_csc_rpc
Definition: L1TGMT.h:87
MonitorElement * etaphi_dtcsc_only
Definition: L1TGMT.h:84
const L1MuScale * getGMTEtaScale() const
get the GMT eta scale
MonitorElement * subs_etaqty[5]
Definition: L1TGMT.h:70
MonitorElement * dist_eta_dt_csc
Definition: L1TGMT.h:91
T const * product() const
Definition: ESHandle.h:86
MonitorElement * n_rpcf_vs_csctf
Definition: L1TGMT.h:97
virtual float getValue(unsigned i) const =0
get value of the underlying vector for bin i
ib
Definition: cuy.py:662
virtual void setAxisTitle(const std::string &title, int axis=1)
set x-, y- or z-axis title (axis=1, 2, 3 respectively)
void L1TGMT::dqmBeginRun ( const edm::Run r,
const edm::EventSetup c 
)
overrideprotected

Definition at line 36 of file L1TGMT.cc.

36 {}
double L1TGMT::phiconv_ ( float  phi)
private

Definition at line 234 of file L1TGMT.cc.

References piconv_.

Referenced by analyze().

234  {
235  double phiout = double(phi);
236  phiout *= piconv_;
237  phiout += 0.001; // add a small value to get off the bin edge
238  return phiout;
239 }
static const double piconv_
Definition: L1TGMT.h:110

Member Data Documentation

MonitorElement* L1TGMT::bx_csc_rpc
private

Definition at line 93 of file L1TGMT.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* L1TGMT::bx_dt_csc
private

Definition at line 94 of file L1TGMT.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* L1TGMT::bx_dt_rpc
private

Definition at line 92 of file L1TGMT.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* L1TGMT::bx_number
private

Definition at line 75 of file L1TGMT.h.

Referenced by analyze(), and bookHistograms().

int L1TGMT::bxnum_old_
private

Definition at line 106 of file L1TGMT.h.

Referenced by analyze().

MonitorElement* L1TGMT::dbx_chip
private

Definition at line 76 of file L1TGMT.h.

Referenced by bookHistograms().

MonitorElement* L1TGMT::dist_eta_csc_rpc
private

Definition at line 90 of file L1TGMT.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* L1TGMT::dist_eta_dt_csc
private

Definition at line 91 of file L1TGMT.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* L1TGMT::dist_eta_dt_rpc
private

Definition at line 89 of file L1TGMT.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* L1TGMT::dist_phi_csc_rpc
private

Definition at line 87 of file L1TGMT.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* L1TGMT::dist_phi_dt_csc
private

Definition at line 88 of file L1TGMT.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* L1TGMT::dist_phi_dt_rpc
private

Definition at line 86 of file L1TGMT.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* L1TGMT::eta_dtcsc_and_rpc
private

Definition at line 77 of file L1TGMT.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* L1TGMT::eta_dtcsc_only
private

Definition at line 78 of file L1TGMT.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* L1TGMT::eta_rpc_only
private

Definition at line 79 of file L1TGMT.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* L1TGMT::etaphi_dtcsc_and_rpc
private

Definition at line 83 of file L1TGMT.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* L1TGMT::etaphi_dtcsc_only
private

Definition at line 84 of file L1TGMT.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* L1TGMT::etaphi_rpc_only
private

Definition at line 85 of file L1TGMT.h.

Referenced by analyze(), and bookHistograms().

const edm::EDGetTokenT<L1MuGMTReadoutCollection> L1TGMT::gmtSource_
private

Definition at line 104 of file L1TGMT.h.

Referenced by analyze().

std::ofstream L1TGMT::logFile_
private

Definition at line 103 of file L1TGMT.h.

MonitorElement* L1TGMT::n_csctf_vs_dttf
private

Definition at line 98 of file L1TGMT.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* L1TGMT::n_rpcb_vs_dttf
private

Definition at line 96 of file L1TGMT.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* L1TGMT::n_rpcf_vs_csctf
private

Definition at line 97 of file L1TGMT.h.

Referenced by analyze(), and bookHistograms().

int L1TGMT::obnum_old_
private

Definition at line 107 of file L1TGMT.h.

Referenced by analyze().

MonitorElement* L1TGMT::phi_dtcsc_and_rpc
private

Definition at line 80 of file L1TGMT.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* L1TGMT::phi_dtcsc_only
private

Definition at line 81 of file L1TGMT.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* L1TGMT::phi_rpc_only
private

Definition at line 82 of file L1TGMT.h.

Referenced by analyze(), and bookHistograms().

const double L1TGMT::piconv_ = 180. / acos(-1.)
staticprivate

Definition at line 110 of file L1TGMT.h.

Referenced by bookHistograms(), and phiconv_().

MonitorElement* L1TGMT::regional_triggers
private

Definition at line 73 of file L1TGMT.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* L1TGMT::subs_bits[5]
private

Definition at line 71 of file L1TGMT.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* L1TGMT::subs_dbx[4]
private

Definition at line 100 of file L1TGMT.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* L1TGMT::subs_eta[5]
private

Definition at line 65 of file L1TGMT.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* L1TGMT::subs_etaphi[5]
private

Definition at line 69 of file L1TGMT.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* L1TGMT::subs_etaqty[5]
private

Definition at line 70 of file L1TGMT.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* L1TGMT::subs_nbx[5]
private

Definition at line 64 of file L1TGMT.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* L1TGMT::subs_phi[5]
private

Definition at line 66 of file L1TGMT.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* L1TGMT::subs_pt[5]
private

Definition at line 67 of file L1TGMT.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* L1TGMT::subs_qty[5]
private

Definition at line 68 of file L1TGMT.h.

Referenced by analyze(), and bookHistograms().

int L1TGMT::trsrc_old_
private

Definition at line 108 of file L1TGMT.h.

Referenced by analyze().

const bool L1TGMT::verbose_
private

Definition at line 102 of file L1TGMT.h.

Referenced by analyze(), and L1TGMT().