Back to home page

sPhenix code displayed by LXR

 
 

    


File indexing completed on 2026-04-02 08:12:56

0001 #ifndef MBD_MBDRAWCONTAINERV2_H__
0002 #define MBD_MBDRAWCONTAINERV2_H__
0003 
0004 #include "MbdRawContainer.h"
0005 
0006 #include <iostream>
0007 
0008 #include <TClonesArray.h>
0009 
0010 ///
0011 class MbdRawContainerV2 : public MbdRawContainer
0012 {
0013 public:
0014   /// ctor
0015   MbdRawContainerV2();
0016 
0017   /// dtor
0018   virtual ~MbdRawContainerV2();
0019 
0020   /// Clear Event
0021   void Reset() override;
0022 
0023   /** identify Function from PHObject
0024       @param os Output Stream
0025    */
0026   void identify(std::ostream &out = std::cout) const override;
0027 
0028   /// isValid returns non zero if object contains vailid data
0029   int isValid() const override;
0030 
0031   /** Add Mbd data containing evt, clk, and femclk
0032       @param ievt   Event number
0033       @param iclk    XMIT clock
0034       @param ifemclk FEM clock
0035    */
0036   virtual void set_clocks(const Int_t ievt, const UShort_t iclk, const UShort_t ifemclk) override;
0037 
0038   /** get Event Number
0039    */
0040   virtual Int_t get_evt() const override;
0041 
0042   /** get XMIT Clock Counter
0043    */
0044   virtual UShort_t get_clock() const override;
0045 
0046   /** get FEM Clock Counter
0047    */
0048   virtual UShort_t get_femclock() const override;
0049 
0050   /** set number of pmts for Mbd
0051       @param ival Number of Mbd Pmt's
0052    */
0053   void set_npmt(const Short_t ival) override
0054   {
0055     if ( ival != MbdRawHits->GetEntries() )
0056     {
0057       std::cout << "ERROR, " << ival << " differs from " << MbdRawHits->GetEntries() << std::endl;
0058       std::cout << " Setting npmt to " << MbdRawHits->GetEntries() << std::endl; 
0059     }
0060     npmt = MbdRawHits->GetEntries();
0061     return;
0062   }
0063 
0064   /// get Number of Mbd Pmt's
0065   Short_t get_npmt() const override { return MbdRawHits->GetEntries(); }
0066 
0067   /** get MbdRawPmt of Pmt iPmt in TClonesArray
0068       @param iPmt no of Pmt in TClonesArray
0069    */
0070   MbdRawHit *get_pmt(const int iPmt) const override { return (MbdRawHit*)MbdRawHits->ConstructedAt(iPmt); }
0071 
0072 private:
0073   TClonesArray *GetMbdRawHits() const { return MbdRawHits; }
0074 
0075   Int_t evt{-1};
0076   UShort_t clk{0};
0077   UShort_t femclk{0};
0078   Short_t npmt = 0;
0079   TClonesArray *MbdRawHits = nullptr;
0080 
0081   ClassDefOverride(MbdRawContainerV2, 1)
0082 };
0083 
0084 #endif