Vee.h
Go to the documentation of this file.
1 //
2 // Vee.h
3 //
4 // Created by Tom Junk on May 3, 2020.
5 //
6 
7 #ifndef GAR_RECONSTRUCTIONDATAPRODUCTS_Vee_h
8 #define GAR_RECONSTRUCTIONDATAPRODUCTS_Vee_h
9 
10 #include <iostream>
11 #include <TLorentzVector.h>
12 #include "IDNumberGen.h"
13 
14 namespace gar {
15  namespace rec {
16 
17  class Vee {
18 
19  public:
20  Vee();
21 
22  // let the compiler provide the dtor
23 
24  // three hypotheses for mass and momentum
25 
26  typedef enum { Kshort=0, Lambda1=1, Lambda2=2 } hypothesis_t;
27 
28  private:
29  static gar::rec::IDNumber const FirstNumber = 800000;
31 
32  float fVertexPos[3]; ///< position of the vertex, in cm
33  float fVertexCov[3][3]; ///< uncertainties on vertex position, in cm
34  double fTime;
35  float fChisq;
36  TLorentzVector fFourMomentum[3]; // four-momentum of vee, one for each hypothesis, in GeV
37 
38 
39 #ifndef __GCCXML__
40 
41  public:
42 
43  Vee(const float *pos,
44  const float *vertexcov,
45  const float chisq,
46  const double time,
47  const TLorentzVector *fourmomentum);
48 
49  const float* Position() const;
50  const float* VertexCov() const;
51  double Time() const;
52  const TLorentzVector& FourMomentum(const size_t i) const;
53  float Chisq() const;
54 
55  bool operator==(const Vee& rhs) const;
56  bool operator!=(const Vee& rhs) const;
58 
59  friend std::ostream& operator << (std::ostream & o, gar::rec::Vee const& h);
60 
61 #endif
62 
63  };
64 
65  inline const float* Vee::Position() const { return &fVertexPos[0]; }
66  inline const float* Vee::VertexCov() const { return &(fVertexCov[0][0]); }
67  inline double Vee::Time() const { return fTime; }
68  inline float Vee::Chisq() const { return fChisq; }
69  inline const TLorentzVector& Vee::FourMomentum(const size_t i) const { return fFourMomentum[i]; }
70  } // rec
71 } // gar
72 
73 
74 #endif /* GAR_RECONSTRUCTIONDATAPRODUCTS_Vee_h */
rec
Definition: tracks.py:88
static gar::rec::IDNumber const FirstNumber
Definition: Vee.h:29
bool operator==(const Vee &rhs) const
Definition: Vee.cxx:60
float Chisq() const
Definition: Vee.h:68
friend std::ostream & operator<<(std::ostream &o, gar::rec::Vee const &h)
const float * VertexCov() const
Definition: Vee.h:66
float fChisq
Definition: Vee.h:35
const float * Position() const
Definition: Vee.h:65
float fVertexCov[3][3]
uncertainties on vertex position, in cm
Definition: Vee.h:33
double Time() const
Definition: Vee.h:67
bool operator!=(const Vee &rhs) const
Definition: Vee.cxx:64
const TLorentzVector & FourMomentum(const size_t i) const
Definition: Vee.h:69
float fVertexPos[3]
position of the vertex, in cm
Definition: Vee.h:32
hypothesis_t
Definition: Vee.h:26
General GArSoft Utilities.
gar::rec::IDNumber fIDnumero
Definition: Vee.h:30
TLorentzVector fFourMomentum[3]
Definition: Vee.h:36
gar::rec::IDNumber getIDNumber() const
Definition: Vee.cxx:68
double fTime
Definition: Vee.h:34
size_t IDNumber
Definition: IDNumberGen.h:71