PandaRoot
RhoTotalMomentum.h
Go to the documentation of this file.
1 //****************************************************************************
2 //* This file is part of PandaRoot. *
3 //* *
4 //* PandaRoot is distributed under the terms of the *
5 //* GNU General Public License (GPL) version 3, *
6 //* copied verbatim in the file "LICENSE". *
7 //* *
8 //* Copyright (C) 2006 - 2024 FAIR GmbH and copyright holders of PandaRoot *
9 //* The copyright holders are listed in the file "COPYRIGHTHOLDERS". *
10 //* The authors are listed in the file "AUTHORS". *
11 //****************************************************************************
12 
13 //--------------------------------------------------------------------------
14 // File and Version Information:
15 //
16 // Description:
17 // Class RhoTotalMomentum - a simple object to calculate the total
18 // 4 momentum in an event
19 //
20 // Environment:
21 // Software developed for the BaBar Detector at the SLAC B-Factory.
22 //
23 // Author List:
24 // Paul Harrison Original author
25 //
26 // Copyright Information:
27 // Copyright (C) 1997 Hedgehog Concepts
28 //
29 // ROOT Version by Marcel Kunze, RUB
30 // Ralf Kliemt, HIM/GSI Feb.2013 (Cleanup & Restructuring)
31 //------------------------------------------------------------------------
32 
33 #ifndef RHOTOTALMOMENTUM_H
34 #define RHOTOTALMOMENTUM_H
35 
36 //------------------------------------
37 // Collaborating Class Declarations --
38 //------------------------------------
39 class RhoEventInfo;
40 class RhoCandidate;
41 #include "RhoCandList.h"
42 #include "TVector3.h"
43 #include "TLorentzVector.h"
44 
45 // ---------------------
46 // -- Class Interface --
47 // ---------------------
48 
49 class RhoTotalMomentum : public TObject {
50 
51  //--------------------
52  // Instance Members --
53  //--------------------
54 
55  public:
56  // Constructors
58 
59  // Destructor
60  virtual ~RhoTotalMomentum();
61 
62  // accessors to get at results
63 
64  inline double TotalEnergy() const { return _total4Momentum.T(); }
65  inline double TotalMomentum() const { return TVector3(_total4Momentum.X(), _total4Momentum.Y(), _total4Momentum.Z()).Mag(); }
66  inline TVector3 Total3Momentum() const { return TVector3(_total4Momentum.X(), _total4Momentum.Y(), _total4Momentum.Z()); }
67  inline TLorentzVector Total4Momentum() const { return _total4Momentum; }
68 
69  inline double TotalEnergyCms() const { return _total4MomentumCms.T(); }
70  inline double TotalMomentumCms() const { return TVector3(_total4MomentumCms.X(), _total4MomentumCms.Y(), _total4MomentumCms.Z()).Mag(); }
71  inline TVector3 Total3MomentumCms() const { return TVector3(_total4MomentumCms.X(), _total4MomentumCms.Y(), _total4MomentumCms.Z()); }
72  inline TLorentzVector Total4MomentumCms() const { return _total4MomentumCms; }
73 
74  inline double TotalMass() const { return _total4Momentum.Mag(); }
75 
76  inline double MissingEnergy() const { return _missing4Momentum.T(); }
77  inline double MissingMomentum() const { return TVector3(_missing4Momentum.X(), _missing4Momentum.Y(), _missing4Momentum.Z()).Mag(); }
78  inline TVector3 Missing3Momentum() const { return TVector3(_missing4Momentum.X(), _missing4Momentum.Y(), _missing4Momentum.Z()); }
79  inline TLorentzVector Missing4Momentum() const { return _missing4Momentum; }
80 
81  inline double MissingEnergyCms() const { return _missing4MomentumCms.T(); }
82  inline double MissingMomentumCms() const { return TVector3(_missing4MomentumCms.X(), _missing4MomentumCms.Y(), _missing4MomentumCms.Z()).Mag(); }
83  inline TVector3 Missing3MomentumCms() const { return TVector3(_missing4MomentumCms.X(), _missing4MomentumCms.Y(), _missing4MomentumCms.Z()); }
84  inline TLorentzVector Missing4MomentumCms() const { return _missing4MomentumCms; }
85 
86  inline double MissingMass() const { return _missing4Momentum.Mag(); }
87 
88  protected:
89  // Member data
90  TLorentzVector _total4Momentum;
91  TLorentzVector _total4MomentumCms;
92 
93  TLorentzVector _missing4Momentum;
94  TLorentzVector _missing4MomentumCms;
95 
96  public:
97  ClassDef(RhoTotalMomentum, 1) // A simple object to calculate the total 4 momentum in an event
98 };
99 
100 #endif
TLorentzVector Total4Momentum() const
RhoTotalMomentum(RhoCandList &, const RhoEventInfo &)
double MissingEnergyCms() const
TVector3 Total3MomentumCms() const
double TotalMomentumCms() const
double TotalEnergy() const
TLorentzVector _total4Momentum
TVector3 Missing3Momentum() const
TLorentzVector Missing4MomentumCms() const
TLorentzVector _missing4MomentumCms
double MissingMomentumCms() const
virtual ~RhoTotalMomentum()
TVector3 Total3Momentum() const
TLorentzVector _total4MomentumCms
TLorentzVector _missing4Momentum
double MissingEnergy() const
TLorentzVector Missing4Momentum() const
double TotalMass() const
double TotalEnergyCms() const
TVector3 Missing3MomentumCms() const
double MissingMomentum() const
double MissingMass() const
TLorentzVector Total4MomentumCms() const
double TotalMomentum() const