Analysis Software
Documentation for sPHENIX simulation software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
BbcOutV1.cc
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file BbcOutV1.cc
1 #include "BbcOutV1.h"
2 #include "BbcReturnCodes.h"
3 
4 #include <TClonesArray.h>
5 
6 #include <iostream>
7 
8 //______________________________________
9 BbcOutV1::BbcOutV1() = 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 BbcOutV1::~BbcOutV1() = default;
28 
29 //______________________________________
30 int BbcOutV1::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 BbcOutV1::identify(std::ostream &out) const
38 {
39  out << "identify yourself: I am a BbcOutV1 object" << std::endl;
40  out << "Vertex: " << bz << " Error: " << bzerr << std::endl;
41  out << "T0: " << bt0 << " Error: " << bt0err << std::endl;
42 }
43 
44 //______________________________________
45 void BbcOutV1::set_t0(const Float_t t0, const Float_t t0err)
46 {
47  bt0 = t0;
48  bt0err = t0err;
49 }
50 
51 //______________________________________
52 void BbcOutV1::set_zvtx(const Float_t vtx, const Float_t vtxerr)
53 {
54  bz = vtx;
55  bzerr = vtxerr;
56 }
57 
58 //______________________________________
59 void BbcOutV1::set_zvtxerr(const Float_t vtxerr)
60 {
61  bzerr = vtxerr;
62 }
63 
64 //______________________________________
65 void BbcOutV1::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 << "BbcOutV1::set_arm(): ERROR, invalid arm " << iarm << std::endl;
82  }
83 }
84 
85 //______________________________________
86 Short_t BbcOutV1::get_npmt(const int iarm) const
87 {
88  return (iarm == 0) ? bns : bnn;
89 }
90 
91 //______________________________________
92 Float_t BbcOutV1::get_q(const int iarm) const
93 {
94  return (iarm == 0) ? bqs : bqn;
95 }
96 
97 Float_t BbcOutV1::get_time(const int iarm) const
98 {
99  return (iarm == 0) ? bts : btn;
100 }