Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update of DQM combo PR for L1T, including updates from 81x #14021

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
46 commits
Select commit Hold shift + click to select a range
f885dc5
First commit, compiles and runs
swang373 Feb 27, 2016
919b2b2
Necessary configuration files modified.
swang373 Mar 3, 2016
9acc5fd
Add some whitespace to follow style
swang373 Mar 4, 2016
a8514cd
First pass at L1Trigger Layer1 DQM module
nsmith- Mar 9, 2016
726c118
Selectively checkout EventFilter/L1TRawToDigi
swang373 Mar 16, 2016
ff12f16
Selectively checkout EventFilter/L1TRawToDigi cont
swang373 Mar 16, 2016
782a79a
Selectively checkout DataFormats/L1TMuon
swang373 Mar 16, 2016
c6b1f1f
Selectively checkout DataFormats/L1TMuon cont
swang373 Mar 16, 2016
2273358
Merge remote-tracking branch 'my-cmssw/EMTF_DQM_dev' into EMTF_DQM_801
swang373 Mar 16, 2016
acffe4d
Compiles and runs
swang373 Mar 16, 2016
f257a2a
CaloLayer1 DQM bugfix
nsmith- Mar 16, 2016
c2f0da1
Calo Layer1 update: remove separate received HF digi
nsmith- Mar 16, 2016
ec14baf
Organize configuration files, add nLCTs plot
swang373 Mar 16, 2016
53366e1
Reorganize uGMT DQM Module
swang373 Mar 17, 2016
2efc322
Minor EMTF, uGMT edits; configure to run all
swang373 Mar 17, 2016
8a48db8
Merged DQM_dev_801 from repository swang373
vivannguyen Mar 17, 2016
b3553d3
Integrate L1T Calo Layer1 DQM Module
swang373 Mar 17, 2016
3f1c199
Integrate L1T uGT DQM Module
swang373 Mar 17, 2016
c1e8c24
Clarify the geometry loading
swang373 Mar 17, 2016
7a9115e
Merged l1t-dqm-CMSSW_8_0_1 from repository cms-l1t-offline
nsmith- Mar 17, 2016
3b643f3
Fix legacy digi warning
nsmith- Mar 17, 2016
d74e86f
Merged refs/pull/13513/head from repository cms-sw
nsmith- Mar 17, 2016
6ed5da3
Added L1TStage2uGT DQM module
mzarucki Mar 15, 2016
3c4439a
Merged refs/pull/13733/head from repository cms-sw
nsmith- Mar 17, 2016
86d336a
Merge branch 'swang-dqm-CMSSW_8_0_1' into l1t-dqm-CMSSW_8_0_1
nsmith- Mar 17, 2016
4f33aca
Fix some issues from the merging process
nsmith- Mar 17, 2016
128d54b
Add plots for uGMT inputs
swang373 Mar 18, 2016
56ad61e
New ME_ID variables in SP collection
Mar 17, 2016
c710bd6
Reorganized BMTF DQM module, prepare for unpacker
swang373 Mar 18, 2016
9af1eb5
Fix and add more uGMT plots
swang373 Mar 18, 2016
388033d
Merge branch 'l1t-dqm-CMSSW_8_0_1' into EMTF_DQM_dev
swang373 Mar 18, 2016
4f8c38f
Made plots for EMTF DQM
vivannguyen Mar 18, 2016
85c9594
Merge branch 'l1t-dqm-CMSSW_8_0_1' of github.com:cms-l1t-offline/cmss…
swang373 Mar 18, 2016
b0ef171
Added CSCTFLCT vs BX and CSCTF Errors (No Corruption data)
nhaubrich Mar 18, 2016
8cb933b
Merge remote-tracking branch 'vivannguyen-cmssw/emtf' into l1t-dqm-CM…
swang373 Mar 18, 2016
0f1a1d1
Adding latest changes compiled and tested successfully
eparadas Mar 18, 2016
2689151
BMTF Successfully Included, Clean Up Bugs
swang373 Mar 18, 2016
724be40
Fix unused variable warning from llvm
nsmith- Mar 22, 2016
a75deed
Updated L1TStage2uGT DQM module
mzarucki Apr 1, 2016
e5a34ec
Updated L1TStage2uGT DQM module: BX range
mzarucki Apr 2, 2016
66c0341
Merge pull request #224 from mzarucki/uGT_DQM_v3_801
swang373 Apr 4, 2016
82adf38
Merged refs/pull/13767/head from repository cms-sw
mulhearn Apr 11, 2016
33e6f2d
Merged refs/pull/13763/head from repository cms-sw
mulhearn Apr 11, 2016
091b73e
Manual sync L1T-related files with 81x
mulhearn Apr 11, 2016
d00b333
Merged refs/pull/14021/head from repository cms-sw
mulhearn Apr 12, 2016
03e9ed5
Merge branch 'CMSSW_8_0_X' into from-CMSSW_8_0_X_2016-04-11-2300
mulhearn Apr 12, 2016
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
119 changes: 69 additions & 50 deletions DQM/Integration/python/clients/l1tstage2_dqm_sourceclient-live_cfg.py
Original file line number Diff line number Diff line change
@@ -1,76 +1,91 @@
#* \L1 Trigger DQM sequence
#* \author Esmaeel Eskandari Tadavani

import FWCore.ParameterSet.Config as cms

process = cms.Process("DQM")

#----------------------------
# Event Source
#
# for live online DQM in P5
process.load("DQM.Integration.config.inputsource_cfi")
#
# for testing in lxplus
#process.load("DQM.Integration.config.fileinputsource_cfi")

#----------------------------
# DQM Environment

process.load("DQM.Integration.config.environment_cfi")
process.dqmEnv.subSystemFolder = 'L1T2016'
process.dqmSaver.tag = 'L1T2016'
#
#
# references needed
process.DQMStore.referenceFileName = "/dqmdata/dqm/reference/l1t_reference.root"
#--------------------------------------------------
# Event Source and Condition

# Condition for P5 cluster
# Live Online DQM in P5
process.load("DQM.Integration.config.inputsource_cfi")
process.load("DQM.Integration.config.FrontierCondition_GT_cfi")

# Condition for lxplus
# Testing in lxplus
#process.load("DQM.Integration.config.fileinputsource_cfi")
#process.load("DQM.Integration.config.FrontierCondition_GT_Offline_cfi")

# Required to load EcalMappingRecord
process.load("Configuration.StandardSequences.GeometryRecoDB_cff")

#-------------------------------------
# sequences needed for L1 trigger DQM
#--------------------------------------------------
# DQM Environment

# standard unpacking sequence
process.load("Configuration.StandardSequences.RawToDigi_Data_cff")
process.load("DQM.Integration.config.environment_cfi")

# L1 Trigger sequences
process.dqmEnv.subSystemFolder = "L1T2016"
process.dqmSaver.tag = "L1T2016"
process.DQMStore.referenceFileName = "/dqmdata/dqm/reference/l1t_reference.root"

# l1tMonitor and l1tMonitorEndPathSeq
process.load("DQM.L1TMonitor.L1TMonitor_cff")
process.load("DQM.L1TMonitor.L1TStage2_cff")
process.dqmEndPath = cms.EndPath(
process.dqmEnv *
process.dqmSaver
)

#--------------------------------------------------
# Standard Unpacking Path

process.load("Configuration.StandardSequences.RawToDigi_Data_cff")

process.rawToDigiPath = cms.Path(process.RawToDigi)

# for GCT, unpack all five samples
# For GCT, unpack all five samples.
process.gctDigis.numberOfGctSamplesToUnpack = cms.uint32(5)

process.gtDigis.DaqGtFedId = cms.untracked.int32(813)

process.stage2UnpackPath = cms.Path(process.caloStage2Digis+process.gmtStage2Digis)
#--------------------------------------------------
# Legacy DQM Paths

process.load("DQM.L1TMonitor.L1TMonitor_cff")
process.l1tMonitorEndPath = cms.EndPath(process.l1tMonitorEndPathSeq)

#--------------------------------------------------
# Stage2 DQM Paths

process.load("DQM.L1TMonitor.L1TStage2_cff")
process.l1tMonitorPath = cms.Path(process.l1tStage2online)

process.l1tMonitorEndPath = cms.EndPath(process.l1tMonitorEndPathSeq)
# Remove Subsystem Modules
#process.l1tStage2online.remove(process.l1tLayer1)
#process.l1tStage2online.remove(process.l1tStage2CaloLayer2)
#process.l1tStage2online.remove(process.l1tStage2uGMT)
#process.l1tStage2online.remove(process.l1tStage2uGt)
#process.l1tStage2online.remove(process.l1tStage2Bmtf)
#process.l1tStage2online.remove(process.l1tStage2Emtf)

