8 Njets_(iConfig.getParameter<
std::vector<unsigned>>(
"Njets")),
9 measureDefinition_(iConfig.getParameter<unsigned>(
"measureDefinition")),
10 beta_(iConfig.getParameter<double>(
"beta")),
11 R0_(iConfig.getParameter<double>(
"R0")),
12 Rcutoff_(iConfig.getParameter<double>(
"Rcutoff")),
13 axesDefinition_(iConfig.getParameter<unsigned>(
"axesDefinition")),
14 nPass_(iConfig.getParameter<
int>(
"nPass")),
15 akAxesR0_(iConfig.getParameter<double>(
"akAxesR0")) {
16 for (std::vector<unsigned>::const_iterator
n =
Njets_.begin();
n !=
Njets_.end(); ++
n) {
17 std::ostringstream tauN_str;
18 tauN_str <<
"tau" << *
n;
20 produces<edm::ValueMap<float>>(tauN_str.str());
24 fastjet::contrib::NormalizedMeasure normalizedMeasure(
beta_,
R0_);
25 fastjet::contrib::UnnormalizedMeasure unnormalizedMeasure(
beta_);
26 fastjet::contrib::OriginalGeometricMeasure geometricMeasure(
beta_);
27 fastjet::contrib::NormalizedCutoffMeasure normalizedCutoffMeasure(
beta_,
R0_,
Rcutoff_);
28 fastjet::contrib::UnnormalizedCutoffMeasure unnormalizedCutoffMeasure(
beta_,
Rcutoff_);
31 fastjet::contrib::MeasureDefinition
const* measureDef =
nullptr;
34 measureDef = &unnormalizedMeasure;
37 measureDef = &geometricMeasure;
40 measureDef = &normalizedCutoffMeasure;
43 measureDef = &unnormalizedCutoffMeasure;
48 measureDef = &normalizedMeasure;
53 fastjet::contrib::KT_Axes kt_axes;
54 fastjet::contrib::CA_Axes ca_axes;
55 fastjet::contrib::AntiKT_Axes antikt_axes(
akAxesR0_);
56 fastjet::contrib::WTA_KT_Axes wta_kt_axes;
57 fastjet::contrib::WTA_CA_Axes wta_ca_axes;
58 fastjet::contrib::OnePass_KT_Axes onepass_kt_axes;
59 fastjet::contrib::OnePass_CA_Axes onepass_ca_axes;
60 fastjet::contrib::OnePass_AntiKT_Axes onepass_antikt_axes(
akAxesR0_);
61 fastjet::contrib::OnePass_WTA_KT_Axes onepass_wta_kt_axes;
62 fastjet::contrib::OnePass_WTA_CA_Axes onepass_wta_ca_axes;
63 fastjet::contrib::MultiPass_Axes multipass_axes(
nPass_);
65 fastjet::contrib::AxesDefinition
const* axesDef =
nullptr;
75 axesDef = &antikt_axes;
78 axesDef = &wta_kt_axes;
81 axesDef = &wta_ca_axes;
84 axesDef = &onepass_kt_axes;
87 axesDef = &onepass_ca_axes;
90 axesDef = &onepass_antikt_axes;
93 axesDef = &onepass_wta_kt_axes;
96 axesDef = &onepass_wta_ca_axes;
99 axesDef = &multipass_axes;
111 for (std::vector<unsigned>::const_iterator
n =
Njets_.begin();
n !=
Njets_.end(); ++
n) {
112 std::ostringstream tauN_str;
113 tauN_str <<
"tau" << *
n;
116 std::vector<float> tauN;
117 tauN.reserve(jets->size());
127 auto outT = std::make_unique<edm::ValueMap<float>>();
129 fillerT.insert(jets, tauN.begin(), tauN.end());
137 std::vector<fastjet::PseudoJet> FJparticles;
138 for (
unsigned k = 0;
k <
object->numberOfDaughters(); ++
k) {
141 FJparticles.push_back(fastjet::PseudoJet(dp->px(), dp->py(), dp->pz(), dp->energy()));
143 edm::LogWarning(
"MissingJetConstituent") <<
"Jet constituent required for N-subjettiness computation is missing!";
146 return routine_->getTau(num, FJparticles);
unsigned measureDefinition_
void produce(edm::Event &iEvent, const edm::EventSetup &iSetup) override
OrphanHandle< PROD > put(std::unique_ptr< PROD > product)
Put a new product.
std::unique_ptr< fastjet::contrib::Njettiness > routine_
bool getByToken(EDGetToken token, Handle< PROD > &result) const
#define DEFINE_FWK_MODULE(type)
std::vector< unsigned > Njets_
bool isNonnull() const
Checks for non-null.
float getTau(unsigned num, const edm::Ptr< reco::Jet > &object) const
boost::indirect_iterator< typename seq_t::const_iterator > const_iterator
NjettinessAdder(const edm::ParameterSet &iConfig)
edm::EDGetTokenT< edm::View< reco::Jet > > src_token_