File indexing completed on 2025-08-06 08:14:17
0001 #pragma once
0002 #if ROOT_VERSION_CODE >= ROOT_VERSION(6,00,0)
0003 #include <fun4all/SubsysReco.h>
0004 #include <fun4all/Fun4AllServer.h>
0005 #include <fun4all/Fun4AllInputManager.h>
0006 #include <fun4all/Fun4AllDstInputManager.h>
0007
0008 #include <fun4all/Fun4AllDstOutputManager.h>
0009 #include <fun4all/Fun4AllOutputManager.h>
0010 #include <fun4all/Fun4AllServer.h>
0011
0012 #include <phool/PHRandomSeed.h>
0013 #include <phool/recoConsts.h>
0014
0015 #include <g4jets/FastJetAlgo.h>
0016 #include <g4jets/JetReco.h>
0017 #include <g4jets/TowerJetInput.h>
0018 #include <g4jets/TruthJetInput.h>
0019
0020 #include <g4centrality/PHG4CentralityReco.h>
0021
0022 #include <jetbackground/CopyAndSubtractJets.h>
0023 #include <jetbackground/DetermineTowerBackground.h>
0024 #include <jetbackground/FastJetAlgoSub.h>
0025 #include <jetbackground/RetowerCEMC.h>
0026 #include <jetbackground/SubtractTowers.h>
0027 #include <jetbackground/SubtractTowersCS.h>
0028
0029 #include <jetunderlyingevent/JetUnderlyingEvent.h>
0030
0031 R__LOAD_LIBRARY(libfun4all.so)
0032 R__LOAD_LIBRARY(libg4jets.so)
0033 R__LOAD_LIBRARY(libjetbackground.so)
0034 R__LOAD_LIBRARY(JetUnderlyingEvent.so)
0035 R__LOAD_LIBRARY(libg4centrality.so)
0036 R__LOAD_LIBRARY(libg4dst.so)
0037
0038 namespace Enable
0039 {
0040 bool HIJETS = true;
0041 int HIJETS_VERBOSITY = 1;
0042 }
0043
0044 namespace G4HIJETS
0045 {
0046 bool do_flow = false;
0047 bool do_CS = false;
0048 }
0049 #endif
0050
0051
0052 void Fun4All_JetVal( const char *filelistcalo = "dst_calo_cluster.list",
0053 const char *filelistbbc = "dst_bbc_g4hit.list",
0054 const char *outname = "output_test.root")
0055
0056 {
0057
0058
0059 Fun4AllServer *se = Fun4AllServer::instance();
0060 int verbosity = 0;
0061
0062 se->Verbosity(verbosity);
0063 recoConsts *rc = recoConsts::instance();
0064
0065 PHG4CentralityReco *cent = new PHG4CentralityReco();
0066 cent->Verbosity(0);
0067 cent->GetCalibrationParameters().ReadFromFile("centrality", "xml", 0, 0, string(getenv("CALIBRATIONROOT")) + string("/Centrality/"));
0068 se->registerSubsystem( cent );
0069
0070 RetowerCEMC *rcemc = new RetowerCEMC();
0071 rcemc->Verbosity(verbosity);
0072 se->registerSubsystem(rcemc);
0073
0074 JetReco *towerjetreco = new JetReco();
0075 towerjetreco->add_input(new TowerJetInput(Jet::CEMC_TOWER_RETOWER));
0076 towerjetreco->add_input(new TowerJetInput(Jet::HCALIN_TOWER));
0077 towerjetreco->add_input(new TowerJetInput(Jet::HCALOUT_TOWER));
0078 towerjetreco->add_algo(new FastJetAlgo(Jet::ANTIKT, 0.2), "AntiKt_Tower_HIRecoSeedsRaw_r02");
0079 towerjetreco->set_algo_node("ANTIKT");
0080 towerjetreco->set_input_node("TOWER");
0081 towerjetreco->Verbosity(verbosity);
0082 se->registerSubsystem(towerjetreco);
0083
0084 DetermineTowerBackground *dtb = new DetermineTowerBackground();
0085 dtb->SetBackgroundOutputName("TowerBackground_Sub1");
0086 dtb->SetFlow(G4HIJETS::do_flow);
0087 dtb->SetSeedType(0);
0088 dtb->SetSeedJetD(3);
0089 dtb->Verbosity(verbosity);
0090 se->registerSubsystem(dtb);
0091
0092 CopyAndSubtractJets *casj = new CopyAndSubtractJets();
0093 casj->SetFlowModulation(G4HIJETS::do_flow);
0094 casj->Verbosity(verbosity);
0095 se->registerSubsystem(casj);
0096
0097 DetermineTowerBackground *dtb2 = new DetermineTowerBackground();
0098 dtb2->SetBackgroundOutputName("TowerBackground_Sub2");
0099 dtb2->SetFlow(G4HIJETS::do_flow);
0100 dtb2->SetSeedType(1);
0101 dtb2->SetSeedJetPt(7);
0102 dtb2->Verbosity(verbosity);
0103 se->registerSubsystem(dtb2);
0104
0105 SubtractTowers *st = new SubtractTowers();
0106 st->SetFlowModulation(G4HIJETS::do_flow);
0107 st->Verbosity(verbosity);
0108 se->registerSubsystem(st);
0109
0110 towerjetreco = new JetReco();
0111 towerjetreco->add_input(new TowerJetInput(Jet::CEMC_TOWER_SUB1));
0112 towerjetreco->add_input(new TowerJetInput(Jet::HCALIN_TOWER_SUB1));
0113 towerjetreco->add_input(new TowerJetInput(Jet::HCALOUT_TOWER_SUB1));
0114 towerjetreco->add_algo(new FastJetAlgoSub(Jet::ANTIKT, 0.2, 1), "AntiKt_Tower_r02_Sub1");
0115 towerjetreco->add_algo(new FastJetAlgoSub(Jet::ANTIKT, 0.3, 1), "AntiKt_Tower_r03_Sub1");
0116 towerjetreco->add_algo(new FastJetAlgoSub(Jet::ANTIKT, 0.4, 1), "AntiKt_Tower_r04_Sub1");
0117 towerjetreco->add_algo(new FastJetAlgoSub(Jet::ANTIKT, 0.5, 1), "AntiKt_Tower_r05_Sub1");
0118 towerjetreco->set_algo_node("ANTIKT");
0119 towerjetreco->set_input_node("TOWER");
0120 towerjetreco->Verbosity(verbosity);
0121 se->registerSubsystem(towerjetreco);
0122
0123
0124
0125 JetUnderlyingEvent *myJetVal = new JetUnderlyingEvent("name",outname);
0126 se->registerSubsystem(myJetVal);
0127
0128 Fun4AllInputManager *in2 = new Fun4AllDstInputManager("DSTcalo");
0129 in2->AddListFile(filelistcalo,1);
0130 se->registerInputManager(in2);
0131
0132 Fun4AllInputManager *in3 = new Fun4AllDstInputManager("DSTbbc");
0133 in3->AddListFile(filelistbbc,1);
0134 se->registerInputManager(in3);
0135
0136
0137
0138 se->run(-1);
0139 se->End();
0140
0141 gSystem->Exit(0);
0142 return 0;
0143
0144 }