ATLAS Offline Software
Loading...
Searching...
No Matches
Trk::VKVertex Class Reference

#include <TrkVKalVrtCoreBase.h>

Collaboration diagram for Trk::VKVertex:

Public Member Functions

 VKVertex (const VKalVrtControl &)
 VKVertex (VKVertex &&) noexcept=default
 VKVertex ()
 ~VKVertex ()
 VKVertex (const VKVertex &src)
VKVertexoperator= (const VKVertex &src)
VKVertexoperator= (VKVertex &&) noexcept=default
void setRefV (double v[3]) noexcept
void setCnstV (double v[3]) noexcept
void setRefIterV (double v[]) noexcept
void setIniV (double v[3]) noexcept
void setFitV (double v[3]) noexcept

Public Attributes

double Chi2
double fitV [3] {}
double fitVcov [6] {}
double iniV [3] {}
double cnstV [3] {}
double refIterV [3] {}
double refV [3] {}
int useApriorVertex
double apriorV [3] {}
double apriorVWGT [6] {}
bool passNearVertex
bool passWithTrkCov
double fitMom [3] {}
double fitCovXYZMom [21] {}
ForVrtClose FVC
double T [3] {}
double wa [6] {}
double dxyz0 [3] {}
std::vector< std::unique_ptr< VKTrack > > TrackList
std::vector< std::unique_ptr< TWRK > > tmpArr
std::vector< std::unique_ptr< VKConstraintBase > > ConstraintList
VKVertexnextCascadeVrt
std::vector< VKVertex * > includedVrt
double savedVrtMomCov [21] {}
bool truncatedStep
int existFullCov
double ader [(3 *vkalNTrkM+3) *(3 *vkalNTrkM+3)]
std::unique_ptr< VKalVrtControlvk_fitterControl

Detailed Description

Definition at line 127 of file TrkVKalVrtCoreBase.h.

Constructor & Destructor Documentation

◆ VKVertex() [1/4]

Trk::VKVertex::VKVertex ( const VKalVrtControl & FitControl)

Definition at line 129 of file TrkVKalVrtCoreBase.cxx.

129 : VKVertex()
130 { vk_fitterControl = std::make_unique<VKalVrtControl>(FitControl); }
std::unique_ptr< VKalVrtControl > vk_fitterControl

◆ VKVertex() [2/4]

Trk::VKVertex::VKVertex ( VKVertex && )
defaultnoexcept

◆ VKVertex() [3/4]

Trk::VKVertex::VKVertex ( )

Definition at line 133 of file TrkVKalVrtCoreBase.cxx.

133 :
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.;
142 Chi2=0.;
143 truncatedStep=false;
144 existFullCov=0;
145 }
double savedVrtMomCov[21]
std::vector< VKVertex * > includedVrt
std::vector< std::unique_ptr< VKTrack > > TrackList
std::vector< std::unique_ptr< VKConstraintBase > > ConstraintList
double fitCovXYZMom[21]
std::vector< std::unique_ptr< TWRK > > tmpArr
VKVertex * nextCascadeVrt

◆ ~VKVertex()

Trk::VKVertex::~VKVertex ( )
default

◆ VKVertex() [4/4]

Trk::VKVertex::VKVertex ( const VKVertex & src)

Definition at line 156 of file TrkVKalVrtCoreBase.cxx.

156 : //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),
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 }
#define vkalNTrkM
Definition CommonPars.h:22
double ader[(3 *vkalNTrkM+3) *(3 *vkalNTrkM+3)]
int ic
Definition grepfile.py:33

Member Function Documentation

◆ operator=() [1/2]

VKVertex & Trk::VKVertex::operator= ( const VKVertex & src)

Definition at line 198 of file TrkVKalVrtCoreBase.cxx.

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
242 std::copy (std::begin(src.T), std::end(src.T), std::begin(T));
243 std::copy (std::begin(src.wa), std::end(src.wa), std::begin(wa));
244 std::copy (std::begin(src.dxyz0), std::end(src.dxyz0), std::begin(dxyz0));
245 }
246 return *this;
247 }

◆ operator=() [2/2]

VKVertex & Trk::VKVertex::operator= ( VKVertex && )
defaultnoexcept

◆ setCnstV()

void Trk::VKVertex::setCnstV ( double v[3])
noexcept

Definition at line 153 of file TrkVKalVrtCoreBase.cxx.

153{ std::copy(v, v+3, cnstV);}
@ v
Definition ParamDefs.h:78

◆ setFitV()

void Trk::VKVertex::setFitV ( double v[3])
noexcept

Definition at line 152 of file TrkVKalVrtCoreBase.cxx.

152{ std::copy(v, v+3, fitV); }

◆ setIniV()

void Trk::VKVertex::setIniV ( double v[3])
noexcept

Definition at line 151 of file TrkVKalVrtCoreBase.cxx.

151{ std::copy(v, v+3, iniV); }

◆ setRefIterV()

void Trk::VKVertex::setRefIterV ( double v[])
noexcept

Definition at line 150 of file TrkVKalVrtCoreBase.cxx.

150{ std::copy(v, v+3, refIterV); }

◆ setRefV()

void Trk::VKVertex::setRefV ( double v[3])
noexcept