process.dqmEndPath = cms.EndPath(
process.dqmEnv *
process.dqmSaver
)

process.schedule = cms.Schedule(process.rawToDigiPath,
process.stage2UnpackPath,
process.l1tMonitorPath,
#process.l1tMonitorClientPath,
process.l1tMonitorEndPath,
#process.l1tMonitorClientEndPath,
process.dqmEndPath
)
#--------------------------------------------------
# Stage2 Unpacking Path

process.stage2UnpackPath = cms.Path(
process.l1tCaloLayer1Digis +
process.caloStage2Digis +
process.gmtStage2Digis +
process.gtStage2Digis +
process.BMTFStage2Digis +
process.emtfStage2Digis
)

#--------------------------------------------------
# L1 Trigger DQM Schedule

process.schedule = cms.Schedule(
process.rawToDigiPath,
process.stage2UnpackPath,
process.l1tMonitorPath,
#process.l1tMonitorClientPath,
process.l1tMonitorEndPath,
#process.l1tMonitorClientEndPath,
process.dqmEndPath
)

#--------------------------------------------------
# Heavy Ion Specific Fed Raw Data Collection Label
Expand All @@ -94,7 +109,8 @@
process.siStripDigis.ProductLabel = cms.InputTag("rawDataCollector")
process.bxTiming.FedSource = cms.untracked.InputTag("rawDataCollector")
process.l1s.fedRawData = cms.InputTag("rawDataCollector")

process.gtStage2Digis.InputLabel = cms.InputTag("rawDataCollector")

if (process.runType.getRunType() == process.runType.hi_run):
process.castorDigis.InputLabel = cms.InputTag("rawDataRepacker")
process.csctfDigis.producer = cms.InputTag("rawDataRepacker")
Expand All @@ -113,8 +129,11 @@
process.siStripDigis.ProductLabel = cms.InputTag("rawDataRepacker")
process.bxTiming.FedSource = cms.untracked.InputTag("rawDataRepacker")
process.l1s.fedRawData = cms.InputTag("rawDataRepacker")
process.gtStage2Digis.InputLabel = cms.InputTag("rawDataRepacker")

### process customizations included here
#--------------------------------------------------
# Process Customizations

from DQM.Integration.config.online_customizations_cfi import *
process = customise(process)

39 changes: 26 additions & 13 deletions DQM/Integration/python/config/fileinputsource_cfi.py
Original file line number Diff line number Diff line change
@@ -1,29 +1,42 @@
import FWCore.ParameterSet.Config as cms

