ATLAS Offline Software
Loading...
Searching...
No Matches
I4Momentum.h
Go to the documentation of this file.
1
2
3/*
4 Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
5*/
6
7#ifndef EVENTKERNEL_I4MOMENTUM_H
8#define EVENTKERNEL_I4MOMENTUM_H 1
9
10// STL includes
11#include <ostream>
12
13#include "CLHEP/Vector/LorentzVector.h"
14
15class I4MomentumError;
16
28
29
31{
32 public:
34
35
37 virtual ~I4Momentum();
39 virtual double px() const = 0;
41 virtual double py() const = 0 ;
43 virtual double pz() const = 0 ;
45 virtual double m() const = 0 ;
47 virtual double m2() const = 0 ;
49 virtual double p() const = 0 ;
51 virtual double p2() const = 0 ;
53 virtual double eta() const = 0 ;
55 virtual double rapidity() const = 0 ;
57 virtual double phi() const = 0 ;
59 virtual double e() const = 0 ;
61 virtual double et() const = 0 ;
63 virtual double pt() const = 0 ;
65 virtual double iPt() const = 0;
67 virtual double cosPhi() const = 0 ;
69 virtual double sinPhi() const = 0 ;
71 virtual double cosTh() const = 0 ;
73 virtual double sinTh() const = 0 ;
75 virtual double cotTh() const = 0 ;
77 virtual double tanTh() const = 0 ;
79 virtual CLHEP::HepLorentzVector hlv() const = 0 ;
80
82 virtual const I4MomentumError* errors() const = 0;
83
85 virtual Kind kind() const = 0;
86
87
89 virtual void set4Mom (const I4Momentum * const theI4Mom ) = 0;
90
92 virtual void set4Mom (const I4Momentum & theI4Mom) = 0;
93
95 virtual void set4Mom (const CLHEP::HepLorentzVector & theHlv ) = 0;
96
97
99 virtual std::ostream& dump( std::ostream& out ) const = 0;
100
101};
102
103std::ostream& operator<<( std::ostream& out, const I4Momentum& p4 );
104
105inline std::ostream& operator<<( std::ostream& out, const I4Momentum& p4 )
106{
107 return p4.dump( out );
108}
109
110// MsgStream& operator<<( MsgStream& msg, const I4Momentum& p4 );
111// inline MsgStream& operator<<( MsgStream& msg, const I4Momentum& p4 )
112// {
113// std::stringstream out;
114// p4.dump( out );
115// msg << out.str();
116// return msg;
117// }
118
119#endif
std::ostream & operator<<(std::ostream &out, const I4Momentum &p4)
Definition I4Momentum.h:105
I4Momentum is an abstract base class providing 4-momentum behavior.
Definition I4Momentum.h:31
virtual CLHEP::HepLorentzVector hlv() const =0
CLHEP HepLorentzVector.
virtual double rapidity() const =0
rapidity
virtual ~I4Momentum()
virtual destructor needed
virtual double cotTh() const =0
cottan theta
virtual double m() const =0
mass
virtual double phi() const =0
phi in [-pi,pi[
virtual std::ostream & dump(std::ostream &out) const =0
Print I4Momentum content.
virtual double pt() const =0
transverse momentum
virtual double p() const =0
momentum magnitude
virtual double eta() const =0
pseudo rapidity
virtual double pz() const =0
z component of momentum
virtual double px() const =0
x component of momentum
virtual double et() const =0
transverse energy defined to be e*sin(theta)
virtual double iPt() const =0
inverse of transverse momentum
virtual Kind kind() const =0
tells what kind of P4XYZT this is
virtual double e() const =0
energy
virtual double cosPhi() const =0
cosinus phi
virtual double p2() const =0
square of momentum magnitude
virtual double cosTh() const =0
cosinus theta
virtual void set4Mom(const CLHEP::HepLorentzVector &theHlv)=0
set 4Momentum (will throw exception if cannot be implemented)
virtual double sinPhi() const =0
sinus phi
virtual double tanTh() const =0
tan theta
virtual double py() const =0
y component of momentum
virtual double m2() const =0
mass squared
virtual void set4Mom(const I4Momentum *const theI4Mom)=0
set 4Momentum (will throw exception if cannot be implemented)
virtual const I4MomentumError * errors() const =0
Access to errors, if available; returns 0 if no errors.
virtual double sinTh() const =0
sinus theta
virtual void set4Mom(const I4Momentum &theI4Mom)=0
set 4Momentum (will throw exception if cannot be implemented)