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