CMS 3D CMS Logo

CATopJetProducer.h
Go to the documentation of this file.
1 #ifndef RecoJets_JetProducers_CATopJetProducer_h
2 #define RecoJets_JetProducers_CATopJetProducer_h
3 
4 /* *********************************************************
5 
6 
7  * \class CATopJetProducer
8  * Jet producer to produce top jets using the C-A algorithm to break
9  * jets into subjets as described here:
10  * "Top-tagging: A Method for Identifying Boosted Hadronic Tops"
11  * David E. Kaplan, Keith Rehermann, Matthew D. Schwartz, Brock Tweedie
12  * arXiv:0806.0848v1 [hep-ph]
13 
14  \brief Jet producer to run the CATopJetAlgorithm
15 
16  \author Salvatore Rappoccio
17  \version
18 
19  Notes on implementation:
20 
21  Because the BaseJetProducer only allows the user to produce
22  one jet collection at a time, this algorithm cannot
23  fit into that paradigm.
24 
25  All of the "hard" jets are of type BasicJet, since
26  they are "jets of jets". The subjets will be either
27  CaloJets, GenJets, etc.
28 
29  In order to avoid a templatization of the entire
30  EDProducer itself, we only use a templated method
31  to write out the subjets to the event record,
32  and to use that information to write out the
33  hard jets to the event record.
34 
35  This templated method is called "write_outputs". It
36  relies on a second templated method called "write_specific",
37  which relies on some template specialization to create
38  different specific objects (i.e. CaloJets, BasicJets, GenJets, etc).
39 
40  ************************************************************/
41 
50 
61 
64 #include "CATopJetProducer.h"
66 
67 #include <fastjet/tools/RestFrameNSubjettinessTagger.hh>
68 #include "fastjet/SISConePlugin.hh"
69 
70 namespace cms {
72  public:
74 
75  ~CATopJetProducer() override {}
76  static void fillDescriptions(edm::ConfigurationDescriptions& descriptions);
77 
78  void produce(edm::Event& iEvent, const edm::EventSetup& iSetup) override;
79 
80  void runAlgorithm(edm::Event& iEvent, const edm::EventSetup& iSetup) override;
81 
82  private:
83  std::unique_ptr<CATopJetAlgorithm> legacyCMSTopTagger_;
84  std::unique_ptr<fastjet::CMSTopTagger> fjCMSTopTagger_; // The FastJet implementation of the CMS tagger
85  std::unique_ptr<fastjet::JHTopTagger> fjJHUTopTagger_;
86  std::unique_ptr<fastjet::RestFrameNSubjettinessTagger> fjNSUBTagger_;
87 
88  int tagAlgo_;
89  double ptMin_;
91  bool verbose_;
93  };
94 
95 } // namespace cms
96 
97 #endif
ConfigurationDescriptions.h
cms::CATopJetProducer::tagAlgo_
int tagAlgo_
Definition: CATopJetProducer.h:88
CaloJetCollection.h
GenJetCollection.h
cms::CATopJetProducer::FJ_CMS_TOPTAG
Definition: CATopJetProducer.h:92
cms::CATopJetProducer::produce
void produce(edm::Event &iEvent, const edm::EventSetup &iSetup) override
Definition: CATopJetProducer.cc:63
Handle.h
CMSTopTagger.h
MessageLogger.h
cms::CATopJetProducer::tagalgos
tagalgos
Definition: CATopJetProducer.h:92
ESHandle.h
cms::CATopJetProducer::ptMin_
double ptMin_
Definition: CATopJetProducer.h:89
PFJetCollection.h
cms::CATopJetProducer::fjNSUBTagger_
std::unique_ptr< fastjet::RestFrameNSubjettinessTagger > fjNSUBTagger_
Definition: CATopJetProducer.h:86
BasicJetCollection.h
CandidateFwd.h
cms::CATopJetProducer::legacyCMSTopTagger_
std::unique_ptr< CATopJetAlgorithm > legacyCMSTopTagger_
Definition: CATopJetProducer.h:83
cms::CATopJetProducer::FJ_JHU_TOPTAG
Definition: CATopJetProducer.h:92
JetAlgoHelper.h
cms::CATopJetProducer::fjJHUTopTagger_
std::unique_ptr< fastjet::JHTopTagger > fjJHUTopTagger_
Definition: CATopJetProducer.h:85
ProductID.h
LeafCandidate.h
cms::CATopJetProducer::runAlgorithm
void runAlgorithm(edm::Event &iEvent, const edm::EventSetup &iSetup) override
Definition: CATopJetProducer.cc:65
cms::CATopJetProducer::CATopJetProducer
CATopJetProducer(const edm::ParameterSet &ps)
Definition: CATopJetProducer.cc:13
ParameterSetDescription.h
cms::CATopJetProducer::fillDescriptions
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
Definition: CATopJetProducer.cc:120
CATopJetAlgorithm.h
CaloGeometryRecord.h
edm::ConfigurationDescriptions
Definition: ConfigurationDescriptions.h:28
cms::CATopJetProducer::verbose_
bool verbose_
Definition: CATopJetProducer.h:91
edm::ParameterSet
Definition: ParameterSet.h:47
Event.h
iEvent
int iEvent
Definition: GenABIO.cc:224
edm::EventSetup
Definition: EventSetup.h:58
cms::CATopJetProducer::FJ_NSUB_TAG
Definition: CATopJetProducer.h:92
FastjetJetProducer.h
cms::CATopJetProducer::centralEtaCut_
double centralEtaCut_
Definition: CATopJetProducer.h:90
cms::CATopJetProducer::CA_TOPTAGGER
Definition: CATopJetProducer.h:92
CaloGeometry.h
EventSetup.h
CATopJetProducer.h
View.h
cms::CATopJetProducer::~CATopJetProducer
~CATopJetProducer() override
Definition: CATopJetProducer.h:75
edm::Event
Definition: Event.h:73
FastjetJetProducer
Definition: FastjetJetProducer.h:41
cms::CATopJetProducer::fjCMSTopTagger_
std::unique_ptr< fastjet::CMSTopTagger > fjCMSTopTagger_
The algorithm to do the work.
Definition: CATopJetProducer.h:84
cms
Namespace of DDCMS conversion namespace.
Definition: ProducerAnalyzer.cc:21
cms::CATopJetProducer
Definition: CATopJetProducer.h:71