Back to home page

sPhenix code displayed by LXR

 
 

    


File indexing completed on 2025-08-05 08:14:49

0001 #ifndef __Proto4SampleFrac_H__
0002 #define __Proto4SampleFrac_H__
0003 
0004 #include <TFile.h>
0005 #include <TNtuple.h>
0006 #include <fun4all/SubsysReco.h>
0007 #include <stdint.h>
0008 #include <fstream>
0009 #include <string>
0010 
0011 class PHCompositeNode;
0012 class PHG4HitContainer;
0013 class PHG4TruthInfoContainer;
0014 class Fun4AllHistoManager;
0015 class TH1F;
0016 class TH2F;
0017 class TH3F;
0018 class TTree;
0019 class PHG4Particle;
0020 class RawTowerGeom;
0021 class RawTowerContainer;
0022 
0023 /// \class Proto4SampleFrac to help you get started
0024 class Proto4SampleFrac : public SubsysReco
0025 {
0026  public:
0027   //! constructor
0028   Proto4SampleFrac(const std::string &calo_name, const std::string &filename);
0029 
0030   //! destructor
0031   virtual ~Proto4SampleFrac();
0032 
0033   //! Standard function called at initialization
0034   int Init(PHCompositeNode *topNode);
0035 
0036   //! Standard function called when a new run is processed
0037   int InitRun(PHCompositeNode *topNode);
0038 
0039   //! Standard function called at each event
0040   int process_event(PHCompositeNode *topNode);
0041 
0042   //! Standard function called at the end of processing. Save your stuff here.
0043   int End(PHCompositeNode *topNode);
0044 
0045   //! Is processing simulation files?
0046   void
0047   is_sim(bool b)
0048   {
0049     _is_sim = b;
0050   }
0051 
0052   //! common prefix for QA histograms
0053   std::string get_histo_prefix();
0054 
0055  private:
0056   // calorimeter size
0057   enum
0058   {
0059     n_size = 8
0060   };
0061 
0062   //! is processing simulation files?
0063   bool _is_sim;
0064 
0065   //! get manager of histograms
0066   Fun4AllHistoManager *get_HistoManager();
0067 
0068   std::pair<int, int>
0069   find_max(RawTowerContainer *towers, int cluster_size);
0070 
0071   //! output root file name
0072   std::string _filename;
0073   std::string _calo_name;
0074 
0075   PHG4HitContainer* _calo_hit_container; // G4Hit for calorimeter
0076   PHG4HitContainer* _calo_abs_hit_container; // G4Hit for absorber
0077   PHG4TruthInfoContainer* _truth_container;
0078 };
0079 
0080 #endif  // __Proto4SampleFrac_H__