Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:25:31

0001 #ifndef QjetsAdder_h
0002 #define QjetsAdder_h
0003 
0004 #include <memory>
0005 #include "FWCore/Framework/interface/Event.h"
0006 #include "FWCore/Framework/interface/EventSetup.h"
0007 #include "FWCore/Framework/interface/stream/EDProducer.h"
0008 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0009 #include "FWCore/Utilities/interface/InputTag.h"
0010 #include "DataFormats/PatCandidates/interface/Jet.h"
0011 #include "RecoJets/JetAlgorithms/interface/QjetsPlugin.h"
0012 
0013 class QjetsAdder : public edm::stream::EDProducer<> {
0014 public:
0015   explicit QjetsAdder(const edm::ParameterSet& iConfig)
0016       : src_(iConfig.getParameter<edm::InputTag>("src")),
0017         src_token_(consumes<edm::View<reco::Jet>>(src_)),
0018         qjetsAlgo_(iConfig.getParameter<double>("zcut"),
0019                    iConfig.getParameter<double>("dcutfctr"),
0020                    iConfig.getParameter<double>("expmin"),
0021                    iConfig.getParameter<double>("expmax"),
0022                    iConfig.getParameter<double>("rigidity")),
0023         ntrial_(iConfig.getParameter<int>("ntrial")),
0024         cutoff_(iConfig.getParameter<double>("cutoff")),
0025         jetRad_(iConfig.getParameter<double>("jetRad")),
0026         mJetAlgo_(iConfig.getParameter<std::string>("jetAlgo")),
0027         QjetsPreclustering_(iConfig.getParameter<int>("preclustering")) {
0028     produces<edm::ValueMap<float>>("QjetsVolatility");
0029   }
0030 
0031   ~QjetsAdder() override {}
0032 
0033   void produce(edm::Event& iEvent, const edm::EventSetup& iSetup) override;
0034 
0035 private:
0036   edm::InputTag src_;
0037   edm::EDGetTokenT<edm::View<reco::Jet>> src_token_;
0038   QjetsPlugin qjetsAlgo_;
0039   int ntrial_;
0040   double cutoff_;
0041   double jetRad_;
0042   std::string mJetAlgo_;
0043   int QjetsPreclustering_;
0044 };
0045 
0046 #endif