Back to home page

sPhenix code displayed by LXR

 
 

    


File indexing completed on 2025-08-05 08:11:11

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