Back to home page

sPhenix code displayed by LXR

 
 

    


File indexing completed on 2025-08-05 08:13:28

0001 #ifndef MIXEDJETANALYSIS_H
0002 #define MIXEDJETANALYSIS_H
0003 
0004 #include <fun4all/SubsysReco.h>
0005 #include <string>
0006 #include <vector>
0007 #include <ffarawobjects/Gl1Packet.h>
0008 #include <ffarawobjects/Gl1Packetv1.h>
0009 #include <ffarawobjects/Gl1Packetv2.h>
0010 
0011 #include <calobase/TowerInfoContainer.h>
0012 #include <calobase/TowerInfoContainerv1.h>
0013 #include <calobase/TowerInfoContainerv2.h>
0014 #include <calobase/TowerInfoContainerv3.h>
0015 #include <calobase/TowerInfo.h>
0016 #include <calobase/TowerInfov1.h>
0017 #include <calobase/TowerInfov2.h>
0018 #include <calobase/TowerInfov3.h>
0019 #include <calobase/RawTowerGeom.h>// jet includes
0020 #include <calobase/RawCluster.h>
0021 #include <calobase/RawClusterContainer.h>
0022 #include <calobase/RawClusterUtility.h>
0023 #include <calobase/RawTowerGeomContainer.h>
0024 #include <calobase/RawTower.h>
0025 #include <calobase/RawTowerContainer.h>
0026 #include <calotrigger/MinimumBiasInfov1.h>
0027 #include <jetbase/Jet.h>
0028 #include <jetbase/JetContainer.h>
0029 #include <jetbase/JetContainerv1.h>
0030 #include <jetbase/Jetv2.h>
0031 
0032 #include "TTree.h"
0033 #include "TFile.h"
0034 #include "TVector3.h"
0035 
0036 class Gl1Packet;
0037 class CentralityInfo;
0038 class EventplaneinfoMap;
0039 class TowerBackground;
0040 class MinimumBiasInfo;
0041 class TVector3;
0042 class PHCompositeNode;
0043 class Jet;
0044 class JetContainer;
0045 class MixedJetAnalysis : public SubsysReco
0046 {
0047  public:
0048 
0049   MixedJetAnalysis(const std::string &name = "MixedJetAnalysis", const std::string &outfilename = "trees_caloemulator.root");
0050 
0051   virtual ~MixedJetAnalysis();
0052 
0053   int Init(PHCompositeNode */*topNode*/) override;
0054 
0055   int process_event(PHCompositeNode *topNode) override;
0056 
0057   int process_jets(int cone_index, PHCompositeNode *topNode);
0058 
0059   int store_mixed_events(int cone_index);
0060   
0061   int get_mixed_events(int cone_index);
0062 
0063   int show_queue(int cone_index);
0064     
0065   int End(PHCompositeNode * /*topNode*/) override;
0066 
0067   void SetPtCut(float pt) {pt_cut = pt;}
0068   void SetMaxPtCut(float pt) {signal_pt_cut = pt;}
0069   void usePsi(bool use) { m_use_psi = use; }
0070   
0071   void addConeSize(int conesize, bool bkg = false) { m_cone_sizes[m_n_cone_sizes++] = std::make_pair(conesize, bkg); }
0072 
0073   void setRunnumber(int run){b_runnumber = run;}
0074 
0075   void setSegment(int seg){b_segment = seg;}
0076 
0077   struct mixedjet
0078   {
0079     float pt = 0;
0080     float eta = 0;
0081     float phi = 0;
0082   };
0083     
0084  private:
0085 
0086   int m_n_cone_sizes = 0;
0087   std::map<int, std::pair<int, bool>> m_cone_sizes{};
0088   
0089   void reset_tree_vars();
0090   
0091   float m_higheta = 1.1;
0092   float m_loweta = -1.1;
0093   bool m_use_psi{false};
0094   float pt_cut = 3;
0095   float signal_pt_cut = 20;
0096 
0097   float vertex_cut = 60;
0098   float vertex_bin_width = 5;
0099   TFile *_f;
0100   TTree *_tree;
0101   TTree *_tree_end;
0102 
0103   std::string _foutname;
0104   std::string _nodename;
0105   std::string m_calo_nodename;
0106 
0107   int _i_event;
0108 
0109   TowerBackground *m_towback = nullptr;
0110   CentralityInfo *m_central = nullptr;
0111   MinimumBiasInfo *m_minimumbiasinfo = nullptr;
0112   EventplaneinfoMap *m_evpmap = nullptr;
0113   
0114   int b_centrality = 0;
0115   float b_psi = 0;
0116   float b_v2 = 0;
0117   int b_flow_fail = 0;
0118   int b_ismb = 0;
0119   unsigned int m_total_bin = 0;
0120 
0121   int b_runnumber = 0;
0122   int b_segment = 0;
0123   ULong64_t first_scaled[64];
0124   ULong64_t first_live[64];
0125   ULong64_t first_raw[64];
0126   ULong64_t last_scaled[64];
0127   ULong64_t last_live[64];
0128   ULong64_t last_raw[64];
0129   ULong64_t b_scaled_scalers[64];
0130   ULong64_t b_live_scalers[64];
0131   ULong64_t b_raw_scalers[64];
0132   
0133   float b_vertex_z;
0134 
0135   float b_time_zero;
0136 
0137   int b_mbd_npmt;
0138   std::vector<float> b_mbd_charge;
0139   std::vector<float> b_mbd_time;
0140   std::vector<short> b_mbd_ipmt;
0141   std::vector<short> b_mbd_side;
0142 
0143   std::vector<int> b_njet{};
0144   std::vector<std::vector<float>*> b_jet_pt;
0145   std::vector<std::vector<float>*> b_jet_eta;
0146   std::vector<std::vector<float>*> b_jet_phi;
0147 
0148   std::vector<int> b_njet_mix{};
0149   std::vector<std::vector<float>*> b_jet_mix_pt;
0150   std::vector<std::vector<float>*> b_jet_mix_eta;
0151   std::vector<std::vector<float>*> b_jet_mix_phi;
0152 
0153   std::vector<std::map<unsigned int, std::vector<std::vector<struct mixedjet>>*>> m_mixed_jet_bank;
0154 
0155   ULong64_t b_gl1_scaled{0};
0156   ULong64_t b_gl1_live{0};
0157   ULong64_t b_gl1_raw{0};
0158   unsigned int m_nbin_vertex = 10;
0159   unsigned int m_nbin_psi = 8;
0160   float m_vertex_bin_edges[11] = {-60, -30, -20, -10, -5, 0, 5, 10, 20, 30 , 60}; 
0161 
0162   unsigned int m_max_length_buffer = 20;
0163 };
0164 
0165 #endif