File indexing completed on 2025-08-05 08:20:46
0001
0002
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
0030 kEnergyDeposition,
0031
0032
0033 kLightYield,
0034
0035
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