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

HLT Btag validation code update #8973

Merged
merged 7 commits into from May 8, 2015
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
16 changes: 14 additions & 2 deletions HLTriggerOffline/Btag/python/HltBtagPostValidation_cff.py
Expand Up @@ -2,8 +2,20 @@

#define HltBTagPostValidation for the b-tag DQM validation (efficiency and mistagrate plot)
HltBTagPostValidation = cms.EDAnalyzer("HLTBTagHarvestingAnalyzer",
HLTPathNames = cms.vstring('HLT_PFMET120_NoiseCleaned_BTagCSV07_'),
histoName = cms.vstring('hltCombinedSecondaryVertexBJetTagsCalo'),
HLTPathNames = cms.vstring(
'HLT_PFMET120_NoiseCleaned_BTagCSV07_v',
'HLT_CaloMHTNoPU90_PFMET90_PFMHT90_IDLoose_',
'HLT_QuadPFJet_VBF',
'HLT_Ele32_eta2p1_',
'HLT_IsoMu24_eta2p1_'
),
histoName = cms.vstring(
'hltCombinedSecondaryVertexBJetTagsCalo',
'hltCombinedSecondaryVertexBJetTagsCalo',
'hltCombinedSecondaryVertexBJetTagsCalo',
'hltCombinedSecondaryVertexBJetTagsPF',
'hltCombinedSecondaryVertexBJetTagsPF',
),
minTag = cms.double(0.6),
# MC stuff
mcFlavours = cms.PSet(
Expand Down
16 changes: 12 additions & 4 deletions HLTriggerOffline/Btag/python/HltBtagValidationFastSim_cff.py
Expand Up @@ -6,14 +6,22 @@
SimVertexCollection = cms.InputTag("famosSimHits"),
TriggerResults = cms.InputTag('TriggerResults','',"HLT"),
HLTPathNames =cms.vstring(
'HLT_PFMET120_NoiseCleaned_BTagCSV07_',
# 'HLT_CaloMHTNoPU90_PFMET90_PFMHT90_IDLoose_v',
'HLT_PFMET120_NoiseCleaned_BTagCSV07_'
'HLT_PFMET120_NoiseCleaned_BTagCSV07_v',
# 'HLT_PFMET120_NoiseCleaned_BTagCSV07_v',
'HLT_PFMET120_NoiseCleaned_BTagCSV07_v',
'HLT_CaloMHTNoPU90_PFMET90_PFMHT90_IDLoose_',
# 'HLT_CaloMHTNoPU90_PFMET90_PFMHT90_IDLoose_',
'HLT_CaloMHTNoPU90_PFMET90_PFMHT90_IDLoose_',
'HLT_QuadPFJet_VBF',
# 'HLT_QuadPFJet_VBF',
'HLT_QuadPFJet_VBF',
'HLT_Ele32_eta2p1_',
'HLT_IsoMu24_eta2p1_'
),
Vertex = cms.VInputTag(
cms.InputTag("hltVerticesL3"),
# cms.InputTag("hltFastPrimaryVertex"),
cms.InputTag("hltFastPVPixelVertices"),
cms.InputTag("hltVerticesPF"),
)
)

Expand Down
33 changes: 28 additions & 5 deletions HLTriggerOffline/Btag/python/HltBtagValidation_cff.py
Expand Up @@ -4,35 +4,58 @@
#denominator trigger
hltBtagTriggerSelection = cms.EDFilter( "TriggerResultsFilter",
triggerConditions = cms.vstring(
"HLT_PFMET120_NoiseCleaned_BTagCSV07_*"),
"HLT_PFMET120_NoiseCleaned_BTagCSV07_* OR HLT_CaloMHTNoPU90_PFMET90_PFMHT90_IDLoose_* OR HLT_QuadPFJet_VBF* OR HLT_Ele32_eta2p1_* OR HLT_IsoMu24_eta2p1_*"),
hltResults = cms.InputTag( "TriggerResults", "", "HLT" ),
# l1tResults = cms.InputTag( "simGtDigis" ),
l1tResults = cms.InputTag( "gtDigis" ),
throw = cms.bool( False )
)

#correct the jet used for the matching
hltBtagJetsbyRef.jets = cms.InputTag("hltSelector4CentralJetsL1FastJet")
hltBtagJetsbyRef.jets = cms.InputTag("ak4GenJetsNoNu")

