File indexing completed on 2025-08-05 08:11:13
0001
0002 #ifndef JETANALYSIS_H
0003 #define JETANALYSIS_H
0004
0005 #include <fun4all/SubsysReco.h>
0006 #include <calotrigger/TriggerAnalyzer.h>
0007 #include <string>
0008 #include <vector>
0009 #include <calobase/TowerInfoContainer.h>
0010 #include <calobase/TowerInfoContainerv1.h>
0011 #include <calobase/TowerInfoContainerv2.h>
0012 #include <calobase/TowerInfoContainerv3.h>
0013 #include <calobase/TowerInfo.h>
0014 #include <calobase/TowerInfov1.h>
0015 #include <calobase/TowerInfov2.h>
0016 #include <calobase/TowerInfov3.h>
0017
0018 #include <jetbase/Jet.h>
0019 #include <jetbase/JetContainer.h>
0020 #include <jetbase/JetContainerv1.h>
0021 #include <jetbase/Jetv2.h>
0022
0023 #include "TH1.h"
0024 #include "TH2.h"
0025 #include "TProfile.h"
0026 #include "TFile.h"
0027
0028
0029 class PHCompositeNode;
0030 class TowerInfoContainer;
0031 class JetContainer;
0032 class PHG4TruthInfoContainer;
0033 class JetAnalysis : public SubsysReco
0034 {
0035 public:
0036
0037 JetAnalysis(const std::string &name = "JetAnalysis", const std::string &outfilename = "hist_jetanalysis.root");
0038
0039 virtual ~JetAnalysis();
0040
0041 int Init(PHCompositeNode *topNode) override;
0042
0043 int InitRun(PHCompositeNode *topNode) override;
0044
0045 int process_event(PHCompositeNode *topNode) override;
0046
0047 void GetNodes (PHCompositeNode *topNode);
0048
0049 int ResetEvent(PHCompositeNode *topNode) override;
0050
0051 int EndRun(const int runnumber) override;
0052
0053 int End(PHCompositeNode *topNode) override;
0054
0055 int Reset(PHCompositeNode * ) override;
0056
0057 void SetVerbosity(int verbo) ;
0058 void SetIsSim(bool use) {isSim = use;}
0059
0060 void SetPtCut(float pt) {pt_cut = pt;}
0061 Double_t getDPHI(Double_t phi1, Double_t phi2);
0062 private:
0063 TriggerAnalyzer *triggeranalyzer;
0064 void reset_tree_vars();
0065
0066 int _verbosity;
0067
0068 float pt_cut = 4;
0069
0070 TFile *_f;
0071 TTree *_tree;
0072 std::string _trigger;
0073 std::string _foutname;
0074 std::string _nodename;
0075 std::string m_ll1_nodename;
0076 std::string m_ll1_raw_nodename;
0077 std::string m_calo_nodename;
0078 int _i_event;
0079 bool useCaloTowerBuilder;
0080 bool useLL1;
0081 bool isSim{0};
0082 LL1Out *_ll1out_pair_trigger;
0083 LL1Out *_ll1out_photon_trigger;
0084 LL1Out *_ll1out_jet_trigger;
0085 LL1Out *_ll1out_raw_trigger;
0086 Gl1Packet *_gl1_packet;
0087 TriggerPrimitive *_trigger_primitive;
0088 TriggerPrimitiveContainer *_trigger_primitives_raw_emcal;
0089 TriggerPrimitiveContainer *_trigger_primitives_raw_emcal_ll1;
0090 TriggerPrimitiveContainer *_trigger_primitives_raw_trigger;
0091 TriggerPrimitiveContainer *_trigger_primitives_emcal;
0092 TriggerPrimitiveContainer *_trigger_primitives_emcal_ll1;
0093 TriggerPrimitiveContainer *_trigger_primitives_hcalin;
0094 TriggerPrimitiveContainer *_trigger_primitives_hcalout;
0095 TriggerPrimitiveContainer *_trigger_primitives_hcal_ll1;
0096 TriggerPrimitiveContainer *_trigger_primitives_trigger;
0097
0098 TowerInfo *_tower;
0099 TowerInfoContainer* _towers;
0100
0101
0102
0103
0104
0105
0106 unsigned int b_trigger_sum_smpl_emcal[6144];
0107 unsigned int b_trigger_sumkey_emcal[6144];
0108 unsigned int b_trigger_sum_emcal[6144];
0109 unsigned int b_trigger_sum_smpl_hcalin[384];
0110 unsigned int b_trigger_sumkey_hcalin[384];
0111 unsigned int b_trigger_sum_hcalin[384];
0112 unsigned int b_trigger_sum_smpl_hcalout[384];
0113 unsigned int b_trigger_sumkey_hcalout[384];
0114 unsigned int b_trigger_sum_hcalout[384];
0115
0116 std::vector<unsigned int> b_triggered_sums_jet;
0117 std::vector<unsigned int> b_triggered_sums_photon;
0118 std::vector<unsigned int> b_triggered_sums_pair;
0119 uint64_t b_gl1_rawvec;
0120 uint64_t b_gl1_livevec;
0121 uint64_t b_gl1_scaledvec;
0122 uint64_t b_gl1_clock;
0123 uint64_t b_gl1_raw[64];
0124 uint64_t b_gl1_live[64];
0125 uint64_t b_gl1_scaled[64];
0126 unsigned int b_trigger_sum_smpl_emcal_ll1[384];
0127 unsigned int b_trigger_sumkey_emcal_ll1[384];
0128 unsigned int b_trigger_sum_emcal_ll1[384];
0129 unsigned int b_trigger_sum_smpl_hcal_ll1[384];
0130 unsigned int b_trigger_sumkey_hcal_ll1[384];
0131 unsigned int b_trigger_sum_hcal_ll1[384];
0132
0133 unsigned int b_trigger_sum_smpl_jet[288];
0134 unsigned int b_trigger_sumkey_jet[288];
0135 unsigned int b_trigger_sum_jet[288];
0136
0137 unsigned int b_trigger_sum_smpl_jet_input[384];
0138 unsigned int b_trigger_sumkey_jet_input[384];
0139 unsigned int b_trigger_sum_jet_input[384];
0140
0141 unsigned int b_trigger_raw_sum_smpl_emcal[6144];
0142 unsigned int b_trigger_raw_sumkey_emcal[6144];
0143 unsigned int b_trigger_raw_sum_emcal[6144];
0144
0145 unsigned int b_trigger_raw_sum_smpl_emcal_ll1[384];
0146 unsigned int b_trigger_raw_sumkey_emcal_ll1[384];
0147 unsigned int b_trigger_raw_sum_emcal_ll1[384];
0148
0149 unsigned int b_trigger_raw_sum_smpl_jet[288];
0150 unsigned int b_trigger_raw_sumkey_jet[288];
0151 unsigned int b_trigger_raw_sum_jet[288];
0152
0153 unsigned int b_trigger_raw_sum_smpl_jet_input[384];
0154 unsigned int b_trigger_raw_sumkey_jet_input[384];
0155 unsigned int b_trigger_raw_sum_jet_input[384];
0156 unsigned int b_trigger_bits_photon;
0157 unsigned int b_trigger_bits_jet;
0158 unsigned int b_trigger_bits_pair;
0159 unsigned int b_trigger_raw_bits;
0160
0161 float b_vertex_x;
0162 float b_vertex_y;
0163 float b_vertex_z;
0164
0165 int b_cluster_n;
0166 std::vector<float> b_cluster_prob;
0167 std::vector<float> b_cluster_chi2;
0168 std::vector<float> b_cluster_ecore;
0169 std::vector<float> b_cluster_pt;
0170 std::vector<float> b_cluster_phi;
0171 std::vector<float> b_cluster_eta;
0172 std::vector<float> b_cluster_z;
0173 std::vector<float> b_cluster_y;
0174 std::vector<float> b_cluster_x;
0175 std::vector<float> b_cluster_iso;
0176
0177 std::vector<short> b_emcal_good;
0178 std::vector<float> b_emcal_energy;
0179 std::vector<float> b_emcal_time;
0180 std::vector<float> b_emcal_etabin;
0181 std::vector<float> b_emcal_phibin;
0182
0183 std::vector<short> b_emcalre_good;
0184 std::vector<float> b_emcalre_energy;
0185 std::vector<float> b_emcalre_time;
0186 std::vector<float> b_emcalre_etabin;
0187 std::vector<float> b_emcalre_phibin;
0188
0189 std::vector<short> b_hcalin_good;
0190 std::vector<float> b_hcalin_energy;
0191 std::vector<float> b_hcalin_time;
0192 std::vector<float> b_hcalin_etabin;
0193 std::vector<float> b_hcalin_phibin;
0194
0195 std::vector<short> b_hcalout_good;
0196 std::vector<float> b_hcalout_energy;
0197 std::vector<float> b_hcalout_time;
0198 std::vector<float> b_hcalout_etabin;
0199 std::vector<float> b_hcalout_phibin;
0200
0201 std::vector<short> b_emcalresub_good;
0202 std::vector<float> b_emcalresub_energy;
0203 std::vector<float> b_emcalresub_time;
0204 std::vector<float> b_emcalresub_etabin;
0205 std::vector<float> b_emcalresub_phibin;
0206
0207 std::vector<short> b_hcalinsub_good;
0208 std::vector<float> b_hcalinsub_energy;
0209 std::vector<float> b_hcalinsub_time;
0210 std::vector<float> b_hcalinsub_etabin;
0211 std::vector<float> b_hcalinsub_phibin;
0212
0213 std::vector<short> b_hcaloutsub_good;
0214 std::vector<float> b_hcaloutsub_energy;
0215 std::vector<float> b_hcaloutsub_time;
0216 std::vector<float> b_hcaloutsub_etabin;
0217 std::vector<float> b_hcaloutsub_phibin;
0218
0219 float b_mbd_charge[128];
0220 float b_mbd_time[128];
0221 int b_mbd_ipmt[128];
0222 int b_mbd_side[128];
0223 int b_truth_particle_n = 0;
0224 std::vector<int> b_truth_particle_pid = {};
0225 std::vector<float> b_truth_particle_pt = {};
0226 std::vector<float> b_truth_particle_eta = {};
0227 std::vector<float> b_truth_particle_phi = {};
0228
0229 int b_njet_2 = 0;
0230 std::vector<float> b_jet_pt_2 = {};
0231 std::vector<float> b_jet_et_2 = {};
0232 std::vector<float> b_jet_mass_2 = {};
0233 std::vector<float> b_jet_eta_2 = {};
0234 std::vector<float> b_jet_phi_2 = {};
0235 std::vector<float> b_jet_emcal_frac_2 = {};
0236 std::vector<float> b_jet_emcal_tower_frac_2 = {};
0237 std::vector<float> b_jet_hcalin_frac_2 = {};
0238 std::vector<float> b_jet_hcalout_frac_2 = {};
0239
0240 int b_njet_4 = 0;
0241 std::vector<float> b_jet_pt_4 = {};
0242 std::vector<float> b_jet_et_4 = {};
0243 std::vector<float> b_jet_mass_4 = {};
0244 std::vector<float> b_jet_eta_4 = {};
0245 std::vector<float> b_jet_phi_4 = {};
0246 std::vector<float> b_jet_emcal_4 = {};
0247 std::vector<float> b_jet_et_em_4 = {};
0248 std::vector<float> b_jet_emcal_tower_frac_4 = {};
0249 std::vector<float> b_jet_hcalin_4 = {};
0250 std::vector<float> b_jet_hcalout_4 = {};
0251
0252 int b_njet_4nosub = 0;
0253 std::vector<float> b_jet_pt_4nosub = {};
0254 std::vector<float> b_jet_et_4nosub = {};
0255 std::vector<float> b_jet_mass_4nosub = {};
0256 std::vector<float> b_jet_eta_4nosub = {};
0257 std::vector<float> b_jet_phi_4nosub = {};
0258 std::vector<float> b_jet_emcal_frac_4nosub = {};
0259 std::vector<float> b_jet_emcal_tower_frac_4nosub = {};
0260 std::vector<float> b_jet_hcalin_frac_4nosub = {};
0261 std::vector<float> b_jet_hcalout_frac_4nosub = {};
0262
0263 int b_njet_6 = 0;
0264 std::vector<float> b_jet_pt_6 = {};
0265 std::vector<float> b_jet_et_6 = {};
0266 std::vector<float> b_jet_mass_6 = {};
0267 std::vector<float> b_jet_eta_6 = {};
0268 std::vector<float> b_jet_phi_6 = {};
0269 std::vector<float> b_jet_emcal_frac_6 = {};
0270 std::vector<float> b_jet_emcal_tower_frac_6 = {};
0271 std::vector<float> b_jet_hcalin_frac_6 = {};
0272 std::vector<float> b_jet_hcalout_frac_6 = {};
0273
0274 int trash;
0275 int r1;
0276 float emcal_energy;
0277 float energy;
0278 float spread;
0279
0280
0281 };
0282
0283 #endif