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
20 double sum_mass = 0, sum_mass2 = 0;
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
30 continue;
31 }
32
34 sum_mass += qjets[0].m();
35 sum_mass2 += qjets[0].m2();
36 }
37
38 if(n == 0) {
39
40 return -999;
41 }
42
43 double rms_dev2 = sum_mass2/
n -
pow(sum_mass/n, 2.0);
44 if(rms_dev2 < 0) {
45
46
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