#define HltVertexValidationVertices for the vertex DQM validation
HltVertexValidationVertices= cms.EDAnalyzer("HLTVertexPerformanceAnalyzer",
SimVertexCollection = cms.InputTag("g4SimHits"),
TriggerResults = cms.InputTag('TriggerResults','',"HLT"),
HLTPathNames =cms.vstring(
'HLT_PFMET120_NoiseCleaned_BTagCSV07_',
'HLT_PFMET120_NoiseCleaned_BTagCSV07_v',
'HLT_PFMET120_NoiseCleaned_BTagCSV07_v',
'HLT_PFMET120_NoiseCleaned_BTagCSV07_v',
'HLT_CaloMHTNoPU90_PFMET90_PFMHT90_IDLoose_',
'HLT_CaloMHTNoPU90_PFMET90_PFMHT90_IDLoose_',
'HLT_CaloMHTNoPU90_PFMET90_PFMHT90_IDLoose_',
'HLT_QuadPFJet_VBF',
'HLT_QuadPFJet_VBF',
'HLT_QuadPFJet_VBF',
'HLT_Ele32_eta2p1_',
'HLT_IsoMu24_eta2p1_'
),
Vertex = cms.VInputTag(
cms.InputTag("hltVerticesL3"),
cms.InputTag("hltFastPrimaryVertex"),
cms.InputTag("hltFastPVPixelVertices"),
cms.InputTag("hltVerticesPF"),
)
)

