Back to home page

sPhenix code displayed by LXR

 
 

    


File indexing completed on 2025-08-06 08:17:30

0001 // Tell emacs that this is a C++ source
0002 //  -*- C++ -*-.
0003 #ifndef CALOTOWEREMBED_H
0004 #define CALOTOWEREMBED_H
0005 
0006 #include <calobase/RawTowerGeom.h>
0007 #include <calobase/RawTowerGeomContainer.h>
0008 #include <calobase/TowerInfoContainer.h>  // for TowerInfoContainer, TowerIn...
0009 #include <caloreco/CaloTowerDefs.h>
0010 
0011 #include <fun4all/SubsysReco.h>
0012 
0013 #include <TFile.h>
0014 #include <TTree.h>
0015 
0016 #include <cassert>
0017 #include <iostream>
0018 #include <string>
0019 
0020 class PHCompositeNode;
0021 class RawTowerGeomContainer;
0022 
0023 class caloTowerEmbed : public SubsysReco
0024 {
0025  public:
0026   caloTowerEmbed(const std::string &name = "caloTowerEmbed");
0027 
0028   ~caloTowerEmbed() override;
0029 
0030   int InitRun(PHCompositeNode *topNode) override;
0031   int process_event(PHCompositeNode *topNode) override;
0032   int End(PHCompositeNode *topNode) override;
0033   void CreateNodeTree(PHCompositeNode *topNode);
0034 
0035   void set_detector_type(CaloTowerDefs::DetectorSystem dettype)
0036   {
0037     m_dettype = dettype;
0038     return;
0039   }
0040 
0041   void set_inputNodePrefix(const std::string &name)
0042   {
0043     m_inputNodePrefix = name;
0044     return;
0045   }
0046 
0047   void set_useRetower(bool a)
0048   {
0049     m_useRetower = a;
0050     return;
0051   }
0052 
0053   void set_removeBadTowers(bool a)
0054   {
0055     m_removeBadTowers = a;
0056     return;
0057   }
0058   void set_nsamples(int _nsamples)
0059   {
0060     m_nsamples = _nsamples;
0061     return;
0062   }
0063   void set_embedwaveform(bool embed = true)
0064   {
0065     m_embedwaveform = embed;
0066     return;
0067   }
0068 
0069  private:
0070   TowerInfoContainer *_data_towers{nullptr};
0071   TowerInfoContainer *_sim_towers{nullptr};
0072   TowerInfoContainer *m_PedestalContainer{nullptr};
0073 
0074   RawTowerGeomContainer *tower_geom{nullptr};
0075 
0076   bool m_useRetower{false};
0077   bool m_removeBadTowers{false};
0078   bool m_embedwaveform{false};
0079 
0080   CaloTowerDefs::DetectorSystem m_dettype{CaloTowerDefs::DETECTOR_INVALID};
0081 
0082   std::string m_detector;
0083   std::string m_inputNodePrefix{"TOWERINFO_CALIB_"};
0084   std::string m_waveformNodePrefix{"WAVEFORM_"};
0085 
0086   int m_eventNumber{-1};
0087   int m_nsamples{31};
0088   int m_datasamples{12};
0089   float m_pedestal_scale{1.};
0090 };
0091 
0092 #endif  // CALOTOWEREMBED_H