ECCE @ EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
G4_Jets.C
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file G4_Jets.C
1 #ifndef MACRO_G4JETS_C
2 #define MACRO_G4JETS_C
3 
4 #include <GlobalVariables.C>
5 #include <QA.C>
6 
8 #include <g4jets/FastJetAlgo.h>
9 #include <g4jets/JetReco.h>
10 #include <g4jets/TowerJetInput.h>
11 #include <g4jets/TrackJetInput.h>
12 #include <g4jets/TruthJetInput.h>
13 
14 #include <g4eval/JetEvaluator.h>
15 #include <qa_modules/QAG4SimulationJet.h>
16 
17 #include <fun4all/Fun4AllServer.h>
18 
19 R__LOAD_LIBRARY(libg4jets.so)
20 R__LOAD_LIBRARY(libg4eval.so)
21 R__LOAD_LIBRARY(libqa_modules.so)
22 
23 namespace Enable
24 {
25  bool JETS = false;
26  bool JETS_EVAL = false;
27  bool JETS_QA = false;
28  int JETS_VERBOSITY = 0;
29 } // namespace Enable
30 
31 void JetInit() {}
32 
33 void Jet_Reco()
34 {
36 
38 
39  // truth particle level jets
40  JetReco *truthjetreco = new JetReco("TRUTHJETRECO");
41  truthjetreco->add_input(new TruthJetInput(Jet::PARTICLE));
42  truthjetreco->add_algo(new FastJetAlgo(Jet::ANTIKT, 0.2), "AntiKt_Truth_r02");
43  truthjetreco->add_algo(new FastJetAlgo(Jet::ANTIKT, 0.3), "AntiKt_Truth_r03");
44  truthjetreco->add_algo(new FastJetAlgo(Jet::ANTIKT, 0.4), "AntiKt_Truth_r04");
45  truthjetreco->add_algo(new FastJetAlgo(Jet::ANTIKT, 0.5), "AntiKt_Truth_r05");
46  truthjetreco->add_algo(new FastJetAlgo(Jet::ANTIKT, 0.6), "AntiKt_Truth_r06");
47  truthjetreco->add_algo(new FastJetAlgo(Jet::ANTIKT, 0.7), "AntiKt_Truth_r07");
48  truthjetreco->add_algo(new FastJetAlgo(Jet::ANTIKT, 0.8), "AntiKt_Truth_r08");
49  truthjetreco->set_algo_node("ANTIKT");
50  truthjetreco->set_input_node("TRUTH");
51  truthjetreco->Verbosity(verbosity);
52  se->registerSubsystem(truthjetreco);
53 
54  // tower jets
55  JetReco *towerjetreco = new JetReco("TOWERJETRECO");
56  towerjetreco->add_input(new TowerJetInput(Jet::CEMC_TOWER));
57  towerjetreco->add_input(new TowerJetInput(Jet::HCALIN_TOWER));
58  towerjetreco->add_input(new TowerJetInput(Jet::HCALOUT_TOWER));
59  towerjetreco->add_algo(new FastJetAlgo(Jet::ANTIKT, 0.2), "AntiKt_Tower_r02");
60  towerjetreco->add_algo(new FastJetAlgo(Jet::ANTIKT, 0.3), "AntiKt_Tower_r03");
61  towerjetreco->add_algo(new FastJetAlgo(Jet::ANTIKT, 0.4), "AntiKt_Tower_r04");
62  towerjetreco->add_algo(new FastJetAlgo(Jet::ANTIKT, 0.5), "AntiKt_Tower_r05");
63  towerjetreco->add_algo(new FastJetAlgo(Jet::ANTIKT, 0.6), "AntiKt_Tower_r06");
64  towerjetreco->add_algo(new FastJetAlgo(Jet::ANTIKT, 0.7), "AntiKt_Tower_r07");
65  towerjetreco->add_algo(new FastJetAlgo(Jet::ANTIKT, 0.8), "AntiKt_Tower_r08");
66  towerjetreco->set_algo_node("ANTIKT");
67  towerjetreco->set_input_node("TOWER");
68  towerjetreco->Verbosity(verbosity);
69  se->registerSubsystem(towerjetreco);
70 
71  // cluster jets
72  JetReco *clusterjetreco = new JetReco("CLUSTERJETRECO");
73  clusterjetreco->add_input(new ClusterJetInput(Jet::CEMC_CLUSTER));
74  clusterjetreco->add_input(new ClusterJetInput(Jet::HCALIN_CLUSTER));
75  clusterjetreco->add_input(new ClusterJetInput(Jet::HCALOUT_CLUSTER));
76  clusterjetreco->add_algo(new FastJetAlgo(Jet::ANTIKT, 0.2), "AntiKt_Cluster_r02");
77  clusterjetreco->add_algo(new FastJetAlgo(Jet::ANTIKT, 0.3), "AntiKt_Cluster_r03");
78  clusterjetreco->add_algo(new FastJetAlgo(Jet::ANTIKT, 0.4), "AntiKt_Cluster_r04");
79  clusterjetreco->add_algo(new FastJetAlgo(Jet::ANTIKT, 0.5), "AntiKt_Cluster_r05");
80  clusterjetreco->add_algo(new FastJetAlgo(Jet::ANTIKT, 0.6), "AntiKt_Cluster_r06");
81  clusterjetreco->add_algo(new FastJetAlgo(Jet::ANTIKT, 0.7), "AntiKt_Cluster_r07");
82  clusterjetreco->add_algo(new FastJetAlgo(Jet::ANTIKT, 0.8), "AntiKt_Cluster_r08");
83  clusterjetreco->set_algo_node("ANTIKT");
84  clusterjetreco->set_input_node("CLUSTER");
85  clusterjetreco->Verbosity(verbosity);
86  se->registerSubsystem(clusterjetreco);
87 
88  // track jets
89  JetReco *trackjetreco = new JetReco("TRACKJETRECO");
91  trackjetreco->add_algo(new FastJetAlgo(Jet::ANTIKT, 0.2), "AntiKt_Track_r02");
92  trackjetreco->add_algo(new FastJetAlgo(Jet::ANTIKT, 0.3), "AntiKt_Track_r03");
93  trackjetreco->add_algo(new FastJetAlgo(Jet::ANTIKT, 0.4), "AntiKt_Track_r04");
94  trackjetreco->add_algo(new FastJetAlgo(Jet::ANTIKT, 0.5), "AntiKt_Track_r05");
95  trackjetreco->add_algo(new FastJetAlgo(Jet::ANTIKT, 0.6), "AntiKt_Track_r06");
96  trackjetreco->add_algo(new FastJetAlgo(Jet::ANTIKT, 0.7), "AntiKt_Track_r07");
97  trackjetreco->add_algo(new FastJetAlgo(Jet::ANTIKT, 0.8), "AntiKt_Track_r08");
98  trackjetreco->set_algo_node("ANTIKT");
99  trackjetreco->set_input_node("TRACK");
100  trackjetreco->Verbosity(verbosity);
101  se->registerSubsystem(trackjetreco);
102 
103  return;
104 }
105 
106 void Jet_Eval(const std::string &outfilename = "g4jets_eval.root")
107 {
109 
111 
112  JetEvaluator *eval = new JetEvaluator("JETEVALUATOR",
113  "AntiKt_Tower_r03",
114  "AntiKt_Truth_r03",
115  outfilename);
116  eval->Verbosity(verbosity);
117  se->registerSubsystem(eval);
118 
119  return;
120 }
121 
122 
123 void Jet_QA()
124 {
126 
128 
129  QAG4SimulationJet *calo_jet7 = new QAG4SimulationJet(
130  "AntiKt_Truth_r07");
131  calo_jet7->add_reco_jet("AntiKt_Tower_r07");
132  calo_jet7->add_reco_jet("AntiKt_Cluster_r07");
133  calo_jet7->add_reco_jet("AntiKt_Track_r07");
134  calo_jet7->Verbosity(verbosity);
135  se->registerSubsystem(calo_jet7);
136 
137  QAG4SimulationJet *calo_jet4 = new QAG4SimulationJet(
138  "AntiKt_Truth_r04");
139  calo_jet4->add_reco_jet("AntiKt_Tower_r04");
140  calo_jet4->add_reco_jet("AntiKt_Cluster_r04");
141  calo_jet4->add_reco_jet("AntiKt_Track_r04");
142  calo_jet4->Verbosity(verbosity);
143  se->registerSubsystem(calo_jet4);
144 
145  QAG4SimulationJet *calo_jet2 = new QAG4SimulationJet(
146  "AntiKt_Truth_r02");
147  calo_jet2->add_reco_jet("AntiKt_Tower_r02");
148  calo_jet2->add_reco_jet("AntiKt_Cluster_r02");
149  calo_jet2->add_reco_jet("AntiKt_Track_r02");
150  calo_jet2->Verbosity(verbosity);
151  se->registerSubsystem(calo_jet2);
152 
153  return;
154 }
155 
156 
157 #endif