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

BD hadron track monitoring in standard validation sequence #18011

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
2 changes: 2 additions & 0 deletions Validation/Configuration/python/globalValidation_cff.py
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@
from Validation.RecoTau.DQMMCValidation_cfi import *
from Validation.L1T.L1Validator_cfi import *
from DQMOffline.RecoB.dqmAnalyzer_cff import *
from Validation.RecoB.BDHadronTrackValidation_cff import *

# filter/producer "pre-" sequence for globalValidation
globalPrevalidationTracking = cms.Sequence(
Expand Down Expand Up @@ -91,6 +92,7 @@
+ pfTauRunDQMValidation
+ bTagPlotsMCbcl
+ L1Validator
+ bdHadronTrackValidationSeq
)


Expand Down
2 changes: 2 additions & 0 deletions Validation/Configuration/python/postValidation_cff.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
from Validation.RecoEgamma.photonPostProcessor_cff import *
from Validation.RecoEgamma.electronPostValidationSequence_cff import *
from Validation.RecoEgamma.electronPostValidationSequenceMiniAOD_cff import *
from Validation.RecoB.BDHadronTrackValidation_cff import *
from Validation.RecoParticleFlow.PFValidationClient_cff import *
from Validation.RPCRecHits.postValidation_cfi import *
from Validation.RecoTau.DQMMCValidation_cfi import *
Expand All @@ -37,6 +38,7 @@
+ runTauEff + makeBetterPlots
+ bTagCollectorSequenceMCbcl
+ METPostProcessor
+ bdHadronTrackPostProcessor
)
from Configuration.Eras.Modifier_phase1Pixel_cff import phase1Pixel

