ATLAS Offline Software
TrkVKalVrtCoreBase.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #include <algorithm>
6 #include <cmath>
7 #include <memory>
8 #include <iostream>
9 
13 #include "TrkVKalVrtCore/Derivt.h"
14 #include "TrkVKalVrtCore/ForCFT.h"
15 
16 namespace Trk {
17 
19  const basePropagator* baseP, const addrPropagator addrP,
20  IVKalState* istate):
21  vk_objMagFld(baseFld),
22  vk_funcMagFld(addrFld),
23  vk_objProp(baseP),
24  vk_funcProp(addrP),
25  vk_istate(istate)
26  {}
27 
30  m_vrtMassTot(-1),
31  m_vrtMassError(-1),
32  m_cascadeEvent(nullptr),
33  vk_forcft(),
34  m_frozenVersionForBTagging(false),
35  m_allowUltraDisplaced(false)
36  {
37  }
40  m_vrtMassTot(src.m_vrtMassTot),
41  m_vrtMassError(src.m_vrtMassError),
42  m_cascadeEvent(src.m_cascadeEvent),
43  vk_forcft(src.vk_forcft),
44  m_frozenVersionForBTagging(src.m_frozenVersionForBTagging),
45  m_allowUltraDisplaced(src.m_allowUltraDisplaced)
46  {
47  }
48 
49  VKTrack::VKTrack(long int iniId,
50  const double Perigee[],
51  const double Covariance[],
52  VKVertex* vk,
53  double m)
54  : Id(iniId)
55  , Charge(1)
56  , Chi2(0)
57  , m_mass(m)
58  {
59  if (Perigee[4] < 0)
60  Charge = -1;
61  for (int i = 0; i < 3; i++) {
62  fitP[i] = 0;
63  cnstP[i] = 0.;
64  iniP[i] = 0.;}
67  for(int i=0; i<5; i++) { rmnd[i]=0;}
69  m_originVertex = vk;
70  }
71 
72  void VKTrack::setCurrent(const double Perigee[], const double Weight[])
73  {
75  std::copy(Weight, Weight+15, WgtM);
76  std::copy(Weight, Weight+15, WgtM_save);
77  }
78  void VKTrack::setReference(const double Perigee[], const double Covariance[])
79  {
82  }
84  {
86  }
87 
88 // VKTrack::VKTrack(const VKTrack & src ) // copy operator
89 // { Charge =src.Charge;
90 // m_mass =src.m_mass;
91 // for(int i=0; i<5; i++) {Perig[i]=src.Perig[i];refPerig[i]=src.refPerig[i];}
92 // for(int i=0; i<15; i++) {refCovar[i]=src.refCovar[i];WgtM[i]=src.WgtM[i];}
93 // for(int i=0; i<3; i++) {fitP[i]=src.fitP[i];}
94 // }
95 
96  std::ostream & operator << ( std::ostream& out, const VKTrack& track )
97  {
98  //out.setf( std::ios::defaultfloat ); out.precision(5); out << std::endl;
99  out.precision(5); out << std::defaultfloat;
100  out << " Track par: Iteration <-> Ref" << std::endl;
101  out << " * a_0 : "<< track.a0() <<" "<< track.r_a0() << std::endl;
102  out << " * z_0 : "<< track.z() <<" "<< track.r_z() << std::endl;
103  out << " * theta : "<< track.theta()<<" "<< track.r_theta()<< std::endl;
104  out << " * phi : "<< track.phi() <<" "<< track.r_phi() << std::endl;
105  out << " * q/R : "<< track.invR() <<" "<< track.r_invR() << std::endl;
106  out << " * Charge: "<< track.Charge <<" Mass: "<<track.m_mass<< std::endl;
107  out << "-> with ref ErrorMatrix: " << std::endl;out.precision(5);
108  out << track.refCovar[0] <<std::endl;
109  out << track.refCovar[1] <<", "<<track.refCovar[2] <<std::endl;
110  out << track.refCovar[3] <<", "<<track.refCovar[4] <<", "<<track.refCovar[5] <<std::endl;
111  out << track.refCovar[6] <<", "<<track.refCovar[7] <<", "<<track.refCovar[8] <<", "
112  << track.refCovar[9]<<std::endl;
113  out << track.refCovar[10]<<", "<<track.refCovar[11]<<", "<<track.refCovar[12]<<", "
114  << track.refCovar[13]<<", "<<track.refCovar[14]<<std::endl;
115  out << "-> and iteration WeightMatrix: " << std::endl;
116  out << track.WgtM[0] <<std::endl;
117  out << track.WgtM[1] <<", "<<track.WgtM[2] <<std::endl;
118  out << track.WgtM[3] <<", "<<track.WgtM[4] <<", "<<track.WgtM[5] <<std::endl;
119  out << track.WgtM[6] <<", "<<track.WgtM[7] <<", "<<track.WgtM[8] <<", "
120  << track.WgtM[9]<<std::endl;
121  out << track.WgtM[10]<<", "<<track.WgtM[11]<<", "<<track.WgtM[12]<<", "
122  << track.WgtM[13]<<", "<<track.WgtM[14]<<std::endl;
123  return out;
124  }
125 
126 
127 
128  // cppcheck-suppress uninitMemberVar; large ader array not initialized
130  { vk_fitterControl = std::make_unique<VKalVrtControl>(FitControl); }
131 
132  // cppcheck-suppress uninitMemberVar; large ader array not initialized
134  useApriorVertex(0), passNearVertex(false), passWithTrkCov(false),
135  TrackList(0), tmpArr(0), ConstraintList(0),nextCascadeVrt(nullptr),includedVrt(0)
136  {
137  for(int i=0; i<3; i++) apriorV[i]=refV[i]=iniV[i]=fitV[i]=cnstV[i]=fitMom[i]=0.;
138  for(int i=0; i<6; i++) apriorVWGT[i]=0.;
139  for(int i=0; i<21; i++) fitCovXYZMom[i]=savedVrtMomCov[i]=0.;
140  fitCovXYZMom[0]=savedVrtMomCov[0]=100.; fitCovXYZMom[2] =savedVrtMomCov[2] =100.; fitCovXYZMom[5] =savedVrtMomCov[5] =100.;
141  fitCovXYZMom[9]=savedVrtMomCov[9]=100.; fitCovXYZMom[14]=savedVrtMomCov[14]=100.; fitCovXYZMom[20]=savedVrtMomCov[20]=100.;
142  Chi2=0.;
143  truncatedStep=false;
144  existFullCov=0;
145  }
146 
147  VKVertex::~VKVertex() = default;
148 
149  void VKVertex::setRefV(double v[3]) noexcept { std::copy(v, v+3, refV);}
150  void VKVertex::setRefIterV(double v[]) noexcept { std::copy(v, v+3, refIterV); }
151  void VKVertex::setIniV(double v[3]) noexcept { std::copy(v, v+3, iniV); }
152  void VKVertex::setFitV(double v[3]) noexcept { std::copy(v, v+3, fitV); }
153  void VKVertex::setCnstV(double v[3]) noexcept { std::copy(v, v+3, cnstV);}
154 
155 
156  VKVertex::VKVertex(const VKVertex & src): //copy constructor
157  Chi2(src.Chi2), // vertex Chi2
158  useApriorVertex(src.useApriorVertex), //for a priory vertex position knowledge usage
159  passNearVertex(src.passNearVertex), // needed for "passing near vertex" constraint
160  passWithTrkCov(src.passWithTrkCov), // Vertex, CovVertex, Charge and derivatives
161  FVC(src.FVC),
162  TrackList(0),
163  ConstraintList(0)
164  {
165  for( int i=0; i<6; i++) {
166  fitVcov[i] =src.fitVcov[i]; // range[0:5]
167  apriorVWGT[i] =src.apriorVWGT[i];
168  if(i>=3) continue;
169  fitV[i] =src.fitV[i]; // range[0:2]
170  iniV[i] =src.iniV[i];
171  cnstV[i] =src.cnstV[i];
172  refIterV[i]=src.refIterV[i];
173  refV[i] =src.refV[i];
174  apriorV[i] =src.apriorV[i];
175  fitMom[i] = src.fitMom[i];
176  }
177  for( int i=0; i<21; i++){
178  savedVrtMomCov[i]=src.savedVrtMomCov[i];
179  fitCovXYZMom[i]=src.fitCovXYZMom[i];
180  }
181  nextCascadeVrt = nullptr;
182  truncatedStep = src.truncatedStep;
183  existFullCov = src.existFullCov;
184 
185  int NTrack=src.TrackList.size();
186  int FULLSIZE=3*vkalNTrkM+3;
187  int SIZE=3*NTrack+3;
188  for(int i=0; i<SIZE; i++) for(int j=0; j<SIZE; j++) { ader[i*FULLSIZE+j]=src.ader[i*FULLSIZE+j]; }
189  //----- Creation of track and constraint copies
190  for( int i=0; i<NTrack; i++) TrackList.emplace_back( new VKTrack(*(src.TrackList[i])) );
191  ConstraintList.reserve(src.ConstraintList.size());
192  for( int ic=0; ic<(int)src.ConstraintList.size(); ic++){
193  ConstraintList.emplace_back(src.ConstraintList[ic]->clone());
194  }
195  vk_fitterControl = std::make_unique<VKalVrtControl>(*src.vk_fitterControl);
196  }
197 
198  VKVertex& VKVertex::operator= (const VKVertex & src) //Assignment operator
199  {
200  if (this!=&src){
201  vk_fitterControl.reset();
202  vk_fitterControl=std::make_unique<VKalVrtControl>(*(src.vk_fitterControl));
203  Chi2=src.Chi2; // vertex Chi2
204  useApriorVertex=src.useApriorVertex; //for a priory vertex position knowledge usage
205  passNearVertex=src.passNearVertex; // needed for "passing near vertex" constraint
206  passWithTrkCov=src.passWithTrkCov; // Vertex, CovVertex, Charge and derivatives
207  FVC=src.FVC;
208  for( int i=0; i<6; i++) {
209  fitVcov[i] =src.fitVcov[i]; // range[0:5]
210  apriorVWGT[i] =src.apriorVWGT[i];
211  if(i>=3) continue;
212  fitV[i] =src.fitV[i]; // range[0:2]
213  iniV[i] =src.iniV[i];
214  cnstV[i] =src.cnstV[i];
215  refIterV[i]=src.refIterV[i];
216  refV[i] =src.refV[i];
217  apriorV[i] =src.apriorV[i];
218  fitMom[i] = src.fitMom[i];
219  }
220  for( int i=0; i<21; i++){
221  savedVrtMomCov[i]=src.savedVrtMomCov[i];
222  fitCovXYZMom[i]=src.fitCovXYZMom[i];
223  }
224  nextCascadeVrt = nullptr;
225  truncatedStep = src.truncatedStep;
226  existFullCov = src.existFullCov;
227 
228  int NTrack=src.TrackList.size();
229  int FULLSIZE=3*vkalNTrkM+3;
230  int SIZE=3*NTrack+3;
231  for(int i=0; i<SIZE; i++) for(int j=0; j<SIZE; j++) { ader[i*FULLSIZE+j]=src.ader[i*FULLSIZE+j]; }
232  //----- Creation of track and constraint copies
233  TrackList.clear();
234  tmpArr.clear();
235  ConstraintList.clear();
236  for( int i=0; i<NTrack; i++) TrackList.emplace_back( new VKTrack(*(src.TrackList[i])) );
237  ConstraintList.reserve(src.ConstraintList.size());
238  for( int ic=0; ic<(int)src.ConstraintList.size(); ic++){
239  ConstraintList.emplace_back(src.ConstraintList[ic]->clone());
240  }
241 
244  std::copy (std::begin(src.dxyz0), std::end(src.dxyz0), std::begin(dxyz0));
245  }
246  return *this;
247  }
248 
249 
251  {
252  if (Iter<3) Iter=3;
253  if (Iter>100) Iter=100;
254  vk_forcft.IterationNumber = Iter;
255  }
256 
258  {
259  if (Prec<1.e-5) Prec=1.e-5;
260  if (Prec>1.e-1) Prec=1.e-1;
262  }
263 
265  {
266  if (Scale<0.01) Scale=0.01;
267  if (Scale>100.) Scale=100.;
269  }
270 
272  {
273  if (Rob<0) Rob=0;
274  if (Rob>7) Rob=7;
275  vk_forcft.irob = Rob;
276  }
277  void VKalVrtControl::setMassCnstData(int Ntrk, double Mass){ // Define global mass constraint. It must be first
278  double sumM(0.);
279  for(int it=0; it<Ntrk; it++) sumM += vk_forcft.wm[it]; //sum of particle masses
280  if(sumM<Mass) {
281  vk_forcft.wmfit[0]=Mass;
282  for(int it=0; it<Ntrk; it++) vk_forcft.indtrkmc[0][it]=1; //Set participating particles
283  vk_forcft.nmcnst=1;
284  }
286  }
287  void VKalVrtControl::setMassCnstData(int NtrkTot, const std::vector<int> & Index, double Mass){
288  double sumM(0.);
289  int Ntrk=std::min((int)Index.size(),NtrkTot);
290  for(int it=0; it<Ntrk; it++) sumM += vk_forcft.wm[Index[it]]; //sum of particle masses
291  if(sumM<Mass) {
293  for(int it=0; it<Ntrk; it++) vk_forcft.indtrkmc[vk_forcft.nmcnst][Index[it]-1]=1; //Set participating particles
294  vk_forcft.nmcnst++;
295  }
297  }
298 
300  void VKalVrtControl::setUsePlaneCnst(double a, double b, double c, double d) {
301  if(a+b+c+d == 0.){ vk_forcft.usePlaneCnst = 0;
302  }else{ vk_forcft.usePlaneCnst = 1; }
304  }
305  void VKalVrtControl::setUseRadiusCnst(double R, double RefP[2]) {
306  if(R == 0.){ vk_forcft.useRadiusCnst = 0;
307  }else{ vk_forcft.useRadiusCnst = 1; }
308  vk_forcft.RC = R;
309  vk_forcft.radiusRefP[0]=RefP[0];
310  vk_forcft.radiusRefP[1]=RefP[1];
311  }
314  void VKalVrtControl::setUsePointingCnst(int iType = 1 ) { vk_forcft.usePointingCnst = iType<2 ? 1 : 2 ;}
315  void VKalVrtControl::setUsePassNear(int iType = 1 ) { vk_forcft.usePassNear = iType<2 ? 1 : 2 ;}
317  if(m_cascadeEvent)delete m_cascadeEvent;
319  }
320  void VKalVrtControl::renewFullCovariance(double * newarray) {
321  m_fullCovariance.reset(newarray);
322  }
323 
324 } /* End of namespace */
Trk::VKalVrtControl::setUseRadiusCnst
void setUseRadiusCnst(double R, double RefP[2])
Definition: TrkVKalVrtCoreBase.cxx:305
AllowedVariables::e
e
Definition: AsgElectronSelectorTool.cxx:37
Trk::VKTrack::cnstP
double cnstP[3]
Definition: TrkVKalVrtCoreBase.h:80
base
std::string base
Definition: hcg.cxx:78
CommonPars.h
Trk::VKalVrtControl::setUsePlaneCnst
void setUsePlaneCnst(double a, double b, double c, double d)
Definition: TrkVKalVrtCoreBase.cxx:300
Trk::VKTrack::WgtM
double WgtM[15]
Definition: TrkVKalVrtCoreBase.h:87
python.BeamSpotUpdate.newevt
newevt
Definition: BeamSpotUpdate.py:195
Trk::VKalVrtControl::setUsePassNear
void setUsePassNear(int)
Definition: TrkVKalVrtCoreBase.cxx:315
Trk::ForCFT::useThetaCnst
int useThetaCnst
Definition: ForCFT.h:17
Trk::VKVertex::tmpArr
std::vector< std::unique_ptr< TWRK > > tmpArr
Definition: TrkVKalVrtCoreBase.h:168
WriteCellNoiseToCool.src
src
Definition: WriteCellNoiseToCool.py:513
Trk::addrMagHandler
void(* addrMagHandler)(double, double, double, double &, double &, double &)
Definition: VKalVrtBMag.h:22
Trk::VKVertex::T
double T[3]
Definition: TrkVKalVrtCoreBase.h:163
Trk::VKalVrtControl::m_cascadeEvent
CascadeEvent * m_cascadeEvent
Definition: TrkVKalVrtCore.h:90
hist_file_dump.d
d
Definition: hist_file_dump.py:142
Trk::ParametersT
Dummy class used to allow special convertors to be called for surfaces owned by a detector element.
Definition: EMErrorDetail.h:25
min
constexpr double min()
Definition: ap_fixedTest.cxx:26
Trk::addrPropagator
void(* addrPropagator)(long int, long int, double *, double *, double *, double *, double *, double *)
Definition: Propagator.h:23
Trk::VKalVrtControl::setIterationPrec
void setIterationPrec(double Prec)
Definition: TrkVKalVrtCoreBase.cxx:257
PlotCalibFromCool.begin
begin
Definition: PlotCalibFromCool.py:94
skel.it
it
Definition: skel.GENtoEVGEN.py:407
Trk::VKVertex::useApriorVertex
int useApriorVertex
Definition: TrkVKalVrtCoreBase.h:151
python.AthDsoLogger.out
out
Definition: AthDsoLogger.py:70
Trk::VKalVrtControl::setRobustScale
void setRobustScale(double Scale)
Definition: TrkVKalVrtCoreBase.cxx:264
Trk::VKVertex::FVC
ForVrtClose FVC
Definition: TrkVKalVrtCoreBase.h:160
Trk::VKalVrtControl::setUsePointingCnst
void setUsePointingCnst(int)
Definition: TrkVKalVrtCoreBase.cxx:314
Trk::VKalVrtControl::setUseThetaCnst
void setUseThetaCnst()
Definition: TrkVKalVrtCoreBase.cxx:312
Trk::VKalVrtControl::VKalVrtControl
VKalVrtControl(const VKalVrtControlBase &)
Definition: TrkVKalVrtCoreBase.cxx:28
Trk::ForCFT::RC
double RC
Definition: ForCFT.h:35
Trk::VKVertex::refIterV
double refIterV[3]
Definition: TrkVKalVrtCoreBase.h:146
Trk::VKTrack::VKTrack
VKTrack(long int, const double[], const double[], VKVertex *, double)
Definition: TrkVKalVrtCoreBase.cxx:49
Trk::ForCFT::radiusRefP
double radiusRefP[2]
Definition: ForCFT.h:36
Trk::VKTrack
Definition: TrkVKalVrtCoreBase.h:64
Trk::VKTrack::Charge
int Charge
Definition: TrkVKalVrtCoreBase.h:73
Trk::ForCFT::Cp
double Cp
Definition: ForCFT.h:33
Trk::VKVertex::ader
double ader[(3 *vkalNTrkM+3) *(3 *vkalNTrkM+3)]
Definition: TrkVKalVrtCoreBase.h:188
Trk::VKTrack::refPerig
double refPerig[5]
Definition: TrkVKalVrtCoreBase.h:96
Trk::VKTrack::setReference
void setReference(const double[], const double[])
Definition: TrkVKalVrtCoreBase.cxx:78
Trk::VKVertex::apriorV
double apriorV[3]
Definition: TrkVKalVrtCoreBase.h:152
Trk::VKTrack::Perig
double Perig[5]
Definition: TrkVKalVrtCoreBase.h:86
Trk::VKVertex::ConstraintList
std::vector< std::unique_ptr< VKConstraintBase > > ConstraintList
Definition: TrkVKalVrtCoreBase.h:169
Trk::VKVertex::apriorVWGT
double apriorVWGT[6]
Definition: TrkVKalVrtCoreBase.h:153
mergePhysValFiles.end
end
Definition: DataQuality/DataQualityUtils/scripts/mergePhysValFiles.py:92
Trk::VKTrack::fitP
double fitP[3]
Definition: TrkVKalVrtCoreBase.h:76
TrkVKalVrtCoreBase.h
Trk::VKVertex::TrackList
std::vector< std::unique_ptr< VKTrack > > TrackList
Definition: TrkVKalVrtCoreBase.h:167
Trk::ForCFT::usePassNear
int usePassNear
Definition: ForCFT.h:20
Trk::VKVertex::setFitV
void setFitV(double v[3]) noexcept
Definition: TrkVKalVrtCoreBase.cxx:152
Index
IndexedConstituentUserInfo::Index Index
Definition: IndexedConstituentUserInfo.cxx:12
Trk::VKVertex::fitV
double fitV[3]
Definition: TrkVKalVrtCoreBase.h:140
Trk::ForCFT::indtrkmc
int indtrkmc[vkalMaxNMassCnst][vkalNTrkM]
Definition: ForCFT.h:52
Trk::ForCFT::useRadiusCnst
int useRadiusCnst
Definition: ForCFT.h:22
Trk::VKalVrtControl::setUseAprioriVrt
void setUseAprioriVrt()
Definition: TrkVKalVrtCoreBase.cxx:313
Trk::VKVertex::operator=
VKVertex & operator=(const VKVertex &src)
Definition: TrkVKalVrtCoreBase.cxx:198
lumiFormat.i
int i
Definition: lumiFormat.py:85
Trk::VKTrack::rmnd
double rmnd[5]
Definition: TrkVKalVrtCoreBase.h:91
Trk::VKVertex::setRefIterV
void setRefIterV(double v[]) noexcept
Definition: TrkVKalVrtCoreBase.cxx:150
Trk::ForCFT::RobustScale
double RobustScale
Definition: ForCFT.h:50
Trk::VKVertex::setIniV
void setIniV(double v[3]) noexcept
Definition: TrkVKalVrtCoreBase.cxx:151
Trk::VKVertex::fitMom
double fitMom[3]
Definition: TrkVKalVrtCoreBase.h:158
Trk::VKTrack::setCurrent
void setCurrent(const double[], const double[])
Definition: TrkVKalVrtCoreBase.cxx:72
TrkVKalVrtCore.h
Trk::VKVertex::refV
double refV[3]
Definition: TrkVKalVrtCoreBase.h:148
Trk::basePropagator
Definition: Propagator.h:33
Trk::VKVertex::passNearVertex
bool passNearVertex
Definition: TrkVKalVrtCoreBase.h:156
Trk::ForCFT::useAprioriVrt
int useAprioriVrt
Definition: ForCFT.h:19
Trk::VKalVrtControl::setRobustness
void setRobustness(int Rob)
Definition: TrkVKalVrtCoreBase.cxx:271
Trk::ForCFT::IterationPrecision
double IterationPrecision
Definition: ForCFT.h:54
Trk::VKVertex::fitVcov
double fitVcov[6]
Definition: TrkVKalVrtCoreBase.h:141
Scale
void Scale(TH1 *h, double d=1)
Definition: comparitor.cxx:79
Trk::ForCFT::usePhiCnst
int usePhiCnst
Definition: ForCFT.h:16
Trk::VKalVrtControl::renewCascadeEvent
void renewCascadeEvent(CascadeEvent *)
Definition: TrkVKalVrtCoreBase.cxx:316
Trk::VKalVrtControl::renewFullCovariance
void renewFullCovariance(double *)
Definition: TrkVKalVrtCoreBase.cxx:320
Trk::VKTrack::m_originVertex
VKVertex * m_originVertex
Definition: TrkVKalVrtCoreBase.h:120
Trk::ForCFT::usePlaneCnst
int usePlaneCnst
Definition: ForCFT.h:21
Trk::VKVertex::existFullCov
int existFullCov
Definition: TrkVKalVrtCoreBase.h:186
Trk::VKalVrtControl::setIterationNum
void setIterationNum(int Iter)
Definition: TrkVKalVrtCoreBase.cxx:250
grepfile.ic
int ic
Definition: grepfile.py:33
Derivt.h
Trk::VKTrack::restoreCurrentWgt
void restoreCurrentWgt()
Definition: TrkVKalVrtCoreBase.cxx:83
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition: FakeTrackBuilder.h:9
Trk::VKVertex::vk_fitterControl
std::unique_ptr< VKalVrtControl > vk_fitterControl
Definition: TrkVKalVrtCoreBase.h:194
Trk::VKVertex::setRefV
void setRefV(double v[3]) noexcept
Definition: TrkVKalVrtCoreBase.cxx:149
Trk::VKTrack::WgtM_save
double WgtM_save[15]
Definition: TrkVKalVrtCoreBase.h:88
Trk::ForCFT::wm
double wm[vkalNTrkM]
Definition: ForCFT.h:27
Trk::VKalVrtControl::setMassCnstData
void setMassCnstData(int Ntrk, double Mass)
Definition: TrkVKalVrtCoreBase.cxx:277
plotBeamSpotMon.b
b
Definition: plotBeamSpotMon.py:76
Trk::ForCFT::Dp
double Dp
Definition: ForCFT.h:34
Trk::VKVertex::~VKVertex
~VKVertex()
Trk::ForCFT::Ap
double Ap
Definition: ForCFT.h:31
vkalNTrkM
#define vkalNTrkM
Definition: CommonPars.h:22
Trk::VKVertex::cnstV
double cnstV[3]
Definition: TrkVKalVrtCoreBase.h:143
Trk::VKalVrtControl::setUsePhiCnst
void setUsePhiCnst()
Definition: TrkVKalVrtCoreBase.cxx:299
Trk::ForCFT::wmfit
double wmfit[vkalMaxNMassCnst]
Definition: ForCFT.h:28
Trk::VKVertex::setCnstV
void setCnstV(double v[3]) noexcept
Definition: TrkVKalVrtCoreBase.cxx:153
Trk::CascadeEvent
Definition: TrkVKalVrtCoreBase.h:21
Trk::VKalVrtControlBase::VKalVrtControlBase
VKalVrtControlBase(baseMagFld *, const addrMagHandler, const basePropagator *, const addrPropagator, IVKalState *istate=nullptr)
Definition: TrkVKalVrtCoreBase.cxx:18
MuonR4::SegmentFit::Covariance
AmgSymMatrix(toInt(ParamDefs::nPars)) Covariance
Definition: MuonHoughDefs.h:49
Trk::baseMagFld
Definition: VKalVrtBMag.h:29
a
TList * a
Definition: liststreamerinfos.cxx:10
Trk::VKVertex::VKVertex
VKVertex()
Definition: TrkVKalVrtCoreBase.cxx:133
python.CaloAddPedShiftConfig.int
int
Definition: CaloAddPedShiftConfig.py:45
Trk::IVKalState
Definition: IVKalState.h:21
Trk::VKalVrtControl::m_fullCovariance
std::unique_ptr< double[]> m_fullCovariance
Definition: TrkVKalVrtCore.h:85
Trk::operator<<
MsgStream & operator<<(MsgStream &sl, const AlignModule &alignModule)
overload of << operator for MsgStream for debug output
Definition: AlignModule.cxx:204
Trk::VKTrack::refCovar
double refCovar[15]
Definition: TrkVKalVrtCoreBase.h:97
Trk::VKalVrtControl
Definition: TrkVKalVrtCore.h:44
Trk::VKVertex::Chi2
double Chi2
Definition: TrkVKalVrtCoreBase.h:139
Trk::VKVertex::fitCovXYZMom
double fitCovXYZMom[21]
Definition: TrkVKalVrtCoreBase.h:159
Trk::ForCFT::irob
int irob
Definition: ForCFT.h:49
Trk::ForCFT::IterationNumber
int IterationNumber
Definition: ForCFT.h:53
Trk::VKVertex::nextCascadeVrt
VKVertex * nextCascadeVrt
Definition: TrkVKalVrtCoreBase.h:179
Trk::VKVertex::wa
double wa[6]
Definition: TrkVKalVrtCoreBase.h:164
Trk::VKVertex::dxyz0
double dxyz0[3]
Definition: TrkVKalVrtCoreBase.h:165
Trk::VKVertex
Definition: TrkVKalVrtCoreBase.h:128
Trk::VKVertex::iniV
double iniV[3]
Definition: TrkVKalVrtCoreBase.h:142
Trk::VKTrack::iniP
double iniP[3]
Definition: TrkVKalVrtCoreBase.h:83
xAOD::track
@ track
Definition: TrackingPrimitives.h:513
calibdata.copy
bool copy
Definition: calibdata.py:26
Trk::VKVertex::savedVrtMomCov
double savedVrtMomCov[21]
Definition: TrkVKalVrtCoreBase.h:181
Trk::VKalVrtControlBase
Definition: TrkVKalVrtCore.h:26
Trk::ForCFT::nmcnst
int nmcnst
Definition: ForCFT.h:26
Trk::VKVertex::passWithTrkCov
bool passWithTrkCov
Definition: TrkVKalVrtCoreBase.h:157
Trk::ForCFT::Bp
double Bp
Definition: ForCFT.h:32
python.compressB64.c
def c
Definition: compressB64.py:93
Trk::VKalVrtControl::vk_forcft
ForCFT vk_forcft
Definition: TrkVKalVrtCore.h:92
ForCFT.h
Trk::VKVertex::truncatedStep
bool truncatedStep
Definition: TrkVKalVrtCoreBase.h:185
Trk::ForCFT::useMassCnst
int useMassCnst
Definition: ForCFT.h:15
Trk::v
@ v
Definition: ParamDefs.h:78
python.SystemOfUnits.m
float m
Definition: SystemOfUnits.py:106
Trk::ForCFT::usePointingCnst
int usePointingCnst
Definition: ForCFT.h:18