Analysis Software
Documentation for sPHENIX simulation software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
MbdOutV1.cc
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file MbdOutV1.cc
1 #include "MbdOutV1.h"
2 #include "MbdReturnCodes.h"
3 
4 #include <TClonesArray.h>
5 
6 #include <iostream>
7 
8 //______________________________________
9 MbdOutV1::MbdOutV1() = default;
10 
11 //______________________________________
13 {
14  bz = std::numeric_limits<Float_t>::quiet_NaN();
15  bzerr = std::numeric_limits<Float_t>::quiet_NaN();
16  bt0 = std::numeric_limits<Float_t>::quiet_NaN();
17  bt0err = std::numeric_limits<Float_t>::quiet_NaN();
18  bns = 0.;
19  bnn = 0.;
20  bqs = 0.;
21  bqn = 0.;
22  bts = std::numeric_limits<Float_t>::quiet_NaN();
23  btn = std::numeric_limits<Float_t>::quiet_NaN();
24 }
25 
26 //______________________________________
27 MbdOutV1::~MbdOutV1() = default;
28 
29 //______________________________________
30 int MbdOutV1::isValid() const
31 {
32  // compatible with old invalid setting of -9999.9
33  return ((std::isfinite(bt0) && (bt0 > -9999.)) ? 1 : 0);
34 }
35 
36 //______________________________________
37 void MbdOutV1::identify(std::ostream &out) const
38 {
39  out << "identify yourself: I am a MbdOutV1 object" << std::endl;
40  out << "Vertex: " << bz << " Error: " << bzerr << std::endl;
41  out << "T0: " << bt0 << " Error: " << bt0err << std::endl;
42 }
43 
44 //______________________________________
45 void MbdOutV1::set_t0(const Float_t t0, const Float_t t0err)
46 {
47  bt0 = t0;
48  bt0err = t0err;
49 }
50 
51 //______________________________________
52 void MbdOutV1::set_zvtx(const Float_t vtx, const Float_t vtxerr)
53 {
54  bz = vtx;
55  bzerr = vtxerr;
56 }
57 
58 //______________________________________
59 void MbdOutV1::set_zvtxerr(const Float_t vtxerr)
60 {
61  bzerr = vtxerr;
62 }
63 
64 //______________________________________
65 void MbdOutV1::set_arm(const int iarm, const Short_t npmt, const Float_t charge, const Float_t timing)
66 {
67  if (iarm == 0)
68  {
69  bns = npmt;
70  bqs = charge;
71  bts = timing;
72  }
73  else if (iarm == 1)
74  {
75  bnn = npmt;
76  bqn = charge;
77  btn = timing;
78  }
79  else
80  {
81  std::cerr << "MbdOutV1::set_arm(): ERROR, invalid arm " << iarm << std::endl;
82  }
83 }
84 
85 //______________________________________
86 Short_t MbdOutV1::get_npmt(const int iarm) const
87 {
88  return (iarm == 0) ? bns : bnn;
89 }
90 
91 //______________________________________
92 Float_t MbdOutV1::get_q(const int iarm) const
93 {
94  return (iarm == 0) ? bqs : bqn;
95 }
96 
97 Float_t MbdOutV1::get_time(const int iarm) const
98 {
99  return (iarm == 0) ? bts : btn;
100 }