CMS 3D CMS Logo

ParametrizationHelper.h
Go to the documentation of this file.
1 #ifndef DataFormats_PatCandidates_interface_ParametrizationHelper_h
2 #define DataFormats_PatCandidates_interface_ParametrizationHelper_h
3 
5 #include <string>
6 
7 namespace pat {
8  namespace helper {
9  namespace ParametrizationHelper {
10 
13  return (static_cast<uint32_t>(parametrization) & 0x0F);
14  }
15 
18 
21 
27  const math::PtEtaPhiMLorentzVector &initialP4);
28 
34  const math::XYZTLorentzVector &initialP4);
35 
38  const math::XYZTLorentzVector &p4);
39 
43 
46  AlgebraicVector4 &pars,
47  const math::XYZTLorentzVector &p4);
48 
51  AlgebraicVector4 &pars,
53 
55  template <typename T>
57  AlgebraicVector4 &pars,
58  const T &p4);
59 
61 
70  const math::XYZTLorentzVector &p4ini,
71  const math::XYZTLorentzVector &p4fin);
72 
74 
83  const math::PtEtaPhiMLorentzVector &p4ini,
84  const math::PtEtaPhiMLorentzVector &p4fin);
85 
88 
91 
94 
101  const AlgebraicVector4 &v4,
102  const math::PtEtaPhiMLorentzVector &initialP4);
103  } // namespace ParametrizationHelper
104  } // namespace helper
105 } // namespace pat
106 
107 #endif
Definition: helper.py:1
AlgebraicVector4 parametersFromP4(pat::CandKinResolution::Parametrization parametrization, const math::XYZTLorentzVector &p4)
Returns a vector of coordinates values given a coordinate frame and a 4-vector.
const char * name(pat::CandKinResolution::Parametrization param)
Convert a number into a string.
Definition: HeavyIon.h:7
PtEtaPhiMLorentzVectorD PtEtaPhiMLorentzVector
Lorentz vector with cartesian internal representation.
Definition: LorentzVector.h:25
parametrization
specify parametrization (see SWGuidePATKinematicResolutions for more details)
XYZTLorentzVectorD XYZTLorentzVector
Lorentz vector with cylindrical internal representation using pseudorapidity.
Definition: LorentzVector.h:29
void setParametersFromP4(pat::CandKinResolution::Parametrization parametrization, AlgebraicVector4 &pars, const math::XYZTLorentzVector &p4)
Set the values of the parameters for a given 4-momentum.
ROOT::Math::SVector< double, 4 > AlgebraicVector4
bool isAlwaysMassive(pat::CandKinResolution::Parametrization parametrization)
Is this parametrization usable only with massive objects?
math::PtEtaPhiMLorentzVector polarP4fromParameters(pat::CandKinResolution::Parametrization parametrization, const AlgebraicVector4 &parameters, const math::PtEtaPhiMLorentzVector &initialP4)
AlgebraicVector4 diffToParameters(pat::CandKinResolution::Parametrization parametrization, const math::XYZTLorentzVector &p4ini, const math::XYZTLorentzVector &p4fin)
Expresses the difference between two 4-momentum vectors as a shift in coordinates in a given frame...
bool isPhysical(pat::CandKinResolution::Parametrization parametrization, const AlgebraicVector4 &v4, const math::PtEtaPhiMLorentzVector &initialP4)
math::XYZTLorentzVector p4fromParameters(pat::CandKinResolution::Parametrization parametrization, const AlgebraicVector4 &parameters, const math::XYZTLorentzVector &initialP4)
void setParametersFromAnyVector(pat::CandKinResolution::Parametrization parametrization, AlgebraicVector4 &pars, const T &p4)
For internal use only, so we provide only the interface. Use the &#39;setParametersFromP4&#39;.
pat::CandKinResolution::Parametrization fromString(const std::string &name)
Convert a name into a parametrization code.
long double T
uint32_t dimension(pat::CandKinResolution::Parametrization parametrization)
Returns the number of free parameters in a parametrization (3 or 4)
bool isAlwaysMassless(pat::CandKinResolution::Parametrization parametrization)
Is this parametrization usable only with massless objects?
bool isMassConstrained(pat::CandKinResolution::Parametrization parametrization)
If this parametrization has a mass constraint (including the &#39;isAlwaysMassless&#39; case) ...