21 gtSource_(ps.getParameter<
InputTag> (
"gtSource")),
22 gtEvmSource_(ps.getParameter<
InputTag> (
"gtEvmSource")) {
28 cout <<
"L1TGT: constructor...." << endl;
38 cout <<
"L1T Monitoring histograms will be saved to "
70 dbe->
rmdir(
"L1T/L1TGT");
80 "GT algo bit correlation",
81 128, -0.5, 127.5, 128, -0.5, 127.5);
86 "GT technical trigger bits",
91 "GT tech. trig. bit correlation",
92 64, -0.5, 63.5, 64, -0.5, 63.5);
97 "GT algo tech. trig. bit correlation",
98 128, -0.5, 127.5, 64, -0.5, 63.5);
103 "GT algo bit rate per lumi segment",
104 250, 0., 250., 128, -0.5, 127.5);
109 "GT tech. trig. bit rate per lumi segment",
110 250, 0., 250., 64, -0.5, 63.5);
124 "GT Event number (from last resync)",
129 "GT Event number (from last resync) vs lumi section",
130 250, 0., 250., 100, -0.1, 1.e15,
"s");
135 "GT Trigger number (from start run)",
140 "GT Trigger number (from start run) vs lumi section",
141 250, 0., 250., 100, -0.1, 1.e15,
"s");
146 "GT Event/Trigger number ratio vs lumi section",
147 250, 0., 250., 100, -0.1, 2.,
"s");
152 "GT orbit number vs lumi section",
153 250, 0., 250., 100, -0.1, 1.e15,
"s");
158 "GT setup version vs lumi section",
159 250, 0., 250., 100, -0.1, 1.e10,
"i");
163 gtfe_bx = dbe->
book1D(
"gtfe_bx",
"GTFE Bx number", 3600, 0., 3600.);
167 "delta Bx of GT modules wrt. GTFE",
168 20, 0., 20., 100, -4000., 4000.,
"i");
192 "BST master status over lumi segment",
193 250, 0., 250., 6, -1., 5.);
200 "BST turn count over lumi segment",
201 250, 0., 250., 250, 0., 4.3e9);
206 "BST LHC fill number % 1000", 1000, 0., 1000.);
210 "BST beam mode over lumi segment",
211 250, 0., 250., 25, 1., 26.);
238 250, 0., 250., 100, 0., 7200.);
242 gpsfreq = dbe->
book1D(
"gpsfreq",
"clock frequency measured by GPS",
247 "clock frequency measured by GPS", 1000, -2., 200.);
251 "clock frequency measured by GPS",
252 250, 0., 250., 100, 39.95, 40.2);
258 250, 0., 250., 100, 0., 100.);
264 250, 0., 250., 100, 0., 100.);
269 "Index of L1 prescale factor set",
270 250, 0., 250., 25, 0., 25.);
280 cout <<
"L1TGT: end job...." << endl;
283 LogInfo(
"EndJob") <<
"analyzed " <<
nev_ <<
" events";
296 cout <<
"L1TGT: analyze...." << endl;
307 if (!gtEvmReadoutRecord.
isValid()) {
309 <<
"can't find L1GlobalTriggerEvmReadoutRecord with label "
315 const L1GtfeWord& gtfeEvmWord = gtEvmReadoutRecord->gtfeWord();
316 const L1GtfeExtWord& gtfeEvmExtWord = gtEvmReadoutRecord->gtfeWord();
318 gtfeEvmBx = gtfeEvmWord.
bxNr();
323 const L1TcsWord& tcsWord = gtEvmReadoutRecord->tcsWord();
324 tcsBx = tcsWord.
bxNr();
340 boost::uint16_t beam = gtfeEvmExtWord.
beamMode();
341 boost::uint16_t momentum = gtfeEvmExtWord.
beamMomentum();
355 cout <<
" check mode = " << beam <<
" momentum " << momentum
356 <<
" int2 " << intensity2 << endl;
366 Long64_t delorb = orb -
preOrb_;
367 Long64_t delgps = gps -
preGps_;
371 freq = ((Double_t)(delorb)) * 3564. / ((Double_t)(delgps));
380 cout <<
" preOrb_ = " << preOrb_ <<
" orb=" << orb
381 <<
" delorb=" << delorb << hex <<
" preGps_="
382 << preGps_ <<
" gps=" << gps << dec
383 <<
" delgps=" << delgps <<
" freq=" << freq
400 if (!gtReadoutRecord.
isValid()) {
402 <<
"can't find L1GlobalTriggerReadoutRecord with label "
409 int fdlBx[2] = { -1, -1 };
410 int psbBx[2][7] = { { -1, -1, -1, -1, -1, -1, -1 }, { -1, -1, -1, -1, -1,
415 const L1GtfeWord& gtfeWord = gtReadoutRecord->gtfeWord();
416 gtfeBx = gtfeWord.
bxNr();
426 if (gmtReadoutCollection.
isValid()) {
427 gmtBx = gmtReadoutCollection->getRecord().getBxNr();
433 const L1GtFdlWord& fdlWord = gtReadoutRecord->gtFdlWord();
434 fdlBx[0] = fdlWord.
bxNr();
438 const DecisionWord& gtDecisionWord = gtReadoutRecord->decisionWord();
440 gtReadoutRecord->technicalTriggerWord();
443 DecisionWord::const_iterator GTdbitItr;
445 for (GTdbitItr = gtDecisionWord.begin(); GTdbitItr
446 != gtDecisionWord.end(); GTdbitItr++) {
451 DecisionWord::const_iterator GTdbitItr1;
452 for (GTdbitItr1 = gtDecisionWord.begin(); GTdbitItr1
453 != gtDecisionWord.end(); GTdbitItr1++) {
459 TechnicalTriggerWord::const_iterator GTtbitItr1;
460 for (GTtbitItr1 = gtTTWord.begin(); GTtbitItr1
461 != gtTTWord.end(); GTtbitItr1++) {
471 TechnicalTriggerWord::const_iterator GTtbitItr;
473 for (GTtbitItr = gtTTWord.begin(); GTtbitItr != gtTTWord.end(); GTtbitItr++) {
478 TechnicalTriggerWord::const_iterator GTtbitItr1;
479 for (GTtbitItr1 = gtTTWord.begin(); GTtbitItr1
480 != gtTTWord.end(); GTtbitItr1++) {
503 int psbID[7] = { 0xbb09, 0xbb0d, 0xbb0e, 0xbb0f, 0xbb13, 0xbb14, 0xbb15 };
504 for (
int i = 0;
i < 7;
i++) {
505 if (
isActive(gtfeActiveBoards, ibit)) {
506 L1GtPsbWord psbWord = gtReadoutRecord->gtPsbWord(psbID[
i]);
507 psbBx[0][
i] = psbWord.
bxNr();
518 for (
int i = 0;
i < 2;
i++) {
522 for (
int j = 0;
j < 7;
j++) {
523 for (
int i = 0;
i < 2;
i++) {
524 if (psbBx[
i][
j] > -1)
535 if (word & (1 << bit))
const boost::uint32_t partTrigNr() const
get/set total number of L1A sent since start of the run to this DAQ partition
MonitorElement * m_monL1PrescaleFactorSet
Master< F > master(const F &f)
T getUntrackedParameter(std::string const &, T const &) const
MonitorElement * gpsfreqwide
const boost::uint16_t gtPrescaleFactorIndexAlgo() const
const boost::uint16_t bxNr() const
get/set bunch cross number of the actual bx
const boost::uint32_t turnCountNumber() const
const boost::uint16_t localBxNr() const
get/set local bunch cross number of the actual bx
MonitorElement * book1D(const char *name, const char *title, int nchX, double lowX, double highX)
Book 1D histogram.
void rmdir(const std::string &fullpath)
const boost::uint64_t orbitNr() const
get/set orbit number since start of run
void save(const std::string &filename, const std::string &path="", const std::string &pattern="", const std::string &rewrite="", SaveReferenceTag ref=SaveWithReference, int minStatus=dqm::qstatus::STATUS_OK, const std::string &fileupdate="RECREATE")
const boost::uint16_t bxNr() const
get/set bunch cross number as counted in the GTFE board
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)
edm::LuminosityBlockNumber_t luminosityBlock() const
MonitorElement * BST_intensityBeam1
MonitorElement * algo_bits_corr
const boost::uint32_t setupVersion() const
get/set setup version
const boost::uint32_t totalIntensityBeam2() const
MonitorElement * BST_beamMode
MonitorElement * BST_MasterStatus
MonitorElement * BST_intensityBeam2
const boost::uint16_t beamMode() const
MonitorElement * event_number
edm::InputTag gtEvmSource_
const boost::uint16_t triggerType() const
get/set trigger type, identical with event type in CMS header
std::vector< bool > DecisionWord
typedefs
const boost::uint16_t localBxNr() const
get/set local bunch cross number of the actual bx
MonitorElement * orbit_lumi
std::vector< bool > TechnicalTriggerWord
technical trigger bits (64 bits)
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)
MonitorElement * algo_bits_lumi
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
const boost::uint32_t lhcFillNumber() const
const boost::uint16_t bxNr() const
get/set bunch cross number as counted in the TCS chip
MonitorElement * algo_bits
MonitorElement * event_type
const boost::uint16_t bstMasterStatus() const
MonitorElement * dbx_module
const boost::uint32_t totalIntensityBeam1() const
unsigned long long uint64_t
MonitorElement * tt_bits_corr
bool isActive(int word, int bit)
MonitorElement * gpsfreqlum
const boost::uint16_t bxNr() const
get/set BxNr - bunch cross number of the actual bx
MonitorElement * trigger_number
const boost::uint16_t activeBoards() const
get/set boards contributing to EVM respectively DAQ record
MonitorElement * BST_beamMomentum
MonitorElement * BST_lhcFillNumber
MonitorElement * setupversion_lumi
const boost::uint16_t beamMomentum() const
MonitorElement * book2D(const char *name, const char *title, int nchX, double lowX, double highX, int nchY, double lowY, double highY)
Book 2D histogram.
const boost::uint32_t eventNr() const
get/set event number since last L1 reset generated in TCS chip
MonitorElement * BST_turnCountNumber
void setAxisTitle(const std::string &title, int axis=1)
set x-, y- or z-axis title (axis=1, 2, 3 respectively)
MonitorElement * event_lumi
MonitorElement * tt_bits_lumi
MonitorElement * trigger_lumi
MonitorElement * evnum_trignum_lumi
const boost::uint64_t gpsTime() const
LHC-BOB-ES-0001 (EDMS 638899)
MonitorElement * algo_tt_bits_corr
void setCurrentFolder(const std::string &fullpath)
L1TGT(const edm::ParameterSet &ps)
void analyze(const edm::Event &e, const edm::EventSetup &c)