Back to home page

sPhenix code displayed by LXR

 
 

    


File indexing completed on 2025-08-03 08:17:17

0001 #ifndef MBD_MBDRECO_H
0002 #define MBD_MBDRECO_H
0003 
0004 #include <fun4all/SubsysReco.h>
0005 
0006 #include <array>
0007 #include <memory>
0008 #include <string>
0009 
0010 class PHCompositeNode;
0011 class MbdEvent;
0012 class MbdPmtContainer;
0013 class MbdVertexMap;
0014 class MbdOut;
0015 class MbdGeom;
0016 class Event;
0017 class CaloPacket;
0018 class CaloPacketContainer;
0019 class Gl1Packet;
0020 class EventHeader;
0021 class TF1;
0022 class TH1;
0023 
0024 class MbdReco : public SubsysReco
0025 {
0026  public:
0027   MbdReco(const std::string &name = "MbdReco");
0028 
0029   ~MbdReco() override = default;
0030 
0031   int Init(PHCompositeNode * /*topNode*/) override;
0032   int InitRun(PHCompositeNode *topNode) override;
0033   int process_event(PHCompositeNode *topNode) override;
0034   int End(PHCompositeNode *topNode) override;
0035 
0036   void SetCalPass(const int calpass) { _calpass = calpass; }
0037   void SetProcChargeCh(const bool s) { _always_process_charge = s; }
0038   void SetMbdTrigOnly(const int m) { _mbdonly = m; }
0039 
0040  private:
0041   int  createNodes(PHCompositeNode *topNode);
0042   int  getNodes(PHCompositeNode *topNode);
0043   int  _simflag{0};
0044   int  _calpass{0};
0045   bool _always_process_charge{0};
0046   int  _mbdonly{0};  // only use mbd triggers
0047 
0048   float m_tres = 0.05;
0049   std::unique_ptr<TF1> m_gaussian = nullptr;
0050 
0051   std::unique_ptr<MbdEvent> m_mbdevent{nullptr};
0052   Event *m_event{nullptr};
0053   std::array<CaloPacket *,2>m_mbdpacket{nullptr};
0054   CaloPacketContainer *m_mbdraw{nullptr};
0055   Gl1Packet *m_gl1raw{nullptr};
0056   MbdOut *m_mbdout{nullptr};
0057   MbdPmtContainer *m_mbdpmts{nullptr};
0058   MbdGeom *m_mbdgeom{nullptr};
0059   MbdVertexMap *m_mbdvtxmap{nullptr};
0060   EventHeader *m_evtheader{nullptr};
0061 };
0062 
0063 #endif  // MBD_MBDRECO_H