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 126 of file TrkVKalVrtCoreBase.h.

Constructor & Destructor Documentation

◆ VKVertex() [1/4]

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

Definition at line 136 of file TrkVKalVrtCoreBase.cxx.

136 : VKVertex()
137 { 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 140 of file TrkVKalVrtCoreBase.cxx.

140 :
143 {
144 for(int i=0; i<3; i++) apriorV[i]=refV[i]=iniV[i]=fitV[i]=cnstV[i]=fitMom[i]=0.;
145 for(int i=0; i<6; i++) apriorVWGT[i]=0.;
146 for(int i=0; i<21; i++) fitCovXYZMom[i]=savedVrtMomCov[i]=0.;
149 Chi2=0.;
150 truncatedStep=false;
151 existFullCov=0;
152 }
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 163 of file TrkVKalVrtCoreBase.cxx.

163 : //copy constructor
164 Chi2(src.Chi2), // vertex Chi2
165 useApriorVertex(src.useApriorVertex), //for a priory vertex position knowledge usage
166 passNearVertex(src.passNearVertex), // needed for "passing near vertex" constraint
167 passWithTrkCov(src.passWithTrkCov), // Vertex, CovVertex, Charge and derivatives
168 FVC(src.FVC),
169 TrackList(0),
171 {
172 for( int i=0; i<6; i++) {
173 fitVcov[i] =src.fitVcov[i]; // range[0:5]
174 apriorVWGT[i] =src.apriorVWGT[i];
175 if(i>=3) continue;
176 fitV[i] =src.fitV[i]; // range[0:2]
177 iniV[i] =src.iniV[i];
178 cnstV[i] =src.cnstV[i];
179 refIterV[i]=src.refIterV[i];
180 refV[i] =src.refV[i];
181 apriorV[i] =src.apriorV[i];
182 fitMom[i] = src.fitMom[i];
183 }
184 for( int i=0; i<21; i++){
185 savedVrtMomCov[i]=src.savedVrtMomCov[i];
186 fitCovXYZMom[i]=src.fitCovXYZMom[i];
187 }
188 nextCascadeVrt = nullptr;
189 truncatedStep = src.truncatedStep;
190 existFullCov = src.existFullCov;
191
192 int NTrack=src.TrackList.size();
193 int FULLSIZE=3*vkalNTrkM+3;
194 int SIZE=3*NTrack+3;
195 for(int i=0; i<SIZE; i++) for(int j=0; j<SIZE; j++) { ader[i*FULLSIZE+j]=src.ader[i*FULLSIZE+j]; }
196 //----- Creation of track and constraint copies
197 for( int i=0; i<NTrack; i++) TrackList.emplace_back( new VKTrack(*(src.TrackList[i])) );
198 ConstraintList.reserve(src.ConstraintList.size());
199 for( int ic=0; ic<(int)src.ConstraintList.size(); ic++){
200 ConstraintList.emplace_back(src.ConstraintList[ic]->clone());
201 }
202 vk_fitterControl = std::make_unique<VKalVrtControl>(*src.vk_fitterControl);
203 }
#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 205 of file TrkVKalVrtCoreBase.cxx.

206 {
207 if (this!=&src){
208 vk_fitterControl.reset();
209 vk_fitterControl=std::make_unique<VKalVrtControl>(*(src.vk_fitterControl));
210 Chi2=src.Chi2; // vertex Chi2
211 useApriorVertex=src.useApriorVertex; //for a priory vertex position knowledge usage
212 passNearVertex=src.passNearVertex; // needed for "passing near vertex" constraint
213 passWithTrkCov=src.passWithTrkCov; // Vertex, CovVertex, Charge and derivatives
214 FVC=src.FVC;
215 for( int i=0; i<6; i++) {
216 fitVcov[i] =src.fitVcov[i]; // range[0:5]
217 apriorVWGT[i] =src.apriorVWGT[i];
218 if(i>=3) continue;
219 fitV[i] =src.fitV[i]; // range[0:2]
220 iniV[i] =src.iniV[i];
221 cnstV[i] =src.cnstV[i];
222 refIterV[i]=src.refIterV[i];
223 refV[i] =src.refV[i];
224 apriorV[i] =src.apriorV[i];
225 fitMom[i] = src.fitMom[i];
226 }
227 for( int i=0; i<21; i++){
228 savedVrtMomCov[i]=src.savedVrtMomCov[i];
229 fitCovXYZMom[i]=src.fitCovXYZMom[i];
230 }
231 nextCascadeVrt = nullptr;
232 truncatedStep = src.truncatedStep;
233 existFullCov = src.existFullCov;
234
235 int NTrack=src.TrackList.size();
236 int FULLSIZE=3*vkalNTrkM+3;
237 int SIZE=3*NTrack+3;
238 for(int i=0; i<SIZE; i++) for(int j=0; j<SIZE; j++) { ader[i*FULLSIZE+j]=src.ader[i*FULLSIZE+j]; }
239 //----- Creation of track and constraint copies
240 TrackList.clear();
241 tmpArr.clear();
242 ConstraintList.clear();
243 for( int i=0; i<NTrack; i++) TrackList.emplace_back( new VKTrack(*(src.TrackList[i])) );
244 ConstraintList.reserve(src.ConstraintList.size());
245 for( int ic=0; ic<(int)src.ConstraintList.size(); ic++){
246 ConstraintList.emplace_back(src.ConstraintList[ic]->clone());
247 }
248
249 std::copy (std::begin(src.T), std::end(src.T), std::begin(T));
250 std::copy (std::begin(src.wa), std::end(src.wa), std::begin(wa));
251 std::copy (std::begin(src.dxyz0), std::end(src.dxyz0), std::begin(dxyz0));
252 }
253 return *this;
254 }

◆ operator=() [2/2]

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

◆ setCnstV()

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

Definition at line 160 of file TrkVKalVrtCoreBase.cxx.

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

◆ setFitV()

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

Definition at line 159 of file TrkVKalVrtCoreBase.cxx.

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

◆ setIniV()

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

Definition at line 158 of file TrkVKalVrtCoreBase.cxx.

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

◆ setRefIterV()

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

Definition at line 157 of file TrkVKalVrtCoreBase.cxx.

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

◆ setRefV()

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

Definition at line 156 of file TrkVKalVrtCoreBase.cxx.

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

Member Data Documentation

◆ ader

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

Definition at line 187 of file TrkVKalVrtCoreBase.h.

◆ apriorV

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

Definition at line 151 of file TrkVKalVrtCoreBase.h.

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

◆ apriorVWGT

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

Definition at line 152 of file TrkVKalVrtCoreBase.h.

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

◆ Chi2

double Trk::VKVertex::Chi2

Definition at line 138 of file TrkVKalVrtCoreBase.h.

◆ cnstV

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

Definition at line 142 of file TrkVKalVrtCoreBase.h.

142{}; //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 168 of file TrkVKalVrtCoreBase.h.

◆ dxyz0

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

Definition at line 164 of file TrkVKalVrtCoreBase.h.

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

◆ existFullCov

int Trk::VKVertex::existFullCov

Definition at line 185 of file TrkVKalVrtCoreBase.h.

◆ fitCovXYZMom

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

Definition at line 158 of file TrkVKalVrtCoreBase.h.

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

◆ fitMom

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

Definition at line 157 of file TrkVKalVrtCoreBase.h.

157{}; // are in ForVrtClose structure

◆ fitV

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

Definition at line 139 of file TrkVKalVrtCoreBase.h.

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

◆ fitVcov

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

Definition at line 140 of file TrkVKalVrtCoreBase.h.

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

◆ FVC

ForVrtClose Trk::VKVertex::FVC

Definition at line 159 of file TrkVKalVrtCoreBase.h.

◆ includedVrt

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

Definition at line 179 of file TrkVKalVrtCoreBase.h.

◆ iniV

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

Definition at line 141 of file TrkVKalVrtCoreBase.h.

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

◆ nextCascadeVrt

VKVertex* Trk::VKVertex::nextCascadeVrt

Definition at line 178 of file TrkVKalVrtCoreBase.h.

◆ passNearVertex

bool Trk::VKVertex::passNearVertex

Definition at line 155 of file TrkVKalVrtCoreBase.h.

◆ passWithTrkCov

bool Trk::VKVertex::passWithTrkCov

Definition at line 156 of file TrkVKalVrtCoreBase.h.

◆ refIterV

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

Definition at line 145 of file TrkVKalVrtCoreBase.h.

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

◆ refV

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

Definition at line 147 of file TrkVKalVrtCoreBase.h.

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

◆ savedVrtMomCov

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

Definition at line 180 of file TrkVKalVrtCoreBase.h.

180{}; // saved covariance WITHOUT pointing constraint

◆ T

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

Definition at line 162 of file TrkVKalVrtCoreBase.h.

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

◆ tmpArr

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

Definition at line 167 of file TrkVKalVrtCoreBase.h.

◆ TrackList

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

Definition at line 166 of file TrkVKalVrtCoreBase.h.

◆ truncatedStep

bool Trk::VKVertex::truncatedStep

Definition at line 184 of file TrkVKalVrtCoreBase.h.

◆ useApriorVertex

int Trk::VKVertex::useApriorVertex

Definition at line 150 of file TrkVKalVrtCoreBase.h.

◆ vk_fitterControl

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

Definition at line 193 of file TrkVKalVrtCoreBase.h.

◆ wa

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

Definition at line 163 of file TrkVKalVrtCoreBase.h.

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

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