From f36819ffb99d25c8a976e2d37329e452c7ad637f Mon Sep 17 00:00:00 2001 From: Aaron Levine Date: Wed, 16 Jul 2014 14:50:55 -0500 Subject: [PATCH 01/14] added l1gTauVetoNeighbor info --- plugins/RateTree.cc | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/plugins/RateTree.cc b/plugins/RateTree.cc index a0ef56b..29a0b40 100644 --- a/plugins/RateTree.cc +++ b/plugins/RateTree.cc @@ -77,7 +77,9 @@ class RateTree : public edm::EDAnalyzer { std::vector* puEM_; std::vector* puUICEM_; std::vector* effArea_; + std::vector* eneighbor_; std::vector* taus_; + std::vector* tausneighbor_; std::vector* mips_; }; @@ -89,7 +91,9 @@ RateTree::RateTree(const edm::ParameterSet& pset) { pts_ = new std::vector(); etas_ = new std::vector(); phis_ = new std::vector(); + eneighbor_ = new std::vector(); taus_ = new std::vector(); + tausneighbor_ = new std::vector(); mips_ = new std::vector(); @@ -162,7 +166,9 @@ RateTree::RateTree(const edm::ParameterSet& pset) { tree->Branch("puEM", "std::vector", &puEM_); tree->Branch("puUICEM", "std::vector", &puUICEM_); tree->Branch("effArea", "std::vector", &effArea_); + tree->Branch("associated4x4Et", "std::vector",&eneighbor_); tree->Branch("tauVeto", "std::vector", &taus_); + tree->Branch("associated4x4Tau","std::vector",&tausneighbor_); tree->Branch("mipBit", "std::vector", &mips_); // Now add nice aliases so the same draw commands work for rate/eff @@ -183,6 +189,7 @@ RateTree::RateTree(const edm::ParameterSet& pset) { tree->SetAlias("l1gEllIso", "ellIso"); tree->SetAlias("l1gTauVeto", "tauVeto"); + tree->SetAlias("l1gTauVetoNeighbor","associated4x4Tau"); tree->SetAlias("l1gMIP", "mipBit"); tree->SetAlias("l1gPU", "pu"); @@ -228,7 +235,9 @@ RateTree::~RateTree() { delete puUICEM_; delete effArea_; delete mips_; + delete eneighbor_; delete taus_; + delete tausneighbor_; } @@ -303,7 +312,9 @@ void RateTree::analyze(const edm::Event& evt, const edm::EventSetup& es) { puEM_->clear(); puUICEM_->clear(); effArea_->clear(); + eneighbor_->clear(); taus_->clear(); + tausneighbor_->clear(); mips_->clear(); // Setup meta info @@ -359,7 +370,10 @@ void RateTree::analyze(const edm::Event& evt, const edm::EventSetup& es) { puUICEM_->push_back(uct->getFloat("puLevelUICEM", -4)); effArea_->push_back(uct->getFloat("effArea", -4)); mips_->push_back(uct->getInt("mipBit", -4)); + eneighbor_->push_back(uct->getFloat("associated4x4Et",-4)); taus_->push_back(uct->getInt("tauVeto", -4)); + //std::cout << "tauVeto Rate Tree:" << uct->getFloat("tauVeto",-4) << std::endl; + tausneighbor_->push_back(uct->getInt("associated4x4Tau",-4)); // UCT doesn't have a type type_->push_back(-1); } else { @@ -409,7 +423,8 @@ void RateTree::analyze(const edm::Event& evt, const edm::EventSetup& es) { puUICEM_->push_back(-5); effArea_->push_back(-5); mips_->push_back(-5); - taus_->push_back(-5); + //taus_->push_back(-5); + //tausneighbor_->push_back(-5); type_->push_back(-5); tree->Fill(); From da18e0bd8da061b79541dffde660f8f898c6411b Mon Sep 17 00:00:00 2001 From: Aaron Levine Date: Wed, 16 Jul 2014 14:52:29 -0500 Subject: [PATCH 02/14] added l1gTauVetoNeighbor info --- test/makeEfficiencyTree_cfg.py | 45 +++++++++++++++++++++++++++------- 1 file changed, 36 insertions(+), 9 deletions(-) diff --git a/test/makeEfficiencyTree_cfg.py b/test/makeEfficiencyTree_cfg.py index bb677bd..90e22b9 100755 --- a/test/makeEfficiencyTree_cfg.py +++ b/test/makeEfficiencyTree_cfg.py @@ -24,19 +24,23 @@ options = VarParsing ('analysis') # Set useful defaults #options.inputFiles = '/store/user/tapas/ETauSkim/skim_12_1_erV.root' -options.outputFile = "uct_efficiency_tree.root" +#options.inputFiles = '/store/user/ldodd/GluGluToHToTauTau_M-125_13TeV-powheg-pythia6/GluGluToHToTauTau_M-125_13TeV-powheg-pythia6_Fall13dr-tsg_PU40bx25_POSTLS162_V2-v1/05a81b8d696d27a5c3c2ca036967addd/skim_20_1_63z.root' +#options.inputFiles = '/store/mc/Fall13dr/Neutrino_Pt-2to20_gun/GEN-SIM-RAW/tsg_PU40bx25_POSTLS162_V2-v1/20003/CC8426A6-B27C-E311-8767-002618943934.root' +#options.inputFiles = '/store/user/ldodd/TT_Tune4C_13TeV-pythia8-tauola/TT_Tune4C_13TeV-pythia8-tauola-tsg_PU40bx25_POSTLS162_V2-v1/fb508503c16d6e4b02bc25104d11f7c2/skim_105_1_Equ.root' +#options.inputFiles = '/store/user/ldodd/TT_Tune4C_13TeV-pythia8-tauola/TT_Tune4C_13TeV-pythia8-tauola-tsg_PU40bx25_POSTLS162_V2-v1/fb508503c16d6e4b02bc25104d11f7c2/skim_104_1_uT6.root' +#options.outputFile = "uct_efficiency_tree.root" options.register( 'eicIsolationThreshold', 3, VarParsing.multiplicity.singleton, VarParsing.varType.int, "EIC Isolation threshold") -options.register( - 'hActivityCut', - 0.5, - VarParsing.multiplicity.singleton, - VarParsing.varType.float, - "HCAL activity threshold") +#options.register( +# 'hActivityCut', +# 5.0, +# VarParsing.multiplicity.singleton, +# VarParsing.varType.float, +# "HCAL activity threshold") options.register( 'ecalCalib', 'CALIB_V4', @@ -51,7 +55,7 @@ 'If 1, turn off the ECAL for the stage1 EGTau path.') options.register( 'isMC', - 0, + 1, VarParsing.multiplicity.singleton, VarParsing.varType.int, 'Set to 1 for simulated samples - updates GT, emulates HCAL TPGs.') @@ -83,6 +87,7 @@ process.maxEvents = cms.untracked.PSet( input = cms.untracked.int32(options.maxEvents) + #input = cms.untracked.int32(500) ) process.source = cms.Source( @@ -156,6 +161,7 @@ l1gDPhi = cms.string("? l1gMatch ? deltaPhi(l1g.phi, reco.phi) : -1"), l1gDEta = cms.string("? l1gMatch ? l1g.eta - reco.eta : -10"), l1gDR = cms.string("? l1gMatch ? deltaR(l1g.eta, l1g.phi, reco.eta, reco.phi) : -1"), + ) jet_branches = cms.PSet( @@ -177,6 +183,7 @@ l1gJetPt = cms.string("? l1gMatch ? l1g.getFloat('associatedJetPt', -4) : -2"), l1gEllIso = cms.string("? l1gMatch ? l1g.getInt('ellIsolation', -4) : -2"), l1gTauVeto = cms.string("? l1gMatch ? l1g.getInt('tauVeto', -4) : -2"), + l1gTauVetoNeighbor = cms.string("? l1gMatch ? l1g.getInt('associated4x4Tau', -4) : -2"), l1gMIP = cms.string("? l1gMatch ? l1g.getInt('mipBit', -4) : -2"), l1gIsEle = cms.string("? l1gMatch ? l1g.getInt('isEle', -4) : -2"), ) @@ -202,6 +209,24 @@ process.isoTauEfficiency = cms.EDAnalyzer( "EfficiencyTree", + #recoSrc = cms.VInputTag("isoTaus"), + recoSrc = cms.VInputTag("recoTaus"), + l1Src = cms.VInputTag(cms.InputTag("l1extraParticles", "Tau")), + l1GSrc = cms.VInputTag(cms.InputTag("UCT2015Producer", "IsolatedTauUnpacked")), + l1GPUSrc = cms.InputTag("UCT2015Producer", "PULevelPUM0Unpacked"), + # Max DR for RECO-trigger matching + maxDR = cms.double(0.5), + # Ntuple configuration + ntuple = cms.PSet( + common_ntuple_branches, + egtau_branches, + tau_branches, + ) +) + +process.isoTauCheckEfficiency = cms.EDAnalyzer( + "EfficiencyTree", + #recoSrc = cms.VInputTag("isoTaus"), recoSrc = cms.VInputTag("isoTaus"), l1Src = cms.VInputTag(cms.InputTag("l1extraParticles", "Tau")), l1GSrc = cms.VInputTag(cms.InputTag("UCT2015Producer", "IsolatedTauUnpacked")), @@ -315,6 +340,7 @@ process.leptonEfficiencies = cms.Sequence( process.isoTauEfficiency * + process.isoTauCheckEfficiency * process.rlxTauEfficiency *process.rlxTauPlusJetEfficiency * @@ -427,6 +453,7 @@ process.isoTauEfficiency.recoSrc = cms.VInputTag("trueTaus") process.rlxTauEfficiency.recoSrc = cms.VInputTag("trueTaus") process.isoTauEfficiency.recoSrc = cms.VInputTag("trueTaus") + process.isoTauCheckEfficiency.recoSrc = cms.VInputTag("trueTaus") process.rlxTauEfficiency.recoSrc = cms.VInputTag("trueTaus") process.printTaus.src=cms.InputTag("trueTaus") @@ -561,7 +588,7 @@ # Make the framework shut up. process.load("FWCore.MessageLogger.MessageLogger_cfi") -process.MessageLogger.cerr.FwkReport.reportEvery = 1000 +process.MessageLogger.cerr.FwkReport.reportEvery = 100 # Spit out filter efficiency at the end. process.options = cms.untracked.PSet(wantSummary = cms.untracked.bool(False)) From 0ed96495e13f99b56614b13858107873188c9e5f Mon Sep 17 00:00:00 2001 From: Aaron Levine Date: Wed, 16 Jul 2014 14:58:23 -0500 Subject: [PATCH 03/14] got rid of commented out configurations --- test/makeEfficiencyTree_cfg.py | 20 +++++++------------- 1 file changed, 7 insertions(+), 13 deletions(-) diff --git a/test/makeEfficiencyTree_cfg.py b/test/makeEfficiencyTree_cfg.py index 90e22b9..722a7b5 100755 --- a/test/makeEfficiencyTree_cfg.py +++ b/test/makeEfficiencyTree_cfg.py @@ -24,23 +24,19 @@ options = VarParsing ('analysis') # Set useful defaults #options.inputFiles = '/store/user/tapas/ETauSkim/skim_12_1_erV.root' -#options.inputFiles = '/store/user/ldodd/GluGluToHToTauTau_M-125_13TeV-powheg-pythia6/GluGluToHToTauTau_M-125_13TeV-powheg-pythia6_Fall13dr-tsg_PU40bx25_POSTLS162_V2-v1/05a81b8d696d27a5c3c2ca036967addd/skim_20_1_63z.root' -#options.inputFiles = '/store/mc/Fall13dr/Neutrino_Pt-2to20_gun/GEN-SIM-RAW/tsg_PU40bx25_POSTLS162_V2-v1/20003/CC8426A6-B27C-E311-8767-002618943934.root' -#options.inputFiles = '/store/user/ldodd/TT_Tune4C_13TeV-pythia8-tauola/TT_Tune4C_13TeV-pythia8-tauola-tsg_PU40bx25_POSTLS162_V2-v1/fb508503c16d6e4b02bc25104d11f7c2/skim_105_1_Equ.root' -#options.inputFiles = '/store/user/ldodd/TT_Tune4C_13TeV-pythia8-tauola/TT_Tune4C_13TeV-pythia8-tauola-tsg_PU40bx25_POSTLS162_V2-v1/fb508503c16d6e4b02bc25104d11f7c2/skim_104_1_uT6.root' -#options.outputFile = "uct_efficiency_tree.root" +options.outputFile = "uct_efficiency_tree.root" options.register( 'eicIsolationThreshold', 3, VarParsing.multiplicity.singleton, VarParsing.varType.int, "EIC Isolation threshold") -#options.register( -# 'hActivityCut', -# 5.0, -# VarParsing.multiplicity.singleton, -# VarParsing.varType.float, -# "HCAL activity threshold") +options.register( + 'hActivityCut', + 0.5, + VarParsing.multiplicity.singleton, + VarParsing.varType.float, + "HCAL activity threshold") options.register( 'ecalCalib', 'CALIB_V4', @@ -87,7 +83,6 @@ process.maxEvents = cms.untracked.PSet( input = cms.untracked.int32(options.maxEvents) - #input = cms.untracked.int32(500) ) process.source = cms.Source( @@ -161,7 +156,6 @@ l1gDPhi = cms.string("? l1gMatch ? deltaPhi(l1g.phi, reco.phi) : -1"), l1gDEta = cms.string("? l1gMatch ? l1g.eta - reco.eta : -10"), l1gDR = cms.string("? l1gMatch ? deltaR(l1g.eta, l1g.phi, reco.eta, reco.phi) : -1"), - ) jet_branches = cms.PSet( From 0858e834537194b8b6e95d4f1d64b168e231e836 Mon Sep 17 00:00:00 2001 From: Aaron Levine Date: Thu, 22 Jan 2015 09:37:22 -0600 Subject: [PATCH 04/14] efficiency tree for 7_3_X --- plugins/MiniEffiTree.cc | 496 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 496 insertions(+) create mode 100644 plugins/MiniEffiTree.cc diff --git a/plugins/MiniEffiTree.cc b/plugins/MiniEffiTree.cc new file mode 100644 index 0000000..cd94ede --- /dev/null +++ b/plugins/MiniEffiTree.cc @@ -0,0 +1,496 @@ +/* + * ===================================================================================== + * + * Filename: MiniEffiTree.cc + * Company: UW Madison + * + * ===================================================================================== + */ + +#include "FWCore/Framework/interface/Frameworkfwd.h" +#include "FWCore/Framework/interface/Event.h" +#include "FWCore/Framework/interface/EventSetup.h" +#include "FWCore/ParameterSet/interface/ParameterSet.h" +#include "FWCore/Framework/interface/EDAnalyzer.h" + +#include "DataFormats/Candidate/interface/Candidate.h" +#include "DataFormats/L1Trigger/interface/L1JetParticle.h" +#include "DataFormats/L1Trigger/interface/L1EmParticle.h" + +#include "SimDataFormats/PileupSummaryInfo/interface/PileupSummaryInfo.h" + +#include "FWCore/ServiceRegistry/interface/Service.h" +#include "CommonTools/UtilAlgos/interface/TFileService.h" + +#include "DataFormats/Math/interface/deltaPhi.h" + +#include "TTree.h" + +typedef std::vector VInputTag; + +class MiniEffiTree : public edm::EDAnalyzer { + public: + MiniEffiTree(const edm::ParameterSet& pset); + virtual ~MiniEffiTree(); + void analyze(const edm::Event& evt, const edm::EventSetup& es); + private: + VInputTag src_; + VInputTag genSrc_; + VInputTag srcJet_; + VInputTag genSrcJet_; + VInputTag srcEg_; + VInputTag genSrcEg_; + VInputTag metSrc_; + VInputTag genMetSrc_; + + TTree* tree; + std::vector* pts_; + std::vector* etas_; + std::vector* phis_; + std::vector* genmatches_; + + std::vector* genpts_; + std::vector* genetas_; + std::vector* genphis_; + std::vector* gencharges_; + std::vector* gendRToJet_; + std::vector* genMatchedJet_; + + std::vector* jetpts_; + std::vector* jetetas_; + std::vector* jetphis_; + std::vector* genJetmatches_; + + std::vector* genJetpts_; + std::vector* genJetetas_; + std::vector* genJetphis_; + + std::vector* egpts_; + std::vector* egetas_; + std::vector* egphis_; + std::vector* egTaumatches_; + std::vector* dREgTau_; + + std::vector* genEgpts_; + std::vector* genEgetas_; + std::vector* genEgphis_; + std::vector* genEgTaumatches_; + std::vector* dRgenEgTau_; + + Float_t genMet_Et_; + Float_t genMet_Phi_; + Float_t met_Et_; + Float_t met_Phi_; + + + UInt_t run_; + UInt_t lumi_; + ULong64_t event_; + Int_t nPU_; + + Int_t count_; +}; + +MiniEffiTree::MiniEffiTree(const edm::ParameterSet& pset) { + // Initialize the ntuple builder + edm::Service fs; + tree = fs->make("Ntuple", "Ntuple"); + pts_ = new std::vector(); + etas_ = new std::vector(); + phis_ = new std::vector(); + genmatches_ = new std::vector(); + + genpts_ = new std::vector(); + genetas_ = new std::vector(); + genphis_ = new std::vector(); + gencharges_ = new std::vector(); + gendRToJet_ = new std::vector(); + genMatchedJet_ = new std::vector(); + + + jetpts_ = new std::vector(); + jetetas_ = new std::vector(); + jetphis_ = new std::vector(); + genJetmatches_ = new std::vector(); + + genJetpts_ = new std::vector(); + genJetetas_ = new std::vector(); + genJetphis_ = new std::vector(); + + egpts_ = new std::vector(); + egetas_ = new std::vector(); + egphis_ = new std::vector(); + egTaumatches_ = new std::vector(); + dREgTau_ = new std::vector(); + + genEgpts_ = new std::vector(); + genEgetas_ = new std::vector(); + genEgphis_ = new std::vector(); + genEgTaumatches_ = new std::vector(); + dRgenEgTau_ = new std::vector(); + + tree->Branch("pt", "std::vector", &pts_); + tree->Branch("eta", "std::vector", &etas_); + tree->Branch("phi", "std::vector", &phis_); + tree->Branch("genmatches", "std::vector", &genmatches_); + + tree->Branch("genpt", "std::vector", &genpts_); + tree->Branch("geneta", "std::vector", &genetas_); + tree->Branch("genphi", "std::vector", &genphis_); + tree->Branch("gencharge", "std::vector", &gencharges_); + tree->Branch("gendRToJet", "std::vector", &gendRToJet_); + tree->Branch("genMatchedJet", "std::vector", &genMatchedJet_); + + tree->Branch("jetpt", "std::vector", &jetpts_); + tree->Branch("jeteta", "std::vector", &jetetas_); + tree->Branch("jetphi", "std::vector", &jetphis_); + tree->Branch("genJetmatches", "std::vector", &genJetmatches_); + + tree->Branch("genJetpt", "std::vector", &genJetpts_); + tree->Branch("genJeteta", "std::vector", &genJetetas_); + tree->Branch("genJetphi", "std::vector", &genJetphis_); + + tree->Branch("egpt", "std::vector", &egpts_); + tree->Branch("egeta", "std::vector", &egetas_); + tree->Branch("egphi", "std::vector", &egphis_); + tree->Branch("egTaumatches", "std::vector", &egTaumatches_); + tree->Branch("dREgTau", "std::vector", &dREgTau_); + + tree->Branch("genEgpt", "std::vector", &genEgpts_); + tree->Branch("genEgeta", "std::vector", &genEgetas_); + tree->Branch("genEgphi", "std::vector", &genEgphis_); + tree->Branch("genEgTaumatches", "std::vector", &genEgTaumatches_); + tree->Branch("dRgenEgTau" , "std::vector", &dRgenEgTau_); + + tree->Branch("genMet_Et", &genMet_Et_, "genMet_Et/F"); + tree->Branch("genMet_Phi", &genMet_Phi_, "genMet_Phi/F"); + tree->Branch("met_Et", &met_Et_, "met_Et/F"); + tree->Branch("met_Phi", &met_Phi_, "met_Phi/F"); + + tree->Branch("run", &run_, "run/i"); + tree->Branch("lumi", &lumi_, "lumi/i"); + tree->Branch("evt", &event_, "evt/l"); + tree->Branch("nPU", &nPU_, "nPU/i"); + + src_ = pset.getParameter("src"); + genSrc_ = pset.getParameter("genSrc"); + srcJet_ = pset.getParameter("srcJet"); + genSrcJet_ = pset.getParameter("genSrcJet"); + srcEg_ = pset.getParameter("srcEg"); + genSrcEg_ = pset.getParameter("genSrcEg"); + metSrc_ = pset.getParameter("metSrc"); + genMetSrc_ = pset.getParameter("genMetSrc"); + + count_=0; +} + +MiniEffiTree::~MiniEffiTree() { + delete pts_; + delete etas_; + delete phis_; + delete genmatches_; + delete genpts_; + delete genphis_; + delete genetas_; + delete gencharges_; + delete jetpts_; + delete jetetas_; + delete jetphis_; + delete genJetmatches_; + delete genJetpts_; + delete genJetphis_; + delete genJetetas_; + + delete egpts_; + delete egetas_; + delete egphis_; + delete egTaumatches_; + delete dREgTau_; + delete genEgpts_; + delete genEgphis_; + delete genEgetas_; + delete genEgTaumatches_; + delete dRgenEgTau_; + + delete genMatchedJet_; + delete gendRToJet_; +} + + +namespace { + + // Predicate to sort candidates by descending pt + class CandPtSorter { + public: + bool operator()(const reco::Candidate* candA, const reco::Candidate* candB) + const { + return candA->pt() > candB->pt(); + } + }; + + // Turn a set of InputTags into a colleciton of candidate pointers. + std::vector getCollections( + const edm::Event& evt, const VInputTag& collections) { + std::vector output; + // Loop over collections + for (size_t i = 0; i < collections.size(); ++i) { + edm::Handle > handle; + evt.getByLabel(collections[i], handle); + // Loop over objects in current collection + for (size_t j = 0; j < handle->size(); ++j) { + const reco::Candidate& object = handle->at(j); + output.push_back(&object); + } + } + return output; + } + +} + +void MiniEffiTree::analyze(const edm::Event& evt, const edm::EventSetup& es) { + + count_++; + + // Get the objects. + std::vector objects = getCollections( + evt, src_); + std::vector genObjects = getCollections( + evt, genSrc_); + std::vector jetObjects = getCollections( + evt, srcJet_); + std::vector genJetObjects = getCollections( + evt, genSrcJet_); + std::vector egObjects = getCollections( + evt, srcEg_); + std::vector genEgObjects = getCollections( + evt, genSrcEg_); + std::vector metObject = getCollections( + evt, metSrc_); + std::vector genMetObject = getCollections( + evt, genMetSrc_); + + std::sort(objects.begin(), objects.end(), CandPtSorter()); + std::sort(genObjects.begin(), genObjects.end(), CandPtSorter()); + + + + + // Clear previous event's objects + pts_->clear(); + etas_->clear(); + phis_->clear(); + genmatches_->clear(); + genpts_->clear(); + genetas_->clear(); + genphis_->clear(); + gencharges_->clear(); + jetpts_->clear(); + jetetas_->clear(); + jetphis_->clear(); + genJetmatches_->clear(); + genJetpts_->clear(); + genJetetas_->clear(); + genJetphis_->clear(); + egpts_->clear(); + egetas_->clear(); + egphis_->clear(); + egTaumatches_->clear(); + genEgpts_->clear(); + genEgphis_->clear(); + genEgetas_->clear(); + genEgTaumatches_->clear(); + gendRToJet_->clear(); + genMatchedJet_->clear(); + + // Setup meta info + run_ = evt.id().run(); + lumi_ = evt.id().luminosityBlock(); + event_ = evt.id().event(); + + edm::Handle > PupInfo; + evt.getByLabel("addPileupInfo", PupInfo); + + nPU_=-1; + for(std::vector::const_iterator i = PupInfo->begin(); + i!=PupInfo->end();++i) { + int BX = i->getBunchCrossing(); + if(BX==0) { + nPU_ =i->getTrueNumInteractions(); + nPU_=i->getPU_NumInteractions(); + } + } + + +// std::cout<<"----------------------------"<pt()<<" "<eta()<<" "<phi()<push_back(objects[i]->pt()); + etas_->push_back(objects[i]->eta()); + phis_->push_back(objects[i]->phi()); + } + +// std::cout<<"Gen Objects!"<pt()<<" "<eta()<<" "<phi()<push_back(genObjects[i]->pt()); + genetas_->push_back(genObjects[i]->eta()); + genphis_->push_back(genObjects[i]->phi()); + gencharges_->push_back(genObjects[i]->charge()); + } + + + for (size_t i = 0; i < egObjects.size(); ++i) { +// std::cout<pt()<<" "<eta()<<" "<phi()<push_back(egObjects[i]->pt()); + egetas_->push_back(egObjects[i]->eta()); + egphis_->push_back(egObjects[i]->phi()); + } + +// std::cout<<"Gen Objects!"<pt()<<" "<eta()<<" "<phi()<push_back(genEgObjects[i]->pt()); + genEgetas_->push_back(genEgObjects[i]->eta()); + genEgphis_->push_back(genEgObjects[i]->phi()); + } + + for (size_t i =0; i < objects.size(); ++i){ + int match=-1; + double minAngle=0.5; + for (size_t j=0; jat(j) - genObjects[i]->eta() ); + //double deltaPhi=reco::deltaPhi(phis_->at(j),genObjects[i]->phi()); + //double dR=sqrt( deltaEta*deltaEta + deltaPhi*deltaPhi) ; + double deltaEta=(objects[i]->eta() - genObjects[j]->eta() ); + double deltaPhi=reco::deltaPhi(objects[i]->phi(),genObjects[j]->phi()); + double dR=sqrt( deltaEta*deltaEta + deltaPhi*deltaPhi); + + std::cout <<"dEta, dPhi, dR " << deltaEta << " " << deltaPhi << " " << dR << std::endl; + if(dRpush_back(match); + } + + for (size_t i =0; i < objects.size(); ++i){ + int match=-1; + //double minAngle=0.5; + double minAngle = 6.0; + std::cout << "starting objects loop" << std::endl; + std::cout << egObjects.size() << std::endl; + for (size_t j=0; jeta() - egObjects[j]->eta() ); + double deltaPhi=reco::deltaPhi(objects[i]->phi(),egObjects[j]->phi()); + double dR=sqrt( deltaEta*deltaEta + deltaPhi*deltaPhi); + + std::cout <<"EGdEta, EGdPhi, EGdR " << deltaEta << " " << deltaPhi << " " << dR << std::endl; + if(dRpush_back(match); + dREgTau_->push_back(minAngle); + + } + + + + for (size_t i =0; i < genObjects.size(); ++i){ + int match=-1; + //double minAngle=0.5; + double minAngle = 6.0; + for (size_t j=0; jeta() - genEgObjects[j]->eta() ); + double deltaPhi=reco::deltaPhi(genObjects[i]->phi(),genEgObjects[j]->phi()); + double dR=sqrt( deltaEta*deltaEta + deltaPhi*deltaPhi); + + std::cout <<"genEGdEta, genEGdPhi, genEGdR " << deltaEta << " " << deltaPhi << " " << dR << std::endl; + if(dRpush_back(match); + dRgenEgTau_->push_back(minAngle); + } + + + +// std::cout<<"-----> matched to"<at(i) - genJetObjects[j]->eta() ); + double deltaPhi=reco::deltaPhi(genphis_->at(i),genJetObjects[j]->phi()); + double dR=sqrt( deltaEta*deltaEta + deltaPhi*deltaPhi) ; + if(dR<0.05) { + continue; + } + if(dRpt(); } + } + if (closestDR < 1000){ + gendRToJet_->push_back(closestDR); + } + else{ + gendRToJet_->push_back(-5); + } + genMatchedJet_->push_back(JET); +*/ + + + +// std::cout<<"jet Objects!"<pt()<<" "<eta()<<" "<phi()<push_back(jetObjects[i]->pt()); + jetetas_->push_back(jetObjects[i]->eta()); + jetphis_->push_back(jetObjects[i]->phi()); + } + +// std::cout<<"Gen Jet Objects!"<size(); j++){ + double deltaEta=(genetas_->at(j) - genJetObjects[i]->eta() ); + double deltaPhi=reco::deltaPhi(genphis_->at(j),genJetObjects[i]->phi()); + double dR=sqrt( deltaEta*deltaEta + deltaPhi*deltaPhi) ; + if(dR<0.05) {isEle=true;} + } + if (isEle) continue; + + if(genJetObjects[i]->pt()<10) continue; +// std::cout<pt()<<" "<eta()<<" "<phi()<push_back(genJetObjects[i]->pt()); + genJetetas_->push_back(genJetObjects[i]->eta()); + genJetphis_->push_back(genJetObjects[i]->phi()); + int match=-1; + double minAngle=2; + for (size_t j=0; jsize(); j++){ + double deltaEta=(jetetas_->at(j) - genJetObjects[i]->eta() ); + double deltaPhi=reco::deltaPhi(jetphis_->at(j),genJetObjects[i]->phi()); + double dR=sqrt( deltaEta*deltaEta + deltaPhi*deltaPhi) ; + if(dRpush_back(match); +// std::cout<<"-----> matched to"<pt(); + met_Phi_=metObject[0]->phi(); + // std::cout<<"MET: "<pt(); + genMet_Phi_=genMetObject[0]->phi(); +// std::cout<<"GenMET: "<Fill(); +} + +#include "FWCore/Framework/interface/MakerMacros.h" +DEFINE_FWK_MODULE(MiniEffiTree); From 3e888149a0d883c0c314339c4ba3785a4598b0d1 Mon Sep 17 00:00:00 2001 From: Aaron Levine Date: Thu, 22 Jan 2015 09:38:23 -0600 Subject: [PATCH 05/14] rate tree example for 7_3_X --- plugins/RateTreeEmul.cc | 167 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 167 insertions(+) create mode 100644 plugins/RateTreeEmul.cc diff --git a/plugins/RateTreeEmul.cc b/plugins/RateTreeEmul.cc new file mode 100644 index 0000000..15bf800 --- /dev/null +++ b/plugins/RateTreeEmul.cc @@ -0,0 +1,167 @@ +#include "FWCore/Framework/interface/Frameworkfwd.h" +#include "FWCore/Framework/interface/Event.h" +#include "FWCore/Framework/interface/EventSetup.h" +#include "FWCore/ParameterSet/interface/ParameterSet.h" +#include "FWCore/Framework/interface/EDAnalyzer.h" + +#include "DataFormats/Candidate/interface/Candidate.h" + +#include "FWCore/ServiceRegistry/interface/Service.h" +#include "CommonTools/UtilAlgos/interface/TFileService.h" + +#include "SimDataFormats/PileupSummaryInfo/interface/PileupSummaryInfo.h" + +#include "DataFormats/L1Trigger/interface/L1EmParticle.h" +#include "DataFormats/L1Trigger/interface/L1EmParticleFwd.h" +#include "DataFormats/L1Trigger/interface/L1JetParticle.h" +#include "DataFormats/L1Trigger/interface/L1JetParticleFwd.h" +#include "DataFormats/L1Trigger/interface/L1EtMissParticle.h" +#include "DataFormats/L1Trigger/interface/L1EtMissParticleFwd.h" + +#include "DataFormats/Scalers/interface/LumiScalers.h" + +#include "L1Trigger/L1TCalorimeter/interface/Stage1Layer2TauAlgorithmImp.h" +#include "DataFormats/L1Trigger/interface/Tau.h" +#include "DataFormats/L1Trigger/interface/L1Candidate.h" + +#include "TTree.h" + +typedef std::vector VInputTag; + +class RateTreeEmul : public edm::EDAnalyzer { + public: + RateTreeEmul(const edm::ParameterSet& pset); + virtual ~RateTreeEmul(); + void analyze(const edm::Event& evt, const edm::EventSetup& es); + private: + VInputTag src_; + TTree* tree; + std::vector* pts_; + std::vector* etas_; + std::vector* phis_; + std::vector* isoFlags_; + UInt_t run_; + UInt_t lumi_; + ULong64_t event_; + Int_t nPU_; +}; + +RateTreeEmul::RateTreeEmul(const edm::ParameterSet& pset) { + // Initialize the ntuple builder + edm::Service fs; + tree = fs->make("Ntuple", "Ntuple"); + pts_ = new std::vector(); + etas_ = new std::vector(); + phis_ = new std::vector(); + isoFlags_ = new std::vector(); + + tree->Branch("pt", "std::vector", &pts_); + tree->Branch("eta", "std::vector", &etas_); + tree->Branch("phi", "std::vector", &phis_); + tree->Branch("run", &run_, "run/i"); + //tree->Branch("isoFlags", "std::vector", &isoFlags_); + tree->Branch("lumi", &lumi_, "lumi/i"); + tree->Branch("evt", &event_, "evt/l"); + tree->Branch("nPU", &nPU_, "nPU/i"); + + src_ = pset.getParameter("src"); +} + +RateTreeEmul::~RateTreeEmul() { + delete pts_; + delete etas_; + delete phis_; + delete isoFlags_; +} + + +namespace { + + // Predicate to sort candidates by descending pt + class CandPtSorter { + public: + bool operator()(const reco::Candidate* candA, const reco::Candidate* candB) + const { + return candA->pt() > candB->pt(); + } + }; + + // Turn a set of InputTags into a colleciton of candidate pointers. + std::vector getCollections( + const edm::Event& evt, const VInputTag& collections) { + std::vector output; + // Loop over collections + for (size_t i = 0; i < collections.size(); ++i) { + edm::Handle > handle; + evt.getByLabel(collections[i], handle); + // Loop over objects in current collection + for (size_t j = 0; j < handle->size(); ++j) { + const reco::Candidate& object = handle->at(j); + output.push_back(&object); + } + } + return output; + } + +} + +void RateTreeEmul::analyze(const edm::Event& evt, const edm::EventSetup& es) { + //std::cout << "getting objects" << std::endl; + // Get the objects. + std::vector objects = getCollections( + evt, src_); + //std::cout << "sorting objects" << std::endl; + std::sort(objects.begin(), objects.end(), CandPtSorter()); + + //std::cout << "clearing objects" << std::endl; + // Clear previous event's objects + pts_->clear(); + etas_->clear(); + phis_->clear(); + isoFlags_->clear(); + + + //std::cout << "setting up meta info" < > PupInfo; + evt.getByLabel("addPileupInfo", PupInfo); + + nPU_=-1; + for(std::vector::const_iterator i = PupInfo->begin(); i!=PupInfo->end();++i) { + int BX = i->getBunchCrossing(); + if(BX==0) { + nPU_ =i->getTrueNumInteractions(); + } + else { + nPU_=i->getPU_NumInteractions(); + } + } + + + + //std::cout << "pushing back" << std::endl; + for (size_t i = 0; i < objects.size(); ++i) { + pts_->push_back(objects[i]->pt()); + etas_->push_back(objects[i]->eta()); + phis_->push_back(objects[i]->phi()); + //std::cout <<"about to make dynamic cast"<(objects[i]); + //std::cout << "about to push back hwIso" <push_back(tau[i].hwIso()); + } + + + tree->Fill(); +} + +#include "FWCore/Framework/interface/MakerMacros.h" +DEFINE_FWK_MODULE(RateTreeEmul); From 0b59dde89a5598260c3e6746e900759ce8bd9fe2 Mon Sep 17 00:00:00 2001 From: Aaron Levine Date: Thu, 22 Jan 2015 09:44:09 -0600 Subject: [PATCH 06/14] example rate configuration 7_3_X --- test/NtupilizeEmulatorRates.py | 67 ++++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 test/NtupilizeEmulatorRates.py diff --git a/test/NtupilizeEmulatorRates.py b/test/NtupilizeEmulatorRates.py new file mode 100644 index 0000000..aeeb2c0 --- /dev/null +++ b/test/NtupilizeEmulatorRates.py @@ -0,0 +1,67 @@ +import FWCore.ParameterSet.Config as cms +import os + +from FWCore.ParameterSet.VarParsing import VarParsing +options = VarParsing('analysis') +options.outputFile = "NtupilizeEmulatorRates.root" +options.parseArguments() +process = cms.Process('EmulatorNtupilizer') + +process.load('Configuration.StandardSequences.Services_cff') +process.load('FWCore.MessageService.MessageLogger_cfi') +process.load('Configuration/StandardSequences/FrontierConditions_GlobalTag_cff') +process.load('Configuration.EventContent.EventContent_cff') +process.load('Configuration.Geometry.GeometryIdeal_cff')\ + +# Make the framework shut up. +process.load("FWCore.MessageLogger.MessageLogger_cfi") +process.MessageLogger.cerr.FwkReport.reportEvery = 100 + +# Spit out filter efficiency at the end. +process.options = cms.untracked.PSet(wantSummary = cms.untracked.bool(True)) + +#Max Events +process.maxEvents = cms.untracked.PSet( + input = cms.untracked.int32(options.maxEvents) +) + +#Input +process.source = cms.Source("PoolSource", + fileNames = cms.untracked.vstring(options.inputFiles) +# fileNames = cms.untracked.vstring("/store/mc/Fall13dr/Neutrino_Pt-2to20_gun/GEN-SIM-RAW/tsg_PU40bx25_POSTLS162_V2-v1/00005/C2D9064D-FB7F-E311-BFCC-003048679228.root") +) + +#Output +#options.outputFile = "L1EmulatorTree.root" +process.TFileService = cms.Service( + "TFileService", + fileName = cms.string(options.outputFile) +) + +from Configuration.AlCa.GlobalTag import GlobalTag +process.GlobalTag.connect = cms.string('frontier://FrontierProd/CMS_COND_31X_GLOBALTAG') +process.GlobalTag.globaltag = cms.string('POSTLS162_V2::All') + +process.load('L1Trigger.L1TCalorimeter.L1TCaloStage1_PPFromRaw_cff') + +process.p1 = cms.Path( + process.L1TCaloStage1_PPFromRaw + +process.l1ExtraLayer2 +) + +process.TauEmul = cms.EDAnalyzer( + "RateTreeEmul", + #src = cms.VInputTag(cms.InputTag("L1TCaloRCTToUpgradeConverter","tauJets")) + # src = cms.VInputTag(cms.InputTag("CaloStage1FinalDigis", "rlxTaus")) + src = cms.VInputTag(cms.InputTag("l1ExtraLayer2", "Tau")) +) + + +process.p2 = cms.Path( + process.TauEmul +) + +process.schedule = cms.Schedule( + process.p1, + process.p2 +) From 561c4e64e630d84248c1646f3c730476e7d85b33 Mon Sep 17 00:00:00 2001 From: Aaron Levine Date: Thu, 22 Jan 2015 09:44:35 -0600 Subject: [PATCH 07/14] example efficiency configuration 7_3_X --- test/NtupilizeEmulatorEffi.py | 87 +++++++++++++++++++++++++++++++++++ 1 file changed, 87 insertions(+) create mode 100644 test/NtupilizeEmulatorEffi.py diff --git a/test/NtupilizeEmulatorEffi.py b/test/NtupilizeEmulatorEffi.py new file mode 100644 index 0000000..6353908 --- /dev/null +++ b/test/NtupilizeEmulatorEffi.py @@ -0,0 +1,87 @@ +import FWCore.ParameterSet.Config as cms +import os + +from FWCore.ParameterSet.VarParsing import VarParsing +options = VarParsing('analysis') +options.outputFile = "NtupilizeEmulatorEffi.root" +options.parseArguments() +process = cms.Process('EmulatorEffiNtupilizer') + +process.load('Configuration.StandardSequences.Services_cff') +process.load('FWCore.MessageService.MessageLogger_cfi') +process.load('Configuration/StandardSequences/FrontierConditions_GlobalTag_cff') +process.load('Configuration.EventContent.EventContent_cff') +process.load('Configuration.Geometry.GeometryIdeal_cff')\ + +# Make the framework shut up. +process.load("FWCore.MessageLogger.MessageLogger_cfi") +process.MessageLogger.cerr.FwkReport.reportEvery = 100 + +# Spit out filter efficiency at the end. +#process.options = cms.untracked.PSet(wantSummary = cms.untracked.bool(True)) + +#Max Events +process.maxEvents = cms.untracked.PSet( + #input = cms.untracked.int32(options.maxEvents) + input = cms.untracked.int32(3) +) + +#Input +process.source = cms.Source("PoolSource", + fileNames = cms.untracked.vstring(options.inputFiles) +# fileNames = cms.untracked.vstring("/store/mc/Fall13dr/Neutrino_Pt-2to20_gun/GEN-SIM-RAW/tsg_PU40bx25_POSTLS162_V2-v1/00005/C2D9064D-FB7F-E311-BFCC-003048679228.root") +) + +#Output +process.TFileService = cms.Service( + "TFileService", + fileName = cms.string(options.outputFile) +) + +from Configuration.AlCa.GlobalTag import GlobalTag +process.GlobalTag.connect = cms.string('frontier://FrontierProd/CMS_COND_31X_GLOBALTAG') +process.GlobalTag.globaltag = cms.string('POSTLS162_V2::All') + +process.load('L1Trigger.L1TCalorimeter.L1TCaloStage1_PPFromRaw_cff') +process.load("L1Trigger.UWTriggerTools.recoObjects_cfi") + +reco_object_step = process.recoObjects +process.p1 = cms.Path( + reco_object_step+ + process.L1TCaloStage1_PPFromRaw + +process.l1ExtraLayer2 +) + +process.TauEmulEffi = cms.EDAnalyzer( + "MiniEffiTree", + src = cms.VInputTag("recoTaus"), + #src = cms.VInputTag("isoTaus"), + genSrc = cms.VInputTag(cms.InputTag("l1ExtraLayer2","Tau")), + #genSrc = cms.VInputTag(cms.InputTag("caloStage1Digis","rlxTaus")), + srcJet = cms.VInputTag("ak5PFJets"), + genSrcJet = cms.VInputTag(cms.InputTag("l1ExtraLayer2","Central")), + srcEg = cms.VInputTag("recoElecs"), + genSrcEg = cms.VInputTag(cms.InputTag("l1ExtraLayer2","NonIsolated")), + metSrc = cms.VInputTag("tcMet"), + genMetSrc = cms.VInputTag(cms.InputTag("l1ExtraLayer2","MET")) +) + +#process.EGEmulEffi = cms.EDAnalyzer( +# "MiniEffiTree", +# src = cms.VInputTag("recoElecs"), +# genSrc = cms.VInputTag(cms.InputTag("l1ExtraLayer2","NonIsolated")), +# srcJet = cms.VInputTag("ak5PFJets"), +# genSrcJet = cms.VInputTag(cms.InputTag("l1ExtraLayer2","Central")), +# metSrc = cms.VInputTag("tcMet"), +# genMetSrc = cms.VInputTag(cms.InputTag("l1ExtraLayer2","MET")) +#) + +process.p2 = cms.Path( + process.TauEmulEffi + #+ process.EGEmulEffi +) + +process.schedule = cms.Schedule( + process.p1, + process.p2 +) From a44d96051ae48f42f0fa9c83789b46095c5649d8 Mon Sep 17 00:00:00 2001 From: Aaron Levine Date: Fri, 23 Jan 2015 10:53:57 -0600 Subject: [PATCH 08/14] reco taus update for 7_2_x --- python/recoObjects_cfi.py | 40 ++++++++++++++++++++------------------- 1 file changed, 21 insertions(+), 19 deletions(-) diff --git a/python/recoObjects_cfi.py b/python/recoObjects_cfi.py index 9bea532..642613e 100644 --- a/python/recoObjects_cfi.py +++ b/python/recoObjects_cfi.py @@ -33,7 +33,7 @@ src = cms.InputTag( "gsfElectrons" ), cut = cms.string( " (et>20.0)" - " && (gsfTrack.trackerExpectedHitsInner.numberOfHits==0 && !(-0.02 Date: Wed, 28 Jan 2015 18:40:48 -0600 Subject: [PATCH 09/14] fixed reco/gen matching --- plugins/MiniEffiTree.cc | 29 +++++++++++++++++++++++------ 1 file changed, 23 insertions(+), 6 deletions(-) diff --git a/plugins/MiniEffiTree.cc b/plugins/MiniEffiTree.cc index cd94ede..8823309 100644 --- a/plugins/MiniEffiTree.cc +++ b/plugins/MiniEffiTree.cc @@ -330,7 +330,7 @@ void MiniEffiTree::analyze(const edm::Event& evt, const edm::EventSetup& es) { etas_->push_back(objects[i]->eta()); phis_->push_back(objects[i]->phi()); } - +/* // std::cout<<"Gen Objects!"<pt()<<" "<eta()<<" "<phi()<push_back(genObjects[i]->phi()); gencharges_->push_back(genObjects[i]->charge()); } - +*/ for (size_t i = 0; i < egObjects.size(); ++i) { // std::cout<pt()<<" "<eta()<<" "<phi()<at(j) - genObjects[i]->eta() ); @@ -366,11 +366,28 @@ void MiniEffiTree::analyze(const edm::Event& evt, const edm::EventSetup& es) { double deltaEta=(objects[i]->eta() - genObjects[j]->eta() ); double deltaPhi=reco::deltaPhi(objects[i]->phi(),genObjects[j]->phi()); double dR=sqrt( deltaEta*deltaEta + deltaPhi*deltaPhi); + std::cout << "pt, genpt: " << objects[i]->pt() <<", "<pt() <<", "<push_back(1); + std::cout << "pushing back 1 for match pt, genpt: " << objects[i]->pt() <<", "<pt() <push_back(genObjects[j]->pt()); + genetas_->push_back(genObjects[j]->eta()); + genphis_->push_back(genObjects[j]->phi()); + gencharges_->push_back(genObjects[j]->charge()); + } +// else{ + // genmatches_->push_back(-1); + // std::cout << "pushing back -1 for nonmatch pt, genpt :" << objects[i]->pt() <<", "<pt() <push_back(match); } for (size_t i =0; i < objects.size(); ++i){ From 9c2b767dee93d84bbe0615d194ad3e00412b54dd Mon Sep 17 00:00:00 2001 From: Aaron Levine Date: Tue, 24 Feb 2015 10:25:25 -0600 Subject: [PATCH 10/14] fixed reco/l1 match bug --- plugins/MiniEffiTree.cc | 349 +++++++++++++++++++++------------------- 1 file changed, 187 insertions(+), 162 deletions(-) diff --git a/plugins/MiniEffiTree.cc b/plugins/MiniEffiTree.cc index 8823309..d70b328 100644 --- a/plugins/MiniEffiTree.cc +++ b/plugins/MiniEffiTree.cc @@ -35,35 +35,41 @@ class MiniEffiTree : public edm::EDAnalyzer { void analyze(const edm::Event& evt, const edm::EventSetup& es); private: VInputTag src_; - VInputTag genSrc_; + VInputTag L1Src_; VInputTag srcJet_; - VInputTag genSrcJet_; + VInputTag L1SrcJet_; VInputTag srcEg_; - VInputTag genSrcEg_; + VInputTag L1SrcEg_; VInputTag metSrc_; - VInputTag genMetSrc_; + VInputTag L1MetSrc_; TTree* tree; std::vector* pts_; std::vector* etas_; std::vector* phis_; - std::vector* genmatches_; + std::vector* L1matches_; - std::vector* genpts_; - std::vector* genetas_; - std::vector* genphis_; - std::vector* gencharges_; - std::vector* gendRToJet_; - std::vector* genMatchedJet_; + std::vector* L1pts_; + std::vector* L1etas_; + std::vector* L1phis_; + std::vector* L1charges_; + + std::vector* L1Matchedpts_; + std::vector* L1Matchedetas_; + std::vector* L1Matchedphis_; + std::vector* L1Matchedcharges_; + + std::vector* L1dRToJet_; + std::vector* L1MatchedJet_; std::vector* jetpts_; std::vector* jetetas_; std::vector* jetphis_; - std::vector* genJetmatches_; + std::vector* L1Jetmatches_; - std::vector* genJetpts_; - std::vector* genJetetas_; - std::vector* genJetphis_; + std::vector* L1Jetpts_; + std::vector* L1Jetetas_; + std::vector* L1Jetphis_; std::vector* egpts_; std::vector* egetas_; @@ -71,14 +77,14 @@ class MiniEffiTree : public edm::EDAnalyzer { std::vector* egTaumatches_; std::vector* dREgTau_; - std::vector* genEgpts_; - std::vector* genEgetas_; - std::vector* genEgphis_; - std::vector* genEgTaumatches_; - std::vector* dRgenEgTau_; + std::vector* L1Egpts_; + std::vector* L1Egetas_; + std::vector* L1Egphis_; + std::vector* L1EgTaumatches_; + std::vector* dRL1EgTau_; - Float_t genMet_Et_; - Float_t genMet_Phi_; + Float_t L1Met_Et_; + Float_t L1Met_Phi_; Float_t met_Et_; Float_t met_Phi_; @@ -98,24 +104,30 @@ MiniEffiTree::MiniEffiTree(const edm::ParameterSet& pset) { pts_ = new std::vector(); etas_ = new std::vector(); phis_ = new std::vector(); - genmatches_ = new std::vector(); + L1matches_ = new std::vector(); + + L1pts_ = new std::vector(); + L1etas_ = new std::vector(); + L1phis_ = new std::vector(); + L1charges_ = new std::vector(); - genpts_ = new std::vector(); - genetas_ = new std::vector(); - genphis_ = new std::vector(); - gencharges_ = new std::vector(); - gendRToJet_ = new std::vector(); - genMatchedJet_ = new std::vector(); + L1Matchedpts_ = new std::vector(); + L1Matchedetas_ = new std::vector(); + L1Matchedphis_ = new std::vector(); + L1Matchedcharges_ = new std::vector(); + + L1dRToJet_ = new std::vector(); + L1MatchedJet_ = new std::vector(); jetpts_ = new std::vector(); jetetas_ = new std::vector(); jetphis_ = new std::vector(); - genJetmatches_ = new std::vector(); + L1Jetmatches_ = new std::vector(); - genJetpts_ = new std::vector(); - genJetetas_ = new std::vector(); - genJetphis_ = new std::vector(); + L1Jetpts_ = new std::vector(); + L1Jetetas_ = new std::vector(); + L1Jetphis_ = new std::vector(); egpts_ = new std::vector(); egetas_ = new std::vector(); @@ -123,32 +135,38 @@ MiniEffiTree::MiniEffiTree(const edm::ParameterSet& pset) { egTaumatches_ = new std::vector(); dREgTau_ = new std::vector(); - genEgpts_ = new std::vector(); - genEgetas_ = new std::vector(); - genEgphis_ = new std::vector(); - genEgTaumatches_ = new std::vector(); - dRgenEgTau_ = new std::vector(); + L1Egpts_ = new std::vector(); + L1Egetas_ = new std::vector(); + L1Egphis_ = new std::vector(); + L1EgTaumatches_ = new std::vector(); + dRL1EgTau_ = new std::vector(); tree->Branch("pt", "std::vector", &pts_); tree->Branch("eta", "std::vector", &etas_); tree->Branch("phi", "std::vector", &phis_); - tree->Branch("genmatches", "std::vector", &genmatches_); + tree->Branch("L1matches", "std::vector", &L1matches_); + + tree->Branch("L1pt", "std::vector", &L1pts_); + tree->Branch("L1eta", "std::vector", &L1etas_); + tree->Branch("L1phi", "std::vector", &L1phis_); + tree->Branch("L1charge", "std::vector", &L1charges_); + + tree->Branch("L1Matchedpt", "std::vector", &L1Matchedpts_); + tree->Branch("L1Matchedeta", "std::vector", &L1Matchedetas_); + tree->Branch("L1Matchedphi", "std::vector", &L1Matchedphis_); + tree->Branch("L1Matchedcharge", "std::vector", &L1Matchedcharges_); - tree->Branch("genpt", "std::vector", &genpts_); - tree->Branch("geneta", "std::vector", &genetas_); - tree->Branch("genphi", "std::vector", &genphis_); - tree->Branch("gencharge", "std::vector", &gencharges_); - tree->Branch("gendRToJet", "std::vector", &gendRToJet_); - tree->Branch("genMatchedJet", "std::vector", &genMatchedJet_); + tree->Branch("L1dRToJet", "std::vector", &L1dRToJet_); + tree->Branch("L1MatchedJet", "std::vector", &L1MatchedJet_); tree->Branch("jetpt", "std::vector", &jetpts_); tree->Branch("jeteta", "std::vector", &jetetas_); tree->Branch("jetphi", "std::vector", &jetphis_); - tree->Branch("genJetmatches", "std::vector", &genJetmatches_); + tree->Branch("L1Jetmatches", "std::vector", &L1Jetmatches_); - tree->Branch("genJetpt", "std::vector", &genJetpts_); - tree->Branch("genJeteta", "std::vector", &genJetetas_); - tree->Branch("genJetphi", "std::vector", &genJetphis_); + tree->Branch("L1Jetpt", "std::vector", &L1Jetpts_); + tree->Branch("L1Jeteta", "std::vector", &L1Jetetas_); + tree->Branch("L1Jetphi", "std::vector", &L1Jetphis_); tree->Branch("egpt", "std::vector", &egpts_); tree->Branch("egeta", "std::vector", &egetas_); @@ -156,14 +174,14 @@ MiniEffiTree::MiniEffiTree(const edm::ParameterSet& pset) { tree->Branch("egTaumatches", "std::vector", &egTaumatches_); tree->Branch("dREgTau", "std::vector", &dREgTau_); - tree->Branch("genEgpt", "std::vector", &genEgpts_); - tree->Branch("genEgeta", "std::vector", &genEgetas_); - tree->Branch("genEgphi", "std::vector", &genEgphis_); - tree->Branch("genEgTaumatches", "std::vector", &genEgTaumatches_); - tree->Branch("dRgenEgTau" , "std::vector", &dRgenEgTau_); + tree->Branch("L1Egpt", "std::vector", &L1Egpts_); + tree->Branch("L1Egeta", "std::vector", &L1Egetas_); + tree->Branch("L1Egphi", "std::vector", &L1Egphis_); + tree->Branch("L1EgTaumatches", "std::vector", &L1EgTaumatches_); + tree->Branch("dRL1EgTau" , "std::vector", &dRL1EgTau_); - tree->Branch("genMet_Et", &genMet_Et_, "genMet_Et/F"); - tree->Branch("genMet_Phi", &genMet_Phi_, "genMet_Phi/F"); + tree->Branch("L1Met_Et", &L1Met_Et_, "L1Met_Et/F"); + tree->Branch("L1Met_Phi", &L1Met_Phi_, "L1Met_Phi/F"); tree->Branch("met_Et", &met_Et_, "met_Et/F"); tree->Branch("met_Phi", &met_Phi_, "met_Phi/F"); @@ -173,13 +191,13 @@ MiniEffiTree::MiniEffiTree(const edm::ParameterSet& pset) { tree->Branch("nPU", &nPU_, "nPU/i"); src_ = pset.getParameter("src"); - genSrc_ = pset.getParameter("genSrc"); + L1Src_ = pset.getParameter("L1Src"); srcJet_ = pset.getParameter("srcJet"); - genSrcJet_ = pset.getParameter("genSrcJet"); + L1SrcJet_ = pset.getParameter("L1SrcJet"); srcEg_ = pset.getParameter("srcEg"); - genSrcEg_ = pset.getParameter("genSrcEg"); + L1SrcEg_ = pset.getParameter("L1SrcEg"); metSrc_ = pset.getParameter("metSrc"); - genMetSrc_ = pset.getParameter("genMetSrc"); + L1MetSrc_ = pset.getParameter("L1MetSrc"); count_=0; } @@ -188,32 +206,36 @@ MiniEffiTree::~MiniEffiTree() { delete pts_; delete etas_; delete phis_; - delete genmatches_; - delete genpts_; - delete genphis_; - delete genetas_; - delete gencharges_; + delete L1matches_; + delete L1pts_; + delete L1phis_; + delete L1etas_; + delete L1charges_; + delete L1Matchedpts_; + delete L1Matchedphis_; + delete L1Matchedetas_; + delete L1Matchedcharges_; delete jetpts_; delete jetetas_; delete jetphis_; - delete genJetmatches_; - delete genJetpts_; - delete genJetphis_; - delete genJetetas_; + delete L1Jetmatches_; + delete L1Jetpts_; + delete L1Jetphis_; + delete L1Jetetas_; delete egpts_; delete egetas_; delete egphis_; delete egTaumatches_; delete dREgTau_; - delete genEgpts_; - delete genEgphis_; - delete genEgetas_; - delete genEgTaumatches_; - delete dRgenEgTau_; - - delete genMatchedJet_; - delete gendRToJet_; + delete L1Egpts_; + delete L1Egphis_; + delete L1Egetas_; + delete L1EgTaumatches_; + delete dRL1EgTau_; + + delete L1MatchedJet_; + delete L1dRToJet_; } @@ -254,23 +276,23 @@ void MiniEffiTree::analyze(const edm::Event& evt, const edm::EventSetup& es) { // Get the objects. std::vector objects = getCollections( evt, src_); - std::vector genObjects = getCollections( - evt, genSrc_); + std::vector L1Objects = getCollections( + evt, L1Src_); std::vector jetObjects = getCollections( evt, srcJet_); - std::vector genJetObjects = getCollections( - evt, genSrcJet_); + std::vector L1JetObjects = getCollections( + evt, L1SrcJet_); std::vector egObjects = getCollections( evt, srcEg_); - std::vector genEgObjects = getCollections( - evt, genSrcEg_); + std::vector L1EgObjects = getCollections( + evt, L1SrcEg_); std::vector metObject = getCollections( evt, metSrc_); - std::vector genMetObject = getCollections( - evt, genMetSrc_); + std::vector L1MetObject = getCollections( + evt, L1MetSrc_); std::sort(objects.begin(), objects.end(), CandPtSorter()); - std::sort(genObjects.begin(), genObjects.end(), CandPtSorter()); + std::sort(L1Objects.begin(), L1Objects.end(), CandPtSorter()); @@ -279,28 +301,32 @@ void MiniEffiTree::analyze(const edm::Event& evt, const edm::EventSetup& es) { pts_->clear(); etas_->clear(); phis_->clear(); - genmatches_->clear(); - genpts_->clear(); - genetas_->clear(); - genphis_->clear(); - gencharges_->clear(); + L1matches_->clear(); + L1pts_->clear(); + L1etas_->clear(); + L1phis_->clear(); + L1charges_->clear(); + L1Matchedpts_->clear(); + L1Matchedetas_->clear(); + L1Matchedphis_->clear(); + L1Matchedcharges_->clear(); jetpts_->clear(); jetetas_->clear(); jetphis_->clear(); - genJetmatches_->clear(); - genJetpts_->clear(); - genJetetas_->clear(); - genJetphis_->clear(); + L1Jetmatches_->clear(); + L1Jetpts_->clear(); + L1Jetetas_->clear(); + L1Jetphis_->clear(); egpts_->clear(); egetas_->clear(); egphis_->clear(); egTaumatches_->clear(); - genEgpts_->clear(); - genEgphis_->clear(); - genEgetas_->clear(); - genEgTaumatches_->clear(); - gendRToJet_->clear(); - genMatchedJet_->clear(); + L1Egpts_->clear(); + L1Egphis_->clear(); + L1Egetas_->clear(); + L1EgTaumatches_->clear(); + L1dRToJet_->clear(); + L1MatchedJet_->clear(); // Setup meta info run_ = evt.id().run(); @@ -330,16 +356,16 @@ void MiniEffiTree::analyze(const edm::Event& evt, const edm::EventSetup& es) { etas_->push_back(objects[i]->eta()); phis_->push_back(objects[i]->phi()); } -/* -// std::cout<<"Gen Objects!"<pt()<<" "<eta()<<" "<phi()<push_back(genObjects[i]->pt()); - genetas_->push_back(genObjects[i]->eta()); - genphis_->push_back(genObjects[i]->phi()); - gencharges_->push_back(genObjects[i]->charge()); + + //std::cout<<"L1 Objects!"<pt()<<" "<eta()<<" "<phi()<push_back(L1Objects[i]->pt()); + L1etas_->push_back(L1Objects[i]->eta()); + L1phis_->push_back(L1Objects[i]->phi()); + L1charges_->push_back(L1Objects[i]->charge()); } -*/ + for (size_t i = 0; i < egObjects.size(); ++i) { // std::cout<pt()<<" "<eta()<<" "<phi()<pt()<<" "<eta()<<" "<phi()<push_back(genEgObjects[i]->pt()); - genEgetas_->push_back(genEgObjects[i]->eta()); - genEgphis_->push_back(genEgObjects[i]->phi()); + for (size_t i = 0; i < L1EgObjects.size(); ++i) { +// std::cout<pt()<<" "<eta()<<" "<phi()<push_back(L1EgObjects[i]->pt()); + L1Egetas_->push_back(L1EgObjects[i]->eta()); + L1Egphis_->push_back(L1EgObjects[i]->phi()); } for (size_t i =0; i < objects.size(); ++i){ int matchj=-1; double minAngle=0.5; - for (size_t j=0; jat(j) - genObjects[i]->eta() ); - //double deltaPhi=reco::deltaPhi(phis_->at(j),genObjects[i]->phi()); + for (size_t j=0; jat(j) - L1Objects[i]->eta() ); + //double deltaPhi=reco::deltaPhi(phis_->at(j),L1Objects[i]->phi()); //double dR=sqrt( deltaEta*deltaEta + deltaPhi*deltaPhi) ; - double deltaEta=(objects[i]->eta() - genObjects[j]->eta() ); - double deltaPhi=reco::deltaPhi(objects[i]->phi(),genObjects[j]->phi()); + double deltaEta=(objects[i]->eta() - L1Objects[j]->eta() ); + double deltaPhi=reco::deltaPhi(objects[i]->phi(),L1Objects[j]->phi()); double dR=sqrt( deltaEta*deltaEta + deltaPhi*deltaPhi); - std::cout << "pt, genpt: " << objects[i]->pt() <<", "<pt() <<", "<pt() <<", "<pt() <<", "<push_back(1); - std::cout << "pushing back 1 for match pt, genpt: " << objects[i]->pt() <<", "<pt() <push_back(genObjects[j]->pt()); - genetas_->push_back(genObjects[j]->eta()); - genphis_->push_back(genObjects[j]->phi()); - gencharges_->push_back(genObjects[j]->charge()); + L1matches_->push_back(1); + std::cout << "pushing back 1 for match pt, L1pt: " << objects[i]->pt() <<", "<pt() <push_back(L1Objects[j]->pt()); + L1Matchedetas_->push_back(L1Objects[j]->eta()); + L1Matchedphis_->push_back(L1Objects[j]->phi()); + L1Matchedcharges_->push_back(L1Objects[j]->charge()); } // else{ - // genmatches_->push_back(-1); - // std::cout << "pushing back -1 for nonmatch pt, genpt :" << objects[i]->pt() <<", "<pt() <push_back(-1); + // std::cout << "pushing back -1 for nonmatch pt, L1pt :" << objects[i]->pt() <<", "<pt() <eta() - genEgObjects[j]->eta() ); - double deltaPhi=reco::deltaPhi(genObjects[i]->phi(),genEgObjects[j]->phi()); + for (size_t j=0; jeta() - L1EgObjects[j]->eta() ); + double deltaPhi=reco::deltaPhi(L1Objects[i]->phi(),L1EgObjects[j]->phi()); double dR=sqrt( deltaEta*deltaEta + deltaPhi*deltaPhi); - std::cout <<"genEGdEta, genEGdPhi, genEGdR " << deltaEta << " " << deltaPhi << " " << dR << std::endl; + std::cout <<"L1EGdEta, L1EGdPhi, L1EGdR " << deltaEta << " " << deltaPhi << " " << dR << std::endl; if(dRpush_back(match); - dRgenEgTau_->push_back(minAngle); + L1EgTaumatches_->push_back(match); + dRL1EgTau_->push_back(minAngle); } @@ -434,23 +459,23 @@ void MiniEffiTree::analyze(const edm::Event& evt, const edm::EventSetup& es) { /* double closestDR=10e6; double JET=0; - for (size_t j = 0; j < genJetObjects.size(); ++j) { - double deltaEta=(genetas_->at(i) - genJetObjects[j]->eta() ); - double deltaPhi=reco::deltaPhi(genphis_->at(i),genJetObjects[j]->phi()); + for (size_t j = 0; j < L1JetObjects.size(); ++j) { + double deltaEta=(L1etas_->at(i) - L1JetObjects[j]->eta() ); + double deltaPhi=reco::deltaPhi(L1phis_->at(i),L1JetObjects[j]->phi()); double dR=sqrt( deltaEta*deltaEta + deltaPhi*deltaPhi) ; if(dR<0.05) { continue; } if(dRpt(); } + JET=L1JetObjects[j]->pt(); } } if (closestDR < 1000){ - gendRToJet_->push_back(closestDR); + L1dRToJet_->push_back(closestDR); } else{ - gendRToJet_->push_back(-5); + L1dRToJet_->push_back(-5); } - genMatchedJet_->push_back(JET); + L1MatchedJet_->push_back(JET); */ @@ -464,46 +489,46 @@ void MiniEffiTree::analyze(const edm::Event& evt, const edm::EventSetup& es) { } // std::cout<<"Gen Jet Objects!"<size(); j++){ - double deltaEta=(genetas_->at(j) - genJetObjects[i]->eta() ); - double deltaPhi=reco::deltaPhi(genphis_->at(j),genJetObjects[i]->phi()); + for (size_t j=0; jsize(); j++){ + double deltaEta=(L1etas_->at(j) - L1JetObjects[i]->eta() ); + double deltaPhi=reco::deltaPhi(L1phis_->at(j),L1JetObjects[i]->phi()); double dR=sqrt( deltaEta*deltaEta + deltaPhi*deltaPhi) ; if(dR<0.05) {isEle=true;} } if (isEle) continue; - if(genJetObjects[i]->pt()<10) continue; -// std::cout<pt()<<" "<eta()<<" "<phi()<push_back(genJetObjects[i]->pt()); - genJetetas_->push_back(genJetObjects[i]->eta()); - genJetphis_->push_back(genJetObjects[i]->phi()); + if(L1JetObjects[i]->pt()<10) continue; +// std::cout<pt()<<" "<eta()<<" "<phi()<push_back(L1JetObjects[i]->pt()); + L1Jetetas_->push_back(L1JetObjects[i]->eta()); + L1Jetphis_->push_back(L1JetObjects[i]->phi()); int match=-1; double minAngle=2; for (size_t j=0; jsize(); j++){ - double deltaEta=(jetetas_->at(j) - genJetObjects[i]->eta() ); - double deltaPhi=reco::deltaPhi(jetphis_->at(j),genJetObjects[i]->phi()); + double deltaEta=(jetetas_->at(j) - L1JetObjects[i]->eta() ); + double deltaPhi=reco::deltaPhi(jetphis_->at(j),L1JetObjects[i]->phi()); double dR=sqrt( deltaEta*deltaEta + deltaPhi*deltaPhi) ; if(dRpush_back(match); + L1Jetmatches_->push_back(match); // std::cout<<"-----> matched to"<pt(); met_Phi_=metObject[0]->phi(); // std::cout<<"MET: "<pt(); - genMet_Phi_=genMetObject[0]->phi(); -// std::cout<<"GenMET: "<pt(); + L1Met_Phi_=L1MetObject[0]->phi(); +// std::cout<<"GenMET: "<Fill(); From ff20bae053d6d4d95aa42cb0adc518f0a08f4a8a Mon Sep 17 00:00:00 2001 From: Aaron Levine Date: Thu, 9 Apr 2015 12:52:43 -0500 Subject: [PATCH 11/14] fix name confusion: gen->L1 --- plugins/MiniEffiTree.cc | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/plugins/MiniEffiTree.cc b/plugins/MiniEffiTree.cc index d70b328..ed68e35 100644 --- a/plugins/MiniEffiTree.cc +++ b/plugins/MiniEffiTree.cc @@ -106,6 +106,7 @@ MiniEffiTree::MiniEffiTree(const edm::ParameterSet& pset) { phis_ = new std::vector(); L1matches_ = new std::vector(); + L1pts_ = new std::vector(); L1etas_ = new std::vector(); L1phis_ = new std::vector(); @@ -366,7 +367,6 @@ void MiniEffiTree::analyze(const edm::Event& evt, const edm::EventSetup& es) { L1charges_->push_back(L1Objects[i]->charge()); } - for (size_t i = 0; i < egObjects.size(); ++i) { // std::cout<pt()<<" "<eta()<<" "<phi()<push_back(egObjects[i]->pt()); @@ -415,6 +415,8 @@ void MiniEffiTree::analyze(const edm::Event& evt, const edm::EventSetup& es) { } } + + /* for (size_t i =0; i < objects.size(); ++i){ int match=-1; //double minAngle=0.5; @@ -434,7 +436,7 @@ void MiniEffiTree::analyze(const edm::Event& evt, const edm::EventSetup& es) { dREgTau_->push_back(minAngle); } - + */ for (size_t i =0; i < L1Objects.size(); ++i){ @@ -449,8 +451,8 @@ void MiniEffiTree::analyze(const edm::Event& evt, const edm::EventSetup& es) { std::cout <<"L1EGdEta, L1EGdPhi, L1EGdR " << deltaEta << " " << deltaPhi << " " << dR << std::endl; if(dRpush_back(match); - dRL1EgTau_->push_back(minAngle); + //L1EgTaumatches_->push_back(match); + //dRL1EgTau_->push_back(minAngle); } From 883cdf00a1e841f2778a415930ca6f09ec2ffe19 Mon Sep 17 00:00:00 2001 From: Aaron Levine Date: Thu, 9 Apr 2015 13:37:25 -0500 Subject: [PATCH 12/14] updated for strucutre of products in 7_4_X (isolated taus produced seperately) --- test/NtupilizeEmulatorRates.py | 37 ++++++++++++++++++++++++++++++---- 1 file changed, 33 insertions(+), 4 deletions(-) diff --git a/test/NtupilizeEmulatorRates.py b/test/NtupilizeEmulatorRates.py index aeeb2c0..b27cc44 100644 --- a/test/NtupilizeEmulatorRates.py +++ b/test/NtupilizeEmulatorRates.py @@ -14,15 +14,15 @@ process.load('Configuration.Geometry.GeometryIdeal_cff')\ # Make the framework shut up. -process.load("FWCore.MessageLogger.MessageLogger_cfi") -process.MessageLogger.cerr.FwkReport.reportEvery = 100 - +#process.load("FWCore.MessageLogger.MessageLogger_cfi") +#process.MessageLogger.cerr.FwkReport.reportEvery = 100 # Spit out filter efficiency at the end. process.options = cms.untracked.PSet(wantSummary = cms.untracked.bool(True)) #Max Events process.maxEvents = cms.untracked.PSet( input = cms.untracked.int32(options.maxEvents) + #input = cms.untracked.int32(10000) ) #Input @@ -40,10 +40,27 @@ from Configuration.AlCa.GlobalTag import GlobalTag process.GlobalTag.connect = cms.string('frontier://FrontierProd/CMS_COND_31X_GLOBALTAG') -process.GlobalTag.globaltag = cms.string('POSTLS162_V2::All') +#process.GlobalTag.globaltag = cms.string('POSTLS162_V2::All') +process.GlobalTag.globaltag = cms.string('POSTLS172_V2::All') + process.load('L1Trigger.L1TCalorimeter.L1TCaloStage1_PPFromRaw_cff') +from CondCore.DBCommon.CondDBSetup_cfi import CondDBSetup +process.newRCTConfig = cms.ESSource("PoolDBESSource", + CondDBSetup, + connect = cms.string('frontier://FrontierPrep/CMS_COND_L1T'), + DumpStat=cms.untracked.bool(True), + toGet = cms.VPSet( + cms.PSet( + record = cms.string('L1RCTParametersRcd'), + tag = cms.string('L1RCTParametersRcd_L1TDevelCollisions_ExtendedScaleFactorsV2') + ) + ) +) +process.prefer("newRCTConfig") + + process.p1 = cms.Path( process.L1TCaloStage1_PPFromRaw +process.l1ExtraLayer2 @@ -55,10 +72,22 @@ # src = cms.VInputTag(cms.InputTag("CaloStage1FinalDigis", "rlxTaus")) src = cms.VInputTag(cms.InputTag("l1ExtraLayer2", "Tau")) ) +process.TauEmulIso = cms.EDAnalyzer( + "RateTreeEmul", + #src = cms.VInputTag(cms.InputTag("L1TCaloRCTToUpgradeConverter","tauJets")) + # src = cms.VInputTag(cms.InputTag("CaloStage1FinalDigis", "rlxTaus")) + src = cms.VInputTag(cms.InputTag("l1ExtraLayer2", "IsoTau")) +) + + + +process.l1RCTParametersTest = cms.EDAnalyzer("L1RCTParametersTester") process.p2 = cms.Path( process.TauEmul + +process.TauEmulIso + +process.l1RCTParametersTest ) process.schedule = cms.Schedule( From 782728dd8a405bcd0bed48001756535243409d64 Mon Sep 17 00:00:00 2001 From: Aaron Levine Date: Thu, 9 Apr 2015 13:37:39 -0500 Subject: [PATCH 13/14] updated for strucutre of products in 7_4_X (isolated taus produced seperately) --- test/NtupilizeEmulatorEffi.py | 56 +++++++++++++++++++++++++++-------- 1 file changed, 44 insertions(+), 12 deletions(-) diff --git a/test/NtupilizeEmulatorEffi.py b/test/NtupilizeEmulatorEffi.py index 6353908..cfc553b 100644 --- a/test/NtupilizeEmulatorEffi.py +++ b/test/NtupilizeEmulatorEffi.py @@ -22,14 +22,14 @@ #Max Events process.maxEvents = cms.untracked.PSet( - #input = cms.untracked.int32(options.maxEvents) - input = cms.untracked.int32(3) + input = cms.untracked.int32(options.maxEvents) + #input = cms.untracked.int32(100) ) #Input process.source = cms.Source("PoolSource", fileNames = cms.untracked.vstring(options.inputFiles) -# fileNames = cms.untracked.vstring("/store/mc/Fall13dr/Neutrino_Pt-2to20_gun/GEN-SIM-RAW/tsg_PU40bx25_POSTLS162_V2-v1/00005/C2D9064D-FB7F-E311-BFCC-003048679228.root") + #fileNames = cms.untracked.vstring("/store/mc/Fall13dr/Neutrino_Pt-2to20_gun/GEN-SIM-RAW/tsg_PU40bx25_POSTLS162_V2-v1/00005/C2D9064D-FB7F-E311-BFCC-003048679228.root") ) #Output @@ -40,11 +40,25 @@ from Configuration.AlCa.GlobalTag import GlobalTag process.GlobalTag.connect = cms.string('frontier://FrontierProd/CMS_COND_31X_GLOBALTAG') -process.GlobalTag.globaltag = cms.string('POSTLS162_V2::All') +process.GlobalTag.globaltag = cms.string('POSTLS172_V2::All') process.load('L1Trigger.L1TCalorimeter.L1TCaloStage1_PPFromRaw_cff') process.load("L1Trigger.UWTriggerTools.recoObjects_cfi") +from CondCore.DBCommon.CondDBSetup_cfi import CondDBSetup +process.newRCTConfig = cms.ESSource("PoolDBESSource", + CondDBSetup, + connect = cms.string('frontier://FrontierPrep/CMS_COND_L1T'), + DumpStat=cms.untracked.bool(True), + toGet = cms.VPSet( + cms.PSet( + record = cms.string('L1RCTParametersRcd'), + tag = cms.string('L1RCTParametersRcd_L1TDevelCollisions_ExtendedScaleFactorsV2') + ) + ) +) +process.prefer("newRCTConfig") + reco_object_step = process.recoObjects process.p1 = cms.Path( reco_object_step+ @@ -56,28 +70,46 @@ "MiniEffiTree", src = cms.VInputTag("recoTaus"), #src = cms.VInputTag("isoTaus"), - genSrc = cms.VInputTag(cms.InputTag("l1ExtraLayer2","Tau")), - #genSrc = cms.VInputTag(cms.InputTag("caloStage1Digis","rlxTaus")), + L1Src = cms.VInputTag(cms.InputTag("l1ExtraLayer2","Tau")), + #L1Src = cms.VInputTag(cms.InputTag("caloStage1Digis","rlxTaus")), + srcJet = cms.VInputTag("ak5PFJets"), + L1SrcJet = cms.VInputTag(cms.InputTag("l1ExtraLayer2","Central")), + srcEg = cms.VInputTag("recoElecs"), + L1SrcEg = cms.VInputTag(cms.InputTag("l1ExtraLayer2","NonIsolated")), + metSrc = cms.VInputTag("tcMet"), + L1MetSrc = cms.VInputTag(cms.InputTag("l1ExtraLayer2","MET")) +) +process.TauEmulEffiIso = cms.EDAnalyzer( + "MiniEffiTree", + src = cms.VInputTag("recoTaus"), + #src = cms.VInputTag("isoTaus"), + L1Src = cms.VInputTag(cms.InputTag("l1ExtraLayer2","IsoTau")), + #L1Src = cms.VInputTag(cms.InputTag("caloStage1Digis","rlxTaus")), srcJet = cms.VInputTag("ak5PFJets"), - genSrcJet = cms.VInputTag(cms.InputTag("l1ExtraLayer2","Central")), + L1SrcJet = cms.VInputTag(cms.InputTag("l1ExtraLayer2","Central")), srcEg = cms.VInputTag("recoElecs"), - genSrcEg = cms.VInputTag(cms.InputTag("l1ExtraLayer2","NonIsolated")), + L1SrcEg = cms.VInputTag(cms.InputTag("l1ExtraLayer2","NonIsolated")), metSrc = cms.VInputTag("tcMet"), - genMetSrc = cms.VInputTag(cms.InputTag("l1ExtraLayer2","MET")) + L1MetSrc = cms.VInputTag(cms.InputTag("l1ExtraLayer2","MET")) ) +process.l1RCTParametersTest = cms.EDAnalyzer("L1RCTParametersTester") + + #process.EGEmulEffi = cms.EDAnalyzer( # "MiniEffiTree", # src = cms.VInputTag("recoElecs"), -# genSrc = cms.VInputTag(cms.InputTag("l1ExtraLayer2","NonIsolated")), +# L1Src = cms.VInputTag(cms.InputTag("l1ExtraLayer2","NonIsolated")), # srcJet = cms.VInputTag("ak5PFJets"), -# genSrcJet = cms.VInputTag(cms.InputTag("l1ExtraLayer2","Central")), +# L1SrcJet = cms.VInputTag(cms.InputTag("l1ExtraLayer2","Central")), # metSrc = cms.VInputTag("tcMet"), -# genMetSrc = cms.VInputTag(cms.InputTag("l1ExtraLayer2","MET")) +# L1MetSrc = cms.VInputTag(cms.InputTag("l1ExtraLayer2","MET")) #) process.p2 = cms.Path( process.TauEmulEffi + +process.TauEmulEffiIso + +process.l1RCTParametersTest #+ process.EGEmulEffi ) From 3fd91c1c5107089792b43c2cdc6e520ba719a36e Mon Sep 17 00:00:00 2001 From: Aaron Levine Date: Mon, 4 May 2015 03:07:54 -0500 Subject: [PATCH 14/14] input parameters from command line, input file for isolation --- test/NtupilizeEmulatorEffiModifyParams.py | 202 +++++++++++++++++++++ test/NtupilizeEmulatorRatesModifyParams.py | 178 ++++++++++++++++++ 2 files changed, 380 insertions(+) create mode 100644 test/NtupilizeEmulatorEffiModifyParams.py create mode 100644 test/NtupilizeEmulatorRatesModifyParams.py diff --git a/test/NtupilizeEmulatorEffiModifyParams.py b/test/NtupilizeEmulatorEffiModifyParams.py new file mode 100644 index 0000000..a7a9667 --- /dev/null +++ b/test/NtupilizeEmulatorEffiModifyParams.py @@ -0,0 +1,202 @@ +import FWCore.ParameterSet.Config as cms +import os + +from FWCore.ParameterSet.VarParsing import VarParsing +options = VarParsing('analysis') +options.outputFile = "NtupilizeEmulatorEffiModifyParams.root" +options.register ('eActivityCut', 4, VarParsing.multiplicity.singleton, VarParsing.varType.int, + "Tau Veto HCAL Activity Threshold") +options.register ('hActivityCut', 4, VarParsing.multiplicity.singleton, VarParsing.varType.int, + "Tau Veto ECAL Activity Threshold") +options.register ('tauThresh', 7, VarParsing.multiplicity.singleton, VarParsing.varType.int, + "Tau Seed Threshold") +options.register ('tauNThresh', 0, VarParsing.multiplicity.singleton, VarParsing.varType.int, + "Tau Neighbor Seed Threshold") +options.register ('maxPtTauVeto', 64, VarParsing.multiplicity.singleton, VarParsing.varType.int, + "Tau max Pt Tau Veto") +options.register ('tauIsoLUTFile', "/afs/hep.wisc.edu/cms/aglevine/L1Emulator/CMSSW_7_4_0_pre8/src/L1Trigger/L1TCalorimeter/data/tauIsoLutTest0.15Iso.txt", VarParsing.multiplicity.singleton, VarParsing.varType.string, + "Tau Isolation Cut") + +options.parseArguments() +print '========Tau Parameter Configuration=======' +print 'eActivityCut = ',options.eActivityCut,' GeV' +print 'hActivityCut = ',options.hActivityCut,' GeV' +print 'tauThresh = ',options.tauThresh,' GeV' +print 'tauNThresh = ',options.tauNThresh,' GeV' +print 'maxPtTauVeto = ',options.maxPtTauVeto,' GeV' +print 'tauIsoLUTFile = ',options.tauIsoLUTFile +process = cms.Process('EmulatorEffiNtupilizer') + +process.load('Configuration.StandardSequences.Services_cff') +process.load('FWCore.MessageService.MessageLogger_cfi') +process.load('Configuration/StandardSequences/FrontierConditions_GlobalTag_cff') +process.load('Configuration.EventContent.EventContent_cff') + +process.load('Configuration.Geometry.GeometryIdeal_cff') +# Make the framework shut up. +process.load("FWCore.MessageLogger.MessageLogger_cfi") +process.MessageLogger.cerr.FwkReport.reportEvery = 100 + +# Spit out filter efficiency at the end. +#process.options = cms.untracked.PSet(wantSummary = cms.untracked.bool(True)) + +#Max Events +process.maxEvents = cms.untracked.PSet( + input = cms.untracked.int32(options.maxEvents) + #input = cms.untracked.int32(100) +) + +#Input +process.source = cms.Source("PoolSource", + fileNames = cms.untracked.vstring(options.inputFiles) + #fileNames = cms.untracked.vstring("/store/mc/Fall13dr/Neutrino_Pt-2to20_gun/GEN-SIM-RAW/tsg_PU40bx25_POSTLS162_V2-v1/00005/C2D9064D-FB7F-E311-BFCC-003048679228.root") +) + +#Output +process.TFileService = cms.Service( + "TFileService", + fileName = cms.string(options.outputFile) +) + +from Configuration.AlCa.GlobalTag import GlobalTag +process.GlobalTag.connect = cms.string('frontier://FrontierProd/CMS_COND_31X_GLOBALTAG') +process.GlobalTag.globaltag = cms.string('POSTLS172_V2::All') +######################### +from L1Trigger.L1TCalorimeter.caloStage1Params_cfi import * +process.load("L1Trigger.L1TCalorimeter.caloStage1Params_cfi") +process.caloStage1Params.tauSeedThreshold = cms.double(options.tauThresh) #pre-RCT Calibration 7GeV +process.caloStage1Params.tauNeighbourThreshold = cms.double(options.tauNThresh) #pre-RCT Calibration 0GeV +process.caloStage1Params.tauMaxPtTauVeto = cms.double(options.maxPtTauVeto) #pre-RCT Calibration 64GeV +process.caloStage1Params.tauIsoLUTFile = cms.FileInPath(options.tauIsoLUTFile) #pre-RCT Calibration 0.1 + +#process.load('L1Trigger.L1TCalorimeter.L1TCaloStage1_PPFromRaw_cff') +# HCAL TP hack +process.load("L1Trigger.L1TCalorimeter.L1TRerunHCALTP_FromRaw_cff") + +### Set RCT EG Activity Threshold and Hadronic Activity Threshold Here +#process.load("L1Trigger.L1TCalorimeter.caloStage1RCTLuts_cff") +process.load("L1Trigger.L1TCalorimeter.caloStage1RCTLuts_NewRCTCalib_cff") +process.RCTConfigProducers.hActivityCut = options.hActivityCut +process.RCTConfigProducers.eActivityCut = options.eActivityCut + +### RCT To Digi Sequence +process.load("Configuration.StandardSequences.RawToDigi_Data_cff") + +# RCT +# HCAL input would be from hcalDigis if hack not needed +process.load("L1Trigger.Configuration.SimL1Emulator_cff"); +process.simRctDigis.ecalDigis = cms.VInputTag( cms.InputTag( 'ecalDigis:EcalTriggerPrimitives' ) ) +process.simRctDigis.hcalDigis = cms.VInputTag( cms.InputTag( 'simHcalTriggerPrimitiveDigis' ) ) + +### stage 1 +process.load("L1Trigger.L1TCalorimeter.L1TCaloStage1_cff") + +### L1Extra +process.load("L1Trigger.Configuration.L1Extra_cff") +process.l1ExtraLayer2 = L1Trigger.Configuration.L1Extra_cff.l1extraParticles.clone() +process.l1ExtraLayer2.isolatedEmSource = cms.InputTag("simCaloStage1LegacyFormatDigis","isoEm") +process.l1ExtraLayer2.nonIsolatedEmSource = cms.InputTag("simCaloStage1LegacyFormatDigis","nonIsoEm") + +process.l1ExtraLayer2.forwardJetSource = cms.InputTag("simCaloStage1LegacyFormatDigis","forJets") +process.l1ExtraLayer2.centralJetSource = cms.InputTag("simCaloStage1LegacyFormatDigis","cenJets") +process.l1ExtraLayer2.tauJetSource = cms.InputTag("simCaloStage1LegacyFormatDigis","tauJets") +process.l1ExtraLayer2.isoTauJetSource = cms.InputTag("simCaloStage1LegacyFormatDigis","isoTauJets") + +process.l1ExtraLayer2.etTotalSource = cms.InputTag("simCaloStage1LegacyFormatDigis") +process.l1ExtraLayer2.etHadSource = cms.InputTag("simCaloStage1LegacyFormatDigis") +process.l1ExtraLayer2.etMissSource = cms.InputTag("simCaloStage1LegacyFormatDigis") +process.l1ExtraLayer2.htMissSource = cms.InputTag("simCaloStage1LegacyFormatDigis") + +process.l1ExtraLayer2.hfRingEtSumsSource = cms.InputTag("simCaloStage1LegacyFormatDigis") +process.l1ExtraLayer2.hfRingBitCountsSource = cms.InputTag("simCaloStage1LegacyFormatDigis") + +## update l1ExtraLayer2 muon tag +process.l1ExtraLayer2.muonSource = cms.InputTag("simGmtDigis") + +######################### + +# GT + # GT +from L1Trigger.Configuration.SimL1Emulator_cff import simGtDigis +process.simGtDigis = simGtDigis.clone() +process.simGtDigis.GmtInputTag = 'simGmtDigis' +process.simGtDigis.GctInputTag = 'caloStage1LegacyFormatDigis' +process.simGtDigis.TechnicalTriggersInputTags = cms.VInputTag( ) + +process.load("L1Trigger.UWTriggerTools.recoObjects_cfi") + +#from CondCore.DBCommon.CondDBSetup_cfi import CondDBSetup +#process.newRCTConfig = cms.ESSource("PoolDBESSource", +# CondDBSetup, +# connect = cms.string('frontier://FrontierPrep/CMS_COND_L1T'), +# DumpStat=cms.untracked.bool(True), +# toGet = cms.VPSet( +# cms.PSet( +# record = cms.string('L1RCTParametersRcd'), +# tag = cms.string('L1RCTParametersRcd_L1TDevelCollisions_ExtendedScaleFactorsV1') +# ) +# ) +#) +#process.prefer("newRCTConfig") +reco_object_step = process.recoObjects +process.p1 = cms.Path( + reco_object_step+ + process.L1TRerunHCALTP_FromRAW + +process.ecalDigis + +process.simRctDigis + +process.L1TCaloStage1 + +process.simGtDigis + +process.l1ExtraLayer2 +) + +process.TauEmulEffi = cms.EDAnalyzer( + "MiniEffiTree", + src = cms.VInputTag("recoTaus"), + #src = cms.VInputTag("isoTaus"), + L1Src = cms.VInputTag(cms.InputTag("l1ExtraLayer2","Tau")), + #L1Src = cms.VInputTag(cms.InputTag("caloStage1Digis","rlxTaus")), + srcJet = cms.VInputTag("ak5PFJets"), + L1SrcJet = cms.VInputTag(cms.InputTag("l1ExtraLayer2","Central")), + srcEg = cms.VInputTag("recoElecs"), + L1SrcEg = cms.VInputTag(cms.InputTag("l1ExtraLayer2","NonIsolated")), + metSrc = cms.VInputTag("tcMet"), + L1MetSrc = cms.VInputTag(cms.InputTag("l1ExtraLayer2","MET")) +) +process.TauEmulEffiIso = cms.EDAnalyzer( + "MiniEffiTree", + src = cms.VInputTag("recoTaus"), + #src = cms.VInputTag("isoTaus"), + L1Src = cms.VInputTag(cms.InputTag("l1ExtraLayer2","IsoTau")), + #L1Src = cms.VInputTag(cms.InputTag("caloStage1Digis","rlxTaus")), + srcJet = cms.VInputTag("ak5PFJets"), + L1SrcJet = cms.VInputTag(cms.InputTag("l1ExtraLayer2","Central")), + srcEg = cms.VInputTag("recoElecs"), + L1SrcEg = cms.VInputTag(cms.InputTag("l1ExtraLayer2","NonIsolated")), + metSrc = cms.VInputTag("tcMet"), + L1MetSrc = cms.VInputTag(cms.InputTag("l1ExtraLayer2","MET")) +) + +process.l1RCTParametersTest = cms.EDAnalyzer("L1RCTParametersTester") + + +#process.EGEmulEffi = cms.EDAnalyzer( +# "MiniEffiTree", +# src = cms.VInputTag("recoElecs"), +# L1Src = cms.VInputTag(cms.InputTag("l1ExtraLayer2","NonIsolated")), +# srcJet = cms.VInputTag("ak5PFJets"), +# L1SrcJet = cms.VInputTag(cms.InputTag("l1ExtraLayer2","Central")), +# metSrc = cms.VInputTag("tcMet"), +# L1MetSrc = cms.VInputTag(cms.InputTag("l1ExtraLayer2","MET")) +#) + +process.p2 = cms.Path( + process.TauEmulEffi + +process.TauEmulEffiIso + #+process.l1RCTParametersTest + #+ process.EGEmulEffi +) + +process.schedule = cms.Schedule( + process.p1, + process.p2 +) diff --git a/test/NtupilizeEmulatorRatesModifyParams.py b/test/NtupilizeEmulatorRatesModifyParams.py new file mode 100644 index 0000000..3930e7a --- /dev/null +++ b/test/NtupilizeEmulatorRatesModifyParams.py @@ -0,0 +1,178 @@ +import FWCore.ParameterSet.Config as cms +import os + +from FWCore.ParameterSet.VarParsing import VarParsing +options = VarParsing('analysis') +options.outputFile = "NtupilizeEmulatorRatesModifyParams.root" +options.register ('eActivityCut', 4, VarParsing.multiplicity.singleton, VarParsing.varType.int, + "Tau Veto HCAL Activity Threshold") +options.register ('hActivityCut', 4, VarParsing.multiplicity.singleton, VarParsing.varType.int, + "Tau Veto ECAL Activity Threshold") +options.register ('tauThresh', 7, VarParsing.multiplicity.singleton, VarParsing.varType.int, + "Tau Seed Threshold") +options.register ('tauNThresh', 0, VarParsing.multiplicity.singleton, VarParsing.varType.int, + "Tau Neighbor Seed Threshold") +options.register ('maxPtTauVeto', 64, VarParsing.multiplicity.singleton, VarParsing.varType.int, + "Tau max Pt Tau Veto") +options.register ('tauIsoLUTFile', "/afs/hep.wisc.edu/cms/aglevine/L1Emulator/CMSSW_7_4_0_pre8/src/L1Trigger/L1TCalorimeter/data/tauIsoLutTest0.15Iso.txt", VarParsing.multiplicity.singleton, VarParsing.varType.string, + "Tau Isolation Cut") +options.parseArguments() +print '========Tau Parameter Configuration=======' +print 'eActivityCut = ',options.eActivityCut,' GeV' +print 'hActivityCut = ',options.hActivityCut,' GeV' +print 'tauThresh = ',options.tauThresh,' GeV' +print 'tauNThresh = ',options.tauNThresh,' GeV' +print 'maxPtTauVeto = ',options.maxPtTauVeto,' GeV' +print 'tauIsoLUTFile = ',options.tauIsoLUTFile + + +process = cms.Process('EmulatorNtupilizer') + +process.load('Configuration.StandardSequences.Services_cff') +process.load('FWCore.MessageService.MessageLogger_cfi') +process.load('Configuration/StandardSequences/FrontierConditions_GlobalTag_cff') +process.load('Configuration.EventContent.EventContent_cff') +process.load('Configuration.Geometry.GeometryIdeal_cff')\ + +# Make the framework shut up. +process.load("FWCore.MessageLogger.MessageLogger_cfi") +process.MessageLogger.cerr.FwkReport.reportEvery = 100 +# Spit out filter efficiency at the end. +process.options = cms.untracked.PSet(wantSummary = cms.untracked.bool(True)) + +#Max Events +process.maxEvents = cms.untracked.PSet( + input = cms.untracked.int32(options.maxEvents) + #input = cms.untracked.int32(10000) +) + +#Input +process.source = cms.Source("PoolSource", + fileNames = cms.untracked.vstring(options.inputFiles) +# fileNames = cms.untracked.vstring("/store/mc/Fall13dr/Neutrino_Pt-2to20_gun/GEN-SIM-RAW/tsg_PU40bx25_POSTLS162_V2-v1/00005/C2D9064D-FB7F-E311-BFCC-003048679228.root") +) + +#Output +#options.outputFile = "L1EmulatorTree.root" +process.TFileService = cms.Service( + "TFileService", + fileName = cms.string(options.outputFile) +) + +from Configuration.AlCa.GlobalTag import GlobalTag +process.GlobalTag.connect = cms.string('frontier://FrontierProd/CMS_COND_31X_GLOBALTAG') +#process.GlobalTag.globaltag = cms.string('POSTLS162_V2::All') +process.GlobalTag.globaltag = cms.string('POSTLS172_V2::All') + + +from L1Trigger.L1TCalorimeter.caloStage1Params_cfi import * +process.load("L1Trigger.L1TCalorimeter.caloStage1Params_cfi") +process.caloStage1Params.tauSeedThreshold = cms.double(options.tauThresh) #pre-RCT Calibration 7GeV +process.caloStage1Params.tauNeighbourThreshold = cms.double(options.tauNThresh) #pre-RCT Calibration 0GeV +process.caloStage1Params.tauMaxPtTauVeto = cms.double(options.maxPtTauVeto) #pre-RCT Calibration 64GeV +process.caloStage1Params.tauIsoLUTFile = cms.FileInPath(options.tauIsoLUTFile) #pre-RCT Calibration 0.1 Iso, 192 GeV Turn Off Tau Iso + +#process.load('L1Trigger.L1TCalorimeter.L1TCaloStage1_PPFromRaw_cff') +# HCAL TP hack +process.load("L1Trigger.L1TCalorimeter.L1TRerunHCALTP_FromRaw_cff") + +### Set RCT EG Activity Threshold and Hadronic Activity Threshold Here +#process.load("L1Trigger.L1TCalorimeter.caloStage1RCTLuts_cff") +process.load("L1Trigger.L1TCalorimeter.caloStage1RCTLuts_NewRCTCalib_cff") +process.RCTConfigProducers.hActivityCut = options.hActivityCut +process.RCTConfigProducers.eActivityCut = options.eActivityCut + +### RCT To Digi Sequence +process.load("Configuration.StandardSequences.RawToDigi_Data_cff") + +# RCT +# HCAL input would be from hcalDigis if hack not needed +process.load("L1Trigger.Configuration.SimL1Emulator_cff"); +process.simRctDigis.ecalDigis = cms.VInputTag( cms.InputTag( 'ecalDigis:EcalTriggerPrimitives' ) ) +process.simRctDigis.hcalDigis = cms.VInputTag( cms.InputTag( 'simHcalTriggerPrimitiveDigis' ) ) + +### stage 1 +process.load("L1Trigger.L1TCalorimeter.L1TCaloStage1_cff") + +### L1Extra +process.load("L1Trigger.Configuration.L1Extra_cff") +process.l1ExtraLayer2 = L1Trigger.Configuration.L1Extra_cff.l1extraParticles.clone() +process.l1ExtraLayer2.isolatedEmSource = cms.InputTag("simCaloStage1LegacyFormatDigis","isoEm") +process.l1ExtraLayer2.nonIsolatedEmSource = cms.InputTag("simCaloStage1LegacyFormatDigis","nonIsoEm") + +process.l1ExtraLayer2.forwardJetSource = cms.InputTag("simCaloStage1LegacyFormatDigis","forJets") +process.l1ExtraLayer2.centralJetSource = cms.InputTag("simCaloStage1LegacyFormatDigis","cenJets") +process.l1ExtraLayer2.tauJetSource = cms.InputTag("simCaloStage1LegacyFormatDigis","tauJets") +process.l1ExtraLayer2.isoTauJetSource = cms.InputTag("simCaloStage1LegacyFormatDigis","isoTauJets") +process.l1ExtraLayer2.etTotalSource = cms.InputTag("simCaloStage1LegacyFormatDigis") +process.l1ExtraLayer2.etHadSource = cms.InputTag("simCaloStage1LegacyFormatDigis") +process.l1ExtraLayer2.etMissSource = cms.InputTag("simCaloStage1LegacyFormatDigis") +process.l1ExtraLayer2.htMissSource = cms.InputTag("simCaloStage1LegacyFormatDigis") + +process.l1ExtraLayer2.hfRingEtSumsSource = cms.InputTag("simCaloStage1LegacyFormatDigis") +process.l1ExtraLayer2.hfRingBitCountsSource = cms.InputTag("simCaloStage1LegacyFormatDigis") + +## update l1ExtraLayer2 muon tag +process.l1ExtraLayer2.muonSource = cms.InputTag("simGmtDigis") +######################### + +# GT + # GT +from L1Trigger.Configuration.SimL1Emulator_cff import simGtDigis +process.simGtDigis = simGtDigis.clone() +process.simGtDigis.GmtInputTag = 'simGmtDigis' +process.simGtDigis.GctInputTag = 'caloStage1LegacyFormatDigis' +process.simGtDigis.TechnicalTriggersInputTags = cms.VInputTag( ) + + +#from CondCore.DBCommon.CondDBSetup_cfi import CondDBSetup +#process.newRCTConfig = cms.ESSource("PoolDBESSource", +# CondDBSetup, +# connect = cms.string('frontier://FrontierPrep/CMS_COND_L1T'), +# DumpStat=cms.untracked.bool(True), +# toGet = cms.VPSet( +# cms.PSet( +# record = cms.string('L1RCTParametersRcd'), +# tag = cms.string('L1RCTParametersRcd_L1TDevelCollisions_ExtendedScaleFactorsV1') +# ) +# ) +#) +#process.prefer("newRCTConfig") +process.p1 = cms.Path( + #process.L1TCaloStage1_PPFromRaw + process.L1TRerunHCALTP_FromRAW + +process.ecalDigis + +process.simRctDigis + +process.L1TCaloStage1 + +process.simGtDigis + +process.l1ExtraLayer2 +) + +process.TauEmul = cms.EDAnalyzer( + "RateTreeEmul", + #src = cms.VInputTag(cms.InputTag("L1TCaloRCTToUpgradeConverter","tauJets")) + # src = cms.VInputTag(cms.InputTag("CaloStage1FinalDigis", "rlxTaus")) + src = cms.VInputTag(cms.InputTag("l1ExtraLayer2", "Tau")) +) +process.TauEmulIso = cms.EDAnalyzer( + "RateTreeEmul", + #src = cms.VInputTag(cms.InputTag("L1TCaloRCTToUpgradeConverter","tauJets")) + # src = cms.VInputTag(cms.InputTag("CaloStage1FinalDigis", "rlxTaus")) + src = cms.VInputTag(cms.InputTag("l1ExtraLayer2", "IsoTau")) +) + + + +process.l1RCTParametersTest = cms.EDAnalyzer("L1RCTParametersTester") + + +process.p2 = cms.Path( + process.TauEmul + +process.TauEmulIso + #+process.l1RCTParametersTest +) + +process.schedule = cms.Schedule( + process.p1, + process.p2 +)