CMS 3D CMS Logo

List of all members | Classes | Public Member Functions | Protected Member Functions | Private Attributes
L1TRPCTF Class Reference

#include <L1TRPCTF.h>

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

Classes

struct  BxDelays
 

Public Member Functions

 L1TRPCTF (const edm::ParameterSet &ps)
 
 ~L1TRPCTF () override
 
- Public Member Functions inherited from DQMEDAnalyzer
void accumulate (edm::Event const &ev, edm::EventSetup const &es) final
 
virtual void analyze (edm::Event const &, edm::EventSetup const &)
 
void beginLuminosityBlock (edm::LuminosityBlock const &lumi, edm::EventSetup const &setup) override
 
void beginRun (edm::Run const &run, edm::EventSetup const &setup) final
 
virtual void bookHistograms (DQMStore::IBooker &i, edm::Run const &, edm::EventSetup const &)=0
 
virtual void dqmBeginRun (edm::Run const &, edm::EventSetup const &)
 
 DQMEDAnalyzer ()
 
 DQMEDAnalyzer (DQMEDAnalyzer const &)=delete
 
 DQMEDAnalyzer (DQMEDAnalyzer &&)=delete
 
void endLuminosityBlock (edm::LuminosityBlock const &, edm::EventSetup const &) override
 
void endLuminosityBlockProduce (edm::LuminosityBlock &lumi, edm::EventSetup const &setup) final
 
void endRun (edm::Run const &run, edm::EventSetup const &setup) override
 
void endRunProduce (edm::Run &run, edm::EventSetup const &setup) override
 
 ~DQMEDAnalyzer () override=default
 
- Public Member Functions inherited from edm::one::EDProducer< edm::Accumulator, edm::EndLuminosityBlockProducer, edm::EndRunProducer, edm::one::WatchLuminosityBlocks, edm::one::WatchRuns >
 EDProducer ()=default
 
SerialTaskQueueglobalLuminosityBlocksQueue () final
 
SerialTaskQueueglobalRunsQueue () final
 
bool hasAbilityToProduceInLumis () const final
 
bool hasAbilityToProduceInRuns () 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 () 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
 
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)
 
virtual ~EDConsumerBase () noexcept(false)
 

Protected Member Functions

void analyze (const edm::Event &e, const edm::EventSetup &c) override
 
void beginLuminosityBlock (const edm::LuminosityBlock &l, const edm::EventSetup &c) override
 
void bookHistograms (DQMStore::IBooker &ibooker, const edm::Run &, const edm::EventSetup &) override
 
void dqmBeginRun (const edm::Run &, const edm::EventSetup &) override
 
void endLuminosityBlock (const edm::LuminosityBlock &l, const edm::EventSetup &c) override
 
- 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 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 Attributes

MonitorElementm_bxDiff
 
std::set< unsigned long long int > m_globBX
 
long long int m_lastUsedBxInBxdiff
 
MonitorElementm_muonsEtaPhi [3]
 
MonitorElementm_qualVsEta [3]
 
bool monitorDaemon_
 
int nev_
 
int nevRPC_
 
std::string output_dir_
 
std::string outputFile_
 
MonitorElementrpctfbx
 
MonitorElementrpctfchargevalue [3]
 
MonitorElementrpctfcratesynchro [12]
 
MonitorElementrpctfetavalue [3]
 
MonitorElementrpctfntrack_b [3]
 
MonitorElementrpctfntrack_e [3]
 
MonitorElementrpctfphivalue [3]
 
MonitorElementrpctfptvalue [3]
 
MonitorElementrpctfquality [3]
 
edm::EDGetTokenT< L1MuGMTReadoutCollectionrpctfSource_
 
bool verbose_
 

Additional Inherited Members

- 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 43 of file L1TRPCTF.h.

Constructor & Destructor Documentation

L1TRPCTF::L1TRPCTF ( const edm::ParameterSet ps)

Definition at line 18 of file L1TRPCTF.cc.

References gather_cfg::cout, edm::ParameterSet::getUntrackedParameter(), outputFile_, and verbose_.

