ATLAS Offline Software
Loading...
Searching...
No Matches
ZCut.cxx
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
3*/
4
7#include "fastjet/ClusterSequence.hh"
8#include "fastjet/JetDefinition.hh"
9
10using namespace std;
11using namespace JetSubStructureUtils;
12
13double ZCut::result(const fastjet::PseudoJet &jet) const
14{
15 vector<fastjet::PseudoJet> constit_pseudojets = jet.constituents();
16 if(constit_pseudojets.empty()) return -1;
17
18 fastjet::JetDefinition jet_def = fastjet::JetDefinition(fastjet::kt_algorithm, 1.5,
19 fastjet::E_scheme, fastjet::Best);
20 fastjet::ClusterSequence kt_clust_seq(constit_pseudojets, jet_def);
21
22 if(constit_pseudojets.size() < m_nSubJets) {
23 //We were asked to calculate zCut, but there are not enough constituents
24 return 0.0;
25 }
26 vector<fastjet::PseudoJet> subjets = kt_clust_seq.exclusive_jets((int)m_nSubJets);
27
28 // Find last split jet (cluster_hist_index should be highest for the last created jet)
29 fastjet::PseudoJet *lastSplitSubjet = nullptr;
30 int max_cluster_hist_index = -1;
31 for(size_t iSubjet=0; iSubjet < subjets.size(); iSubjet++) {
32 fastjet::PseudoJet parent1, parent2;
33 if(kt_clust_seq.has_parents(subjets[iSubjet], parent1, parent2) &&
34 subjets[iSubjet].cluster_hist_index() > max_cluster_hist_index) {
35 max_cluster_hist_index = subjets[iSubjet].cluster_hist_index();
36 lastSplitSubjet = &subjets[iSubjet];
37 }
38 }
39
40 if(lastSplitSubjet == nullptr) {
41 //None of the subjets were split
42 return 0.0;
43 }
44
46 double dmin = pow(split.result(jet), 2.0);
47
48 double zcut = -1;
49 if(dmin == 0)
50 zcut = 0;
51 else
52 zcut = dmin / (dmin + lastSplitSubjet->m2());
53
54 return zcut;
55}
constexpr int pow(int base, int exp) noexcept
virtual double result(const fastjet::PseudoJet &jet) const
Definition ZCut.cxx:13
unsigned int m_nSubJets
Definition ZCut.h:19
std::vector< std::string > split(const std::string &s, const std::string &t=":")
Definition hcg.cxx:177
STL namespace.