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 * ) 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};
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