diff --git a/Calibration/IsolatedParticles/plugins/StudyHLT.cc b/Calibration/IsolatedParticles/plugins/StudyHLT.cc index b2761e5cd429b..8b71afacbbc15 100644 --- a/Calibration/IsolatedParticles/plugins/StudyHLT.cc +++ b/Calibration/IsolatedParticles/plugins/StudyHLT.cc @@ -32,37 +32,41 @@ #include "RecoLocalCalo/EcalRecAlgos/interface/EcalSeverityLevelAlgoRcd.h" StudyHLT::StudyHLT(const edm::ParameterSet& iConfig) : nRun(0) { - verbosity = iConfig.getUntrackedParameter("Verbosity",0); - trigNames = iConfig.getUntrackedParameter >("Triggers"); - theTrackQuality = iConfig.getUntrackedParameter("TrackQuality","highPurity"); - reco::TrackBase::TrackQuality trackQuality_=reco::TrackBase::qualityByName(theTrackQuality); - selectionParameters.minPt = iConfig.getUntrackedParameter("MinTrackPt", 10.0); - selectionParameters.minQuality = trackQuality_; - selectionParameters.maxDxyPV = iConfig.getUntrackedParameter("MaxDxyPV", 0.2); - selectionParameters.maxDzPV = iConfig.getUntrackedParameter("MaxDzPV", 5.0); - selectionParameters.maxChi2 = iConfig.getUntrackedParameter("MaxChi2", 5.0); - selectionParameters.maxDpOverP = iConfig.getUntrackedParameter("MaxDpOverP", 0.1); - selectionParameters.minOuterHit = iConfig.getUntrackedParameter("MinOuterHit", 4); - selectionParameters.minLayerCrossed = iConfig.getUntrackedParameter("MinLayerCrossed", 8); - selectionParameters.maxInMiss = iConfig.getUntrackedParameter("MaxInMiss", 0); - selectionParameters.maxOutMiss = iConfig.getUntrackedParameter("MaxOutMiss", 0); - minTrackP = iConfig.getUntrackedParameter("MinTrackP", 1.0); - maxTrackEta = iConfig.getUntrackedParameter("MaxTrackEta", 2.5); + + usesResource("TFileService"); + + verbosity_ = iConfig.getUntrackedParameter("Verbosity",0); + trigNames_ = iConfig.getUntrackedParameter >("Triggers"); + theTrackQuality_ = iConfig.getUntrackedParameter("TrackQuality","highPurity"); + reco::TrackBase::TrackQuality trackQuality=reco::TrackBase::qualityByName(theTrackQuality_); + selectionParameters_.minPt = iConfig.getUntrackedParameter("MinTrackPt", 10.0); + selectionParameters_.minQuality = trackQuality; + selectionParameters_.maxDxyPV = iConfig.getUntrackedParameter("MaxDxyPV", 0.2); + selectionParameters_.maxDzPV = iConfig.getUntrackedParameter("MaxDzPV", 5.0); + selectionParameters_.maxChi2 = iConfig.getUntrackedParameter("MaxChi2", 5.0); + selectionParameters_.maxDpOverP = iConfig.getUntrackedParameter("MaxDpOverP", 0.1); + selectionParameters_.minOuterHit = iConfig.getUntrackedParameter("MinOuterHit", 4); + selectionParameters_.minLayerCrossed= iConfig.getUntrackedParameter("MinLayerCrossed", 8); + selectionParameters_.maxInMiss = iConfig.getUntrackedParameter("MaxInMiss", 0); + selectionParameters_.maxOutMiss = iConfig.getUntrackedParameter("MaxOutMiss", 0); + minTrackP_ = iConfig.getUntrackedParameter("MinTrackP", 1.0); + maxTrackEta_ = iConfig.getUntrackedParameter("MaxTrackEta", 2.5); tMinE_ = iConfig.getUntrackedParameter("TimeMinCutECAL", -500.); tMaxE_ = iConfig.getUntrackedParameter("TimeMaxCutECAL", 500.); tMinH_ = iConfig.getUntrackedParameter("TimeMinCutHCAL", -500.); tMaxH_ = iConfig.getUntrackedParameter("TimeMaxCutHCAL", 500.); - isItAOD = iConfig.getUntrackedParameter("IsItAOD", false); + isItAOD_ = iConfig.getUntrackedParameter("IsItAOD", false); + doTree_ = iConfig.getUntrackedParameter("DoTree", false); triggerEvent_ = edm::InputTag("hltTriggerSummaryAOD","","HLT"); - theTriggerResultsLabel = edm::InputTag("TriggerResults","","HLT"); + theTriggerResultsLabel_ = edm::InputTag("TriggerResults","","HLT"); // define tokens for access tok_lumi = consumes(edm::InputTag("lumiProducer")); tok_trigEvt = consumes(triggerEvent_); - tok_trigRes = consumes(theTriggerResultsLabel); + tok_trigRes = consumes(theTriggerResultsLabel_); tok_genTrack_ = consumes(edm::InputTag("generalTracks")); tok_recVtx_ = consumes(edm::InputTag("offlinePrimaryVertices")); - if (isItAOD) { + if (isItAOD_) { tok_EB_ = consumes(edm::InputTag("reducedEcalRecHitsEB")); tok_EE_ = consumes(edm::InputTag("reducedEcalRecHitsEE")); tok_hbhe_ = consumes(edm::InputTag("reducedHcalRecHits", "hbhereco")); @@ -72,24 +76,24 @@ StudyHLT::StudyHLT(const edm::ParameterSet& iConfig) : nRun(0) { tok_hbhe_ = consumes(edm::InputTag("hbhereco")); } - edm::LogInfo("IsoTrack") << "Verbosity " << verbosity << " with " - << trigNames.size() << " triggers:"; - for (unsigned int k=0; k 0) +// ------------ method fills 'descriptions' with the allowed parameters for the module ------------ +void StudyHLT::fillDescriptions(edm::ConfigurationDescriptions& descriptions) { + //The following says we do not know what parameters are allowed so do no validation + // Please change this to state exactly what you do use, even if it is no parameters + edm::ParameterSetDescription desc; + desc.setUnknown(); + descriptions.addDefault(desc); +} + +void StudyHLT::analyze(edm::Event const& iEvent, edm::EventSetup const& iSetup) { + clear(); + if (verbosity_ > 0) edm::LogInfo("IsoTrack") << "Event starts===================================="; int RunNo = iEvent.id().run(); int EvtNo = iEvent.id().event(); @@ -119,7 +136,7 @@ void StudyHLT::analyze(const edm::Event& iEvent, const edm::EventSetup& iSetup) if (Lumid.isValid()) mybxlumi=Lumid->lumiValue(LumiDetails::kOCC1,iEvent.bunchCrossing())*6.37; - if (verbosity > 0) + if (verbosity_ > 0) edm::LogInfo("IsoTrack") << "RunNo " << RunNo << " EvtNo " << EvtNo << " Lumi " << Lumi << " Bunch " << Bunch << " mybxlumi " << mybxlumi; @@ -129,7 +146,7 @@ void StudyHLT::analyze(const edm::Event& iEvent, const edm::EventSetup& iSetup) iEvent.getByToken(tok_trigEvt,triggerEventHandle); bool ok(false); - if (trigNames.size() < 1) { + if (trigNames_.size() < 1) { ok = true; } else if (!triggerEventHandle.isValid()) { edm::LogWarning("IsoTrack") << "Error! Can't get the product " @@ -152,15 +169,15 @@ void StudyHLT::analyze(const edm::Event& iEvent, const edm::EventSetup& iSetup) // const std::vector& moduleLabels(hltConfig_.moduleLabels(triggerindx)); int ipos=-1; std::string newtriggerName = truncate_str(triggerNames_[iHLT]); - for (unsigned int i=0; iGetNbinsX()) h_HLTAccept->GetXaxis()->SetBinLabel(ipos,newtriggerName.c_str()); } @@ -168,16 +185,16 @@ void StudyHLT::analyze(const edm::Event& iEvent, const edm::EventSetup& iSetup) edm::LogInfo("IsoTrack") << "Wrong trigger " << RunNo << " Event " << EvtNo << " Hlt " << iHLT; } else { - if (firstEvent) h_HLTAccepts[nRun]->GetXaxis()->SetBinLabel(iHLT+1, newtriggerName.c_str()); + if (firstEvent_) h_HLTAccepts[nRun]->GetXaxis()->SetBinLabel(iHLT+1, newtriggerName.c_str()); } int hlt = triggerResults->accept(iHLT); if (hlt) { h_HLTAccepts[nRun]->Fill(iHLT+1); h_HLTAccept->Fill(ipos); } - for (unsigned int i=0; i 0) + for (unsigned int i=0; i 0) edm::LogInfo("IsoTrack") << newtriggerName; if (hlt > 0) { ok = true; @@ -187,7 +204,7 @@ void StudyHLT::analyze(const edm::Event& iEvent, const edm::EventSetup& iSetup) } for (int i=0; i<5; ++i) { if (newtriggerName.find(newNames[i].c_str())!=std::string::npos) { - if (verbosity%10 > 0) + if (verbosity_%10 > 0) edm::LogInfo("IsoTrack") << "[" << i << "] " << newNames[i] << " : " << newtriggerName; if (hlt > 0) newAccept[i] = 1; @@ -238,7 +255,7 @@ void StudyHLT::analyze(const edm::Event& iEvent, const edm::EventSetup& iSetup) nPV = i; break; } } - if ((verbosity/10)%10 > 0) + if ((verbosity_/10)%10 > 0) edm::LogInfo("IsoTrack") << "Number of vertices: " << recVtxs->size() << " Good " << ngoodPV << " Bin " << nPV; h_numberPV->Fill((int)(recVtxs->size())); @@ -254,14 +271,14 @@ void StudyHLT::analyze(const edm::Event& iEvent, const edm::EventSetup& iSetup) double p1 = pTrack->p(); double eta1 = pTrack->momentum().eta(); double phi1 = pTrack->momentum().phi(); - bool quality = pTrack->quality(selectionParameters.minQuality); + bool quality = pTrack->quality(selectionParameters_.minQuality); fillTrack(0, pt1,p1,eta1,phi1); if (quality) fillTrack(1, pt1,p1,eta1,phi1); } h_ntrk[0]->Fill(ntrk); std::vector trkCaloDets; - spr::propagateCALO(trkCollection, geo, bField, theTrackQuality, trkCaloDets, ((verbosity/100)%10 > 0)); + spr::propagateCALO(trkCollection, geo, bField, theTrackQuality_, trkCaloDets, ((verbosity_/100)%10 > 0)); std::vector::const_iterator trkDetItr; for (trkDetItr = trkCaloDets.begin(),ntrk=0; trkDetItr != trkCaloDets.end(); trkDetItr++,ntrk++) { const reco::Track* pTrack = &(*(trkDetItr->trkItr)); @@ -269,14 +286,14 @@ void StudyHLT::analyze(const edm::Event& iEvent, const edm::EventSetup& iSetup) double p1 = pTrack->p(); double eta1 = pTrack->momentum().eta(); double phi1 = pTrack->momentum().phi(); - if ((verbosity/10)%10 > 0) + if ((verbosity_/10)%10 > 0) edm::LogInfo("IsoTrack") << "track: p " << p1 << " pt " << pt1 << " eta " << eta1 << " phi " << phi1 << " okEcal " << trkDetItr->okECAL; fillTrack(2, pt1,p1,eta1,phi1); - if (pt1>minTrackP && std::abs(eta1)okECAL) { + if (pt1>minTrackP_ && std::abs(eta1)okECAL) { fillTrack(3, pt1,p1,eta1,phi1); - double maxNearP31x31 = spr::chargeIsolationEcal(ntrk, trkCaloDets, geo, caloTopology, 15, 15, ((verbosity/1000)%10 > 0)); + double maxNearP31x31 = spr::chargeIsolationEcal(ntrk, trkCaloDets, geo, caloTopology, 15, 15, ((verbosity_/1000)%10 > 0)); edm::ESHandle sevlv; iSetup.get().get(sevlv); @@ -288,15 +305,15 @@ void StudyHLT::analyze(const edm::Event& iEvent, const edm::EventSetup& iSetup) // get ECal Tranverse Profile std::pair e7x7P, e11x11P, e15x15P; const DetId isoCell = trkDetItr->detIdECAL; - e7x7P = spr::eECALmatrix(isoCell,barrelRecHitsHandle,endcapRecHitsHandle, *theEcalChStatus, geo, caloTopology,sevlv.product(),3,3, 0.030, 0.150, tMinE_,tMaxE_, ((verbosity/10000)%10 > 0)); - e11x11P = spr::eECALmatrix(isoCell,barrelRecHitsHandle,endcapRecHitsHandle, *theEcalChStatus, geo, caloTopology,sevlv.product(),5,5, 0.030, 0.150, tMinE_,tMaxE_, ((verbosity/10000)%10 > 0)); - e15x15P = spr::eECALmatrix(isoCell,barrelRecHitsHandle,endcapRecHitsHandle, *theEcalChStatus, geo, caloTopology,sevlv.product(),7,7, 0.030, 0.150, tMinE_,tMaxE_, ((verbosity/10000)%10 > 0)); + e7x7P = spr::eECALmatrix(isoCell,barrelRecHitsHandle,endcapRecHitsHandle, *theEcalChStatus, geo, caloTopology,sevlv.product(),3,3, 0.030, 0.150, tMinE_,tMaxE_, ((verbosity_/10000)%10 > 0)); + e11x11P = spr::eECALmatrix(isoCell,barrelRecHitsHandle,endcapRecHitsHandle, *theEcalChStatus, geo, caloTopology,sevlv.product(),5,5, 0.030, 0.150, tMinE_,tMaxE_, ((verbosity_/10000)%10 > 0)); + e15x15P = spr::eECALmatrix(isoCell,barrelRecHitsHandle,endcapRecHitsHandle, *theEcalChStatus, geo, caloTopology,sevlv.product(),7,7, 0.030, 0.150, tMinE_,tMaxE_, ((verbosity_/10000)%10 > 0)); - double maxNearHcalP7x7 = spr::chargeIsolationHcal(ntrk, trkCaloDets, theHBHETopology, 3,3, ((verbosity/1000)%10 > 0)); + double maxNearHcalP7x7 = spr::chargeIsolationHcal(ntrk, trkCaloDets, theHBHETopology, 3,3, ((verbosity_/1000)%10 > 0)); int ieta(0); double h3x3(0), h5x5(0), h7x7(0); fillIsolation(0, maxNearP31x31,e11x11P.first,e15x15P.first); - if ((verbosity/10)%10 > 0) + if ((verbosity_/10)%10 > 0) edm::LogInfo("IsoTrack") << "Accepted Tracks reaching Ecal maxNearP31x31 " << maxNearP31x31 << " e11x11P " << e11x11P.first << " e15x15P " @@ -308,11 +325,11 @@ void StudyHLT::analyze(const edm::Event& iEvent, const edm::EventSetup& iSetup) iEvent.getByToken(tok_hbhe_, hbhe); const DetId ClosestCell(trkDetItr->detIdHCAL); ieta = ((HcalDetId)(ClosestCell)).ietaAbs(); - h3x3 = spr::eHCALmatrix(theHBHETopology, ClosestCell, hbhe,1,1, false, true, 0.7, 0.8, -100.0, -100.0, tMinH_,tMaxH_, ((verbosity/10000)%10 > 0)); - h5x5 = spr::eHCALmatrix(theHBHETopology, ClosestCell, hbhe,2,2, false, true, 0.7, 0.8, -100.0, -100.0, tMinH_,tMaxH_, ((verbosity/10000)%10 > 0) ); - h7x7 = spr::eHCALmatrix(theHBHETopology, ClosestCell, hbhe,3,3, false, true, 0.7, 0.8, -100.0, -100.0, tMinH_,tMaxH_, ((verbosity/10000)%10 > 0) ); + h3x3 = spr::eHCALmatrix(theHBHETopology, ClosestCell, hbhe,1,1, false, true, 0.7, 0.8, -100.0, -100.0, tMinH_,tMaxH_, ((verbosity_/10000)%10 > 0)); + h5x5 = spr::eHCALmatrix(theHBHETopology, ClosestCell, hbhe,2,2, false, true, 0.7, 0.8, -100.0, -100.0, tMinH_,tMaxH_, ((verbosity_/10000)%10 > 0) ); + h7x7 = spr::eHCALmatrix(theHBHETopology, ClosestCell, hbhe,3,3, false, true, 0.7, 0.8, -100.0, -100.0, tMinH_,tMaxH_, ((verbosity_/10000)%10 > 0) ); fillIsolation(1, maxNearHcalP7x7,h5x5,h7x7); - if ((verbosity/10)%10 > 0) + if ((verbosity_/10)%10 > 0) edm::LogInfo("IsoTrack") << "Tracks Reaching Hcal maxNearHcalP7x7/h5x5/h7x7 " << maxNearHcalP7x7 << "/" << h5x5 << "/" << h7x7; tr_TrkPt.push_back(pt1); @@ -355,27 +372,27 @@ void StudyHLT::analyze(const edm::Event& iEvent, const edm::EventSetup& iSetup) } } h_ntrk[1]->Fill(ntrk); - if (tr_TrkPt.size() > 0) tree_->Fill(); + if (tr_TrkPt.size() > 0 && doTree_) tree_->Fill(); } - firstEvent = false; + firstEvent_ = false; } void StudyHLT::beginJob() { // Book histograms - h_nHLT = fs->make("h_nHLT" , "size of trigger Names", 1000, 0, 1000); - h_HLTAccept = fs->make("h_HLTAccept", "HLT Accepts for all runs", 500, 0, 500); + h_nHLT = fs_->make("h_nHLT" , "size of trigger Names", 1000, 0, 1000); + h_HLTAccept = fs_->make("h_HLTAccept", "HLT Accepts for all runs", 500, 0, 500); for (int i=1; i<=500; ++i) h_HLTAccept->GetXaxis()->SetBinLabel(i," "); - h_nHLTvsRN = fs->make("h_nHLTvsRN" , "size of trigger Names vs RunNo", 2168, 190949, 193116, 100, 400, 500); - h_HLTCorr = fs->make("h_HLTCorr", "Correlation among different paths", 100, 0, 100); - h_numberPV = fs->make("h_numberPV", "Number of Primary Vertex", 100, 0, 100); - h_goodPV = fs->make("h_goodPV", "Number of good Primary Vertex", 100, 0, 100); - h_goodRun = fs->make("h_goodRun","Number of accepted events for Run", 4000, 190000, 1940000); + h_nHLTvsRN = fs_->make("h_nHLTvsRN" , "size of trigger Names vs RunNo", 2168, 190949, 193116, 100, 400, 500); + h_HLTCorr = fs_->make("h_HLTCorr", "Correlation among different paths", 100, 0, 100); + h_numberPV = fs_->make("h_numberPV", "Number of Primary Vertex", 100, 0, 100); + h_goodPV = fs_->make("h_goodPV", "Number of good Primary Vertex", 100, 0, 100); + h_goodRun = fs_->make("h_goodRun","Number of accepted events for Run", 4000, 190000, 1940000); char hname[50], htit[400]; std::string CollectionNames[2] = {"Reco", "Propagated"}; for (unsigned int i=0; i<2; i++) { sprintf(hname, "h_nTrk_%s", CollectionNames[i].c_str()); sprintf(htit, "Number of %s tracks", CollectionNames[i].c_str()); - h_ntrk[i] = fs->make(hname, htit, 500, 0, 500); + h_ntrk[i] = fs_->make(hname, htit, 500, 0, 500); } std::string TrkNames[8] = {"All", "Quality", "NoIso", "okEcal", "EcalCharIso", "HcalCharIso", "EcalNeutIso", "HcalNeutIso"}; for (unsigned int i=0; i<8+nPVBin; i++) { @@ -386,7 +403,7 @@ void StudyHLT::beginJob() { sprintf(hname, "h_pt_%s_%d", TrkNames[7].c_str(), i-8); sprintf(htit, "p_{T} of %s tracks (PV=%d:%d)", TrkNames[7].c_str(), pvBin[i-8], pvBin[i-7]-1); } - h_pt[i] = fs->make(hname, htit, 400, 0, 200.0); + h_pt[i] = fs_->make(hname, htit, 400, 0, 200.0); h_pt[i]->Sumw2(); if (i < 8) { @@ -396,7 +413,7 @@ void StudyHLT::beginJob() { sprintf(hname, "h_p_%s_%d", TrkNames[7].c_str(), i-8); sprintf(htit, "Momentum of %s tracks (PV=%d:%d)", TrkNames[7].c_str(), pvBin[i-8], pvBin[i-7]-1); } - h_p[i] = fs->make(hname, htit, 400, 0, 200.0); + h_p[i] = fs_->make(hname, htit, 400, 0, 200.0); h_p[i]->Sumw2(); if (i < 8) { @@ -406,7 +423,7 @@ void StudyHLT::beginJob() { sprintf(hname, "h_eta_%s_%d", TrkNames[7].c_str(), i-8); sprintf(htit, "Eta of %s tracks (PV=%d:%d)", TrkNames[7].c_str(), pvBin[i-8], pvBin[i-7]-1); } - h_eta[i] = fs->make(hname, htit, 60, -3.0, 3.0); + h_eta[i] = fs_->make(hname, htit, 60, -3.0, 3.0); h_eta[i]->Sumw2(); if (i < 8) { @@ -416,29 +433,29 @@ void StudyHLT::beginJob() { sprintf(hname, "h_phi_%s_%d", TrkNames[7].c_str(), i-8); sprintf(htit, "Phi of %s tracks (PV=%d:%d)", TrkNames[7].c_str(), pvBin[i-8], pvBin[i-7]-1); } - h_phi[i] = fs->make(hname, htit, 100, -3.15, 3.15); + h_phi[i] = fs_->make(hname, htit, 100, -3.15, 3.15); h_phi[i]->Sumw2(); } std::string IsolationNames[2] = {"Ecal", "Hcal"}; for (unsigned int i=0; i<2; i++) { sprintf(hname, "h_maxNearP_%s", IsolationNames[i].c_str()); sprintf(htit, "Energy in ChargeIso region for %s", IsolationNames[i].c_str()); - h_maxNearP[i] = fs->make(hname, htit, 120, -1.5, 10.5); + h_maxNearP[i] = fs_->make(hname, htit, 120, -1.5, 10.5); h_maxNearP[i]->Sumw2(); sprintf(hname, "h_ene1_%s", IsolationNames[i].c_str()); sprintf(htit, "Energy in smaller cone for %s", IsolationNames[i].c_str()); - h_ene1[i] = fs->make(hname, htit, 400, 0.0, 200.0); + h_ene1[i] = fs_->make(hname, htit, 400, 0.0, 200.0); h_ene1[i]->Sumw2(); sprintf(hname, "h_ene2_%s", IsolationNames[i].c_str()); sprintf(htit, "Energy in bigger cone for %s", IsolationNames[i].c_str()); - h_ene2[i] = fs->make(hname, htit, 400, 0.0, 200.0); + h_ene2[i] = fs_->make(hname, htit, 400, 0.0, 200.0); h_ene2[i]->Sumw2(); sprintf(hname, "h_ediff_%s", IsolationNames[i].c_str()); sprintf(htit, "Energy in NeutralIso region for %s", IsolationNames[i].c_str()); - h_ediff[i] = fs->make(hname, htit, 100, -0.5, 19.5); + h_ediff[i] = fs_->make(hname, htit, 100, -0.5, 19.5); h_ediff[i]->Sumw2(); } std::string energyNames[6]={"E_{7x7}", "H_{3x3}", "(E_{7x7}+H_{3x3})", @@ -458,7 +475,7 @@ void StudyHLT::beginJob() { (etaBin[ie+1]-1), pvBin[i-4], pvBin[i-3], TrkNames[7].c_str()); } - h_energy[i][ip][ie][j] = fs->make(hname, htit, 500, -0.1, 4.9); + h_energy[i][ip][ie][j] = fs_->make(hname, htit, 500, -0.1, 4.9); h_energy[i][ip][ie][j]->Sumw2(); } } @@ -466,42 +483,43 @@ void StudyHLT::beginJob() { } // Now the tree - tree_ = fs->make("testTree", "new HLT Tree"); - tree_->Branch("tr_goodRun", &tr_goodRun, "tr_goodRun/I"); - tree_->Branch("tr_goodPV", &tr_goodPV, "tr_goodPV/I"); - tree_->Branch("tr_tr_TrigName", &tr_TrigName); - tree_->Branch("tr_TrkPt", &tr_TrkPt); - tree_->Branch("tr_TrkP", &tr_TrkP); - tree_->Branch("tr_TrkEta", &tr_TrkEta); - tree_->Branch("tr_TrkPhi", &tr_TrkPhi); - tree_->Branch("tr_MaxNearP31X31", &tr_MaxNearP31X31); - tree_->Branch("tr_MaxNearHcalP7x7", &tr_MaxNearHcalP7x7); - tree_->Branch("tr_FE7x7P", &tr_FE7x7P); - tree_->Branch("tr_FE11x11P", &tr_FE11x11P); - tree_->Branch("tr_FE15x15P", &tr_FE15x15P); - tree_->Branch("tr_SE7x7P", &tr_SE7x7P); - tree_->Branch("tr_SE11x11P", &tr_SE11x11P); - tree_->Branch("tr_SE15x15P", &tr_SE15x15P); - tree_->Branch("tr_H3x3", &tr_H3x3); - tree_->Branch("tr_H5x5", &tr_H5x5); - tree_->Branch("tr_H7x7", &tr_H7x7); - tree_->Branch("tr_iEta", &tr_iEta); + if (doTree_) { + tree_ = fs_->make("testTree", "new HLT Tree"); + tree_->Branch("tr_goodRun", &tr_goodRun, "tr_goodRun/I"); + tree_->Branch("tr_goodPV", &tr_goodPV, "tr_goodPV/I"); + tree_->Branch("tr_tr_TrigName", &tr_TrigName); + tree_->Branch("tr_TrkPt", &tr_TrkPt); + tree_->Branch("tr_TrkP", &tr_TrkP); + tree_->Branch("tr_TrkEta", &tr_TrkEta); + tree_->Branch("tr_TrkPhi", &tr_TrkPhi); + tree_->Branch("tr_MaxNearP31X31", &tr_MaxNearP31X31); + tree_->Branch("tr_MaxNearHcalP7x7", &tr_MaxNearHcalP7x7); + tree_->Branch("tr_FE7x7P", &tr_FE7x7P); + tree_->Branch("tr_FE11x11P", &tr_FE11x11P); + tree_->Branch("tr_FE15x15P", &tr_FE15x15P); + tree_->Branch("tr_SE7x7P", &tr_SE7x7P); + tree_->Branch("tr_SE11x11P", &tr_SE11x11P); + tree_->Branch("tr_SE15x15P", &tr_SE15x15P); + tree_->Branch("tr_H3x3", &tr_H3x3); + tree_->Branch("tr_H5x5", &tr_H5x5); + tree_->Branch("tr_H7x7", &tr_H7x7); + tree_->Branch("tr_iEta", &tr_iEta); + } } -void StudyHLT::endJob() {} - // ------------ method called when starting to processes a run ------------ void StudyHLT::beginRun(edm::Run const& iRun, edm::EventSetup const& iSetup) { char hname[100], htit[400]; edm::LogInfo("IsoTrack") << "Run[" << nRun << "] " << iRun.run() << " hltconfig.init " - << hltConfig_.init(iRun,iSetup,"HLT",changed); + << hltConfig_.init(iRun,iSetup,"HLT",changed_); sprintf(hname, "h_HLTAccepts_%i", iRun.run()); sprintf(htit, "HLT Accepts for Run No %i", iRun.run()); - TH1I *hnew = fs->make(hname, htit, 500, 0, 500); + TH1I *hnew = fs_->make(hname, htit, 500, 0, 500); for (int i=1; i<=500; ++i) hnew->GetXaxis()->SetBinLabel(i," "); h_HLTAccepts.push_back(hnew); edm::LogInfo("IsoTrack") << "beginrun " << iRun.run(); - firstEvent = true; + firstEvent_ = true; + changed_ = false; } // ------------ method called when ending the processing of a run ------------ diff --git a/Calibration/IsolatedParticles/plugins/StudyHLT.h b/Calibration/IsolatedParticles/plugins/StudyHLT.h index e654578e58ec6..f90c60c15b137 100644 --- a/Calibration/IsolatedParticles/plugins/StudyHLT.h +++ b/Calibration/IsolatedParticles/plugins/StudyHLT.h @@ -10,7 +10,7 @@ // user include files #include "FWCore/Framework/interface/Frameworkfwd.h" -#include "FWCore/Framework/interface/EDAnalyzer.h" +#include "FWCore/Framework/interface/one/EDAnalyzer.h" #include "FWCore/Framework/interface/Event.h" #include "FWCore/Framework/interface/MakerMacros.h" @@ -31,21 +31,22 @@ #include "DataFormats/EcalRecHit/interface/EcalRecHitCollections.h" #include "DataFormats/HcalRecHit/interface/HcalRecHitCollections.h" -class StudyHLT : public edm::EDAnalyzer { +class StudyHLT : public edm::one::EDAnalyzer { public: explicit StudyHLT(const edm::ParameterSet&); ~StudyHLT(); + static void fillDescriptions(edm::ConfigurationDescriptions& descriptions); + private: + virtual void analyze(edm::Event const&, edm::EventSetup const&) override; virtual void beginJob() ; - virtual void analyze(const edm::Event&, const edm::EventSetup&); - virtual void endJob() ; - - virtual void beginRun(edm::Run const&, edm::EventSetup const&); - virtual void endRun(edm::Run const&, edm::EventSetup const&); + virtual void beginRun(edm::Run const&, edm::EventSetup const&) override; + virtual void endRun(edm::Run const&, edm::EventSetup const&) override; virtual void beginLuminosityBlock(edm::LuminosityBlock const&, edm::EventSetup const&); virtual void endLuminosityBlock(edm::LuminosityBlock const&, edm::EventSetup const&); + void clear(); void fillTrack(int, double, double, double, double); void fillIsolation(int, double, double, double); @@ -55,15 +56,16 @@ class StudyHLT : public edm::EDAnalyzer { // ----------member data --------------------------- static const int nPBin=10, nEtaBin=4, nPVBin=4; HLTConfigProvider hltConfig_; - edm::Service fs; - int verbosity; - spr::trackSelectionParameters selectionParameters; - std::vector trigNames, HLTNames; - std::string theTrackQuality; - double minTrackP, maxTrackEta, tMinE_, tMaxE_, tMinH_, tMaxH_; - bool isItAOD, changed, firstEvent; + edm::Service fs_; + int verbosity_; + spr::trackSelectionParameters selectionParameters_; + std::vector trigNames_, HLTNames_; + std::string theTrackQuality_; + double minTrackP_, maxTrackEta_; + double tMinE_, tMaxE_, tMinH_, tMaxH_; + bool isItAOD_, changed_, firstEvent_, doTree_; - edm::InputTag triggerEvent_, theTriggerResultsLabel; + edm::InputTag triggerEvent_, theTriggerResultsLabel_; edm::EDGetTokenT tok_lumi; edm::EDGetTokenT tok_trigEvt; edm::EDGetTokenT tok_trigRes; diff --git a/Calibration/IsolatedParticles/python/studyHLT_cfi.py b/Calibration/IsolatedParticles/python/studyHLT_cfi.py index 4001863a3ceda..821bc97c3901e 100644 --- a/Calibration/IsolatedParticles/python/studyHLT_cfi.py +++ b/Calibration/IsolatedParticles/python/studyHLT_cfi.py @@ -1,23 +1,24 @@ import FWCore.ParameterSet.Config as cms StudyHLT = cms.EDAnalyzer("StudyHLT", - Verbosity = cms.untracked.int32( 0 ), - Triggers = cms.untracked.vstring([]), - TrackQuality = cms.untracked.string("highPurity"), - MinTrackPt = cms.untracked.double(10.0), - MaxDxyPV = cms.untracked.double(0.02), - MaxDzPV = cms.untracked.double(0.02), - MaxChi2 = cms.untracked.double(5.0), - MaxDpOverP = cms.untracked.double(0.1), - MinOuterHit = cms.untracked.int32(4), - MinLayerCrossed =cms.untracked.int32(8), - MaxInMiss = cms.untracked.int32(0), - MaxOutMiss = cms.untracked.int32(0), - minTrackP = cms.untracked.double( 1.0 ), - maxTrackEta = cms.untracked.double( 2.6 ), - TimeMinCutECAL = cms.untracked.double(-500.0), - TimeMaxCutECAL = cms.untracked.double(500.0), - TimeMinCutHCAL = cms.untracked.double(-500.0), - TimeMaxCutHCAL = cms.untracked.double(500.0), - IsItAOD = cms.untracked.bool(False), + Verbosity = cms.untracked.int32( 0 ), + Triggers = cms.untracked.vstring([]), + TrackQuality = cms.untracked.string("highPurity"), + MinTrackPt = cms.untracked.double(10.0), + MaxDxyPV = cms.untracked.double(0.02), + MaxDzPV = cms.untracked.double(0.02), + MaxChi2 = cms.untracked.double(5.0), + MaxDpOverP = cms.untracked.double(0.1), + MinOuterHit = cms.untracked.int32(4), + MinLayerCrossed =cms.untracked.int32(8), + MaxInMiss = cms.untracked.int32(0), + MaxOutMiss = cms.untracked.int32(0), + minTrackP = cms.untracked.double( 1.0 ), + maxTrackEta = cms.untracked.double( 2.6 ), + TimeMinCutECAL = cms.untracked.double(-500.0), + TimeMaxCutECAL = cms.untracked.double(500.0), + TimeMinCutHCAL = cms.untracked.double(-500.0), + TimeMaxCutHCAL = cms.untracked.double(500.0), + IsItAOD = cms.untracked.bool(False), + DoTree = cms.untracked.bool(True), ) diff --git a/Calibration/IsolatedParticles/test/StudyHLT.C b/Calibration/IsolatedParticles/test/StudyHLT.C index da1a13eec9693..e3dd6522b9ca7 100644 --- a/Calibration/IsolatedParticles/test/StudyHLT.C +++ b/Calibration/IsolatedParticles/test/StudyHLT.C @@ -221,7 +221,7 @@ void StudyHLT::Loop() { int pvBin[nPVBin+1] = {1, 2, 3, 5, 100}; std::string energyNames[6]={"E_{7x7}", "H_{3x3}", "(E_{7x7}+H_{3x3})", "E_{11x11}", "H_{5x5}", "{E_{11x11}+H_{5x5})"}; - for (int i=0; i<=nPVBin; ++i) { + for (int i=0; i