Back to home page

Project CMSSW displayed by LXR

 
 

    


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

0001 #ifndef RecoJets_JetProducers_CSJetProducer_h
0002 #define RecoJets_JetProducers_CSJetProducer_h
0003 
0004 /* *********************************************************
0005   \class CSJetProducer
0006 
0007   \brief Jet producer to produce CMS-style constituent subtracted jets
0008 
0009   \author   Marta Verweij
0010   \modified for granular eta map Chris McGinn
0011   \version
0012 
0013          Notes on implementation:
0014 
0015          Constituent subtraction using fastjet contrib package
0016          The background densities change within the jet as function of eta.
0017 
0018  ************************************************************/
0019 
0020 #include <vector>
0021 #include "RecoJets/JetProducers/plugins/VirtualJetProducer.h"
0022 
0023 namespace cms {
0024   class CSJetProducer : public VirtualJetProducer {
0025   public:
0026     CSJetProducer(const edm::ParameterSet& ps);
0027 
0028     ~CSJetProducer() override {}
0029     static void fillDescriptions(edm::ConfigurationDescriptions& descriptions);
0030     static void fillDescriptionsFromCSJetProducer(edm::ParameterSetDescription& desc);
0031 
0032     void produce(edm::Event& iEvent, const edm::EventSetup& iSetup) override;
0033 
0034   protected:
0035     void runAlgorithm(edm::Event& iEvent, const edm::EventSetup& iSetup) override;
0036 
0037     double getModulatedRhoFactor(const double phi, const edm::Handle<std::vector<double>>& flowParameters);
0038 
0039     double csRParam_;  /// for constituent subtraction : R parameter
0040     double csAlpha_;   /// for HI constituent subtraction : alpha (power of pt in metric)
0041 
0042     bool useModulatedRho_;    /// flag to turn on/off flow-modulated rho and rhom
0043     double minFlowChi2Prob_;  /// flowFit chi2/ndof minimum compatability requirement
0044     double maxFlowChi2Prob_;  /// flowFit chi2/ndof minimum compatability requirement
0045     //input rho and rho_m + eta map
0046     edm::EDGetTokenT<std::vector<double>> etaToken_;
0047     edm::EDGetTokenT<std::vector<double>> rhoToken_;
0048     edm::EDGetTokenT<std::vector<double>> rhomToken_;
0049     edm::EDGetTokenT<std::vector<double>> rhoFlowFitParamsToken_;
0050   };
0051 }  // namespace cms
0052 #endif