CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
DQMDcsInfo.cc
Go to the documentation of this file.
1 /*
2  * \file DQMDcsInfo.cc
3  * \author A.Meyer - DESY
4  * Last Update:
5  *
6  */
7 
8 #include "DQMDcsInfo.h"
13 
14 // Framework
15 
17 {
18 
19  parameters_ = ps;
20 
21  subsystemname_ = parameters_.getUntrackedParameter<std::string>("subSystemFolder", "Info") ;
22  dcsinfofolder_ = parameters_.getUntrackedParameter<std::string>("dcsInfoFolder", "DcsInfo") ;
23  gtCollection_ = consumes<L1GlobalTriggerReadoutRecord>(parameters_.getUntrackedParameter<std::string>("gtCollection","gtDigis"));
24  dcsStatusCollection_ = consumes<DcsStatusCollection>(parameters_.getUntrackedParameter<std::string>("dcsStatusCollection","scalersRawToDigi"));
25 
26  // initialize
27  for (int i=0;i<25;i++) dcs[i]=true;
28 }
29 
31 }
32 
34  edm::Run const & /* iRun */,
35  edm::EventSetup const & /* iSetup */) {
36 
37  // Fetch GlobalTag information and fill the string/ME.
38  ibooker.cd();
39  ibooker.setCurrentFolder(subsystemname_ +"/CMSSWInfo/");
40 
41  const edm::ParameterSet &globalTagPSet =
43  .getParameterSet("PoolDBESSource@GlobalTag");
44 
45  ibooker.bookString("globalTag_Step1", globalTagPSet.getParameter<std::string>("globaltag"));
46 
47  ibooker.cd();
49 
50  DCSbyLS_ = ibooker.book1D("DCSbyLS","DCS",25,0.,25.);
52 
53  // initialize
54  for (int i=0;i<25;i++) dcs[i]=true;
55 }
56 
58 
59  makeDcsInfo(e);
60  makeGtInfo(e);
61 
62  return;
63 }
64 
65 void
67 {
68  // int nlumi = l.id().luminosityBlock();
69 
70  // fill dcs vs lumi
71  /* set those bins 0 for which bits are ON
72  needed for merge off lumi histograms across files */
73  for (int i=0;i<25;i++)
74  {
75  if (dcs[i])
76  DCSbyLS_->setBinContent(i+1,0.);
77  else
78  DCSbyLS_->setBinContent(i+1,1.);
79 
80  dcs[i]=true;
81  }
82 
83  return;
84 }
85 
86 void
88 {
89 
91  if ( ! e.getByToken(dcsStatusCollection_, dcsStatus) )
92  {
93  for (int i=0;i<24;i++) dcs[i]=false;
94  return;
95  }
96 
97  if ( ! dcsStatus.isValid() )
98  {
99  edm::LogWarning("DQMDcsInfo") << "scalersRawToDigi not found" ;
100  for (int i=0;i<24;i++) dcs[i]=false; // info not available: set to false
101  return;
102  }
103 
104  for (DcsStatusCollection::const_iterator dcsStatusItr = dcsStatus->begin();
105  dcsStatusItr != dcsStatus->end(); ++dcsStatusItr)
106  {
107  if (!dcsStatusItr->ready(DcsStatus::CSCp)) dcs[0]=false;
108  if (!dcsStatusItr->ready(DcsStatus::CSCm)) dcs[1]=false;
109  if (!dcsStatusItr->ready(DcsStatus::DT0)) dcs[2]=false;
110  if (!dcsStatusItr->ready(DcsStatus::DTp)) dcs[3]=false;
111  if (!dcsStatusItr->ready(DcsStatus::DTm)) dcs[4]=false;
112  if (!dcsStatusItr->ready(DcsStatus::EBp)) dcs[5]=false;
113  if (!dcsStatusItr->ready(DcsStatus::EBm)) dcs[6]=false;
114  if (!dcsStatusItr->ready(DcsStatus::EEp)) dcs[7]=false;
115  if (!dcsStatusItr->ready(DcsStatus::EEm)) dcs[8]=false;
116  if (!dcsStatusItr->ready(DcsStatus::ESp)) dcs[9]=false;
117  if (!dcsStatusItr->ready(DcsStatus::ESm)) dcs[10]=false;
118  if (!dcsStatusItr->ready(DcsStatus::HBHEa)) dcs[11]=false;
119  if (!dcsStatusItr->ready(DcsStatus::HBHEb)) dcs[12]=false;
120  if (!dcsStatusItr->ready(DcsStatus::HBHEc)) dcs[13]=false;
121  if (!dcsStatusItr->ready(DcsStatus::HF)) dcs[14]=false;
122  if (!dcsStatusItr->ready(DcsStatus::HO)) dcs[15]=false;
123  if (!dcsStatusItr->ready(DcsStatus::BPIX)) dcs[16]=false;
124  if (!dcsStatusItr->ready(DcsStatus::FPIX)) dcs[17]=false;
125  if (!dcsStatusItr->ready(DcsStatus::RPC)) dcs[18]=false;
126  if (!dcsStatusItr->ready(DcsStatus::TIBTID)) dcs[19]=false;
127  if (!dcsStatusItr->ready(DcsStatus::TOB)) dcs[20]=false;
128  if (!dcsStatusItr->ready(DcsStatus::TECp)) dcs[21]=false;
129  if (!dcsStatusItr->ready(DcsStatus::TECm)) dcs[22]=false;
130  if (!dcsStatusItr->ready(DcsStatus::CASTOR)) dcs[23]=false;
131  }
132 
133  return ;
134 }
135 
136 void
138 {
139 
141  if ( ! e.getByToken(gtCollection_, gtrr_handle) )
142  {
143  dcs[24]=false; // info not available: set to false
144  return;
145  }
146 
147  if ( ! gtrr_handle.isValid() )
148  {
149  edm::LogWarning("DQMDcsInfo") << " gtDigis not found" ;
150  dcs[24]=false; // info not available: set to false
151  return;
152  }
153 
154  L1GlobalTriggerReadoutRecord const* gtrr = gtrr_handle.product();
155  L1GtFdlWord fdlWord ;
156  if (gtrr)
157  fdlWord = gtrr->gtFdlWord();
158  else
159  {
160  edm::LogWarning ("DQMDcsInfo") << " phys decl. bit not accessible !!!";
161  dcs[24]=false; // info not available: set to false
162  return;
163  }
164 
165  if (fdlWord.physicsDeclared() !=1) dcs[24]=false;
166 
167  return;
168 }
T getParameter(std::string const &) const
T getUntrackedParameter(std::string const &, T const &) const
int i
Definition: DBlmapReader.cc:9
void setBinContent(int binx, double content)
set content of bin (1-D)
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:464
void cd(void)
Definition: DQMStore.cc:266
MonitorElement * bookString(Args &&...args)
Definition: DQMStore.h:97
ModuleDescription const & moduleDescription() const
ParameterSet const & getProcessParameterSetContainingModule(ModuleDescription const &moduleDescription)
void analyze(const edm::Event &e, const edm::EventSetup &c)
Analyze.
Definition: DQMDcsInfo.cc:57
return((rh^lh)&mask)
MonitorElement * book1D(Args &&...args)
Definition: DQMStore.h:115
void endLuminosityBlock(const edm::LuminosityBlock &l, const edm::EventSetup &c)
Definition: DQMDcsInfo.cc:66
bool isValid() const
Definition: HandleBase.h:75
edm::EDGetTokenT< L1GlobalTriggerReadoutRecord > gtCollection_
Definition: DQMDcsInfo.h:50
edm::ParameterSet parameters_
Definition: DQMDcsInfo.h:47
bool dcs[25]
Definition: DQMDcsInfo.h:53
void setCurrentFolder(const std::string &fullpath)
Definition: DQMStore.cc:274
T const * product() const
Definition: Handle.h:81
void bookHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
Definition: DQMDcsInfo.cc:33
virtual ~DQMDcsInfo()
Destructor.
Definition: DQMDcsInfo.cc:30
const L1GtFdlWord gtFdlWord(int bxInEventValue) const
get / set FDL word (record) in the GT readout record
ParameterSet const & getParameterSet(std::string const &) const
std::string dcsinfofolder_
Definition: DQMDcsInfo.h:49
const cms_uint16_t physicsDeclared() const
get/set &quot;physics declared&quot; bit
Definition: L1GtFdlWord.h:227
void makeDcsInfo(const edm::Event &e)
Definition: DQMDcsInfo.cc:87
std::string subsystemname_
Definition: DQMDcsInfo.h:48
DQMDcsInfo(const edm::ParameterSet &ps)
Constructor.
Definition: DQMDcsInfo.cc:16
MonitorElement * DCSbyLS_
Definition: DQMDcsInfo.h:55
void setLumiFlag(void)
this ME is meant to be stored for each luminosity section
edm::EDGetTokenT< DcsStatusCollection > dcsStatusCollection_
Definition: DQMDcsInfo.h:51
void makeGtInfo(const edm::Event &e)
Definition: DQMDcsInfo.cc:137
Definition: Run.h:43