File indexing completed on 2025-08-06 08:17:52
0001 #include "MbdOut.h"
0002 #include "MbdReturnCodes.h"
0003
0004 #include <iostream>
0005 #include <iomanip>
0006 #include <limits>
0007
0008 void MbdOut::identify(std::ostream& os) const
0009 {
0010 os << "virtual MbdOut object" << std::endl;
0011 return;
0012 }
0013
0014 void MbdOut::Reset()
0015 {
0016 std::cout << "ERROR MbdOut: Reset() not implemented by daughter class" << std::endl;
0017 return;
0018 }
0019
0020 int MbdOut::isValid() const
0021 {
0022 virtual_warning("isValid()");
0023 return 0;
0024 }
0025
0026 Float_t MbdOut::get_zvtx() const
0027 {
0028 virtual_warning("get_zvtx()");
0029 return std::numeric_limits<Float_t>::quiet_NaN();
0030 }
0031
0032 Float_t MbdOut::get_zvtxerr() const
0033 {
0034 virtual_warning("get_zvtxerr()");
0035 return std::numeric_limits<Float_t>::quiet_NaN();
0036 }
0037
0038 Float_t MbdOut::get_t0() const
0039 {
0040 virtual_warning("get_t0()");
0041 return std::numeric_limits<Float_t>::quiet_NaN();
0042 }
0043
0044
0045 Float_t MbdOut::get_t0err() const
0046 {
0047 virtual_warning("get_t0err()");
0048 return std::numeric_limits<Float_t>::quiet_NaN();
0049 }
0050
0051
0052 void MbdOut::set_t0(const Float_t , const Float_t )
0053 {
0054 virtual_warning("set_t0(const Float_t t0, const Float_t t0err)");
0055 return;
0056 }
0057
0058
0059 void MbdOut::set_zvtx(const Float_t , const Float_t )
0060 {
0061 virtual_warning("set_zvtx(const Float_t vtx, const Float_t vtxerr)");
0062 return;
0063 }
0064
0065
0066 void MbdOut::set_zvtxerr(const Float_t )
0067 {
0068 virtual_warning("set_zvtxerr(const Float_t vtxerr)");
0069 return;
0070 }
0071
0072
0073 void MbdOut::set_arm(const int , const Short_t , const Float_t , const Float_t )
0074 {
0075 virtual_warning("set_arm(const int iMBD, const Short_t npmt, const Float_t energy, const Float_t timing)");
0076 return;
0077 }
0078
0079 void MbdOut::set_clocks(const Int_t , const UShort_t , const UShort_t )
0080 {
0081 virtual_warning("set_clocks(const Int_t ievt, const UShort_t iclk, const UShort_t ifemclk");
0082 return;
0083 }
0084
0085 Short_t MbdOut::get_npmt(const int ) const
0086 {
0087 virtual_warning("get_npmt(const int iarm)");
0088 return MbdReturnCodes::MBD_INVALID_SHORT;
0089 }
0090
0091 Float_t MbdOut::get_q(const int ) const
0092 {
0093 virtual_warning("get_q(const int iarm)");
0094 return std::numeric_limits<Float_t>::quiet_NaN();
0095 }
0096
0097 Float_t MbdOut::get_time(const int ) const
0098 {
0099 virtual_warning("get_time(const int iarm)");
0100 return std::numeric_limits<Float_t>::quiet_NaN();
0101 }
0102
0103 Int_t MbdOut::get_evt() const
0104 {
0105 virtual_warning("get_evt()");
0106 return 0;
0107 }
0108
0109 UShort_t MbdOut::get_clock() const
0110 {
0111 virtual_warning("get_clock()");
0112 return 0;
0113 }
0114
0115 UShort_t MbdOut::get_femclock() const
0116 {
0117 virtual_warning("get_femclock(const int iarm)");
0118 return 0;
0119 }
0120
0121 void MbdOut::virtual_warning(const std::string& funcsname)
0122 {
0123 std::cout << "MbdOut::" << funcsname << " is virtual, doing nothing" << std::endl;
0124 return;
0125 }
0126
0127 void MbdOut::FillFromClass(const MbdOut& old)
0128 {
0129 for (int iarm = 0; iarm < 2; iarm++)
0130 {
0131 set_arm(iarm, old.get_npmt(iarm), old.get_q(iarm), old.get_time(iarm));
0132 }
0133
0134 set_t0zvtx(old.get_t0(), old.get_t0err(), old.get_zvtx(), old.get_zvtxerr());
0135 }
0136
0137 void MbdOut::Print(Option_t * ) const
0138 {
0139 std::cout << "MbdOut, evt " << get_evt() << std::endl;
0140 std::cout << "clk\t" << std::setw(12) << get_clock() << std::setw(12) << get_femclock() << std::endl;
0141 std::cout << "zvtx\t" << std::setw(12) << get_zvtx() << std::setw(12) << get_zvtxerr() << std::endl;
0142 std::cout << "t0\t" << std::setw(12) << get_t0() << std::setw(12) << get_t0err() << std::endl;
0143 std::cout << "npmt\t" << std::setw(12) << get_npmt(0) << std::setw(12) << get_npmt(1) << std::endl;
0144 std::cout << "time\t" << std::setw(12) << get_time(0) << std::setw(12) << get_time(1) << std::endl;
0145 }