ATLAS Offline Software
Loading...
Searching...
No Matches
VxTrackAtVertexCnv_p2.cxx
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
3*/
4
7
10
14
16
18
19void VxTrackAtVertexCnv_p2::persToTrans (const Trk::VxTrackAtVertex_p2 * persObj, Trk::VxTrackAtVertex * transObj, MsgStream & log) {
20 // std::cout<<"ILIJA read VxTrackAtVertexCnv_p2 "<<std::endl;
21
22 std::unique_ptr<Trk::ITrackLink> trackLink;
23 if (persObj->m_typeOfLink == 0) {
24 // m_elementLinkConverterForTrack.resetForCnv(persObj->m_origTrackNames); // for element link change - Gerhard !?
26 trackLink = std::unique_ptr<Trk::ITrackLink>(tmpLink);
27 m_elementLinkConverterForTrack.persToTrans(&persObj->m_origTrack,tmpLink,log);
28 } else if (persObj->m_typeOfLink == 1) {
29 // m_elementLinkConverterForTrackParticle.resetForCnv(persObj->m_origTrackNames);
31 trackLink = std::unique_ptr<Trk::ITrackLink>(tmpLink);
32 m_elementLinkConverterForTrackParticle.persToTrans ( &persObj->m_origTrack, tmpLink, log);
33 }
34
35 Trk::FitQuality fitq;
36 fitQualityCnv.persToTrans(&persObj->m_fitQuality, &fitq, log);
37
39
40 *transObj = Trk::VxTrackAtVertex(fitq.chiSquared(),
41 perigeeAtVertex,
42 static_cast<Trk::NeutralParameters*>(nullptr),
43 fitq.doubleNumberDoF());
44 transObj->setWeight (persObj->m_trkWeight);
45 transObj->setVtxCompatibility (persObj->m_VertexCompatibility);
46 transObj->setOrigTrackNoCache (trackLink.release());
47}
48
49void VxTrackAtVertexCnv_p2::transToPers (const Trk::VxTrackAtVertex * transObj, Trk::VxTrackAtVertex_p2 * persObj, MsgStream & log){
50
51 // std::cout<<"ILIJA write VxTrackAtVertexCnv_p2 "<<std::endl;
52
53 // persObj->m_fitQuality = toPersistent (&m_fqCnv, &(transObj->m_fitQuality), log);
54
55 const Trk::FitQuality fq = transObj->trackQuality();
56 fitQualityCnv.transToPers(&fq, &persObj->m_fitQuality, log);
57
58 persObj->m_trkWeight = transObj->weight();
59 persObj->m_VertexCompatibility = transObj->vtxCompatibility();
60
61 // ITPConverterFor < Trk::ParametersBase > *paramsCnv = 0;
62 // persObj->m_perigeeAtVertex = toPersistent (&paramsCnv, transObj->m_perigeeAtVertex, log);
63 persObj->m_perigeeAtVertex = toPersistent (&m_paramsCnv, transObj->perigeeAtVertex(), log);
64
65 const Trk::LinkToTrack * trLink = dynamic_cast < const Trk::LinkToTrack * >((transObj->trackOrParticleLink ()));
66 if (trLink != nullptr) {
67 persObj->m_typeOfLink = 0;
68 // m_elementLinkConverterForTrack.resetForCnv(persObj->m_origTrackNames);
69 const ElementLink < TrackCollection > *el = dynamic_cast < const ElementLink < TrackCollection > *>(trLink);
70 m_elementLinkConverterForTrack.transToPers (el, &persObj->m_origTrack, log);
71 } else {
72 const Trk::LinkToTrackParticleBase * trPBLink = dynamic_cast < const Trk::LinkToTrackParticleBase * >((transObj->trackOrParticleLink()));
73 if (trPBLink != nullptr) {
74 persObj->m_typeOfLink = 1;
75 // m_elementLinkConverterForTrackParticle.resetForCnv(persObj->m_origTrackNames);
76 const ElementLink < Trk::TrackParticleBaseCollection > *el = dynamic_cast < const ElementLink < Trk::TrackParticleBaseCollection > *>(trPBLink);
77 m_elementLinkConverterForTrackParticle.transToPers (el, &persObj->m_origTrack, log);
78 }
79 }
80}
static const FitQualityCnv_p1 fitQualityCnv
CNV::Trans_t * createTransFromPStore(CNV **cnv, const TPObjRef &ref, MsgStream &log) const
TPObjRef toPersistent(CNV **cnv, const typename CNV::TransBase_t *transObj, MsgStream &log) const
Class to represent and store fit qualities from track reconstruction in terms of and number of degre...
Definition FitQuality.h:97
double chiSquared() const
returns the of the overall track fit
Definition FitQuality.h:56
double doubleNumberDoF() const
returns the number of degrees of freedom of the overall track or vertex fit as double
Definition FitQuality.h:68
AUTO - An Undocumented Tracking Object.
Definition LinkToTrack.h:20
ElementLinkInt_p3 m_origTrack
unsigned short int m_typeOfLink
The VxTrackAtVertex is a common class for all present TrkVertexFitters The VxTrackAtVertex is designe...
void setOrigTrackNoCache(ITrackLink *trk)
Setting up the initial track, without caching parameters.
void setWeight(const double)
Set method for a weight.
const TrackParameters * perigeeAtVertex(void) const
Perigee parameters with respect to fitted vertex d_0 and z_0 are equal to 0 in case the trajectory wa...
FitQuality trackQuality(void) const
Returns a pointer to the original track if any.
double vtxCompatibility(void) const
Information about fast compatibility estimation, to be given to the annealing.
double weight(void) const
Information about the weight of track in fit (given back by annealing): weight=ndf/2.
const ITrackLink * trackOrParticleLink(void) const
void setVtxCompatibility(const double)
void persToTrans(const Trk::VxTrackAtVertex_p2 *persObj, Trk::VxTrackAtVertex *transObj, MsgStream &log)
Conversion methods.
ElementLinkCnv_p3< ElementLink< Trk::TrackParticleBaseCollection > > m_elementLinkConverterForTrackParticle
ElementLinkCnv_p3< ElementLink< TrackCollection > > m_elementLinkConverterForTrack
ITPConverterFor< Trk::TrackParameters > * m_paramsCnv
void transToPers(const Trk::VxTrackAtVertex *transObj, Trk::VxTrackAtVertex_p2 *persObj, MsgStream &log)
ParametersBase< NeutralParametersDim, Neutral > NeutralParameters
ParametersBase< TrackParametersDim, Charged > TrackParameters