source = cms.Source("PoolSource",
fileNames = cms.untracked.vstring(
source = cms.Source(
"PoolSource",
fileNames = cms.untracked.vstring(
#"root://eoscms//store/express/Commissioning2016/ExpressCosmics/FEVT/Express-v1/000/266/681/00000/001AF1D0-6BE9-E511-9A8D-02163E0143FE.root",
#"root://eoscms//store/express/Commissioning2016/ExpressCosmics/FEVT/Express-v1/000/266/681/00000/005BCAC3-72E9-E511-B002-02163E014310.root",
#"root://eoscms//store/express/Commissioning2016/ExpressCosmics/FEVT/Express-v1/000/266/681/00000/00E3C803-BBE9-E511-A99C-02163E01465A.root",
#"root://eoscms//store/express/Commissioning2016/ExpressCosmics/FEVT/Express-v1/000/266/681/00000/00EFE5C2-6EE9-E511-ABB3-02163E013417.root",
#"root://eoscms//store/express/Commissioning2016/ExpressCosmics/FEVT/Express-v1/000/266/681/00000/04159D15-95E9-E511-B73F-02163E014176.root",
#"root://eoscms//store/express/Commissioning2016/ExpressCosmics/FEVT/Express-v1/000/266/681/00000/04E4A62F-93E9-E511-83A3-02163E0134CD.root",
#"root://eoscms//store/express/Commissioning2016/ExpressCosmics/FEVT/Express-v1/000/266/681/00000/04F7F2D7-72E9-E511-9534-02163E014310.root",
#"root://eoscms//store/express/Commissioning2016/ExpressCosmics/FEVT/Express-v1/000/266/681/00000/06077D63-78E9-E511-9D8A-02163E014310.root",
#"root://eoscms//store/express/Commissioning2016/ExpressCosmics/FEVT/Express-v1/000/266/681/00000/061EFCD5-97E9-E511-8764-02163E0143FE.root",
#"root://eoscms//store/express/Commissioning2016/ExpressCosmics/FEVT/Express-v1/000/266/681/00000/063C23DD-82E9-E511-9020-02163E011FCE.root",
"file:/afs/cern.ch/cms/CAF/CMSCOMM/COMM_DQM/DQMTest/MinimumBias__RAW__v1__165633__1CC420EE-B686-E011-A788-0030487CD6E8.root",
# "/store/data/Commissioning2014/Cosmics/RAW//v3/000/224/380/00000/E05943D1-1227-E411-BB8E-02163E00F0C4.root"
# "/store/data/Commissioning2014/Cosmics/RAW/v3/000/224/380/00000/68FDADE5-1227-E411-8AA6-02163E00A10C.root"
)
#"/store/data/Commissioning2014/Cosmics/RAW//v3/000/224/380/00000/E05943D1-1227-E411-BB8E-02163E00F0C4.root"
#"/store/data/Commissioning2014/Cosmics/RAW/v3/000/224/380/00000/68FDADE5-1227-E411-8AA6-02163E00A10C.root"
)
)

maxEvents = cms.untracked.PSet(
input = cms.untracked.int32(-1)
# input = cms.untracked.int32(1000)
)

# Parameters for runType
import FWCore.ParameterSet.VarParsing as VarParsing
import sys
from dqmPythonTypes import *

options = VarParsing.VarParsing('analysis')
options = VarParsing.VarParsing("analysis")

options.register ('runkey',
'cosmic_run',
VarParsing.VarParsing.multiplicity.singleton,
VarParsing.VarParsing.varType.string,
"Run Keys of CMS")
options.register(
"runkey",
"cosmic_run",
VarParsing.VarParsing.multiplicity.singleton,
VarParsing.VarParsing.varType.string,
"Run Keys of CMS"
)

options.parseArguments()

Expand All @@ -33,6 +46,6 @@

runType = RunType()
if not options.runkey.strip():
options.runkey = 'pp_run'
options.runkey = "pp_run"

runType.setRunType(options.runkey.strip())
2 changes: 2 additions & 0 deletions DQM/L1TMonitor/BuildFile.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
<use name="DQMServices/Components"/>
<use name="DQMServices/ClientConfig"/>
<use name="DataFormats/L1Trigger"/>
<use name="DataFormats/L1TGlobal"/>
<use name="DataFormats/LTCDigi"/>
<use name="DataFormats/CSCDigi"/>
<use name="DataFormats/L1CSCTrackFinder"/>
Expand All @@ -31,6 +32,7 @@
<use name="CondFormats/L1TObjects"/>
<use name="L1Trigger/CSCTrackFinder"/>
<use name="L1Trigger/GlobalTriggerAnalyzer"/>
<use name="L1Trigger/L1TMuon"/>
<use name="CondTools/L1Trigger"/>
<use name="root"/>
<use name="boost"/>
Expand Down
125 changes: 125 additions & 0 deletions DQM/L1TMonitor/interface/L1TLayer1.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,125 @@
#ifndef L1TLayer1_H
#define L1TLayer1_H

// system include files
#include <memory>
#include <string>
#include <array>

// user include files
#include "FWCore/Framework/interface/Frameworkfwd.h"
#include "FWCore/Framework/interface/EDAnalyzer.h"

#include "FWCore/Framework/interface/Event.h"
#include "FWCore/Framework/interface/MakerMacros.h"

#include "FWCore/ParameterSet/interface/ParameterSet.h"

#include "FWCore/ServiceRegistry/interface/Service.h"
#include "FWCore/MessageLogger/interface/MessageLogger.h"

#include "DQMServices/Core/interface/MonitorElement.h"
#include "DQMServices/Core/interface/DQMEDAnalyzer.h"

#include "DataFormats/EcalDigi/interface/EcalDigiCollections.h"
#include "DataFormats/HcalDigi/interface/HcalDigiCollections.h"

class L1TLayer1 : public DQMEDAnalyzer {
public:
L1TLayer1(const edm::ParameterSet& ps);
virtual ~L1TLayer1();

protected:
void analyze(const edm::Event& e, const edm::EventSetup& c);
virtual void bookHistograms(DQMStore::IBooker &ibooker, const edm::Run&, const edm::EventSetup&) override;
virtual void dqmBeginRun(const edm::Run&, const edm::EventSetup&);
void beginLuminosityBlock(const edm::LuminosityBlock&, const edm::EventSetup&);

private:
void updateMismatch(const edm::Event& e, int mismatchType);
// Input and config info
edm::EDGetTokenT<EcalTrigPrimDigiCollection> ecalTPSourceRecd_;
std::string ecalTPSourceRecdLabel_;
edm::EDGetTokenT<HcalTrigPrimDigiCollection> hcalTPSourceRecd_;
std::string hcalTPSourceRecdLabel_;
edm::EDGetTokenT<EcalTrigPrimDigiCollection> ecalTPSourceSent_;
std::string ecalTPSourceSentLabel_;
edm::EDGetTokenT<HcalTrigPrimDigiCollection> hcalTPSourceSent_;
std::string hcalTPSourceSentLabel_;
std::string histFolder_;
int tpFillThreshold_;

// Some types to ease the pain of compring the sets of towers
class SimpleTower {
public:
int8_t ieta_;
int8_t iphi_;
// Sometimes pt, sometimes pt+feature bits
int32_t data_;
// Only available from received towers
int16_t linkFlags_;
SimpleTower(int8_t ieta, int8_t iphi, int32_t data, int16_t linkFlags=0):ieta_(ieta),iphi_(iphi), data_(data), linkFlags_(linkFlags) {};

// Lexicographical strict weak ordering
// allows use of std::set_intersection, etc.
bool operator<(const SimpleTower& b) const {
if ( ieta_ < b.ieta_ ) return true;
if ( ieta_ == b.ieta_ && iphi_ < b.iphi_ ) return true;
if ( ieta_ == b.ieta_ && iphi_ == b.iphi_ && data_ < b.data_ ) return true;
return false;
};
};
typedef std::set<SimpleTower> SimpleTowerSet;

MonitorElement *ecalOccSent_;
MonitorElement *ecalOccSent_isFineGrainVB_;

MonitorElement *ecalOccRecd_;
MonitorElement *ecalOccRecd_isFineGrainVB_;
MonitorElement *ecalOccRecd_isECALTowerMasked_;
MonitorElement *ecalOccRecd_isECALLinkMasked_;
MonitorElement *ecalOccRecd_isECALLinkInError_;

MonitorElement *ecalOccSentAndRecd_;
MonitorElement *ecalOccSentNotRecd_;
MonitorElement *ecalOccRecdNotSent_;

MonitorElement *ecalOccMaskedSentAndRecd_;
MonitorElement *ecalOccMaskedSentNotRecd_;
MonitorElement *ecalOccMaskedRecdNotSent_;

MonitorElement *ecalTPRawEtRecd_;
MonitorElement *ecalTPRawEtSent_;
MonitorElement *ecalTPRawEtRecdNotSent_;
MonitorElement *ecalTPRawEtSentNotRecd_;
MonitorElement *ecalTPRawEtSentAndRecd_;

MonitorElement *hcalOccSent_;
MonitorElement *hcalOccSent_hasFeatureBits_;

MonitorElement *hcalOccRecd_;
MonitorElement *hcalOccRecd_hasFeatureBits_;
MonitorElement *hcalOccRecd_isHCALTowerMasked_;
MonitorElement *hcalOccRecd_isHCALLinkMasked_;
MonitorElement *hcalOccRecd_isHCALLinkInError_;

MonitorElement *hcalOccSentAndRecd_;
MonitorElement *hcalOccSentNotRecd_;
MonitorElement *hcalOccRecdNotSent_;

MonitorElement *hcalOccMaskedSentAndRecd_;
MonitorElement *hcalOccMaskedSentNotRecd_;
MonitorElement *hcalOccMaskedRecdNotSent_;

MonitorElement *hcalTPRawEtRecd_;
MonitorElement *hcalTPRawEtSent_;
MonitorElement *hcalTPRawEtRecdNotSent_;
MonitorElement *hcalTPRawEtSentNotRecd_;
MonitorElement *hcalTPRawEtSentAndRecd_;

MonitorElement *last20Mismatches_;
std::array<std::pair<std::string, int>, 20> last20MismatchArray_;
size_t lastMismatchIndex_{0};
};

#endif