File indexing completed on 2025-08-03 08:17:11
0001 #ifndef JETBASE_FASTJETOPTIONS
0002 #define JETBASE_FASTJETOPTIONS
0003
0004 #include "Jet.h"
0005
0006 #include <ostream>
0007 #include <vector>
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018 enum FastJetOptEnum
0019 {
0020 JET_R,
0021 JET_MIN_PT,
0022 JET_MAX_ETA,
0023 CONSTITUENT_MIN_PT,
0024 CONSTITUENT_MIN_E,
0025 DO_SOFTDROP,
0026 SD_BETA,
0027 SD_ZCUT,
0028 SD_JET_MIN_PT,
0029 CALC_AREA,
0030 GHOST_AREA,
0031 GHOST_MAX_RAP,
0032 CALC_RhoMedDens,
0033 CUT_RhoMedNHardest,
0034 NONE,
0035 FJCS_doConstSub,
0036 FJCS_max_eta,
0037 FJCS_GridMedBkgEst_Size,
0038 FJCS_max_dist,
0039 FJCS_alpha,
0040 FJCS_max_pt,
0041 FJCS_ghost_area,
0042 SAVE_JET_COMPONENTS,
0043 DONT_SAVE_JET_COMPONENTS,
0044 VERBOSITY
0045 };
0046
0047 struct FastJetOptItem
0048 {
0049 FastJetOptEnum opt{FastJetOptEnum::NONE};
0050 bool is_opt{false};
0051
0052 float val{0.};
0053 bool is_val{false};
0054
0055 Jet::ALGO algo{};
0056 bool is_algo{false};
0057
0058 FastJetOptItem(float _val)
0059 : val{_val}
0060 , is_val{true} {};
0061 FastJetOptItem(Jet::ALGO _algo)
0062 : algo{_algo}
0063 , is_algo{true} {};
0064 FastJetOptItem(FastJetOptEnum _opt)
0065 : opt{_opt}
0066 , is_opt{true} {};
0067 };
0068
0069 struct FastJetOptions
0070 {
0071 FastJetOptions() {};
0072 FastJetOptions(const std::vector<FastJetOptItem>& _vitem) { update(_vitem); };
0073 FastJetOptions& update(std::vector<FastJetOptItem>);
0074 FastJetOptions& operator()(const std::vector<FastJetOptItem>& _vitem) { return update(_vitem); };
0075
0076 void print(std::ostream& os = std::cout);
0077
0078 static float next_val(unsigned int i, std::vector<FastJetOptItem>&);
0079 void initialize();
0080 float jet_R{0.4};
0081 Jet::ALGO algo{Jet::ALGO::ANTIKT};
0082
0083 bool use_jet_max_eta{false};
0084 float jet_max_eta{0};
0085
0086
0087
0088 bool use_jet_min_pt{false};
0089 float jet_min_pt{0};
0090
0091 bool use_constituent_min_pt{false};
0092 float constituent_min_pt{0.};
0093
0094 float constituent_min_E{0.};
0095
0096 bool save_jet_components{true};
0097
0098
0099 bool doSoftDrop{false};
0100 float SD_beta{0};
0101 float SD_zcut{0};
0102 float SD_jet_min_pt{5.};
0103
0104
0105 bool calc_area{false};
0106 float ghost_area{0.01};
0107 float ghost_max_rap{0};
0108
0109
0110 bool calc_jetmedbkgdens{false};
0111 float nhardestcut_jetmedbkgdens{2};
0112 float etahardestcut_jetmedbkgdens{0.};
0113
0114
0115 bool cs_calc_constsub{false};
0116 float cs_max_eta{1.1};
0117 float cs_max_pt{-1.};
0118 float cs_gridmedestsize{0.5};
0119 float cs_max_dist{0.3};
0120 float cs_alpha{1.};
0121 float cs_ghost_area{0.01};
0122
0123 int verbosity{0};
0124
0125
0126 bool use_jet_selection{false};
0127 };
0128
0129 #endif