Main Page
Namespaces
Classes
Package Documentation
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
8
* \class CATopJetProducer
9
* Jet producer to produce top jets using the C-A algorithm to break
10
* jets into subjets as described here:
11
* "Top-tagging: A Method for Identifying Boosted Hadronic Tops"
12
* David E. Kaplan, Keith Rehermann, Matthew D. Schwartz, Brock Tweedie
13
* arXiv:0806.0848v1 [hep-ph]
14
15
\brief Jet producer to run the CATopJetAlgorithm
16
17
\author Salvatore Rappoccio
18
\version
19
20
Notes on implementation:
21
22
Because the BaseJetProducer only allows the user to produce
23
one jet collection at a time, this algorithm cannot
24
fit into that paradigm.
25
26
All of the "hard" jets are of type BasicJet, since
27
they are "jets of jets". The subjets will be either
28
CaloJets, GenJets, etc.
29
30
In order to avoid a templatization of the entire
31
EDProducer itself, we only use a templated method
32
to write out the subjets to the event record,
33
and to use that information to write out the
34
hard jets to the event record.
35
36
This templated method is called "write_outputs". It
37
relies on a second templated method called "write_specific",
38
which relies on some template specialization to create
39
different specific objects (i.e. CaloJets, BasicJets, GenJets, etc).
40
41
************************************************************/
42
43
44
45
46
#include "
FWCore/Framework/interface/Event.h
"
47
#include "
FWCore/Framework/interface/EventSetup.h
"
48
#include "
DataFormats/Common/interface/View.h
"
49
#include "
DataFormats/Common/interface/Handle.h
"
50
#include "
DataFormats/Provenance/interface/ProductID.h
"
51
#include "
FWCore/MessageLogger/interface/MessageLogger.h
"
52
53
#include "
DataFormats/JetReco/interface/CaloJetCollection.h
"
54
#include "
DataFormats/JetReco/interface/GenJetCollection.h
"
55
#include "
DataFormats/JetReco/interface/PFJetCollection.h
"
56
#include "
DataFormats/JetReco/interface/BasicJetCollection.h
"
57
#include "
RecoJets/JetAlgorithms/interface/JetAlgoHelper.h
"
58
#include "
DataFormats/Candidate/interface/CandidateFwd.h
"
59
#include "
DataFormats/Candidate/interface/LeafCandidate.h
"
60
#include "
FWCore/Framework/interface/ESHandle.h
"
61
#include "
Geometry/CaloGeometry/interface/CaloGeometry.h
"
62
#include "
Geometry/Records/interface/CaloGeometryRecord.h
"
63
64
#include "
RecoJets/JetProducers/plugins/FastjetJetProducer.h
"
65
66
#include "
RecoJets/JetAlgorithms/interface/HEPTopTaggerWrapperV2.h
"
67
68
#include "
FWCore/Utilities/interface/RandomNumberGenerator.h
"
69
#include "
FWCore/ServiceRegistry/interface/Service.h
"
70
#include "CLHEP/Random/RandomEngine.h"
71
72
#include "fastjet/SISConePlugin.hh"
73
74
75
namespace
cms
76
{
77
class
HTTTopJetProducer
:
public
FastjetJetProducer
78
{
79
public
:
80
81
HTTTopJetProducer
(
const
edm::ParameterSet
& ps);
82
83
virtual
~HTTTopJetProducer
() {}
84
85
virtual
void
produce
(
edm::Event
&
iEvent
,
const
edm::EventSetup
& iSetup );
86
87
virtual
void
runAlgorithm
(
edm::Event
& iEvent,
const
edm::EventSetup
& iSetup );
88
89
virtual
void
addHTTTopJetTagInfoCollection
(
edm::Event
& iEvent,
90
const
edm::EventSetup
& iSetup,
91
edm::OrphanHandle<reco::BasicJetCollection>
& oh);
92
93
94
private
:
95
std::auto_ptr<fastjet::HEPTopTaggerV2>
fjHEPTopTagger_
;
96
97
// Below are all configurable options.
98
// Parenthesis indicates if this is enforced by the tagger itself or by the producer
99
100
bool
optimalR_
;
// Should the MultiR version of the tagger be used? (tagger)
101
bool
qJets_
;
// Should Q-jets be used? (tagger/producer)
102
103
double
minFatjetPt_
;
// Only process fatjets larger pT with the tagger [GeV] (producer)
104
double
minSubjetPt_
;
// Minimal pT for subjets [GeV] (tagger)
105
double
minCandPt_
;
// Minimal pT to return a candidate [GeV] (tagger)
106
107
double
maxFatjetAbsEta_
;
// Only process fatjets with smaller |eta| with the tagger. (producer)
108
109
double
subjetMass_
;
// Mass above which subjets are further unclustered (tagger)
110
double
muCut_
;
// Mass drop threshold (tagger)
111
112
double
filtR_
;
// maximal filtering radius
113
int
filtN_
;
// number of filtered subjets to use
114
115
// HEPTopTagger Mode (tagger):
116
// 0: do 2d-plane, return candidate with delta m_top minimal
117
// 1: return candidate with delta m_top minimal IF passes 2d plane
118
// 2: do 2d-plane, return candidate with max dj_sum
119
// 3: return candidate with max dj_sum IF passes 2d plane
120
// 4: return candidate built from leading three subjets after unclustering IF passes 2d plane
121
// Note: Original HTT was mode==1
122
int
mode_
;
123
124
// Top Quark mass window in GeV (tagger)
125
double
minCandMass_
;
126
double
maxCandMass_
;
127
128
double
massRatioWidth_
;
// One sided width of the A-shaped window around m_W/m_top in % (tagger)
129
double
minM23Cut_
;
// minimal value of m23/m123 (tagger)
130
double
minM13Cut_
;
// minimal value of atan(m13/m12) (tagger)
131
double
maxM13Cut_
;
// maximal value of atan(m13/m12) (tagger)
132
133
double
maxR_
;
// maximal fatjet size for MultiR tagger (tagger)
134
double
minR_
;
// minimal fatjet size for MultiR tagger (tagger)
135
136
bool
rejectMinR_
;
// set Ropt to zero when the candidate never
137
// leaves the window around the initial mass
138
139
bool
verbose_
;
140
141
};
142
143
}
144
145
146
#endif
cms::HTTTopJetProducer::maxR_
double maxR_
Definition:
HTTTopJetProducer.h:133
cms::HTTTopJetProducer::minCandPt_
double minCandPt_
Definition:
HTTTopJetProducer.h:105
JetAlgoHelper.h
BasicJetCollection.h
cms::HTTTopJetProducer::fjHEPTopTagger_
std::auto_ptr< fastjet::HEPTopTaggerV2 > fjHEPTopTagger_
Definition:
HTTTopJetProducer.h:95
MessageLogger.h
PFJetCollection.h
cms::HTTTopJetProducer::mode_
int mode_
Definition:
HTTTopJetProducer.h:122
cms::HTTTopJetProducer::minM13Cut_
double minM13Cut_
Definition:
HTTTopJetProducer.h:130
cms::HTTTopJetProducer::produce
virtual void produce(edm::Event &iEvent, const edm::EventSetup &iSetup)
Definition:
HTTTopJetProducer.cc:131
RandomNumberGenerator.h
LeafCandidate.h
cms::HTTTopJetProducer::maxM13Cut_
double maxM13Cut_
Definition:
HTTTopJetProducer.h:131
cms::HTTTopJetProducer::maxFatjetAbsEta_
double maxFatjetAbsEta_
Definition:
HTTTopJetProducer.h:107
cms::HTTTopJetProducer::filtN_
int filtN_
Definition:
HTTTopJetProducer.h:113
HEPTopTaggerWrapperV2.h
Event.h
CaloJetCollection.h
EventSetup.h
cms::HTTTopJetProducer::minCandMass_
double minCandMass_
Definition:
HTTTopJetProducer.h:125
cms::HTTTopJetProducer::filtR_
double filtR_
Definition:
HTTTopJetProducer.h:112
edm::OrphanHandle
Definition:
EDProductfwd.h:29
ProductID.h
cms::HTTTopJetProducer::addHTTTopJetTagInfoCollection
virtual void addHTTTopJetTagInfoCollection(edm::Event &iEvent, const edm::EventSetup &iSetup, edm::OrphanHandle< reco::BasicJetCollection > &oh)
Definition:
HTTTopJetProducer.cc:186
cms::HTTTopJetProducer::optimalR_
bool optimalR_
Definition:
HTTTopJetProducer.h:100
iEvent
int iEvent
Definition:
GenABIO.cc:230
CaloGeometryRecord.h
cms::HTTTopJetProducer::qJets_
bool qJets_
Definition:
HTTTopJetProducer.h:101
cms::HTTTopJetProducer::rejectMinR_
bool rejectMinR_
Definition:
HTTTopJetProducer.h:136
cms::HTTTopJetProducer::minFatjetPt_
double minFatjetPt_
Definition:
HTTTopJetProducer.h:103
GenJetCollection.h
cms::HTTTopJetProducer::~HTTTopJetProducer
virtual ~HTTTopJetProducer()
Definition:
HTTTopJetProducer.h:83
ESHandle.h
View.h
Service.h
edm::EventSetup
Definition:
EventSetup.h:45
cms::HTTTopJetProducer::maxCandMass_
double maxCandMass_
Definition:
HTTTopJetProducer.h:126
FastjetJetProducer.h
cms
Definition:
ProducerAnalyzer.cc:22
cms::HTTTopJetProducer::HTTTopJetProducer
HTTTopJetProducer(const edm::ParameterSet &ps)
Definition:
HTTTopJetProducer.cc:11
cms::HTTTopJetProducer::verbose_
bool verbose_
Definition:
HTTTopJetProducer.h:139
CaloGeometry.h
cms::HTTTopJetProducer::minSubjetPt_
double minSubjetPt_
Definition:
HTTTopJetProducer.h:104
cms::HTTTopJetProducer::minR_
double minR_
Definition:
HTTTopJetProducer.h:134
cms::HTTTopJetProducer::subjetMass_
double subjetMass_
Definition:
HTTTopJetProducer.h:109
cms::HTTTopJetProducer
Definition:
HTTTopJetProducer.h:77
edm::ParameterSet
Definition:
ParameterSet.h:36
CandidateFwd.h
cms::HTTTopJetProducer::minM23Cut_
double minM23Cut_
Definition:
HTTTopJetProducer.h:129
cms::HTTTopJetProducer::runAlgorithm
virtual void runAlgorithm(edm::Event &iEvent, const edm::EventSetup &iSetup)
Definition:
HTTTopJetProducer.cc:143
cms::HTTTopJetProducer::massRatioWidth_
double massRatioWidth_
Definition:
HTTTopJetProducer.h:128
edm::Event
Definition:
Event.h:66
FastjetJetProducer
Definition:
FastjetJetProducer.h:39
cms::HTTTopJetProducer::muCut_
double muCut_
Definition:
HTTTopJetProducer.h:110
Handle.h
Generated for CMSSW Reference Manual by
1.8.11