19 : rpctfSource_(consumes<L1MuGMTReadoutCollection>( ps.getParameter< InputTag >("rpctfSource") )),
20 // digiSource_( ps.getParameter< InputTag >("rpctfRPCDigiSource") ),
21 // m_rpcDigiFine(false),
22 // m_useRpcDigi(true),
24  output_dir_ (ps.getUntrackedParameter<string>("output_dir") )
25 // m_rpcDigiWithBX0(0),
26 // m_rpcDigiWithBXnon0(0)
27 
28  {
29 
30  // verbosity switch
31  verbose_ = ps.getUntrackedParameter<bool>("verbose", false);
32 
33  if(verbose_) cout << "L1TRPCTF: constructor...." << endl;
34 
35  outputFile_ = ps.getUntrackedParameter<string>("outputFile", "");
36  if ( !outputFile_.empty() ) {
37  cout << "L1T Monitoring histograms will be saved to " << outputFile_.c_str() << endl;
38  }
39 
40  bool disable = ps.getUntrackedParameter<bool>("disableROOToutput", false);
41  if(disable){
42  outputFile_="";
43  }
44 }
T getParameter(std::string const &) const
T getUntrackedParameter(std::string const &, T const &) const
std::string outputFile_
Definition: L1TRPCTF.h:92
std::string output_dir_
Definition: L1TRPCTF.h:99
long long int m_lastUsedBxInBxdiff
Definition: L1TRPCTF.h:98
bool verbose_
Definition: L1TRPCTF.h:93
edm::EDGetTokenT< L1MuGMTReadoutCollection > rpctfSource_
Definition: L1TRPCTF.h:88
L1TRPCTF::~L1TRPCTF ( )
override

Definition at line 48 of file L1TRPCTF.cc.

49 {
50 }

Member Function Documentation

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

Definition at line 216 of file L1TRPCTF.cc.

References L1TRPCTF::BxDelays::bx, gather_cfg::cout, diffTreeTool::diff, SoftLeptonByDistance_cfi::distance, L1TRPCTF::BxDelays::eta_t, MonitorElement::Fill(), edm::Event::getByToken(), L1MuGMTReadoutCollection::getRecords(), mps_fire::i, edm::HandleBase::isValid(), m_bxDiff, m_globBX, m_lastUsedBxInBxdiff, m_muonsEtaPhi, m_qualVsEta, min(), nev_, L1TRPCTF::BxDelays::phi_p, edm::Handle< T >::product(), rpctfbx, rpctfchargevalue, rpctfcratesynchro, rpctfetavalue, rpctfntrack_b, rpctfntrack_e, rpctfphivalue, rpctfptvalue, rpctfquality, rpctfSource_, and verbose_.

