Back to home page

sPhenix code displayed by LXR

 
 

    


File indexing completed on 2025-08-05 08:20:46

0001 // Tell emacs that this is a C++ source
0002 //  -*- C++ -*-.
0003 #ifndef G4CALOPROTOTYPE_PROTOTYPE2RAWTOWERBUILDER_H
0004 #define G4CALOPROTOTYPE_PROTOTYPE2RAWTOWERBUILDER_H
0005 
0006 #include <phparameter/PHParameterInterface.h>
0007 
0008 #include <fun4all/SubsysReco.h>
0009 
0010 #include <string>
0011 
0012 class PHCompositeNode;
0013 
0014 class Prototype2RawTowerBuilder : public SubsysReco, public PHParameterInterface
0015 {
0016  public:
0017   Prototype2RawTowerBuilder(const std::string &name = "Prototype2RawTowerBuilder");
0018   virtual ~Prototype2RawTowerBuilder() {}
0019   int InitRun(PHCompositeNode *topNode);
0020   int process_event(PHCompositeNode *topNode);
0021   void Print(const std::string &what = "ALL") const;
0022 
0023   void SetDefaultParameters();
0024 
0025   void Detector(const std::string &d) { m_Detector = d; }
0026   void checkenergy(const int i = 1) { m_CheckEnergyConservationFlag = i; }
0027   enum enu_tower_energy_src
0028   {
0029     //! save Geant4 energy deposition as the weight of the cells
0030     kEnergyDeposition,
0031 
0032     //! save light yield as the weight of the cells
0033     kLightYield,
0034 
0035     //! save ionization energy
0036     kIonizationEnergy
0037   };
0038 
0039   enu_tower_energy_src get_tower_energy_src() const { return m_TowerEnergySrc; }
0040 
0041   void set_tower_energy_src(const enu_tower_energy_src towerEnergySrc)
0042   {
0043     m_TowerEnergySrc = towerEnergySrc;
0044   }
0045 
0046   std::string get_sim_tower_node_prefix() const { return m_SimTowerNodePrefix; }
0047 
0048   void set_sim_tower_node_prefix(const std::string &simTowerNodePrefix)
0049   {
0050     m_SimTowerNodePrefix = simTowerNodePrefix;
0051   }
0052 
0053   short get_tower_row(const short cellrow) const;
0054 
0055  private:
0056   void ReadParamsFromNodeTree(PHCompositeNode *topNode);
0057 
0058   std::string m_Detector;
0059   std::string m_TowerNodeName;
0060   std::string m_TowerGeomNodeName;
0061   std::string m_SimTowerNodePrefix;
0062 
0063   double m_Emin;
0064   int m_CheckEnergyConservationFlag;
0065   enu_tower_energy_src m_TowerEnergySrc;
0066   int m_NumCellToTower;
0067 };
0068 
0069 #endif  // G4CALO_PROTOTYPE2RAWTOWERBUILDER_H