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

Topic photonvbf trigger #20277

Merged
merged 7 commits into from Feb 11, 2018
Merged
Show file tree
Hide file tree
Changes from 6 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
17 changes: 16 additions & 1 deletion DQMOffline/Trigger/plugins/ObjMonitor.cc
Expand Up @@ -21,6 +21,7 @@ ObjMonitor::ObjMonitor( const edm::ParameterSet& iConfig ) :
, jetToken_ ( mayConsume<reco::PFJetCollection> (iConfig.getParameter<edm::InputTag>("jets") ) )
, eleToken_ ( mayConsume<reco::GsfElectronCollection>(iConfig.getParameter<edm::InputTag>("electrons") ) )
, muoToken_ ( mayConsume<reco::MuonCollection> (iConfig.getParameter<edm::InputTag>("muons") ) )
, phoToken_ ( mayConsume<reco::PhotonCollection> (iConfig.getParameter<edm::InputTag>("photons") ) )
, do_met_ (iConfig.getParameter<bool>("doMETHistos") )
, do_jet_ (iConfig.getParameter<bool>("doJetHistos") )
, do_ht_ (iConfig.getParameter<bool>("doHTHistos") )
Expand All @@ -32,9 +33,11 @@ ObjMonitor::ObjMonitor( const edm::ParameterSet& iConfig ) :
, htjetSelection_ ( iConfig.getParameter<std::string>("htjetSelection"))
, eleSelection_ ( iConfig.getParameter<std::string>("eleSelection") )
, muoSelection_ ( iConfig.getParameter<std::string>("muoSelection") )
, phoSelection_ ( iConfig.getParameter<std::string>("phoSelection") )
, njets_ ( iConfig.getParameter<int>("njets" ) )
, nelectrons_ ( iConfig.getParameter<int>("nelectrons" ) )
, nmuons_ ( iConfig.getParameter<int>("nmuons" ) )
, nphotons_ ( iConfig.getParameter<int>("nphotons") )
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

hi @yiiyama - please make this an unsigned int (the others should be too, but they are already there...)- this will save several int() below..

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi @davidlange6 yes I wanted to make as little change as possible to the original code, but personally I actually feel sick when variables that are semantically unsigned are declared / cast as int..
Taking the opportunity, I changed all n*_ member variables to unsigned. But there would be too much change if I updated the parameter type (to getParameter), so I left that part as int.

