Back to home page

sPhenix code displayed by LXR

 
 

    


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

0001 #ifndef MBD_BBCPMTHITV1_H
0002 #define MBD_BBCPMTHITV1_H
0003 
0004 #include "BbcPmtHit.h"
0005 
0006 #include <iostream>
0007 #include <limits>
0008 
0009 class BbcPmtHitV1 : public BbcPmtHit
0010 {
0011  public:
0012   BbcPmtHitV1() = default;
0013   ~BbcPmtHitV1() override = default;
0014 
0015   //! Just does a clear
0016   void Reset() override;
0017 
0018   //! Clear is used by TClonesArray to reset the tower to initial state without calling destructor/constructor
0019   void Clear(Option_t* = "") override;
0020 
0021   //! PMT number
0022   Short_t get_pmt() const override { return bpmt; }
0023 
0024   //! Effective Nch in PMT
0025   Float_t get_q() const override { return bq; }
0026 
0027   //! Time from time channel
0028   Float_t get_tt() const override { return btt; }
0029   Float_t get_time() const override { return btt; }
0030 
0031   //! Time from charge channel
0032   Float_t get_tq() const override { return btq; }
0033 
0034   void set_pmt(const Short_t pmt, const Float_t q, const Float_t tt, const Float_t tq) override
0035   {
0036     bpmt = pmt;
0037     bq = q;
0038     btt = tt;
0039     btq = tq;
0040   }
0041 
0042   //! Prints out exact identity of object
0043   void identify(std::ostream& out = std::cout) const override;
0044 
0045   //! isValid returns non zero if object contains valid data
0046   virtual int isValid() const override
0047   {
0048     if (bpmt < 0) return 0;
0049     return 1;
0050   }
0051 
0052  private:
0053   Short_t bpmt{-1};
0054   Float_t bq{std::numeric_limits<float>::quiet_NaN()};
0055   Float_t btt{std::numeric_limits<float>::quiet_NaN()};
0056   Float_t btq{std::numeric_limits<float>::quiet_NaN()};
0057 
0058   ClassDefOverride(BbcPmtHitV1, 1)
0059 };
0060 
0061 #endif