Definition at line 149 of file TrkVKalVrtCoreBase.cxx.

149{ std::copy(v, v+3, refV);}

Member Data Documentation

◆ ader

double Trk::VKVertex::ader[(3 *vkalNTrkM+3) *(3 *vkalNTrkM+3)]

Definition at line 188 of file TrkVKalVrtCoreBase.h.

◆ apriorV

double Trk::VKVertex::apriorV[3] {}

Definition at line 152 of file TrkVKalVrtCoreBase.h.

152{}; //global coordinates (the same as refV and refIterV)

◆ apriorVWGT

double Trk::VKVertex::apriorVWGT[6] {}

Definition at line 153 of file TrkVKalVrtCoreBase.h.

153{}; //weight matrix of a priori vertex

◆ Chi2

double Trk::VKVertex::Chi2

Definition at line 139 of file TrkVKalVrtCoreBase.h.

◆ cnstV

double Trk::VKVertex::cnstV[3] {}

Definition at line 143 of file TrkVKalVrtCoreBase.h.

143{}; //position for constraint values calculation. May be different from fitV or iniV

◆ ConstraintList

std::vector<std::unique_ptr<VKConstraintBase> > Trk::VKVertex::ConstraintList

Definition at line 169 of file TrkVKalVrtCoreBase.h.

◆ dxyz0

double Trk::VKVertex::dxyz0[3] {}

Definition at line 165 of file TrkVKalVrtCoreBase.h.

165{}; // unconstrained shift of vertex on current iteration. Needed for PostFit

◆ existFullCov

int Trk::VKVertex::existFullCov

Definition at line 186 of file TrkVKalVrtCoreBase.h.

◆ fitCovXYZMom

double Trk::VKVertex::fitCovXYZMom[21] {}

Definition at line 159 of file TrkVKalVrtCoreBase.h.

159{}; // Mom and CovMom are here because they are used also for other purposes

◆ fitMom

double Trk::VKVertex::fitMom[3] {}

Definition at line 158 of file TrkVKalVrtCoreBase.h.

158{}; // are in ForVrtClose structure

◆ fitV

double Trk::VKVertex::fitV[3] {}

Definition at line 140 of file TrkVKalVrtCoreBase.h.

140{}; //fitted vertex position on given iteration step

◆ fitVcov

double Trk::VKVertex::fitVcov[6] {}

Definition at line 141 of file TrkVKalVrtCoreBase.h.

141{}; //symmetric covariance matrix of fitted vertex

◆ FVC

ForVrtClose Trk::VKVertex::FVC

Definition at line 160 of file TrkVKalVrtCoreBase.h.

◆ includedVrt

std::vector<VKVertex*> Trk::VKVertex::includedVrt

Definition at line 180 of file TrkVKalVrtCoreBase.h.

◆ iniV

double Trk::VKVertex::iniV[3] {}

Definition at line 142 of file TrkVKalVrtCoreBase.h.

142{}; //starting point for the fit.

◆ nextCascadeVrt

VKVertex* Trk::VKVertex::nextCascadeVrt

Definition at line 179 of file TrkVKalVrtCoreBase.h.

◆ passNearVertex

bool Trk::VKVertex::passNearVertex

Definition at line 156 of file TrkVKalVrtCoreBase.h.

◆ passWithTrkCov

bool Trk::VKVertex::passWithTrkCov

Definition at line 157 of file TrkVKalVrtCoreBase.h.

◆ refIterV

double Trk::VKVertex::refIterV[3] {}

Definition at line 146 of file TrkVKalVrtCoreBase.h.

146{}; //initial point for iteration step and target for preparatory

◆ refV

double Trk::VKVertex::refV[3] {}

Definition at line 148 of file TrkVKalVrtCoreBase.h.

148{}; //reference point for given vertex. At this point refPerig[] and refCovar[]

◆ savedVrtMomCov

double Trk::VKVertex::savedVrtMomCov[21] {}

Definition at line 181 of file TrkVKalVrtCoreBase.h.

181{}; // saved covariance WITHOUT pointing constraint

◆ T

double Trk::VKVertex::T[3] {}

Definition at line 163 of file TrkVKalVrtCoreBase.h.

163{}; // save T(see Billoir) vector for futher use

◆ tmpArr

std::vector<std::unique_ptr<TWRK> > Trk::VKVertex::tmpArr

Definition at line 168 of file TrkVKalVrtCoreBase.h.

◆ TrackList

std::vector<std::unique_ptr<VKTrack> > Trk::VKVertex::TrackList

Definition at line 167 of file TrkVKalVrtCoreBase.h.

◆ truncatedStep

bool Trk::VKVertex::truncatedStep

Definition at line 185 of file TrkVKalVrtCoreBase.h.

◆ useApriorVertex

int Trk::VKVertex::useApriorVertex

Definition at line 151 of file TrkVKalVrtCoreBase.h.

◆ vk_fitterControl

std::unique_ptr<VKalVrtControl> Trk::VKVertex::vk_fitterControl

Definition at line 194 of file TrkVKalVrtCoreBase.h.

◆ wa

double Trk::VKVertex::wa[6] {}

Definition at line 164 of file TrkVKalVrtCoreBase.h.

164{}; // save WA matrix for futher use

The documentation for this class was generated from the following files: