ATLAS Offline Software
Loading...
Searching...
No Matches
TrkVKalVrtCore.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef TRKVKALVRTCORE_VKALVRTCORE_H
6#define TRKVKALVRTCORE_VKALVRTCORE_H
7
12#include <vector>
13#include <memory>
14
15namespace Trk {
16//
17// Main class to control TrkVKalVrtCore package
18// If references to external Propagator/Mag.Field are present - the package uses them,
19// otherwise default internal fixed_field/simple_propagator are used.
20//--------------------------------------------------------------------
21
22 class CascadeEvent;
23 class IVKalState;
24
42
44 {
45 public:
47 VKalVrtControl(const VKalVrtControl & src); //copy
48 ~VKalVrtControl() = default;
49
50 public:
51
52 void setIterationNum(int Iter);
53 void setIterationPrec(double Prec);
54 void setRobustScale(double Scale);
55 void setRobustness(int Rob);
56 void setMassCnstData(int Ntrk, double Mass);
57 void setMassCnstData(int Ntrk, const std::vector<int> &Index, double Mass);
58
60 void setUsePhiCnst();
61 void setUsePlaneCnst(double a, double b, double c, double d);
62 void setUseRadiusCnst(double R, double RefP[2]);
63 void setUseThetaCnst();
64 void setUseAprioriVrt();
65 void setUsePointingCnst(int );
66 void setUsePassNear(int);
67
69 //Only edit the CascadeEvent in the same thread it was created in
70 const CascadeEvent * getCascadeEvent() const{ return m_cascadeEvent;};
72 void renewFullCovariance(double *);
73 //Only edit the covariance in the same thread it was created.
74 const double * getFullCovariance () const { return m_fullCovariance.get(); }
75 double * getFullCovariance () { return m_fullCovariance.get(); }
76 void setVertexMass(double mass) { m_vrtMassTot=mass;}
78 double getVertexMass() const { return m_vrtMassTot;}
79 double getVrtMassError() const {return m_vrtMassError;}
80
81
82
83 private:
84
85 std::unique_ptr<double[]> m_fullCovariance; // On vertex fit exit contains full covariance matrix
86 // (x,y,z,px_0,py_0,pz_0,....,px_n,py_n,pz_n)
87 // in symmetric form
91 public:
95 };
96
97} // end of namespace bracket
98
99#endif
IndexedConstituentUserInfo::Index Index
static Double_t a
const basePropagator * vk_objProp
const addrPropagator vk_funcProp
VKalVrtControlBase(const VKalVrtControlBase &src)=default
VKalVrtControlBase(baseMagFld *, const addrMagHandler, const basePropagator *, const addrPropagator, IVKalState *istate=nullptr)
const addrMagHandler vk_funcMagFld
void renewFullCovariance(double *)
void renewCascadeEvent(CascadeEvent *)
const CascadeEvent * getCascadeEvent() const
void setIterationPrec(double Prec)
double getVertexMass() const
void setVertexMass(double mass)
void setMassCnstData(int Ntrk, double Mass)
double * getFullCovariance()
VKalVrtControl(const VKalVrtControlBase &)
double getVrtMassError() const
CascadeEvent * getCascadeEvent()
~VKalVrtControl()=default
void setRobustScale(double Scale)
CascadeEvent * m_cascadeEvent
void setUsePlaneCnst(double a, double b, double c, double d)
void setVrtMassError(double error)
void setUseRadiusCnst(double R, double RefP[2])
const double * getFullCovariance() const
std::unique_ptr< double[]> m_fullCovariance
void Scale(TH1 *h, double d=1)
Ensure that the ATLAS eigen extensions are properly loaded.
void(* addrMagHandler)(double, double, double, double &, double &, double &)
Definition VKalVrtBMag.h:23
void(* addrPropagator)(long int, long int, double *, double *, double *, double *, double *, double *)
Definition Propagator.h:23