{
if (do_met_){
metDQM_.initialise(iConfig);
Expand All @@ -55,7 +58,7 @@ void ObjMonitor::bookHistograms(DQMStore::IBooker & ibooker,
{

std::string currentFolder = folderName_ ;
ibooker.setCurrentFolder(currentFolder.c_str());
ibooker.setCurrentFolder(currentFolder);

if (do_met_) metDQM_.bookHistograms(ibooker);
if (do_jet_) jetDQM_.bookHistograms(ibooker);
Expand Down Expand Up @@ -122,6 +125,15 @@ void ObjMonitor::analyze(edm::Event const& iEvent, edm::EventSetup const& iSetup
}
if ( int(muons.size()) < nmuons_ ) return;

edm::Handle<reco::PhotonCollection> phoHandle;
iEvent.getByToken( phoToken_, phoHandle );
if ( int(phoHandle->size()) < nphotons_ ) return;
std::vector<reco::Photon> photons;
for ( auto const & m : *phoHandle ) {
if ( phoSelection_( m ) ) photons.push_back(m);
}
if ( int(photons.size()) < nphotons_ ) return;


bool passNumCond = num_genTriggerEventFlag_->off() || num_genTriggerEventFlag_->accept( iEvent, iSetup);
int ls = iEvent.id().luminosityBlock();
Expand Down Expand Up @@ -181,15 +193,18 @@ void ObjMonitor::fillDescriptions(edm::ConfigurationDescriptions & descriptions)
desc.add<edm::InputTag>( "jets", edm::InputTag("ak4PFJetsCHS") );
desc.add<edm::InputTag>( "electrons",edm::InputTag("gedGsfElectrons") );
desc.add<edm::InputTag>( "muons", edm::InputTag("muons") );
desc.add<edm::InputTag>( "photons", edm::InputTag("gedPhotons") );
desc.add<std::string>("metSelection", "pt > 0");
desc.add<std::string>("jetSelection", "pt > 0");
desc.add<std::string>("jetId", "");
desc.add<std::string>("htjetSelection", "pt > 30");
desc.add<std::string>("eleSelection", "pt > 0");
desc.add<std::string>("muoSelection", "pt > 0");
desc.add<std::string>("phoSelection", "pt > 0");
desc.add<int>("njets", 0);
desc.add<int>("nelectrons", 0);
desc.add<int>("nmuons", 0);
desc.add<int>("nphotons", 0);

edm::ParameterSetDescription genericTriggerEventPSet;
genericTriggerEventPSet.add<bool>("andOr");
Expand Down
3 changes: 3 additions & 0 deletions DQMOffline/Trigger/plugins/ObjMonitor.h
Expand Up @@ -87,6 +87,7 @@ class ObjMonitor : public DQMEDAnalyzer
edm::EDGetTokenT<reco::PFJetCollection> jetToken_;
edm::EDGetTokenT<reco::GsfElectronCollection> eleToken_;
edm::EDGetTokenT<reco::MuonCollection> muoToken_;
edm::EDGetTokenT<reco::PhotonCollection> phoToken_;

//objects to plot
//add your own with corresponding switch
Expand All @@ -107,9 +108,11 @@ class ObjMonitor : public DQMEDAnalyzer
StringCutObjectSelector<reco::PFJet,true > htjetSelection_;
StringCutObjectSelector<reco::GsfElectron,true> eleSelection_;
StringCutObjectSelector<reco::Muon,true> muoSelection_;
StringCutObjectSelector<reco::Photon,true> phoSelection_;
int njets_;
int nelectrons_;
int nmuons_;
int nphotons_;

};

Expand Down
12 changes: 12 additions & 0 deletions DQMOffline/Trigger/python/ExoticaMonitoring_Client_cff.py
Expand Up @@ -22,6 +22,17 @@
),
)

photonVBF_jetMETEfficiency = DQMEDHarvester("DQMGenericClient",
subDirs = cms.untracked.vstring("HLT/Photon/Photon50_R9Id90_HE10_IsoM_EBOnly_PFJetsMJJ300DEta3_PFMET50", "HLT/Photon/Photon75_R9Id90_HE10_IsoM_EBOnly_PFJetsMJJ300DEta3"),
verbose = cms.untracked.uint32(0), # Set to 2 for all messages
resolution = cms.vstring(),
efficiency = cms.vstring(
"effic_mjj 'Mjj turnON; Mjj [GeV]; efficiency' mjj_numerator mjj_denominator",
"effic_detajj 'DEtajj turnON; DEtajj; efficiency' detajj_numerator detajj_denominator",
"effic_met 'MET turnON; MET [GeV]; efficiency' met_numerator met_denominator"
)
)

muonEfficiency = DQMEDHarvester("DQMGenericClient",
subDirs = cms.untracked.vstring("HLT/Muon/*"),
verbose = cms.untracked.uint32(0), # Set to 2 for all messages
Expand Down Expand Up @@ -191,6 +202,7 @@
exoticaClient = cms.Sequence(
NoBPTXEfficiency
+ photonEfficiency
+ photonVBF_jetMETEfficiency
+ DisplacedJet_htEfficiency
+ (DisplacedJet_jetEfficiency*DisplacedJet_jetRatioHemHep17)
+ htClient
Expand Down
44 changes: 43 additions & 1 deletion DQMOffline/Trigger/python/PhotonMonitor_cff.py
Expand Up @@ -53,6 +53,47 @@
Photon60_DisplacedIdL_PFJet350MinPFJet15_monitoring.denGenericTriggerEventPSet.hltPaths = cms.vstring("HLT_Photon60_R9Id90_CaloIdL_IsoL_v*","HLT_PFHT350MinPFJet15_v*")
Photon60_DisplacedIdL_PFJet350MinPFJet15_monitoring.numGenericTriggerEventPSet.hltPaths = cms.vstring("HLT_Photon60_R9Id90_CaloIdL_IsoL_DisplacedIdL_PFHT350MinPFJet15_v*")

from DQMOffline.Trigger.ObjMonitor_cfi import hltobjmonitoring

Photon50_R9Id90_HE10_IsoM_EBOnly_PFJetsMJJ300DEta3_PFMET50_monitoring = hltobjmonitoring.clone(
FolderName = 'HLT/Photon/Photon50_R9Id90_HE10_IsoM_EBOnly_PFJetsMJJ300DEta3_PFMET50/',
denGenericTriggerEventPSet = hltobjmonitoring.numGenericTriggerEventPSet.clone(
hltPaths = ["HLT_Photon50_R9Id90_HE10_IsoM_v*"]
),
numGenericTriggerEventPSet = hltobjmonitoring.numGenericTriggerEventPSet.clone(
hltPaths = ["HLT_Photon50_R9Id90_HE10_IsoM_EBOnly_PFJetsMJJ300DEta3_PFMET50_v*"]
),
phoSelection = 'pt > 80 & abs(eta) < 1.44',
nphotons = 1,
jetSelection = "pt > 30 & abs(eta) < 5.0",
jetId = "tight",
njets = 2,
doHTHistos = False
)
Photon50_R9Id90_HE10_IsoM_EBOnly_PFJetsMJJ300DEta3_PFMET50_monitoring.histoPSet.mjjBinning = cms.vdouble([20. * x for x in range(30)])
Photon50_R9Id90_HE10_IsoM_EBOnly_PFJetsMJJ300DEta3_PFMET50_monitoring.histoPSet.metPSet = cms.PSet(
nbins = cms.uint32(20),
xmin = cms.double(-0.5),
xmax = cms.double(200.)
)

Photon75_R9Id90_HE10_IsoM_EBOnly_PFJetsMJJ300DEta3_monitoring = hltobjmonitoring.clone(
FolderName = 'HLT/Photon/Photon75_R9Id90_HE10_IsoM_EBOnly_PFJetsMJJ300DEta3/',
denGenericTriggerEventPSet = hltobjmonitoring.numGenericTriggerEventPSet.clone(
hltPaths = ["HLT_Photon75_R9Id90_HE10_IsoM_v*"]
),
numGenericTriggerEventPSet = hltobjmonitoring.numGenericTriggerEventPSet.clone(
hltPaths = ["HLT_Photon75_R9Id90_HE10_IsoM_EBOnly_PFJetsMJJ300DEta3_v*"]
),
phoSelection = 'pt > 80 & abs(eta) < 1.44',
nphotons = 1,
jetSelection = "pt > 30 & abs(eta) < 5.0",
jetId = "tight",
njets = 2,
doMETHistos = False,
doHTHistos = False
)
Photon75_R9Id90_HE10_IsoM_EBOnly_PFJetsMJJ300DEta3_monitoring.histoPSet.mjjBinning = cms.vdouble([20. * x for x in range(30)])

exoHLTPhotonmonitoring = cms.Sequence(
SinglePhoton300_monitoring
Expand All @@ -65,7 +106,8 @@
+ SinglePhoton90_R9Id90_HE10_IsoM_monitoring
+ SinglePhoton120_R9Id90_HE10_IsoM_monitoring
+ SinglePhoton165_R9Id90_HE10_IsoM_monitoring

+ Photon50_R9Id90_HE10_IsoM_EBOnly_PFJetsMJJ300DEta3_PFMET50_monitoring
+ Photon75_R9Id90_HE10_IsoM_EBOnly_PFJetsMJJ300DEta3_monitoring
)


Expand Down