Back to home page

sPhenix code displayed by LXR

 
 

    


File indexing completed on 2025-12-17 09:20:20

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 MbdRawContainer;
0014 class MbdVertexMap;
0015 class MbdOut;
0016 class MbdGeom;
0017 class Event;
0018 class CaloPacket;
0019 class CaloPacketContainer;
0020 class Gl1Packet;
0021 class EventHeader;
0022 class TF1;
0023 class TH1;
0024 
0025 class MbdReco : public SubsysReco
0026 {
0027  public:
0028   MbdReco(const std::string &name = "MbdReco");
0029 
0030   ~MbdReco() override = default;
0031 
0032   int Init(PHCompositeNode * /*topNode*/) override;
0033   int InitRun(PHCompositeNode *topNode) override;
0034   int process_event(PHCompositeNode *topNode) override;
0035   int End(PHCompositeNode *topNode) override;
0036 
0037   void DoOnlyFits() { _fitsonly = 1; }
0038   void SetCalPass(const int calpass) { _calpass = calpass; }
0039   void SetProcChargeCh(const bool s) { _always_process_charge = s; }
0040   void SetMbdTrigOnly(const int m) { _mbdonly = m; }
0041 
0042  private:
0043   int  createNodes(PHCompositeNode *topNode);
0044   int  getNodes(PHCompositeNode *topNode);
0045   int  _simflag{0};
0046   int  _calpass{0};
0047   bool _always_process_charge{0};
0048   int  _mbdonly{0};     // only use mbd triggers
0049   int  _rawdstflag{0};  // dst with raw container
0050   int  _fitsonly{0};    // stop reco after waveform fits (for DST_CALOFIT pass)
0051 
0052   float m_tres = 0.05;
0053   std::unique_ptr<TF1> m_gaussian = nullptr;
0054 
0055   std::unique_ptr<MbdEvent> m_mbdevent{nullptr};
0056   Event *m_event{nullptr};
0057   std::array<CaloPacket *,2>m_mbdpacket{nullptr};
0058   CaloPacketContainer *m_mbdpackets{nullptr};
0059   Gl1Packet *m_gl1packet{nullptr};
0060   MbdOut *m_mbdout{nullptr};
0061   MbdPmtContainer *m_mbdpmts{nullptr};
0062   MbdRawContainer *m_mbdraws{nullptr};
0063   MbdGeom *m_mbdgeom{nullptr};
0064   MbdVertexMap *m_mbdvtxmap{nullptr};
0065   EventHeader *m_evtheader{nullptr};
0066 };
0067 
0068 #endif  // MBD_MBDRECO_H