217 {
218  nev_++;
219  if(verbose_) cout << "L1TRPCTF: analyze...." << endl;
220 
222  e.getByToken(rpctfSource_,pCollection);
223 
224  if (!pCollection.isValid()) {
225  edm::LogInfo("DataNotFound") << "can't find L1MuGMTReadoutCollection";
226  return;
227  }
228 
229 
230  L1MuGMTReadoutCollection const* gmtrc = pCollection.product();
231  vector<L1MuGMTReadoutRecord> gmt_records = gmtrc->getRecords();
232  vector<L1MuGMTReadoutRecord>::const_iterator RRItr;
233 
234  std::vector<int> nrpctftrack_b(3,0);
235  std::vector<int> nrpctftrack_e(3,0);
236 
237  vector<L1TRPCTF::BxDelays> all_bxdelays;
238 
239 
240  for( RRItr = gmt_records.begin() ;
241  RRItr != gmt_records.end() ;
242  RRItr++ )
243  {
244 
245  if (verbose_) cout << "Readout Record " << RRItr->getBxInEvent() << endl;
246 
247  vector<vector<L1MuRegionalCand> > brlAndFwdCands;
248  brlAndFwdCands.push_back(RRItr->getBrlRPCCands());
249  brlAndFwdCands.push_back(RRItr->getFwdRPCCands());
250 
251  int beIndex = 0;
252  vector<vector<L1MuRegionalCand> >::iterator RPCTFCands = brlAndFwdCands.begin();
253  for(; RPCTFCands!= brlAndFwdCands.end(); ++RPCTFCands)
254  {
255 
256  for( vector<L1MuRegionalCand>::const_iterator
257  ECItr = RPCTFCands->begin() ;
258  ECItr != RPCTFCands->end() ;
259  ++ECItr )
260  {
261 
262  int bxindex = 1 ; // bx == 0
263  if (ECItr->bx() > 0) bxindex = 2;
264  if (ECItr->bx() < 0) bxindex = 0;
265 
266  if (!ECItr->empty()) {
267 
268 
269  if (beIndex == 0) ++nrpctftrack_b[bxindex];
270  if (beIndex == 1) ++nrpctftrack_e[bxindex];
271 
272  if (verbose_) cout << "RPCTFCand bx " << ECItr->bx() << endl;
273 
274  int tower = ECItr->eta_packed();
275  if (tower > 16) {
276  tower = - ( (~tower & 63) + 1);
277  }
278 
279  rpctfbx->Fill(ECItr->bx());
280 
281  rpctfetavalue[bxindex]->Fill(tower);
282  if (verbose_) cout << "\tRPCTFCand eta value " << ECItr->etaValue() << endl;
283 
284  rpctfphivalue[bxindex]->Fill(ECItr->phi_packed());
285  if (verbose_) cout << "\tRPCTFCand phi value " << ECItr->phiValue() << endl;
286 
287  rpctfptvalue[bxindex]->Fill(ECItr->ptValue());
288  if (verbose_) cout << "\tRPCTFCand pt value " << ECItr->ptValue()<< endl;
289 
290  rpctfchargevalue[bxindex]->Fill(ECItr->chargeValue());
291  if (verbose_) cout << "\tRPCTFCand charge value " << ECItr->chargeValue() << endl;
292 
293  rpctfquality[bxindex]->Fill(ECItr->quality());
294  if (verbose_) cout << "\tRPCTFCand quality " << ECItr->quality() << endl;
295 
296 
297  m_qualVsEta[bxindex]->Fill(tower, ECItr->quality());
298  m_muonsEtaPhi[bxindex]->Fill(tower, ECItr->phi_packed());
299 
300  BxDelays bx_del;
301  bx_del.bx = ECItr->bx();
302  bx_del.eta_t = tower;
303  bx_del.phi_p = ECItr->phi_packed();
304  all_bxdelays.push_back(bx_del);
305 
306  } // if !empty
307  } // end candidates iteration
308  ++beIndex;
309  } // end brl/endcap iteration
310  } // end GMT records iteration
311 
312  for (int bxI = 0; bxI < 3; ++bxI){
313  rpctfntrack_b[bxI]->Fill(nrpctftrack_b[bxI]);
314  rpctfntrack_e[bxI]->Fill(nrpctftrack_e[bxI]);
315  }
316 
317 
318  for(unsigned int i = 0; i < all_bxdelays.size(); i++) {
319 
320  int sector= ((all_bxdelays[i].phi_p+ 142)%144)/12;
321  if (sector>11 || sector < 0) continue;
322  int eta_tower = all_bxdelays[i].eta_t;
323  for(unsigned int j = 0; j < all_bxdelays.size(); j++) {
324  if(i == j) continue;
325  int sector2= ((all_bxdelays[j].phi_p + 142)%144)/12;
326 
327  int distance_cut = 1;
328  int distance = ((sector+12)-sector2)%12;
329  distance = min(distance, 11-distance);
330  if(distance<distance_cut) continue;
331 
332  int bxDiff = all_bxdelays[i].bx-all_bxdelays[j].bx;
333  rpctfcratesynchro[sector]->Fill(bxDiff,eta_tower);
334  }
335 
336  }
337 
338  while (m_globBX.begin() != m_globBX.end() ) {
339  long long int diff = *m_globBX.begin()-m_lastUsedBxInBxdiff; // first entry will go to overflow bin, ignore
340  m_bxDiff->Fill(diff);
341  m_lastUsedBxInBxdiff = *m_globBX.begin();
342  m_globBX.erase(m_globBX.begin());
343  }
344 
345  if(verbose_) cout << "L1TRPCTF: end job...." << endl;
346  LogInfo("EndJob") << "analyzed " << nev_ << " events";
347 
348 }
std::set< unsigned long long int > m_globBX
Definition: L1TRPCTF.h:86
MonitorElement * rpctfcratesynchro[12]
Definition: L1TRPCTF.h:83
MonitorElement * rpctfchargevalue[3]
Definition: L1TRPCTF.h:73
MonitorElement * rpctfetavalue[3]
Definition: L1TRPCTF.h:70
MonitorElement * rpctfptvalue[3]
Definition: L1TRPCTF.h:72
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:519
void Fill(long long x)
MonitorElement * rpctfquality[3]
Definition: L1TRPCTF.h:74
MonitorElement * rpctfphivalue[3]
Definition: L1TRPCTF.h:71
int nev_
Definition: L1TRPCTF.h:90
T min(T a, T b)
Definition: MathUtil.h:58
MonitorElement * m_bxDiff
Definition: L1TRPCTF.h:82
bool isValid() const
Definition: HandleBase.h:74
MonitorElement * m_muonsEtaPhi[3]
Definition: L1TRPCTF.h:79
MonitorElement * m_qualVsEta[3]
Definition: L1TRPCTF.h:78
T const * product() const
Definition: Handle.h:81
long long int m_lastUsedBxInBxdiff
Definition: L1TRPCTF.h:98
MonitorElement * rpctfntrack_e[3]
Definition: L1TRPCTF.h:76
std::vector< L1MuGMTReadoutRecord > const & getRecords() const
MonitorElement * rpctfbx
Definition: L1TRPCTF.h:77
MonitorElement * rpctfntrack_b[3]
Definition: L1TRPCTF.h:75
bool verbose_
Definition: L1TRPCTF.h:93
edm::EDGetTokenT< L1MuGMTReadoutCollection > rpctfSource_
Definition: L1TRPCTF.h:88
void L1TRPCTF::beginLuminosityBlock ( const edm::LuminosityBlock l,
const edm::EventSetup c 
)
overrideprotected

