File indexing completed on 2025-08-05 08:12:46
0001
0002
0003
0004
0005
0006
0007
0008 #ifndef __BJETMODULE_H__
0009 #define __BJETMODULE_H__
0010
0011
0012 #include <fun4all/SubsysReco.h>
0013 #include <vector>
0014
0015 #include "TMath.h"
0016
0017 #include "TFile.h"
0018 #include "TTree.h"
0019
0020 class PHCompositeNode;
0021 class SvtxVertexMap;
0022 class SvtxTrack;
0023
0024
0025
0026 class BJetModule : public SubsysReco
0027 {
0028 public:
0029 BJetModule(const std::string& name = "BJetModule", const std::string& out = "HFtag.root");
0030
0031 int Init(PHCompositeNode*);
0032 int reset_tree_vars();
0033 int process_event(PHCompositeNode*);
0034 int End(PHCompositeNode*);
0035
0036 const std::string& get_trackmap_name() const
0037 {
0038 return _trackmap_name;
0039 }
0040
0041 void set_trackmap_name(const std::string& trackmapName)
0042 {
0043 _trackmap_name = trackmapName;
0044 }
0045
0046 const std::string& get_vertexmap_name() const
0047 {
0048 return _vertexmap_name;
0049 }
0050 void set_truthjetmap_name(const std::string& name)
0051 { _truthjetmap_name = name; }
0052 void set_recojetmap_name(const std::string& name)
0053 { _recojetmap_name = name; }
0054 void set_vertexmap_name(const std::string& vertexmapName)
0055 {
0056 _vertexmap_name = vertexmapName;
0057 }
0058
0059 private:
0060 float dR(float eta1, float eta2, float phi1, float phi2)
0061 {
0062 float deta = eta1 - eta2;
0063 float dphi = phi1 - phi2;
0064 if (dphi > +3.14159)
0065 dphi -= 2 * 3.14159;
0066 if (dphi < -3.14159)
0067 dphi += 2 * 3.14159;
0068
0069 return sqrt(pow(deta, 2) + pow(dphi, 2));
0070 }
0071
0072 void calc3DDCA(SvtxTrack* track, SvtxVertexMap* vertexmap,
0073 float& dca3d_xy, float& dca3d_xy_error,
0074 float& dca3d_z, float& dca3d_z_error);
0075
0076 void setBranches();
0077 std::string _foutname;
0078
0079 std::string _truthjetmap_name;
0080 std::string _recojetmap_name;
0081
0082 std::string _trackmap_name;
0083 std::string _vertexmap_name;
0084
0085 int _ievent;
0086
0087 TFile* _f;
0088 TTree* _tree;
0089
0090 int _b_event;
0091
0092 int _b_truth_vertex_n;
0093 float _b_truth_vertex_x[10];
0094 float _b_truth_vertex_y[10];
0095 float _b_truth_vertex_z[10];
0096
0097 int _b_truthjet_n;
0098 int _b_truthjet_parton_flavor[10];
0099 int _b_truthjet_hadron_flavor[10];
0100
0101 float _b_truthjet_pt[10];
0102 float _b_truthjet_eta[10];
0103 float _b_truthjet_phi[10];
0104
0105 int _b_recojet_valid[10];
0106 float _b_recojet_pt[10];
0107 float _b_recojet_eta[10];
0108 float _b_recojet_phi[10];
0109
0110 int _b_particle_n;
0111 float _b_particle_pt[1000];
0112 float _b_particle_eta[1000];
0113 float _b_particle_phi[1000];
0114 int _b_particle_pid[1000];
0115 unsigned int _b_particle_embed[1000];
0116
0117 float _b_particle_vertex_x[1000];
0118 float _b_particle_vertex_y[1000];
0119 float _b_particle_vertex_z[1000];
0120 float _b_particle_dca_xy[1000];
0121 float _b_particle_dca_z[1000];
0122
0123 int _b_track_n;
0124 float _b_track_pt[1000];
0125 float _b_track_eta[1000];
0126 float _b_track_phi[1000];
0127
0128 float _b_track_dca2d[1000];
0129 float _b_track_dca2d_error[1000];
0130
0131 float _b_track_dca3d_xy[1000];
0132 float _b_track_dca3d_xy_error[1000];
0133
0134 float _b_track_dca3d_z[1000];
0135 float _b_track_dca3d_z_error[1000];
0136
0137 float _b_track_dca2d_calc[1000];
0138 float _b_track_dca2d_calc_truth[1000];
0139 float _b_track_dca3d_calc[1000];
0140 float _b_track_dca3d_calc_truth[1000];
0141
0142 float _b_track_pca_phi[1000];
0143 float _b_track_pca_x[1000];
0144 float _b_track_pca_y[1000];
0145 float _b_track_pca_z[1000];
0146
0147 float _b_track_quality[1000];
0148 float _b_track_chisq[1000];
0149 int _b_track_ndf[1000];
0150
0151 int _b_track_nmaps[1000];
0152
0153 unsigned int _b_track_nclusters[1000];
0154 unsigned int _b_track_nclusters_by_layer[1000];
0155 unsigned int _b_track_best_nclusters[1000];
0156 unsigned int _b_track_best_nclusters_by_layer[1000];
0157
0158 unsigned int _b_track_best_embed[1000];
0159 bool _b_track_best_primary[1000];
0160 int _b_track_best_pid[1000];
0161 float _b_track_best_pt[1000];
0162
0163 int _b_track_best_in[1000];
0164 int _b_track_best_out[1000];
0165 int _b_track_best_parent_pid[1000];
0166
0167 float _b_track_best_vertex_x[1000];
0168 float _b_track_best_vertex_y[1000];
0169 float _b_track_best_vertex_z[1000];
0170 float _b_track_best_dca_xy[1000];
0171 float _b_track_best_dca_z[1000];
0172
0173
0174
0175
0176
0177 int _embedding_id;
0178 };
0179
0180 #endif