File indexing completed on 2025-08-03 08:12:30
0001 #ifndef __ExclusiveReco_H__
0002 #define __ExclusiveReco_H__
0003
0004 #include "TrackProjectorPlaneECAL.h"
0005
0006 #include <fun4all/SubsysReco.h>
0007 #include <calobase/RawTowerDefs.h>
0008
0009
0010 #include <math.h>
0011 #include <map>
0012
0013
0014 #include <phhepmc/PHHepMCGenEvent.h>
0015 #include <phhepmc/PHHepMCGenEventMap.h>
0016 #include <HepMC/GenEvent.h>
0017 class TTree;
0018 class TFile;
0019
0020 class PHCompositeNode;
0021 class CaloEvalStack;
0022 class CaloRawTowerEval;
0023 class RawCluster;
0024 class RawTowerContainer;
0025 class RawTowerGeomContainer;
0026
0027 class SvtxTrack;
0028 class SvtxTrackMap;
0029 class PHHepMCGenEventMap;
0030
0031
0032 class ExclusiveReco : public SubsysReco
0033 {
0034
0035 public:
0036
0037 ExclusiveReco(std::string filename);
0038
0039 int
0040 Init(PHCompositeNode*);
0041 int
0042 InitRun(PHCompositeNode*);
0043 int
0044 process_event(PHCompositeNode*);
0045 int
0046 End(PHCompositeNode*);
0047
0048 void
0049 set_beam_energies( float beam_electron , float beam_proton )
0050 {
0051 _beam_electron_ptotal = fabs( beam_electron );
0052 _beam_hadron_ptotal = fabs( beam_proton );
0053 }
0054
0055 void
0056 set_do_process_dvmp( bool select)
0057 {
0058 _do_process_dvmp = select;
0059 }
0060
0061
0062
0063 private:
0064
0065
0066 const float _mproton;
0067
0068 bool _verbose;
0069 bool _save_towers;
0070 bool _save_tracks;
0071 bool _do_process_dvmp;
0072
0073 int _ievent;
0074 int _total_pass;
0075
0076 std::string _filename;
0077 TFile *_tfile;
0078
0079
0080 TTree* _tree_invariant_mass;
0081
0082
0083 TTree* _tree_event_reco;
0084
0085
0086 TTree* _tree_event_truth;
0087
0088
0089 float _beam_electron_ptotal;
0090 float _beam_hadron_ptotal;
0091
0092
0093 TrackProjectorPlaneECAL* _trackproj;
0094
0095
0096 PHCompositeNode *_topNode;
0097
0098 int AddInvariantMassInformation();
0099
0100 std::vector<float> true_eta, true_phi, true_ptotal;
0101 std::vector<int> true_pid;
0102 std::vector<bool> is_scattered_lepton;
0103
0104 std::vector<float> reco_eta, reco_phi, reco_ptotal, reco_cluster_e;
0105 std::vector<int> reco_charge;
0106 std::vector<bool> reco_is_scattered_lepton;
0107
0108 std::vector<float> _vect1;
0109 std::vector<float> _vect2;
0110 std::vector<float> _vect3;
0111 std::vector<float> _vect4;
0112 std::vector<float> _vect5;
0113 std::vector<float> _vect6;
0114
0115 };
0116
0117 #endif