Definition at line 350 of file L1TRPCTF.cc.

351  {
352 // m_rpcDigiWithBX0=0;
353 // m_rpcDigiWithBXnon0=0;
354 // m_bxs.clear();
355 // m_useRpcDigi = true;
356 
357 
358 }
void L1TRPCTF::bookHistograms ( DQMStore::IBooker ibooker,
const edm::Run ,
const edm::EventSetup  
)
overrideprotected

Definition at line 52 of file L1TRPCTF.cc.

References b, DQMStore::IBooker::book1D(), DQMStore::IBooker::book2D(), mps_fire::i, createfilelist::int, checklumidiff::l, m_bxDiff, m_muonsEtaPhi, m_qualVsEta, nev_, nevRPC_, connectstrParser::o, output_dir_, rpctfbx, rpctfchargevalue, rpctfcratesynchro, rpctfetavalue, rpctfntrack_b, rpctfntrack_e, rpctfphivalue, rpctfptvalue, rpctfquality, MonitorElement::setAxisTitle(), MonitorElement::setBinLabel(), and DQMStore::IBooker::setCurrentFolder().

53 {
54 
55  nev_ = 0;
56  nevRPC_ = 0;
57 
58  ostringstream oDir; oDir<< output_dir_ << "/CrateSynchroHistograms/";
59  ibooker.setCurrentFolder(oDir.str());
60  for( unsigned int i = 0; i < 12; i++) {
61 
62  ostringstream o; o<<"RPCTF_crate_"<<i<<"_synchro";
63  rpctfcratesynchro[i] = ibooker.book2D(o.str(), o.str(), 5, -2.5, 2.5, 33, -16.5, 16.5);
64  for (int bx = -2; bx < 3; ++bx){
65  ostringstream b; b<<"BX="<<bx;
66  rpctfcratesynchro[i]->setBinLabel(bx+3, b.str(),1);
67  }
68  rpctfcratesynchro[i]->setAxisTitle("Tower",2);
69 
70  }
71  ibooker.setCurrentFolder(output_dir_);
72 
73  rpctfetavalue[1] = ibooker.book1D("RPCTF_eta_value_bx0",
74  "RPCTF eta value bx=0", 33, -16.5, 16.5 ) ;
75  rpctfetavalue[2] = ibooker.book1D("RPCTF_eta_value_bx+",
76  "RPCTF eta value bx>0", 33, -16.5, 16.5 ) ;
77  rpctfetavalue[0] = ibooker.book1D("RPCTF_eta_value_bx-",
78  "RPCTF eta value bx<0", 33, -16.5, 16.5 ) ;
79 
80  rpctfphivalue[1] = ibooker.book1D("RPCTF_phi_value_bx0",
81  "RPCTF phi value bx=0", 144, -0.5, 143.5) ;
82  rpctfphivalue[2] = ibooker.book1D("RPCTF_phi_value_bx+",
83  "RPCTF phi value bx>0", 144, -0.5, 143.5 ) ;
84  rpctfphivalue[0] = ibooker.book1D("RPCTF_phi_value_bx-",
85  "RPCTF phi value bx<0", 144, -0.5, 143.5 ) ;
86 
87 
88 
89  rpctfptvalue[1] = ibooker.book1D("RPCTF_pt_value_bx0",
90  "RPCTF pt value bx=0", 160, -0.5, 159.5 );
91  rpctfptvalue[2] = ibooker.book1D("RPCTF_pt_value_bx+",
92  "RPCTF pt value bx>0", 160, -0.5, 159.5 );
93  rpctfptvalue[0] = ibooker.book1D("RPCTF_pt_value_bx-",
94  "RPCTF pt value bx<0", 160, -0.5, 159.5 );
95 
96 
97  rpctfchargevalue[1] = ibooker.book1D("RPCTF_charge_value_bx0",
98  "RPCTF charge value bx=0", 3, -1.5, 1.5 ) ;
99  rpctfchargevalue[2] = ibooker.book1D("RPCTF_charge_value_bx+",
100  "RPCTF charge value bx>0", 3, -1.5, 1.5 ) ;
101  rpctfchargevalue[0] = ibooker.book1D("RPCTF_charge_value_bx-",
102  "RPCTF charge value bx<01", 3, -1.5, 1.5 ) ;
103 
104  rpctfquality[1] = ibooker.book1D("RPCTF_quality",
105  "RPCTF quality bx=0", 6, -0.5, 5.5 ) ;
106  rpctfquality[2] = ibooker.book1D("RPCTF_quality_bx+",
107  "RPCTF quality bx>0", 6, -0.5, 5.5 ) ;
108  rpctfquality[0] = ibooker.book1D("RPCTF_quality_bx-",
109  "RPCTF quality bx<0", 6, -0.5, 5.5 ) ;
110 
111  rpctfntrack_b[1] = ibooker.book1D("RPCTF_ntrack_brl_bx0",
112  "RPCTF number of tracks - barrel, bx=0", 5, -0.5, 4.5 ) ;
113  rpctfntrack_b[2] = ibooker.book1D("RPCTF_ntrack_brl_bx+",
114  "RPCTF number of tracks - barrel, bx>0", 5, -0.5, 4.5 ) ;
115  rpctfntrack_b[0] = ibooker.book1D("RPCTF_ntrack_brl_bx-",
116  "RPCTF number of tracks - barrel, bx<0", 5, -0.5, 4.5 ) ;
117 
118 
119 
120  rpctfntrack_e[1] = ibooker.book1D("RPCTF_ntrack_fwd_bx0",
121  "RPCTF number of tracks - endcap, bx=0", 5, -0.5, 4.5 ) ;
122  rpctfntrack_e[2] = ibooker.book1D("RPCTF_ntrack_fwd_bx+",
123  "RPCTF number of tracks - endcap, bx>0", 5, -0.5, 4.5 ) ;
124  rpctfntrack_e[0] = ibooker.book1D("RPCTF_ntrack_fwd_bx-",
125  "RPCTF number of tracks - endcap, bx<0", 5, -0.5, 4.5 ) ;
126 
127 
128 
129 
130 
131  m_qualVsEta[1] = ibooker.book2D("RPCTF_quality_vs_eta_bx0",
132  "RPCTF quality vs eta, bx=0",
133  33, -16.5, 16.5,
134  6, -0.5, 5.5); // Currently only 0...3 quals are possible
135  m_qualVsEta[2] = ibooker.book2D("RPCTF_quality_vs_eta_bx+",
136  "RPCTF quality vs eta, bx>0",
137  33, -16.5, 16.5,
138  6, -0.5, 5.5); // Currently only 0...3 quals are possible
139  m_qualVsEta[0] = ibooker.book2D("RPCTF_quality_vs_eta_bx-",
140  "RPCTF quality vs eta, bx<0",
141  33, -16.5, 16.5,
142  6, -0.5, 5.5); // Currently only 0...3 quals are possible
143 
144 
145 
146  m_muonsEtaPhi[1] = ibooker.book2D("RPCTF_muons_eta_phi_bx0",
147  "RPCTF occupancy(eta,phi), bx=0",
148  33, -16.5, 16.5,
149  144, -0.5, 143.5);
150  m_muonsEtaPhi[2] = ibooker.book2D("RPCTF_muons_eta_phi_bx+",
151  "RPCTF occupancy(eta,phi), bx>0",
152  33, -16.5, 16.5,
153  144, -0.5, 143.5);
154  m_muonsEtaPhi[0] = ibooker.book2D("RPCTF_muons_eta_phi_bx-",
155  "RPCTF occupancy(eta,phi), bx<0",
156  33, -16.5, 16.5,
157  144, -0.5, 143.5);
158 
159  rpctfbx = ibooker.book1D("RPCTF_bx",
160  "RPCTF bx distribiution", 7, -3.5, 3.5 );
161 
162  //axis labels
163  for (int l = 0; l<3; ++l){
164  m_muonsEtaPhi[l]->setAxisTitle("tower",1);
165  m_qualVsEta[l]->setAxisTitle("tower");
166  rpctfetavalue[l]->setAxisTitle("tower");
167 
168  m_muonsEtaPhi[l]->setAxisTitle("phi",2);
169  rpctfphivalue[l]->setAxisTitle("phi");
170  }
171 
172  // set phi bin labels
173  for (int i = 0; i < 12 ; ++i ){
174  //float lPhi = (30./360)*i*2*3.14;
175  int lPhi = 30*i;
176  int lBin = int((30./360)*i*144)+1;
177  std::stringstream ss;
178  ss << "phi=" <<lPhi;
179  for (int l = 0; l<3; ++l){
180  rpctfphivalue[l]->setBinLabel(lBin,ss.str());
181  m_muonsEtaPhi[l]->setBinLabel(lBin,ss.str(), 2);
182  }
183  }
184 
185  /*
186  // set TC numbers on phi axis
187  for (int tc = 0; tc < 12 ; ++tc ){
188  int lBin = (tc*12+3+1)%144;
189  std::stringstream ss;
190  ss << "TC" <<tc;
191  for (int l = 0; l<3; ++l){
192  rpctfphivalue[l]->setBinLabel(lBin,ss.str());
193  m_muonsEtaPhi[l]->setBinLabel(lBin,ss.str(), 2);
194  }
195  }*/
196 
197 
198  // set eta bin labels
199  for (int i = -16; i < 17 ; ++i ){
200  std::stringstream ss;
201  ss << i;
202  for (int l = 0; l<3; ++l){
203  rpctfetavalue[l]->setBinLabel(i+17, ss.str());
204  m_muonsEtaPhi[l]->setBinLabel(i+17, ss.str(), 1);
205  m_qualVsEta[l]->setBinLabel(i+17, ss.str());
206  }
207  }
208 
209 
210 
211  m_bxDiff = ibooker.book1D("RPCTF_bx_diff",
212  "RPCTrigger - bx difference", 12000, -.5, 11999.5);
213 
214 }
MonitorElement * rpctfcratesynchro[12]
Definition: L1TRPCTF.h:83
MonitorElement * rpctfchargevalue[3]
Definition: L1TRPCTF.h:73
MonitorElement * rpctfetavalue[3]
Definition: L1TRPCTF.h:70
MonitorElement * rpctfptvalue[3]
Definition: L1TRPCTF.h:72
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 * rpctfquality[3]
Definition: L1TRPCTF.h:74
MonitorElement * rpctfphivalue[3]
Definition: L1TRPCTF.h:71
int nev_
Definition: L1TRPCTF.h:90
MonitorElement * book1D(Args &&...args)
Definition: DQMStore.h:118
MonitorElement * m_bxDiff
Definition: L1TRPCTF.h:82
MonitorElement * m_muonsEtaPhi[3]
Definition: L1TRPCTF.h:79
MonitorElement * m_qualVsEta[3]
Definition: L1TRPCTF.h:78
std::string output_dir_
Definition: L1TRPCTF.h:99
void setCurrentFolder(const std::string &fullpath)
Definition: DQMStore.cc:279
MonitorElement * book2D(Args &&...args)
Definition: DQMStore.h:136
double b
Definition: hdecay.h:120
MonitorElement * rpctfntrack_e[3]
Definition: L1TRPCTF.h:76
MonitorElement * rpctfbx
Definition: L1TRPCTF.h:77
MonitorElement * rpctfntrack_b[3]
Definition: L1TRPCTF.h:75
int nevRPC_
Definition: L1TRPCTF.h:91
void setAxisTitle(const std::string &title, int axis=1)
set x-, y- or z-axis title (axis=1, 2, 3 respectively)
void L1TRPCTF::dqmBeginRun ( const edm::Run r,
const edm::EventSetup c 
)
overrideprotected

