ATLAS Offline Software
Loading...
Searching...
No Matches
CascadeTools.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3*/
4#ifndef DERIVATIONFRAMEWORKBPHYS_CASCADETOOLS_H
5#define DERIVATIONFRAMEWORKBPHYS_CASCADETOOLS_H
6//*********************
7// CascadeTools header file
8//
9// Eva Bouhova <e.bouhova@cern.ch>
10// Adam Barton <abarton@cern.ch>
11
13#include "xAODTracking/Vertex.h"
14
15
16namespace DerivationFramework {
17
18 class CascadeTools : public AthAlgTool{
19
20 public:
21
25 CascadeTools(const std::string& t, const std::string& n, const IInterface* p);
26
31
32 Amg::Vector3D momentum(const std::vector<TLorentzVector> &particleMom) const;
33 Amg::Vector3D pca(const std::vector<TLorentzVector> &particleMom, const xAOD::Vertex* SV, const xAOD::Vertex* PV) const;
34
35 double invariantMass(const std::vector<TLorentzVector> &moms, const std::vector<double> &masses) const;
36 double invariantMass(const std::vector<TLorentzVector> &moms) const;
37 double invariantMassError(const std::vector<TLorentzVector> &moms, const Amg::MatrixX& cov, const std::vector<double> &masses) const;
38 double invariantMassError(const std::vector<TLorentzVector> &moms, const Amg::MatrixX& cov) const;
39 double pT(const std::vector<TLorentzVector> &moms) const;
40 double pTError(const std::vector<TLorentzVector> &moms, const Amg::MatrixX& cov) const;
41 double lxy(const std::vector<TLorentzVector> &particleMom, const xAOD::Vertex* SV, const xAOD::Vertex* PV) const;
42 double lxyError(const std::vector<TLorentzVector> &particleMom, const Amg::MatrixX& cov, const xAOD::Vertex* SV, const xAOD::Vertex* PV) const;
43 double tau(const std::vector<TLorentzVector> &particleMom, const xAOD::Vertex* SV, const xAOD::Vertex* PV) const;
44 double tauError(const std::vector<TLorentzVector> &particleMom, const Amg::MatrixX& cov, const xAOD::Vertex* SV, const xAOD::Vertex* PV) const;
45 double tau(const std::vector<TLorentzVector> &particleMom, const xAOD::Vertex* SV, const xAOD::Vertex* PV, double M) const;
46 double tauError(const std::vector<TLorentzVector> &particleMom, const Amg::MatrixX& cov, const xAOD::Vertex* SV, const xAOD::Vertex* PV, double M) const;
47 double a0z(const std::vector<TLorentzVector> &particleMom, const xAOD::Vertex* SV, const xAOD::Vertex* PV) const;
48 double a0zError(const std::vector<TLorentzVector> &particleMom, const Amg::MatrixX& cov, const xAOD::Vertex* SV, const xAOD::Vertex* PV) const;
49 double a0xy(const std::vector<TLorentzVector> &particleMom, const xAOD::Vertex* SV, const xAOD::Vertex* PV) const;
50 double a0xyError(const std::vector<TLorentzVector> &particleMom, const Amg::MatrixX& cov, const xAOD::Vertex* SV, const xAOD::Vertex* PV) const;
51 double a0(const std::vector<TLorentzVector> &particleMom, const xAOD::Vertex* SV, const xAOD::Vertex* PV) const;
52 double a0Error(const std::vector<TLorentzVector> &particleMom, const Amg::MatrixX& cov, const xAOD::Vertex* SV, const xAOD::Vertex* PV) const;
53 double cosTheta(const std::vector<TLorentzVector> &particleMom, const xAOD::Vertex* SV, const xAOD::Vertex* PV) const;
54 double cosTheta_xy(const std::vector<TLorentzVector> &particleMom, const xAOD::Vertex* SV, const xAOD::Vertex* PV) const;
55 double massProbability(double V0Mass, double mass, double massErr) const;
56 double vertexProbability(int ndf, double chi2) const;
57
58 Amg::MatrixX * convertCovMatrix(const xAOD::Vertex * vxCandidate) const;
59 Amg::MatrixX SetFullMatrix(int NTrk, const std::vector<float> & Matrix) const;
60
61 }; //end of class definitions
62
63} //end of namespace definitions
64
65
66#endif
AthAlgTool(const std::string &type, const std::string &name, const IInterface *parent)
Constructor with parameters:
double invariantMass(const std::vector< TLorentzVector > &moms, const std::vector< double > &masses) const
double pT(const std::vector< TLorentzVector > &moms) const
double invariantMassError(const std::vector< TLorentzVector > &moms, const Amg::MatrixX &cov, const std::vector< double > &masses) const
double a0Error(const std::vector< TLorentzVector > &particleMom, const Amg::MatrixX &cov, const xAOD::Vertex *SV, const xAOD::Vertex *PV) const
double lxy(const std::vector< TLorentzVector > &particleMom, const xAOD::Vertex *SV, const xAOD::Vertex *PV) const
Amg::Vector3D momentum(const std::vector< TLorentzVector > &particleMom) const
double a0xyError(const std::vector< TLorentzVector > &particleMom, const Amg::MatrixX &cov, const xAOD::Vertex *SV, const xAOD::Vertex *PV) const
double pTError(const std::vector< TLorentzVector > &moms, const Amg::MatrixX &cov) const
double a0xy(const std::vector< TLorentzVector > &particleMom, const xAOD::Vertex *SV, const xAOD::Vertex *PV) const
~CascadeTools()
Virtual destructor.
Amg::MatrixX * convertCovMatrix(const xAOD::Vertex *vxCandidate) const
double tauError(const std::vector< TLorentzVector > &particleMom, const Amg::MatrixX &cov, const xAOD::Vertex *SV, const xAOD::Vertex *PV) const
double massProbability(double V0Mass, double mass, double massErr) const
double tau(const std::vector< TLorentzVector > &particleMom, const xAOD::Vertex *SV, const xAOD::Vertex *PV) const
Amg::MatrixX SetFullMatrix(int NTrk, const std::vector< float > &Matrix) const
double vertexProbability(int ndf, double chi2) const
double cosTheta_xy(const std::vector< TLorentzVector > &particleMom, const xAOD::Vertex *SV, const xAOD::Vertex *PV) const
double cosTheta(const std::vector< TLorentzVector > &particleMom, const xAOD::Vertex *SV, const xAOD::Vertex *PV) const
double a0zError(const std::vector< TLorentzVector > &particleMom, const Amg::MatrixX &cov, const xAOD::Vertex *SV, const xAOD::Vertex *PV) const
double a0z(const std::vector< TLorentzVector > &particleMom, const xAOD::Vertex *SV, const xAOD::Vertex *PV) const
double lxyError(const std::vector< TLorentzVector > &particleMom, const Amg::MatrixX &cov, const xAOD::Vertex *SV, const xAOD::Vertex *PV) const
CascadeTools(const std::string &t, const std::string &n, const IInterface *p)
Default constructor due to Athena interface.
Amg::Vector3D pca(const std::vector< TLorentzVector > &particleMom, const xAOD::Vertex *SV, const xAOD::Vertex *PV) const
double chi2(TH1 *h0, TH1 *h1)
double a0
Definition globals.cxx:27
Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic > MatrixX
Dynamic Matrix - dynamic allocation.
Eigen::Matrix< double, 3, 1 > Vector3D
THE reconstruction tool.
Vertex_v1 Vertex
Define the latest version of the vertex class.