Back to home page

sPhenix code displayed by LXR

 
 

    


File indexing completed on 2025-08-03 08:12:30

0001 #ifndef __ExclusiveReco_H__
0002 #define __ExclusiveReco_H__
0003 
0004 #include "TrackProjectorPlaneECAL.h"
0005 /* Fun4All includes */
0006 #include <fun4all/SubsysReco.h>
0007 #include <calobase/RawTowerDefs.h>
0008 
0009 /* STL includes */
0010 #include <math.h>
0011 #include <map>
0012 
0013 /*HepMC include */
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 //class JetMap;
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   /* proton rest mass */
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   /* output tree for invariant mass calculation */
0080   TTree* _tree_invariant_mass;
0081 
0082   /* output tree for reco particles */
0083   TTree* _tree_event_reco;
0084 
0085   /* output tree for truth particles */
0086   TTree* _tree_event_truth;
0087 
0088   /* beam energies electron and proton */
0089   float _beam_electron_ptotal;
0090   float _beam_hadron_ptotal;
0091 
0092   /* Track Projector object */
0093   TrackProjectorPlaneECAL* _trackproj;
0094 
0095   /** helper pointer to topNode */
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 // __ExclusiveReco_H__