Expand Down
8 changes: 6 additions & 2 deletions Validation/RecoB/plugins/BDHadronTrackMonitoringAnalyzer.cc
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,7 @@ BDHadronTrackMonitoringAnalyzer::BDHadronTrackMonitoringAnalyzer(const edm::Para

void BDHadronTrackMonitoringAnalyzer::bookHistograms(DQMStore::IBooker & ibook, edm::Run const & run, edm::EventSetup const & es)
{
ibook.setCurrentFolder("BDHadronTracks/JetContent");
//
// Book all histograms.
//
Expand All @@ -59,6 +60,7 @@ void BDHadronTrackMonitoringAnalyzer::bookHistograms(DQMStore::IBooker & ibook,

// Loop over different Track History Categories
for (unsigned int i = 0; i < TrkHistCat.size(); i++){
ibook.setCurrentFolder("BDHadronTracks/JetContent");
// b jets
nTrk_bjet[i] = ibook.book1D("nTrk_bjet_"+TrkHistCat[i],"Number of selected tracks in b jets ("+TrkHistCat[i]+");number of selected tracks ("+TrkHistCat[i]+");jets",16,-0.5,15.5);

Expand All @@ -68,7 +70,7 @@ void BDHadronTrackMonitoringAnalyzer::bookHistograms(DQMStore::IBooker & ibook,
// dusg jets
nTrk_dusgjet[i] = ibook.book1D("nTrk_dusgjet_"+TrkHistCat[i],"Number of selected tracks in dusg jets ("+TrkHistCat[i]+");number of selected tracks ("+TrkHistCat[i]+");jets",16,-0.5,15.5);


ibook.setCurrentFolder("BDHadronTracks/TrackInfo");
// track properties for all flavours combined
TrkPt_alljets[i] = ibook.book1D("TrkPt_"+TrkHistCat[i],"Track pT ("+TrkHistCat[i]+");track p_{T} ("+TrkHistCat[i]+");tracks",30,0,100);
TrkEta_alljets[i] = ibook.book1D("TrkEta_"+TrkHistCat[i],"Track #eta ("+TrkHistCat[i]+");track #eta ("+TrkHistCat[i]+");tracks",30,-2.5,2.5);
Expand All @@ -78,6 +80,8 @@ void BDHadronTrackMonitoringAnalyzer::bookHistograms(DQMStore::IBooker & ibook,
TrkHitAll_alljets[i] = ibook.book1D("TrkHitAll_"+TrkHistCat[i],"Number of tracker hits ("+TrkHistCat[i]+");track number of all hits ("+TrkHistCat[i]+");tracks",31,-0.5,30.5);
TrkHitStrip_alljets[i] = ibook.book1D("TrkHitStrip_"+TrkHistCat[i],"Number of strip hits ("+TrkHistCat[i]+");track number of strip hits ("+TrkHistCat[i]+");tracks",31,-0.5,30.5);
TrkHitPixel_alljets[i] = ibook.book1D("TrkHitPixel_"+TrkHistCat[i],"Number of pixel hits ("+TrkHistCat[i]+");track number of pixel hits ("+TrkHistCat[i]+");tracks",9,-0.5,8.5);

ibook.setCurrentFolder("BDHadronTracks/TrackTruthInfo");
if (i < 5){ // Fakes (i == 5) have no truth by definition!
TrkTruthPt_alljets[i] = ibook.book1D("TrkTruthPt_"+TrkHistCat[i],"Track pT ("+TrkHistCat[i]+" Truth);track p_{T} ("+TrkHistCat[i]+" Truth);tracks",30,0,100);
TrkTruthEta_alljets[i] = ibook.book1D("TrkTruthEta_"+TrkHistCat[i],"Track #eta ("+TrkHistCat[i]+" Truth);track #eta ("+TrkHistCat[i]+" Truth);tracks",30,-2.5,2.5);
Expand Down Expand Up @@ -150,7 +154,7 @@ void BDHadronTrackMonitoringAnalyzer::analyze(const edm::Event& iEvent, const ed

unsigned int flav = abs(jet->hadronFlavour());


//std::cout << "patJet collection has pfImpactParameterTagInfo?: " << jet->hasTagInfo("pfImpactParameter") << std::endl;
const CandIPTagInfo *trackIpTagInfo = jet->tagInfoCandIP(ipTagInfos_.c_str());
const std::vector<edm::Ptr<reco::Candidate> > & selectedTracks( trackIpTagInfo->selectedTracks() );

Expand Down
17 changes: 9 additions & 8 deletions Validation/RecoB/plugins/BDHadronTrackMonitoringHarvester.cc
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ void BDHadronTrackMonitoringHarvester::dqmEndJob(DQMStore::IBooker & ibook, DQMS
//
// ***********************
RecoBTag::setTDRStyle();
ibook.setCurrentFolder("BDHadronTracks/JetContent");

// b jets
// absolute average number of tracks
Expand Down Expand Up @@ -108,27 +109,27 @@ void BDHadronTrackMonitoringHarvester::dqmEndJob(DQMStore::IBooker & ibook, DQMS
// get all the old histograms
//
// ***********************

// b jets
MonitorElement *nTrk_bjet[6];
for(unsigned int i = 0; i < BDHadronTrackMonitoringAnalyzer::TrkHistCat.size(); i++) {
nTrk_bjet[i] = iget.get("nTrk_bjet_"+BDHadronTrackMonitoringAnalyzer::TrkHistCat[i]);
nTrk_bjet[i] = iget.get("BDHadronTracks/JetContent/nTrk_bjet_"+BDHadronTrackMonitoringAnalyzer::TrkHistCat[i]);
}
MonitorElement *nTrkAll_bjet = iget.get("nTrkAll_bjet");

MonitorElement *nTrkAll_bjet = iget.get("BDHadronTracks/JetContent/nTrkAll_bjet");
// c jets
MonitorElement *nTrk_cjet[6];
for(unsigned int i = 0; i < BDHadronTrackMonitoringAnalyzer::TrkHistCat.size(); i++) {
nTrk_cjet[i] = iget.get("nTrk_cjet_"+BDHadronTrackMonitoringAnalyzer::TrkHistCat[i]);
nTrk_cjet[i] = iget.get("BDHadronTracks/JetContent/nTrk_cjet_"+BDHadronTrackMonitoringAnalyzer::TrkHistCat[i]);
}
MonitorElement *nTrkAll_cjet = iget.get("nTrkAll_cjet");
MonitorElement *nTrkAll_cjet = iget.get("BDHadronTracks/JetContent/nTrkAll_cjet");

// dusg jets
MonitorElement *nTrk_dusgjet[6];
for(unsigned int i = 0; i < BDHadronTrackMonitoringAnalyzer::TrkHistCat.size(); i++) {
nTrk_dusgjet[i] = iget.get("nTrk_dusgjet_"+BDHadronTrackMonitoringAnalyzer::TrkHistCat[i]);
nTrk_dusgjet[i] = iget.get("BDHadronTracks/JetContent/nTrk_dusgjet_"+BDHadronTrackMonitoringAnalyzer::TrkHistCat[i]);
}
MonitorElement *nTrkAll_dusgjet = iget.get("nTrkAll_dusgjet");
MonitorElement *nTrkAll_dusgjet = iget.get("BDHadronTracks/JetContent/nTrkAll_dusgjet");



Expand Down
27 changes: 27 additions & 0 deletions Validation/RecoB/python/BDHadronTrackValidation_cff.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
import FWCore.ParameterSet.Config as cms

# Need to add pfImpactParameterTagInfos to the pat jets --> make personal patJet collection
# and rerun PAT (because sometimes validation is ran without PAT sequence enables)
from PhysicsTools.PatAlgos.producersLayer1.jetProducer_cff import *
patJetsBDHadron = patJets.clone(
tagInfoSources = cms.VInputTag(cms.InputTag('pfImpactParameterTagInfos')),
addTagInfos = cms.bool(True)
)

# my analyzer
from Validation.RecoB.BDHadronTrackMonitoring_cfi import *
from SimTracker.TrackerHitAssociation.tpClusterProducer_cfi import *
BDHadronTrackMonitoringAnalyze.PatJetSource = cms.InputTag('patJetsBDHadron')

bdHadronTrackValidationSeq = cms.Sequence(patJetCorrections
* patJetCharge
* patJetPartonMatch
* patJetGenJetMatch
* patJetFlavourIdLegacy
* patJetFlavourId
* patJetsBDHadron
* tpClusterProducer
* BDHadronTrackMonitoringAnalyze
)

bdHadronTrackPostProcessor = cms.Sequence(BDHadronTrackMonitoringHarvest)