#define bTagValidation for the b-tag DQM validation (distribution plot)
hltbTagValidation = cms.EDAnalyzer("HLTBTagPerformanceAnalyzer",
TriggerResults = cms.InputTag('TriggerResults','','HLT'),
HLTPathNames = cms.vstring('HLT_PFMET120_NoiseCleaned_BTagCSV07_'),
JetTag = cms.VInputTag(cms.InputTag("hltCombinedSecondaryVertexBJetTagsCalo")),
HLTPathNames =cms.vstring(
'HLT_PFMET120_NoiseCleaned_BTagCSV07_v',
'HLT_CaloMHTNoPU90_PFMET90_PFMHT90_IDLoose_',
'HLT_QuadPFJet_VBF',
'HLT_Ele32_eta2p1_',
'HLT_IsoMu24_eta2p1_'
),
JetTag = cms.VInputTag(
cms.InputTag("hltCombinedSecondaryVertexBJetTagsCalo"),
cms.InputTag("hltCombinedSecondaryVertexBJetTagsCalo"),
cms.InputTag("hltCombinedSecondaryVertexBJetTagsCalo"),
cms.InputTag("hltCombinedSecondaryVertexBJetTagsPF"),
cms.InputTag("hltCombinedSecondaryVertexBJetTagsPF"),
),
MinJetPT = cms.double(20),
mcFlavours = cms.PSet(
light = cms.vuint32(1, 2, 3, 21), # udsg
Expand Down
17 changes: 0 additions & 17 deletions HLTriggerOffline/Btag/python/hltbtagharvestinganalyzer_cfi.py

This file was deleted.

18 changes: 0 additions & 18 deletions HLTriggerOffline/Btag/python/hltbtagperformanceanalyzer_cfi.py

This file was deleted.

10 changes: 0 additions & 10 deletions HLTriggerOffline/Btag/python/hltvertexperformanceanalyzer_cfi.py

This file was deleted.

9 changes: 6 additions & 3 deletions HLTriggerOffline/Btag/src/HLTBTagHarvestingAnalyzer.cc
Expand Up @@ -25,8 +25,8 @@ HLTBTagHarvestingAnalyzer::dqmEndJob(DQMStore::IBooker & ibooker, DQMStore::IGet
//for each hltPath and for each flavour, do the "b-tag efficiency vs jet pt" and "b-tag efficiency vs mistag rate" plots
for (unsigned int ind=0; ind<hltPathNames_.size();ind++)
{
dqmFolder_hist = Form("HLT/BTag/Discrimanator/%s",hltPathNames_[ind].c_str());
std::string effDir = Form("HLT/BTag/Discrimanator/%s/efficiency",hltPathNames_[ind].c_str());
dqmFolder_hist = Form("HLT/BTag/Discriminator/%s",hltPathNames_[ind].c_str());
std::string effDir = Form("HLT/BTag/Discriminator/%s/efficiency",hltPathNames_[ind].c_str());
ibooker.setCurrentFolder(effDir);
TH1 *den =NULL;
TH1 *num =NULL;
Expand Down Expand Up @@ -190,7 +190,10 @@ TH1F HLTBTagHarvestingAnalyzer::calculateEfficiency1D(DQMStore::IBooker& ibooke
eff.SetBinContent( i, e );
eff.SetBinError( i, err );
}
ibooker.book1D(effName,&eff);

MonitorElement *me;
me = ibooker.book1D(effName,&eff);
me->setEfficiencyFlag();

return eff;
}
Expand Down
4 changes: 2 additions & 2 deletions HLTriggerOffline/Btag/src/HLTBTagPerformanceAnalyzer.cc
Expand Up @@ -137,7 +137,7 @@ void HLTBTagPerformanceAnalyzer::analyze(const edm::Event& iEvent, const edm::Ev

for (auto & BtagJT: JetTag) {
//fill 1D btag plot for 'all'
H1_.at(ind)[JetTagCollection_Label[ind]] -> Fill(BtagJT.second);
H1_.at(ind)[JetTagCollection_Label[ind]] -> Fill(std::fmax(0.0,BtagJT.second));
if (MCOK) {
int m = closestJet(BtagJT.first, *h_mcPartons, m_mcRadius);
unsigned int flavour = (m != -1) ? abs((*h_mcPartons)[m].second.getFlavour()) : 0;
Expand Down Expand Up @@ -173,7 +173,7 @@ void HLTBTagPerformanceAnalyzer::bookHistograms(DQMStore::IBooker & ibooker, edm
float btagL = 0.;
float btagU = 1.;
int btagBins = 100;
dqmFolder = Form("HLT/BTag/Discrimanator/%s",hltPathNames_[ind].c_str());
dqmFolder = Form("HLT/BTag/Discriminator/%s",hltPathNames_[ind].c_str());
H1_.push_back(std::map<std::string, MonitorElement *>());
H2_.push_back(std::map<std::string, MonitorElement *>());
ibooker.setCurrentFolder(dqmFolder);
Expand Down
23 changes: 12 additions & 11 deletions HLTriggerOffline/Btag/src/HLTVertexPerformanceAnalyzer.cc
Expand Up @@ -92,19 +92,20 @@ void HLTVertexPerformanceAnalyzer::analyze(const edm::Event& iEvent, const edm::
if (VertexCollection_Label.at(coll) != "" && VertexCollection_Label.at(coll) != "NULL" )
{
iEvent.getByToken(VertexCollection_.at(coll), VertexHandler);
if (VertexHandler.isValid()) VertexOK=true;
if (VertexHandler.isValid()>0) VertexOK=true;
}

//calculate the variable (RecoVertex - SimVertex)
float value=VertexHandler->begin()->z()-simPV;

//if value is over/under flow, assign the extreme value
float maxValue=H1_.at(ind)["Vertex_"+VertexCollection_Label.at(coll)]->getTH1F()->GetXaxis()->GetXmax();
if(value>maxValue) value=maxValue-0.0001;
if(value<-maxValue) value=-maxValue+0.0001;

//fill the histo
if (VertexOK) H1_.at(ind)["Vertex_"+VertexCollection_Label.at(coll)] -> Fill(value);
if (VertexOK){
//calculate the variable (RecoVertex - SimVertex)
float value=VertexHandler->begin()->z()-simPV;

//if value is over/under flow, assign the extreme value
float maxValue=H1_.at(ind)["Vertex_"+VertexCollection_Label.at(coll)]->getTH1F()->GetXaxis()->GetXmax();
if(value>maxValue) value=maxValue-0.0001;
if(value<-maxValue) value=-maxValue+0.0001;
//fill the histo
H1_.at(ind)["Vertex_"+VertexCollection_Label.at(coll)] -> Fill(value);
}
}// for on VertexCollection_
}//for on hltPathNames_
}
Expand Down
45 changes: 28 additions & 17 deletions HLTriggerOffline/Btag/test/config.ini
Expand Up @@ -2,39 +2,50 @@
maxevents=10000
;denominatorTriggerPath=HLT_PFMET170*
processname=HLT
hltjets=hltSelector4CentralJetsL1FastJet
hltjets=ak4GenJetsNoNu
cmsswver= CMSSW_X_Y_Z
files=
; file:/afs/cern.ch/user/s/sdonato/AFSwork/public/outputFULL_New.root
; file:/afs/cern.ch/user/s/sdonato/AFSwork/public/outputFULL_Old.root
; file:/afs/cern.ch/user/s/sdonato/AFSwork/public/TTbar-GEN-SIM-RECO-new.root
root://xrootd.ba.infn.it///store/relval/CMSSW_7_2_0_pre8/RelValTTbar_13/GEN-SIM-DIGI-RAW-HLTDEBUG/PRE_LS172_V15-v1/00000/8A425442-2A50-E411-A51B-0025905A60B2.root
root://xrootd.ba.infn.it///store/relval/CMSSW_7_5_0_pre2/RelValTTbar_13/GEN-SIM-DIGI-RAW-HLTDEBUG/MCRUN2_74_V7-v1/00000/3472D399-B3E3-E411-8CF5-003048FFD76E.root
; file:RelVal750pre3.root

;Paths names and btag variables that you want to monitor
[btag]
HLT_PFMET170_:
HLT_PFMET120_NoiseCleaned_BTagCSV07_v:
hltCombinedSecondaryVertexBJetTagsCalo

HLT_PFMET120_NoiseCleaned_BTagCSV07_v:
HLT_CaloMHTNoPU90_PFMET90_PFMHT90_IDLoose_:
hltCombinedSecondaryVertexBJetTagsCalo

HLT_QuadPFJet_VBF:
hltCombinedSecondaryVertexBJetTagsCalo

;HLT_PFMET120_NoiseCleaned_BTagCSV07_v1:
; hltCombinedSecondaryVertexBJetTagsCalo
HLT_Ele32_eta2p1_:
hltCombinedSecondaryVertexBJetTagsPF

HLT_IsoMu24_eta2p1_:
hltCombinedSecondaryVertexBJetTagsPF

;Paths names and vertex variables that you want to monitor
[vertex]

HLT_PFMET170_:
HLT_PFMET120_NoiseCleaned_BTagCSV07_v:
hltFastPrimaryVertex
hltFastPVPixelVertices
hltVerticesL3
HLT_PFMET120_NoiseCleaned_BTagCSV07_v:

HLT_CaloMHTNoPU90_PFMET90_PFMHT90_IDLoose_:
hltFastPrimaryVertex
hltFastPVPixelVertices
hltVerticesL3
;
;HLT_PFMET120_NoiseCleaned_BTagCSV07_v1:
; hltFastPrimaryVertex
; hltFastPVPixelVertices
; hltVerticesL3

HLT_QuadPFJet_VBF:
hltFastPrimaryVertex
hltFastPVPixelVertices
hltVerticesL3

HLT_Ele32_eta2p1_:
hltVerticesPF

HLT_IsoMu24_eta2p1_:
hltVerticesPF

3 changes: 2 additions & 1 deletion HLTriggerOffline/Btag/test/test.py
Expand Up @@ -62,6 +62,7 @@

#define VertexValidationVertices for the vertex DQM validation
process.VertexValidationVertices= cms.EDAnalyzer("HLTVertexPerformanceAnalyzer",
SimVertexCollection = cms.InputTag("g4SimHits"),
TriggerResults = cms.InputTag('TriggerResults','',fileini.processname),
HLTPathNames = cms.vstring(fileini.vertex_pathes),
Vertex = fileini.vertex_modules,
Expand Down Expand Up @@ -99,7 +100,7 @@
)
#read input file
process.source = cms.Source("PoolSource",
fileNames = cms.untracked.vstring("root://xrootd.ba.infn.it///store/relval/CMSSW_7_2_0_pre8/RelValTTbar_13/GEN-SIM-DIGI-RAW-HLTDEBUG/PRE_LS172_V15-v1/00000/8A425442-2A50-E411-A51B-0025905A60B2.root")
fileNames = cms.untracked.vstring(fileini.files)
)

#put all in a path
Expand Down
5 changes: 3 additions & 2 deletions HLTriggerOffline/Btag/test/testSequences.py
Expand Up @@ -8,11 +8,12 @@
process.load("HLTriggerOffline.Btag.HltBtagValidationFastSim_cff")
process.load("HLTriggerOffline.Btag.HltBtagPostValidation_cff")

process.DQM_BTag = cms.Path( process.hltbtagValidationSequence + process.HltBTagPostVal)
process.DQM_BTag = cms.Path( process.hltbtagValidationSequence + process.HltBTagPostVal + process.dqmSaver)


process.source = cms.Source("PoolSource",
fileNames = cms.untracked.vstring("root://xrootd.ba.infn.it///store/relval/CMSSW_7_2_0_pre8/RelValTTbar_13/GEN-SIM-DIGI-RAW-HLTDEBUG/PRE_LS172_V15-v1/00000/8A425442-2A50-E411-A51B-0025905A60B2.root")
fileNames = cms.untracked.vstring("root://xrootd.ba.infn.it///store/relval/CMSSW_7_5_0_pre2/RelValTTbar_13/GEN-SIM-DIGI-RAW-HLTDEBUG/MCRUN2_74_V7-v1/00000/3472D399-B3E3-E411-8CF5-003048FFD76E.root")
# fileNames = cms.untracked.vstring("file:RelVal750pre3.root")
)


Expand Down