10 hasMatrix_(
false), covmatrix_()
15 parametrization_(parametrization),
16 covariances_(covariances),
17 constraints_(constraints),
25 parametrization_(parametrization),
27 constraints_(constraints),
29 covmatrix_(covariance)
32 if (
sizeof(
double) !=
sizeof(
Scalar)) {
42 if (!hasMatrix_) { fillMatrix(); hasMatrix_ =
true; }
47 if (!hasMatrix_) { fillMatrix(); hasMatrix_ =
true; }
52 if (!hasMatrix_) { fillMatrix(); hasMatrix_ =
true; }
57 if (!hasMatrix_) { fillMatrix(); hasMatrix_ =
true; }
62 if (!hasMatrix_) { fillMatrix(); hasMatrix_ =
true; }
67 if (!hasMatrix_) { fillMatrix(); hasMatrix_ =
true; }
72 if (!hasMatrix_) { fillMatrix(); hasMatrix_ =
true; }
77 if (!hasMatrix_) { fillMatrix(); hasMatrix_ =
true; }
82 if (!hasMatrix_) { fillMatrix(); hasMatrix_ =
true; }
87 if (!hasMatrix_) { fillMatrix(); hasMatrix_ =
true; }
92 if (!hasMatrix_) { fillMatrix(); hasMatrix_ =
true; }
97 if (!hasMatrix_) { fillMatrix(); hasMatrix_ =
true; }
104 covariances_.insert(covariances_.end(), sub.begin(), sub.end());
106 covariances_.insert(covariances_.end(), covmatrix_.begin(), covmatrix_.end());
111 if (covariances_.size() == 3) {
112 for (
int i = 0;
i < 3; ++
i) covmatrix_(
i,
i) = covariances_[
i];
117 if (covariances_.size() == 4) {
118 for (
int i = 0;
i < 4; ++
i) covmatrix_(
i,
i) = covariances_[
i];
double getResolEt(pat::CandKinResolution::Parametrization parametrization, const AlgebraicSymMatrix44 &covariance, const pat::CandKinResolution::LorentzVector &p4)
double getResolPz(pat::CandKinResolution::Parametrization parametrization, const AlgebraicSymMatrix44 &covariance, const pat::CandKinResolution::LorentzVector &p4)
double resolPhi(const LorentzVector &p4) const
Resolution on phi, given the 4-momentum of the associated Candidate.
double getResolPy(pat::CandKinResolution::Parametrization parametrization, const AlgebraicSymMatrix44 &covariance, const pat::CandKinResolution::LorentzVector &p4)
double getResolP(pat::CandKinResolution::Parametrization parametrization, const AlgebraicSymMatrix44 &covariance, const pat::CandKinResolution::LorentzVector &p4)
double getResolPx(pat::CandKinResolution::Parametrization parametrization, const AlgebraicSymMatrix44 &covariance, const pat::CandKinResolution::LorentzVector &p4)
double getResolPt(pat::CandKinResolution::Parametrization parametrization, const AlgebraicSymMatrix44 &covariance, const pat::CandKinResolution::LorentzVector &p4)
double getResolPhi(pat::CandKinResolution::Parametrization parametrization, const AlgebraicSymMatrix44 &covariance, const pat::CandKinResolution::LorentzVector &p4)
double getResolM(pat::CandKinResolution::Parametrization parametrization, const AlgebraicSymMatrix44 &covariance, const pat::CandKinResolution::LorentzVector &p4)
double getResolPInv(pat::CandKinResolution::Parametrization parametrization, const AlgebraicSymMatrix44 &covariance, const pat::CandKinResolution::LorentzVector &p4)
double getResolE(pat::CandKinResolution::Parametrization parametrization, const AlgebraicSymMatrix44 &covariance, const pat::CandKinResolution::LorentzVector &p4)
void fillMatrix() const
Fill matrix from vector.
double resolPz(const LorentzVector &p4) const
Resolution on pz, given the 4-momentum of the associated Candidate.
ROOT::Math::SMatrix< double, 4, 4, ROOT::Math::MatRepSym< double, 4 > > AlgebraicSymMatrix44
ROOT::Math::SMatrix< double, 3, 3, ROOT::Math::MatRepSym< double, 3 > > AlgebraicSymMatrix33
double resolP(const LorentzVector &p4) const
Resolution on p, given the 4-momentum of the associated Candidate.
void fillVector()
Fill vectoor from matrix.
double resolPy(const LorentzVector &p4) const
Resolution on py, given the 4-momentum of the associated Candidate.
double resolEta(const LorentzVector &p4) const
Resolution on eta, given the 4-momentum of the associated Candidate.
double resolM(const LorentzVector &p4) const
double resolPInv(const LorentzVector &p4) const
Resolution on 1/p, given the 4-momentum of the associated Candidate.
double resolPx(const LorentzVector &p4) const
Resolution on px, given the 4-momentum of the associated Candidate.
math::XYZTLorentzVector LorentzVector
double resolE(const LorentzVector &p4) const
Resolution on energy, given the 4-momentum of the associated Candidate.
double getResolEta(pat::CandKinResolution::Parametrization parametrization, const AlgebraicSymMatrix44 &covariance, const pat::CandKinResolution::LorentzVector &p4)
double getResolTheta(pat::CandKinResolution::Parametrization parametrization, const AlgebraicSymMatrix44 &covariance, const pat::CandKinResolution::LorentzVector &p4)
double resolEt(const LorentzVector &p4) const
Resolution on et, given the 4-momentum of the associated Candidate.
volatile std::atomic< bool > shutdown_flag false
double resolPt(const LorentzVector &p4) const
Resolution on pt, given the 4-momentum of the associated Candidate.
uint32_t dimension(pat::CandKinResolution::Parametrization parametrization)
Returns the number of free parameters in a parametrization (3 or 4)
double resolTheta(const LorentzVector &p4) const
Resolution on theta, given the 4-momentum of the associated Candidate.