// -*- C++ -*- // // Package: MuTestPerformanceFW_ES // Class: MuTestPerformanceFW_ES // /**\class MuTestPerformanceFW_ES MuTestPerformanceFW_ES.cc RecoBTag/MuTestPerformanceFW_ES/src/MuTestPerformanceFW_ES.cc Description: Implementation: */ // // Original Author: Tommaso Boccali // Created: Tue Nov 25 15:50:50 CET 2008 // $Id: MuTestPerformanceFW_ES.cc,v 1.1 2009/03/06 10:13:20 tboccali Exp $ // // // system include files #include // user include files #include "FWCore/Framework/interface/Frameworkfwd.h" #include "FWCore/Framework/interface/EDAnalyzer.h" #include "FWCore/Framework/interface/Event.h" #include "FWCore/Framework/interface/MakerMacros.h" #include "FWCore/Framework/interface/EventSetup.h" #include "FWCore/ParameterSet/interface/ParameterSet.h" #include "FWCore/Framework/interface/ESHandle.h" // // class decleration // #include "RecoBTag/Records/interface/BTagPerformanceRecord.h" #include "DataFormats/HepMCCandidate/interface/GenParticle.h" #include "DataFormats/HepMCCandidate/interface/GenParticleFwd.h" #include "CondFormats/BTauObjects/interface/BtagBinningPointByMap.h" #include "RecoBTag/PerformanceDB/interface/BtagPerformance.h" //#include "CondFormats/BTagPerformance/interface/BtagPerformancePayloadFromTableEtaJetEt.h" //#include "CondFormats/BTagPerformance/interface/BtagPerformancePayloadFromTableEtaJetEtPhi.h" class MuTestPerformanceFW_ES : public edm::EDAnalyzer { public: explicit MuTestPerformanceFW_ES(const edm::ParameterSet&); ~MuTestPerformanceFW_ES(); private: std::string name; virtual void beginJob(const edm::EventSetup&) ; virtual void analyze(const edm::Event&, const edm::EventSetup&); virtual void endJob() ; // ----------member data --------------------------- }; using namespace edm; using namespace std; using namespace HepMC; using namespace reco; // // constants, enums and typedefs // // // static data member definitions // // // constructors and destructor // MuTestPerformanceFW_ES::MuTestPerformanceFW_ES(const edm::ParameterSet& iConfig) { //now do what ever initialization is needed std::cout <<" In the constructor"<("AlgoName"); } MuTestPerformanceFW_ES::~MuTestPerformanceFW_ES() { // do anything here that needs to be done at desctruction time // (e.g. close files, deallocate resources etc.) } // // member functions // // ------------ method called to for each event ------------ void MuTestPerformanceFW_ES::analyze(const edm::Event& iEvent, const edm::EventSetup& iSetup) { edm::ESHandle perfH; std::cout <<" Studying performance with label "<().get(name,perfH); const BtagPerformance & perf = *(perfH.product()); double px, py, pz, eta, pt; int pdgid = 0; int status = 0; Handle genParticles; iEvent.getByLabel( "genParticles", genParticles ); for ( size_t i = 0; i < genParticles->size(); ++ i ) { const Candidate & p = (*genParticles)[ i ]; status = p.status(); if(p.status() == 3) continue; px=p.px(); py=p.py(); pz=p.pz(); pt = sqrt(px*px + py*py); eta = p.eta(); pdgid=p.pdgId(); if(pdgid == 13 || pdgid == -13) { // check beff, berr for eta=.6, et=55; BtagBinningPointByMap p; std::cout <<" test eta=" << eta << ", et=" << pt <