File indexing completed on 2025-08-05 08:15:27
0001 #ifndef MACRO_HIJETRECO_C
0002 #define MACRO_HIJETRECO_C
0003
0004 #include <GlobalVariables.C>
0005
0006 #include <jetbase/FastJetAlgo.h>
0007 #include <jetbase/JetReco.h>
0008 #include <jetbase/TowerJetInput.h>
0009 #include <g4jets/TruthJetInput.h>
0010
0011 #include <jetbackground/CopyAndSubtractJets.h>
0012 #include <jetbackground/DetermineTowerBackground.h>
0013 #include <jetbackground/FastJetAlgoSub.h>
0014 #include <jetbackground/RetowerCEMC.h>
0015 #include <jetbackground/SubtractTowers.h>
0016 #include <jetbackground/SubtractTowersCS.h>
0017
0018 #include <globalvertex/GlobalVertex.h>
0019
0020 #include <fun4all/Fun4AllServer.h>
0021
0022 R__LOAD_LIBRARY(libjetbase.so)
0023 R__LOAD_LIBRARY(libg4jets.so)
0024 R__LOAD_LIBRARY(libjetbackground.so)
0025 R__LOAD_LIBRARY(libglobalvertex.so)
0026
0027 namespace Enable
0028 {
0029 bool HIJETS = false;
0030 int HIJETS_VERBOSITY = 0;
0031 bool HIJETS_MC = true;
0032 bool HIJETS_TRUTH = true;
0033 }
0034
0035 namespace HIJETS
0036 {
0037 bool do_flow = false;
0038 bool do_CS = false;
0039 bool is_pp = true;
0040 std::string tower_prefix = "TOWERINFO_CALIB";
0041 bool do_vertex_type = true;
0042 GlobalVertex::VTXTYPE vertex_type = GlobalVertex::MBD;
0043 }
0044
0045
0046 void HIJetReco()
0047 {
0048 int verbosity = std::max(Enable::VERBOSITY, Enable::HIJETS_VERBOSITY);
0049
0050
0051
0052
0053
0054 Fun4AllServer *se = Fun4AllServer::instance();
0055
0056 if (Enable::HIJETS_MC && Enable::HIJETS_TRUTH)
0057 {
0058 JetReco *truthjetreco = new JetReco();
0059 TruthJetInput *tji = new TruthJetInput(Jet::PARTICLE);
0060 tji->add_embedding_flag(0);
0061 truthjetreco->add_input(tji);
0062
0063
0064 truthjetreco->add_algo(new FastJetAlgo(Jet::ANTIKT, 0.4), "AntiKt_Truth_r04");
0065
0066 truthjetreco->set_algo_node("ANTIKT");
0067 truthjetreco->set_input_node("TRUTH");
0068 truthjetreco->Verbosity(verbosity);
0069 se->registerSubsystem(truthjetreco);
0070 }
0071
0072 RetowerCEMC *rcemc = new RetowerCEMC();
0073 rcemc->Verbosity(verbosity);
0074 rcemc->set_towerinfo(true);
0075 rcemc->set_frac_cut(0.5);
0076 rcemc->set_towerNodePrefix(HIJETS::tower_prefix);
0077 se->registerSubsystem(rcemc);
0078
0079 JetReco *towerjetreco = new JetReco();
0080 TowerJetInput *incemc = new TowerJetInput(Jet::CEMC_TOWERINFO_RETOWER,HIJETS::tower_prefix);
0081 TowerJetInput *inihcal = new TowerJetInput(Jet::HCALIN_TOWERINFO,HIJETS::tower_prefix);
0082 TowerJetInput *inohcal = new TowerJetInput(Jet::HCALOUT_TOWERINFO,HIJETS::tower_prefix);
0083 if (HIJETS::do_vertex_type)
0084 {
0085 incemc->set_GlobalVertexType(HIJETS::vertex_type);
0086 inihcal->set_GlobalVertexType(HIJETS::vertex_type);
0087 inohcal->set_GlobalVertexType(HIJETS::vertex_type);
0088 }
0089 towerjetreco->add_input(incemc);
0090 towerjetreco->add_input(inihcal);
0091 towerjetreco->add_input(inohcal);
0092 towerjetreco->add_algo(new FastJetAlgoSub(Jet::ANTIKT, 0.4), "AntiKt_Tower_r04");
0093 towerjetreco->set_algo_node("ANTIKT");
0094 towerjetreco->set_input_node("TOWER");
0095 towerjetreco->Verbosity(verbosity);
0096 se->registerSubsystem(towerjetreco);
0097
0098
0099 return;
0100
0101 }
0102 #endif