Definition at line 366 of file L1TRPCTF.cc.

366  {
367 
368 }
void L1TRPCTF::endLuminosityBlock ( const edm::LuminosityBlock l,
const edm::EventSetup c 
)
overrideprotected

Definition at line 361 of file L1TRPCTF.cc.

362  {
363 
364 }

Member Data Documentation

MonitorElement* L1TRPCTF::m_bxDiff
private

Definition at line 82 of file L1TRPCTF.h.

Referenced by analyze(), and bookHistograms().

std::set<unsigned long long int> L1TRPCTF::m_globBX
private

Definition at line 86 of file L1TRPCTF.h.

Referenced by analyze().

long long int L1TRPCTF::m_lastUsedBxInBxdiff
private

Definition at line 98 of file L1TRPCTF.h.

Referenced by analyze().

MonitorElement* L1TRPCTF::m_muonsEtaPhi[3]
private

Definition at line 79 of file L1TRPCTF.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* L1TRPCTF::m_qualVsEta[3]
private

Definition at line 78 of file L1TRPCTF.h.

Referenced by analyze(), and bookHistograms().

bool L1TRPCTF::monitorDaemon_
private

Definition at line 94 of file L1TRPCTF.h.

int L1TRPCTF::nev_
private

Definition at line 90 of file L1TRPCTF.h.

