Back to home page

sPhenix code displayed by LXR

 
 

    


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 // jet includes
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 * /*topNode*/) 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   /* const int emcal_nsums = 6144; // number of sums in all of emcal 4*12*4*32; */
0102   /* const int hcal_nsums = 384; // number of sums in all of emcal 12*32; */
0103   /* const int emcal_ll1_nsums = 384; // number of 8x8 sums in all of emcal 4*12*4*32 /16; */
0104   /* const int jet_nsums = 288; //32*9; */
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