Back to home page

sPhenix code displayed by LXR

 
 

    


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

0001 #include "MbdOutV1.h"
0002 #include "MbdReturnCodes.h"
0003 
0004 #include <TClonesArray.h>
0005 
0006 #include <iostream>
0007 
0008 //______________________________________
0009 void MbdOutV1::Reset()
0010 {
0011   bz = std::numeric_limits<Float_t>::quiet_NaN();
0012   bzerr = std::numeric_limits<Float_t>::quiet_NaN();
0013   bt0 = std::numeric_limits<Float_t>::quiet_NaN();
0014   bt0err = std::numeric_limits<Float_t>::quiet_NaN();
0015   bns = 0.;
0016   bnn = 0.;
0017   bqs = 0.;
0018   bqn = 0.;
0019   bts = std::numeric_limits<Float_t>::quiet_NaN();
0020   btn = std::numeric_limits<Float_t>::quiet_NaN();
0021 }
0022 
0023 //______________________________________
0024 int MbdOutV1::isValid() const
0025 {
0026   // compatible with old invalid setting of -9999.9
0027   return ((std::isfinite(bt0) && (bt0 > -9999.)) ? 1 : 0);
0028 }
0029 
0030 //______________________________________
0031 void MbdOutV1::identify(std::ostream &out) const
0032 {
0033   out << "identify yourself: I am a MbdOutV1 object" << std::endl;
0034   out << "Vertex: " << bz << " Error: " << bzerr << std::endl;
0035   out << "T0: " << bt0 << " Error: " << bt0err << std::endl;
0036 }
0037 
0038 //______________________________________
0039 void MbdOutV1::set_t0(const Float_t t0, const Float_t t0err)
0040 {
0041   bt0 = t0;
0042   bt0err = t0err;
0043 }
0044 
0045 //______________________________________
0046 void MbdOutV1::set_zvtx(const Float_t vtx, const Float_t vtxerr)
0047 {
0048   bz = vtx;
0049   bzerr = vtxerr;
0050 }
0051 
0052 //______________________________________
0053 void MbdOutV1::set_zvtxerr(const Float_t vtxerr)
0054 {
0055   bzerr = vtxerr;
0056 }
0057 
0058 //______________________________________
0059 void MbdOutV1::set_arm(const int iarm, const Short_t npmt, const Float_t charge, const Float_t timing)
0060 {
0061   if (iarm == 0)
0062   {
0063     bns = npmt;
0064     bqs = charge;
0065     bts = timing;
0066   }
0067   else if (iarm == 1)
0068   {
0069     bnn = npmt;
0070     bqn = charge;
0071     btn = timing;
0072   }
0073   else
0074   {
0075     std::cerr << "MbdOutV1::set_arm(): ERROR, invalid arm " << iarm << std::endl;
0076   }
0077 }
0078 
0079 //______________________________________
0080 Short_t MbdOutV1::get_npmt(const int iarm) const
0081 {
0082   return (iarm == 0) ? bns : bnn;
0083 }
0084 
0085 //______________________________________
0086 Float_t MbdOutV1::get_q(const int iarm) const
0087 {
0088   return (iarm == 0) ? bqs : bqn;
0089 }
0090 
0091 Float_t MbdOutV1::get_time(const int iarm) const
0092 {
0093   return (iarm == 0) ? bts : btn;
0094 }
0095 
0096 
0097 void MbdOutV1::CopyTo(MbdOut *mbd)
0098 {
0099   
0100   mbd->set_t0(bt0, bt0err);
0101   mbd->set_zvtx(bz, bzerr);
0102   
0103   mbd->set_arm(0, bns, bqs, bts);
0104   mbd->set_arm(1, bnn, bqn, btn);
0105 
0106 }