ATLAS Offline Software
Loading...
Searching...
No Matches
JetSubStructureUtils::Volatility Class Reference

#include <Volatility.h>

Inheritance diagram for JetSubStructureUtils::Volatility:
Collaboration diagram for JetSubStructureUtils::Volatility:

Public Member Functions

 Volatility (unsigned int num_iterations, double zcut, double dcut_fctr, double exp_min, double exp_max, double rigidity, double truncation_fctr=0.0)
virtual double result (const fastjet::PseudoJet &jet) const
void setSeed (unsigned int seed)
virtual TOut result (const xAOD::Jet &jet) const

Private Attributes

unsigned int m_num_iterations
double m_zcut
double m_dcut_fctr
double m_exp_min
double m_exp_max
double m_rigidity
double m_truncation_fctr
int m_seed

Detailed Description

Definition at line 12 of file Volatility.h.

Constructor & Destructor Documentation

◆ Volatility()

JetSubStructureUtils::Volatility::Volatility ( unsigned int num_iterations,
double zcut,
double dcut_fctr,
double exp_min,
double exp_max,
double rigidity,
double truncation_fctr = 0.0 )
inline

Definition at line 14 of file Volatility.h.

Member Function Documentation

◆ result() [1/2]

double Volatility::result ( const fastjet::PseudoJet & jet) const
virtual

Definition at line 11 of file Volatility.cxx.

12{
13 vector<fastjet::PseudoJet> constit_pseudojets = jet.constituents();
14 if(constit_pseudojets.empty()) return -999;
15
17 fastjet::JetDefinition qjets_def(&qjets_plugin);
18
19 unsigned int n = 0;
20 double sum_mass = 0, sum_mass2 = 0;
21 for(unsigned int i=0; i < m_num_iterations; i++) {
22 if(m_seed != -1) { // Seed needs to be different for each run of Qjets, but this has consistent running
23 qjets_plugin.SetRandSeed(m_seed + i);
24 }
25 fastjet::ClusterSequence clust_seq(constit_pseudojets, qjets_def);
26 vector<fastjet::PseudoJet> qjets = fastjet::sorted_by_pt(clust_seq.inclusive_jets());
27
28 if(qjets.empty()) {
29 //cout << "0 jets" << endl;
30 continue;
31 }
32
33 n++;
34 sum_mass += qjets[0].m();
35 sum_mass2 += qjets[0].m2();
36 }
37
38 if(n == 0) {
39 // Prevent div-0
40 return -999;
41 }
42
43 double rms_dev2 = sum_mass2/n - pow(sum_mass/n, 2.0);
44 if(rms_dev2 < 0) {
45 // To prevent NaN. Small negative numbers can happen due to floating point inaccuracy
46 // when all qjets are same -> i.e. 0 rms
47 rms_dev2 = 0;
48 }
49
50 double rms_dev = sqrt(rms_dev2);
51 double volatility = rms_dev / (sum_mass/n);
52
53 return volatility;
54}
constexpr int pow(int base, int exp) noexcept

◆ result() [2/2]

virtual TOut JetSubStructureUtils::SubstructureCalculator< TOut >::result ( const xAOD::Jet & jet) const
inlinevirtual

Reimplemented from JetSubStructureUtils::SubstructureCalculator< double >.

Definition at line 25 of file SubstructureCalculator.h.

25 {
26 // PS 4/18 master developent
27 // std::vector<fastjet::PseudoJet> constit_pseudojets =
28 // jet::JetConstituentFiller::constituentPseudoJets(jet);
29
30 std::vector<fastjet::PseudoJet> constit_pseudojets;
31 std::transform(jet.getConstituents().begin(),
32 jet.getConstituents().end(),
33 std::back_inserter(constit_pseudojets),
34 [](const auto& c){
35 const xAOD::IParticle* ip = c->rawConstituent();
36 return
37 // fastjet::PseudoJet((c->rawConstituent())->p4());
38 fastjet::PseudoJet(ip->p4());
39 });
40
41 fastjet::PseudoJet pjet = fastjet::join(constit_pseudojets);
42
43 return result(pjet);
44 }
virtual double result(const fastjet::PseudoJet &jet) const
iterator begin() const
iterator on the first constituent
iterator end() const
iterator after the last constituent
JetConstituentVector getConstituents() const
Return a vector of consituents. The object behaves like vector<const IParticle*>. See JetConstituentV...
Definition Jet_v1.cxx:147

◆ setSeed()

void Volatility::setSeed ( unsigned int seed)

Definition at line 56 of file Volatility.cxx.

Member Data Documentation

◆ m_dcut_fctr

double JetSubStructureUtils::Volatility::m_dcut_fctr
private

Definition at line 29 of file Volatility.h.

◆ m_exp_max

double JetSubStructureUtils::Volatility::m_exp_max
private

Definition at line 29 of file Volatility.h.

◆ m_exp_min

double JetSubStructureUtils::Volatility::m_exp_min
private

Definition at line 29 of file Volatility.h.

◆ m_num_iterations

unsigned int JetSubStructureUtils::Volatility::m_num_iterations
private

Definition at line 28 of file Volatility.h.

◆ m_rigidity

double JetSubStructureUtils::Volatility::m_rigidity
private

Definition at line 29 of file Volatility.h.

◆ m_seed

int JetSubStructureUtils::Volatility::m_seed
private

Definition at line 30 of file Volatility.h.

◆ m_truncation_fctr

double JetSubStructureUtils::Volatility::m_truncation_fctr
private

Definition at line 29 of file Volatility.h.

◆ m_zcut

double JetSubStructureUtils::Volatility::m_zcut
private

Definition at line 29 of file Volatility.h.


The documentation for this class was generated from the following files: