RecoJets
JetProducers
plugins
HTTTopJetProducer.h
Go to the documentation of this file.
1
#ifndef RecoJets_JetProducers_HTTTopJetProducer_h
2
#define RecoJets_JetProducers_HTTTopJetProducer_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
42
#include "
FWCore/Framework/interface/Event.h
"
43
#include "
FWCore/Framework/interface/EventSetup.h
"
44
#include "
DataFormats/Common/interface/View.h
"
45
#include "
DataFormats/Common/interface/Handle.h
"
46
#include "
DataFormats/Provenance/interface/ProductID.h
"
47
#include "
FWCore/MessageLogger/interface/MessageLogger.h
"
48
#include "
FWCore/ParameterSet/interface/ConfigurationDescriptions.h
"
49
#include "
FWCore/ParameterSet/interface/ParameterSetDescription.h
"
50
51
#include "
DataFormats/JetReco/interface/CaloJetCollection.h
"
52
#include "
DataFormats/JetReco/interface/GenJetCollection.h
"
53
#include "
DataFormats/JetReco/interface/PFJetCollection.h
"
54
#include "
DataFormats/JetReco/interface/BasicJetCollection.h
"
55
#include "
RecoJets/JetAlgorithms/interface/JetAlgoHelper.h
"
56
#include "
DataFormats/Candidate/interface/CandidateFwd.h
"
57
#include "
DataFormats/Candidate/interface/LeafCandidate.h
"
58
#include "
FWCore/Framework/interface/ESHandle.h
"
59
#include "
Geometry/CaloGeometry/interface/CaloGeometry.h
"
60
#include "
Geometry/Records/interface/CaloGeometryRecord.h
"
61
62
#include "
RecoJets/JetProducers/plugins/FastjetJetProducer.h
"
63
64
#include "
RecoJets/JetAlgorithms/interface/HEPTopTaggerWrapperV2.h
"
65
66
#include "
FWCore/Utilities/interface/RandomNumberGenerator.h
"
67
#include "
FWCore/ServiceRegistry/interface/Service.h
"
68
#include "CLHEP/Random/RandomEngine.h"
69
70
#include "fastjet/SISConePlugin.hh"
71
72
namespace
cms
{
73
class
HTTTopJetProducer
:
public
FastjetJetProducer
{
74
public
:
75
HTTTopJetProducer
(
const
edm::ParameterSet
& ps);
76
77
~HTTTopJetProducer
()
override
{}
78
79
void
produce
(
edm::Event
&
iEvent
,
const
edm::EventSetup
& iSetup)
override
;
80
81
void
runAlgorithm
(
edm::Event
&
iEvent
,
const
edm::EventSetup
& iSetup)
override
;
82
83
void
addHTTTopJetTagInfoCollection
(
edm::Event
&
iEvent
,
84
const
edm::EventSetup
& iSetup,
85
edm::OrphanHandle<reco::BasicJetCollection>
& oh)
override
;
86
87
static
void
fillDescriptions
(
edm::ConfigurationDescriptions
& descriptions);
88
89
private
:
90
std::unique_ptr<fastjet::HEPTopTaggerV2>
fjHEPTopTagger_
;
91
92
// Below are all configurable options.
93
// Parenthesis indicates if this is enforced by the tagger itself or by the producer
94
95
bool
optimalR_
;
// Should the MultiR version of the tagger be used? (tagger)
96
bool
qJets_
;
// Should Q-jets be used? (tagger/producer)
97
98
double
minFatjetPt_
;
// Only process fatjets larger pT with the tagger [GeV] (producer)
99
double
minSubjetPt_
;
// Minimal pT for subjets [GeV] (tagger)
100
double
minCandPt_
;
// Minimal pT to return a candidate [GeV] (tagger)
101
102
double
maxFatjetAbsEta_
;
// Only process fatjets with smaller |eta| with the tagger. (producer)
103
104
double
subjetMass_
;
// Mass above which subjets are further unclustered (tagger)
105
double
muCut_
;
// Mass drop threshold (tagger)
106
107
double
filtR_
;
// maximal filtering radius
108
int
filtN_
;
// number of filtered subjets to use
109
110
// HEPTopTagger Mode (tagger):
111
// 0: do 2d-plane, return candidate with delta m_top minimal
112
// 1: return candidate with delta m_top minimal IF passes 2d plane
113
// 2: do 2d-plane, return candidate with max dj_sum
114
// 3: return candidate with max dj_sum IF passes 2d plane
115
// 4: return candidate built from leading three subjets after unclustering IF passes 2d plane
116
// Note: Original HTT was mode==1
117
int
mode_
;
118
119
// Top Quark mass window in GeV (tagger)
120
double
minCandMass_
;
121
double
maxCandMass_
;
122
123
double
massRatioWidth_
;
// One sided width of the A-shaped window around m_W/m_top in % (tagger)
124
double
minM23Cut_
;
// minimal value of m23/m123 (tagger)
125
double
minM13Cut_
;
// minimal value of atan(m13/m12) (tagger)
126
double
maxM13Cut_
;
// maximal value of atan(m13/m12) (tagger)
127
128
double
maxR_
;
// maximal fatjet size for MultiR tagger (tagger)
129
double
minR_
;
// minimal fatjet size for MultiR tagger (tagger)
130
131
bool
rejectMinR_
;
// set Ropt to zero when the candidate never
132
// leaves the window around the initial mass
133
134
bool
verbose_
;
135
};
136
137
}
// namespace cms
138
139
#endif
ConfigurationDescriptions.h
cms::HTTTopJetProducer::muCut_
double muCut_
Definition:
HTTTopJetProducer.h:105
CaloJetCollection.h
GenJetCollection.h
cms::HTTTopJetProducer::produce
void produce(edm::Event &iEvent, const edm::EventSetup &iSetup) override
Definition:
HTTTopJetProducer.cc:83
Handle.h
MessageLogger.h
cms::HTTTopJetProducer::subjetMass_
double subjetMass_
Definition:
HTTTopJetProducer.h:104
ESHandle.h
RandomNumberGenerator.h
cms::HTTTopJetProducer::filtR_
double filtR_
Definition:
HTTTopJetProducer.h:107
cms::HTTTopJetProducer::mode_
int mode_
Definition:
HTTTopJetProducer.h:117
PFJetCollection.h
cms::HTTTopJetProducer::maxFatjetAbsEta_
double maxFatjetAbsEta_
Definition:
HTTTopJetProducer.h:102
cms::HTTTopJetProducer::massRatioWidth_
double massRatioWidth_
Definition:
HTTTopJetProducer.h:123
BasicJetCollection.h
cms::HTTTopJetProducer::minM13Cut_
double minM13Cut_
Definition:
HTTTopJetProducer.h:125
cms::HTTTopJetProducer
Definition:
HTTTopJetProducer.h:73
cms::HTTTopJetProducer::minR_
double minR_
Definition:
HTTTopJetProducer.h:129
CandidateFwd.h
cms::HTTTopJetProducer::minSubjetPt_
double minSubjetPt_
Definition:
HTTTopJetProducer.h:99
cms::HTTTopJetProducer::fjHEPTopTagger_
std::unique_ptr< fastjet::HEPTopTaggerV2 > fjHEPTopTagger_
Definition:
HTTTopJetProducer.h:90
JetAlgoHelper.h
cms::HTTTopJetProducer::qJets_
bool qJets_
Definition:
HTTTopJetProducer.h:96
Service.h
ProductID.h
LeafCandidate.h
cms::HTTTopJetProducer::HTTTopJetProducer
HTTTopJetProducer(const edm::ParameterSet &ps)
Definition:
HTTTopJetProducer.cc:13
cms::HTTTopJetProducer::maxM13Cut_
double maxM13Cut_
Definition:
HTTTopJetProducer.h:126
ParameterSetDescription.h
HEPTopTaggerWrapperV2.h
cms::HTTTopJetProducer::fillDescriptions
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
Definition:
HTTTopJetProducer.cc:188
cms::HTTTopJetProducer::maxCandMass_
double maxCandMass_
Definition:
HTTTopJetProducer.h:121
CaloGeometryRecord.h
edm::ConfigurationDescriptions
Definition:
ConfigurationDescriptions.h:28
edm::ParameterSet
Definition:
ParameterSet.h:47
cms::HTTTopJetProducer::minCandMass_
double minCandMass_
Definition:
HTTTopJetProducer.h:120
Event.h
cms::HTTTopJetProducer::rejectMinR_
bool rejectMinR_
Definition:
HTTTopJetProducer.h:131
cms::HTTTopJetProducer::optimalR_
bool optimalR_
Definition:
HTTTopJetProducer.h:95
cms::HTTTopJetProducer::verbose_
bool verbose_
Definition:
HTTTopJetProducer.h:134
cms::HTTTopJetProducer::~HTTTopJetProducer
~HTTTopJetProducer() override
Definition:
HTTTopJetProducer.h:77
iEvent
int iEvent
Definition:
GenABIO.cc:224
edm::EventSetup
Definition:
EventSetup.h:58
cms::HTTTopJetProducer::minFatjetPt_
double minFatjetPt_
Definition:
HTTTopJetProducer.h:98
FastjetJetProducer.h
edm::OrphanHandle
Definition:
EDProductfwd.h:39
cms::HTTTopJetProducer::minM23Cut_
double minM23Cut_
Definition:
HTTTopJetProducer.h:124
cms::HTTTopJetProducer::filtN_
int filtN_
Definition:
HTTTopJetProducer.h:108
CaloGeometry.h
EventSetup.h
cms::HTTTopJetProducer::minCandPt_
double minCandPt_
Definition:
HTTTopJetProducer.h:100
cms::HTTTopJetProducer::maxR_
double maxR_
Definition:
HTTTopJetProducer.h:128
View.h
cms::HTTTopJetProducer::addHTTTopJetTagInfoCollection
void addHTTTopJetTagInfoCollection(edm::Event &iEvent, const edm::EventSetup &iSetup, edm::OrphanHandle< reco::BasicJetCollection > &oh) override
Definition:
HTTTopJetProducer.cc:136
edm::Event
Definition:
Event.h:73
FastjetJetProducer
Definition:
FastjetJetProducer.h:41
cms
Namespace of DDCMS conversion namespace.
Definition:
ProducerAnalyzer.cc:21
cms::HTTTopJetProducer::runAlgorithm
void runAlgorithm(edm::Event &iEvent, const edm::EventSetup &iSetup) override
Definition:
HTTTopJetProducer.cc:93
Generated for CMSSW Reference Manual by
1.8.16