File indexing completed on 2025-08-03 08:15:07
0001 #ifndef __PHOTONJET_H__
0002 #define __PHOTONJET_H__
0003
0004 #include <fun4all/SubsysReco.h>
0005 #include <vector>
0006
0007 #include <TFile.h>
0008 #include <TH1.h>
0009 #include <TH2.h>
0010 #include <TMath.h>
0011 #include <TTree.h>
0012
0013 class PHCompositeNode;
0014 class RawClusterContainer;
0015 class RawTowerContainer;
0016 class RawCluster;
0017 class SvtxTrackMap;
0018 class JetMap;
0019 class GlobalVertex;
0020 class PHHepMCGenEventMap;
0021 class JetEvalStack;
0022 class JetRecoEval;
0023 class SvtxTrackEval;
0024 class PHG4TruthInfoContainer;
0025 class PHHepMCGenEvent;
0026 class CaloTriggerInfo;
0027 class JetTruthEval;
0028
0029 class PhotonJet : public SubsysReco
0030 {
0031 public:
0032 PhotonJet(const std::string &name = "photonjet.root");
0033 double isoconeradius, mincluspt;
0034 double minjetpt;
0035 int jet_cone_size;
0036 int use_isocone;
0037 int eval_tracked_jets;
0038 int etalow;
0039 int etahigh;
0040 int usetrigger;
0041 int use_pos_cor_cemc;
0042 int is_AA;
0043 double mindp_pt;
0044
0045 int Init(PHCompositeNode *);
0046 int process_event(PHCompositeNode *);
0047 int End(PHCompositeNode *);
0048
0049 void use_trigger_emulator(int yesorno) { usetrigger = yesorno; };
0050 void set_jetpt_mincut(double pt) { minjetpt = pt; };
0051 void Set_Isocone_radius(double rad) { isoconeradius = rad; };
0052 void set_cluspt_mincut(double pt) { mincluspt = pt; };
0053 void set_directphotonpt_mincut(double pt) { mindp_pt = pt; };
0054 void use_isocone_algorithm(int yes) { use_isocone = yes; };
0055 void set_jetcone_size(int size) { jet_cone_size = size; }
0056 void SetFirstEventNum(int eventnum) { nevents = eventnum; }
0057 void use_tracked_jets(int useit) { eval_tracked_jets = useit; };
0058 void set_eta_lowhigh(float low, float high)
0059 {
0060 etalow = low;
0061 etahigh = high;
0062 };
0063 void use_positioncorrection_CEMC(int useit) { use_pos_cor_cemc = useit; };
0064 void set_AA_collisions(int isaa) { is_AA = isaa; };
0065 private:
0066 TH1 *ntruthconstituents_h;
0067 TH1 *percent_photon_h;
0068 TFile *file;
0069 TTree *tree;
0070 TTree *cluster_tree;
0071 TTree *truth_g4particles;
0072 TTree *truthtree;
0073 TTree *isolated_clusters;
0074 TTree *tracktree;
0075 TTree *truthjettree;
0076 TTree *recojettree;
0077 TTree *isophot_jet_tree;
0078 TTree *isophot_trackjet_tree;
0079 TTree *isophot_had_tree;
0080 TTree *event_tree;
0081 std::string outfilename;
0082
0083 float mpi;
0084 int ntruthconstituents;
0085 int nevents;
0086 TH1F *histo;
0087
0088 float beam_energy;
0089 float x1;
0090 float x2;
0091 int partid1;
0092 int partid2;
0093
0094 float hardest_jetpt;
0095 float hardest_jetphi;
0096 float hardest_jeteta;
0097 float hardest_jetenergy;
0098
0099
0100 float clus_energy;
0101 float clus_eta;
0102 float clus_phi;
0103 float clus_pt;
0104 float clus_px;
0105 float clus_py;
0106 float clus_pz;
0107 float clus_theta;
0108 float clus_x, clus_y, clus_z, clus_t;
0109
0110
0111 float tr_px, tr_py, tr_pz;
0112 float tr_p;
0113 float tr_pt;
0114 float tr_phi;
0115 float tr_eta;
0116 int charge;
0117 float chisq;
0118 unsigned int ndf;
0119 float dca;
0120 float tr_x, tr_y, tr_z;
0121 float truthtrackpx, truthtrackpy, truthtrackpz;
0122 float truthtrackp;
0123 float truthtracke;
0124 float truthtrackpt;
0125 float truthtrackphi;
0126 float truthtracketa;
0127 int truthtrackpid;
0128 bool truth_is_primary;
0129
0130
0131 float truthjetpt;
0132 float truthjetpx, truthjetpy, truthjetpz;
0133 float truthjetphi;
0134 float truthjeteta;
0135 float truthjetmass;
0136 float truthjetp;
0137 float truthjetenergy;
0138
0139 float dR;
0140
0141 float recojetpt;
0142 float recojetpx, recojetpy, recojetpz;
0143 float recojetphi;
0144 float recojeteta;
0145 float recojetmass;
0146 float recojetp;
0147 float recojetenergy;
0148 float recojetid;
0149 float truthjetid;
0150
0151
0152 float _recojetid;
0153 float _recojetpt;
0154 float _recojetpx, _recojetpy, _recojetpz;
0155 float _recojetphi;
0156 float _recojeteta;
0157 float _recojetmass;
0158 float _recojetp;
0159 float _recojetenergy;
0160 float jetdphi;
0161 float jetpout;
0162 float jetdeta;
0163 float _truthjetid;
0164 float _truthjetpt;
0165 float _truthjetpx, _truthjetpy, _truthjetpz;
0166 float _truthjetphi;
0167 float _truthjeteta;
0168 float _truthjetmass;
0169 float _truthjetp;
0170 float _truthjetenergy;
0171
0172
0173 float _trecojetid;
0174 float _trecojetpt;
0175 float _trecojetpx, _trecojetpy, _trecojetpz;
0176 float _trecojetphi;
0177 float _trecojeteta;
0178 float _trecojetmass;
0179 float _trecojetp;
0180 float _trecojetenergy;
0181 float tjetdphi;
0182 float tjetpout;
0183 float tjetdeta;
0184 float _ttruthjetid;
0185 float _ttruthjetpt;
0186 float _ttruthjetpx, _ttruthjetpy, _ttruthjetpz;
0187 float _ttruthjetphi;
0188 float _ttruthjeteta;
0189 float _ttruthjetmass;
0190 float _ttruthjetp;
0191 float _ttruthjetenergy;
0192
0193
0194 float _tr_px, _tr_py, _tr_pz;
0195 float _tr_p;
0196 float _tr_pt;
0197 float _tr_phi;
0198 float _tr_eta;
0199 int _charge;
0200 float _chisq;
0201 unsigned int _ndf;
0202 float _dca;
0203 float _tr_x, _tr_y, _tr_z;
0204 float haddphi;
0205 float hadpout;
0206 float haddeta;
0207 bool _truth_is_primary;
0208 float _truthtrackpx;
0209 float _truthtrackpy;
0210 float _truthtrackpz;
0211 float _truthtrackp;
0212 float _truthtracke;
0213 float _truthtrackpt;
0214 float _truthtrackphi;
0215 float _truthtracketa;
0216 int _truthtrackpid;
0217
0218
0219 float truthpx, truthpy, truthpz;
0220 float truthp;
0221 float truthphi;
0222 float trutheta;
0223 float truthpt;
0224 float truthenergy;
0225 int truthpid;
0226 int numparticlesinevent;
0227 int process_id;
0228
0229
0230 float clustruthpx;
0231 float clustruthpy;
0232 float clustruthpz;
0233 float clustruthenergy;
0234 float clustruthpt;
0235 float clustruthphi;
0236 float clustrutheta;
0237 int clustruthpid;
0238
0239 float cluseventenergy;
0240 float cluseventphi;
0241 float cluseventeta;
0242 float cluseventpt;
0243
0244
0245 float E_4x4;
0246 float phi_4x4;
0247 float eta_4x4;
0248 float E_2x2;
0249 float phi_2x2;
0250 float eta_2x2;
0251
0252 void Set_Tree_Branches();
0253
0254
0255 std::vector<float> constituent_dphis;
0256 std::vector<float> constituent_detas;
0257
0258
0259 float ConeSum(RawCluster *cluster,
0260 RawClusterContainer *cluster_container,
0261 SvtxTrackMap *trackmap, float coneradius,
0262 GlobalVertex *vtx);
0263 void GetRecoHadronsAndJets(RawCluster *trig,
0264 SvtxTrackMap *tracks,
0265 JetMap *jets,
0266 JetMap *trackedjets,
0267 JetRecoEval *recoeval,
0268 SvtxTrackEval *trackeval,
0269 PHG4TruthInfoContainer *alltruth,
0270 JetTruthEval *trutheval,
0271 JetMap *truthjets,
0272 GlobalVertex *vtx);
0273
0274 void GetRecoHadronsAndJetsAA(RawCluster *trig,
0275 SvtxTrackMap *tracks,
0276 JetMap *recojets,
0277 PHG4TruthInfoContainer *alltruth,
0278 JetMap *truthjets,
0279 GlobalVertex *vtx);
0280
0281 void initialize_values();
0282
0283 const float pi2 = -1.5707963;
0284 const float threepi2 = 4.71238898;
0285 const float pi = 3.1415926;
0286 };
0287
0288 #endif