Referenced by analyze(), and bookHistograms().

int L1TRPCTF::nevRPC_
private

Definition at line 91 of file L1TRPCTF.h.

Referenced by bookHistograms().

std::string L1TRPCTF::output_dir_
private

Definition at line 99 of file L1TRPCTF.h.

Referenced by bookHistograms().

std::string L1TRPCTF::outputFile_
private

Definition at line 92 of file L1TRPCTF.h.

Referenced by L1TRPCTF().

MonitorElement* L1TRPCTF::rpctfbx
private

Definition at line 77 of file L1TRPCTF.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* L1TRPCTF::rpctfchargevalue[3]
private

Definition at line 73 of file L1TRPCTF.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* L1TRPCTF::rpctfcratesynchro[12]
private

Definition at line 83 of file L1TRPCTF.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* L1TRPCTF::rpctfetavalue[3]
private

Definition at line 70 of file L1TRPCTF.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* L1TRPCTF::rpctfntrack_b[3]
private

Definition at line 75 of file L1TRPCTF.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* L1TRPCTF::rpctfntrack_e[3]
private

Definition at line 76 of file L1TRPCTF.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* L1TRPCTF::rpctfphivalue[3]
private

Definition at line 71 of file L1TRPCTF.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* L1TRPCTF::rpctfptvalue[3]
private

Definition at line 72 of file L1TRPCTF.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* L1TRPCTF::rpctfquality[3]
private

Definition at line 74 of file L1TRPCTF.h.

Referenced by analyze(), and bookHistograms().

edm::EDGetTokenT<L1MuGMTReadoutCollection> L1TRPCTF::rpctfSource_
private

Definition at line 88 of file L1TRPCTF.h.

Referenced by analyze().

bool L1TRPCTF::verbose_
private

Definition at line 93 of file L1TRPCTF.h.

Referenced by analyze(), and L1TRPCTF().