ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Tracking
TrkEventCnv
TrkEventTPCnv
src
TrkMaterialOnTrack
MaterialEffectsOnTrackCnv_p2.cxx
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
#include "
TrkMaterialOnTrack/EnergyLoss.h
"
6
#include "
TrkMaterialOnTrack/MaterialEffectsOnTrack.h
"
7
#include "
TrkMaterialOnTrack/ScatteringAngles.h
"
8
#include <cmath>
9
10
#include <typeinfo>
11
12
//#include "TrkSurfaces/Surface.h"
13
#include "
TrkEventTPCnv/TrkMaterialOnTrack/MaterialEffectsOnTrackCnv_p2.h
"
14
15
void
MaterialEffectsOnTrackCnv_p2 :: persToTrans(
16
const
Trk::MaterialEffectsOnTrack_p2
*persObj,
17
Trk::MaterialEffectsOnTrack
*transObj,
18
MsgStream& log)
19
{
20
fillTransFromPStore
(&
m_mefBaseCnv
, persObj->
m_mefBase
, transObj, log);
21
if
((std::abs(persObj->
m_deltaPhi
) + std::abs(persObj->
m_deltaTheta
) >
22
1.0e-10) ||
23
(persObj->
m_sigmaDeltaPhi
+ persObj->
m_sigmaDeltaTheta
> 1.0e-10)) {
24
transObj->
m_scatteringAngles
=
25
Trk::ScatteringAngles
(persObj->
m_deltaPhi
,
26
persObj->
m_deltaTheta
,
27
persObj->
m_sigmaDeltaPhi
,
28
persObj->
m_sigmaDeltaTheta
);
29
}
else
30
transObj->
m_scatteringAngles
= std::nullopt;
31
transObj->
m_energyLoss
.reset(
createTransFromPStore
(
32
(
ITPConverterFor<Trk::EnergyLoss>
**)
nullptr
, persObj->
m_energyLoss
, log));
33
}
34
35
void
MaterialEffectsOnTrackCnv_p2 :: transToPers(
36
const
Trk::MaterialEffectsOnTrack
*transObj,
37
Trk::MaterialEffectsOnTrack_p2
*persObj,
38
MsgStream& log)
39
{
40
persObj->
m_mefBase
=
baseToPersistent
( &
m_mefBaseCnv
, transObj, log );
41
if
(transObj->
scatteringAngles
()!=
nullptr
) {
42
persObj->
m_deltaPhi
= (float)transObj->
scatteringAngles
()->
deltaPhi
();
43
persObj->
m_deltaTheta
= (float)transObj->
scatteringAngles
()->
deltaTheta
();
44
persObj->
m_sigmaDeltaPhi
= (float)transObj->
scatteringAngles
()->
sigmaDeltaPhi
();
45
persObj->
m_sigmaDeltaTheta
= (float)transObj->
scatteringAngles
()->
sigmaDeltaTheta
();
46
}
47
// persObj->m_energyLoss = toPersistent( &m_elossCnv, transObj->m_energyLoss, log );
48
// if (transObj->m_energyLoss!=0) std::cout<<"Ending MaterialEffectsOnTrackCnv_p2::transToPers: "<<(typeid(*(transObj->m_energyLoss))).name()<<std::endl;
49
persObj->
m_energyLoss
=
toPersistent
( (
ITPConverterFor<Trk::EnergyLoss>
**)
nullptr
, transObj->
energyLoss
(), log );
50
}
51
52
53
EnergyLoss.h
MaterialEffectsOnTrackCnv_p2.h
MaterialEffectsOnTrack.h
ScatteringAngles.h
ITPConverterFor< TRANS_BASE >::baseToPersistent
TPObjRef baseToPersistent(CNV **cnv, const typename CNV::Trans_t *transObj, MsgStream &log) const
Definition
TPConverter.h:97
ITPConverterFor< TRANS_BASE >::createTransFromPStore
CNV::Trans_t * createTransFromPStore(CNV **cnv, const TPObjRef &ref, MsgStream &log) const
Definition
TPConverter.h:172
ITPConverterFor< TRANS_BASE >::fillTransFromPStore
void fillTransFromPStore(CNV **cnv, const TPObjRef &ref, TRANS_T *trans, MsgStream &log) const
Definition
TPConverter.h:145
ITPConverterFor< TRANS_BASE >::toPersistent
TPObjRef toPersistent(CNV **cnv, const typename CNV::TransBase_t *transObj, MsgStream &log) const
Definition
TPConverter.h:119
ITPConverterFor< TRANS_BASE >::ITPConverterFor
ITPConverterFor()
Definition
TPConverter.h:43
MaterialEffectsOnTrackCnv_p2::m_mefBaseCnv
ITPConverterFor< Trk::MaterialEffectsBase > * m_mefBaseCnv
Definition
MaterialEffectsOnTrackCnv_p2.h:34
Trk::MaterialEffectsOnTrack_p2
persistent representation v2 of MaterialEffectsOnTrack
Definition
MaterialEffectsOnTrack_p2.h:24
Trk::MaterialEffectsOnTrack_p2::m_sigmaDeltaPhi
float m_sigmaDeltaPhi
Definition
MaterialEffectsOnTrack_p2.h:33
Trk::MaterialEffectsOnTrack_p2::m_deltaTheta
float m_deltaTheta
Definition
MaterialEffectsOnTrack_p2.h:32
Trk::MaterialEffectsOnTrack_p2::m_energyLoss
TPObjRef m_energyLoss
Definition
MaterialEffectsOnTrack_p2.h:36
Trk::MaterialEffectsOnTrack_p2::m_sigmaDeltaTheta
float m_sigmaDeltaTheta
Definition
MaterialEffectsOnTrack_p2.h:34
Trk::MaterialEffectsOnTrack_p2::m_deltaPhi
float m_deltaPhi
Definition
MaterialEffectsOnTrack_p2.h:31
Trk::MaterialEffectsOnTrack_p2::m_mefBase
TPObjRef m_mefBase
Definition
MaterialEffectsOnTrack_p2.h:28
Trk::MaterialEffectsOnTrack
represents the full description of deflection and e-loss of a track in material.
Definition
MaterialEffectsOnTrack.h:40
Trk::MaterialEffectsOnTrack::m_scatteringAngles
std::optional< ScatteringAngles > m_scatteringAngles
holds the scattering angles+errors in a separate object
Definition
MaterialEffectsOnTrack.h:146
Trk::MaterialEffectsOnTrack::m_energyLoss
std::unique_ptr< const EnergyLoss > m_energyLoss
holds the measured and/or estimated energy loss in a separate object
Definition
MaterialEffectsOnTrack.h:148
Trk::MaterialEffectsOnTrack::energyLoss
const EnergyLoss * energyLoss() const
returns the energy loss object.
Trk::MaterialEffectsOnTrack::scatteringAngles
const ScatteringAngles * scatteringAngles() const
returns the MCS-angles object.
Trk::ScatteringAngles
represents a deflection of the track caused through multiple scattering in material.
Definition
ScatteringAngles.h:26
Trk::ScatteringAngles::sigmaDeltaPhi
double sigmaDeltaPhi() const
returns the
Definition
ScatteringAngles.h:94
Trk::ScatteringAngles::deltaPhi
double deltaPhi() const
returns the
Definition
ScatteringAngles.h:82
Trk::ScatteringAngles::sigmaDeltaTheta
double sigmaDeltaTheta() const
returns the
Definition
ScatteringAngles.h:100
Trk::ScatteringAngles::deltaTheta
double deltaTheta() const
returns the
Definition
ScatteringAngles.h:88
Generated on
for ATLAS Offline Software by
1.17.0