ATLAS Offline Software
Loading...
Searching...
No Matches
MuonCnv_p3.cxx
Go to the documentation of this file.
1
2
3/*
4 Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
5*/
6
7// MuonCnv_p3.cxx
8// Implementation file for class MuonCnv_p3
9// Author: Ketevi A. Assamagan <ketevi@bnl.gov>
11
12
13// STL includes
14
15// DataModelAthenaPool includes
18
19// EventCommonTPCnv includes
21
22// ParticleEventTPCnv includes
24
25// muonEvent includes
26#include "muonEvent/Muon.h"
27
28// RecTPCnv includes
29#include "RecTPCnv/MuonCnv_p3.h"
30
35
36// pre-allocate converters
43
44
46 Analysis::Muon* trans,
47 MsgStream& msg ) const
48{
49// msg << MSG::DEBUG << "Loading Muon from persistent state..."
50// << endmsg;
51
52 // base classes
53 momCnv.persToTrans ( &pers->m_momentum, &trans->momentumBase(), msg );
54 partBaseCnv.persToTrans( &pers->m_particleBase, &trans->particleBase(), msg );
55
56 // element links
58 trackCnv.persToTrans( &pers->m_inDetTrackParticle,
59 &inDetTrackLink,
60 msg );
61 trans->setInDetTrackLink (inDetTrackLink);
62
63 ElementLink<Rec::TrackParticleContainer> muonSpectrometerTrackLink;
64 trackCnv.persToTrans( &pers->m_muonSpectrometerTrackParticle,
65 &muonSpectrometerTrackLink,
66 msg );
67 trans->setMuonSpectrometerTrackLink (muonSpectrometerTrackLink);
68
70 trackCnv.persToTrans( &pers->m_muonExtrapolatedTrackParticle,
71 &muonExtrapTrackLink,
72 msg );
73 trans->setMuonExtrapTrackLink (muonExtrapTrackLink,
75
78 &innerExtrapTrackLink,
79 msg );
80 trans->setInnerExtrapTrackLink (innerExtrapTrackLink);
81
83 trackCnv.persToTrans( &pers->m_combinedMuonTrackParticle,
84 &combinedTrackLink,
85 msg );
86 trans->setCombinedTrackLink (combinedTrackLink,
88
90 clusterCnv.persToTrans( &pers->m_cluster,
91 &clusterLink,
92 msg );
93 trans->setClusterLink (clusterLink);
94
96 segmentCnv.persToTrans( &pers->m_muonSegments,
97 &muonSegmentLink,
98 msg );
99 trans->setMuonSegmentLink (muonSegmentLink);
100
102 caloEnergyCnv.persToTrans( &pers->m_caloEnergyLoss,
103 &caloEnergyLink,
104 msg );
105 trans->setCaloEnergyLink (caloEnergyLink);
106
107 // muon parameters
108 const std::vector<float>& params = pers->m_parameters;
109 trans->set_parameter(MuonParameters::etcone10, params[ 0] );
110 trans->set_parameter(MuonParameters::etcone20, params[ 1] );
111 trans->set_parameter(MuonParameters::etcone30, params[ 2] );
112 trans->set_parameter(MuonParameters::etcone40, params[ 3] );
113
114 trans->set_parameter(MuonParameters::nucone10, params[ 8] );
115 trans->set_parameter(MuonParameters::nucone20, params[ 9] );
116 trans->set_parameter(MuonParameters::nucone30, params[10] );
117 trans->set_parameter(MuonParameters::nucone40, params[11] );
118
122 trans->set_parameter(MuonParameters::annBarrel, params[19] );
123 trans->set_parameter(MuonParameters::annEndCap, params[20] );
124 trans->set_parameter(MuonParameters::innAngle, params[21] );
125 trans->set_parameter(MuonParameters::midAngle, params[22] );
126
127 trans->set_parameter(MuonParameters::t0, params[23] );
128 trans->set_parameter(MuonParameters::beta, params[24] );
129
130 // author
131 trans->set_author (static_cast<MuonParameters::Author>(pers->m_author));
132 trans->set_allAuthors (0);
133 trans->add_author ( trans->author() );
134
135 // chi2 of the track matching
136 trans->set_matchChi2 (pers->m_matchChi2);
137
138 // Low Pt muon stuff
141
142 trans->set_bestMatch (pers->m_bestMatch);
144
145 // this muon is also found by the lowPT reconstruction algorithm
147
148 // this muon is also found by the Calo Muon ID reconstruction algorithm
150
153
154 trans->set_isCorrected (pers->m_isCorrected);
155
156// msg << MSG::DEBUG << "Loaded Muon from persistent state [OK]"
157// << endmsg;
158
159 return;
160}
161
163 Muon_p3* pers,
164 MsgStream& msg ) const
165{
166
167 msg << MSG::ERROR << "Analysis::Muon at " << trans << " Persistent Muon_p3 at " << pers << " Cannot write to Muon_p3" << endmsg;
168 throw std::runtime_error("Writing to Muon_p3 is not supported - MuonCnv_p3::transToPers(...)");
169 return;
170
171}
#define endmsg
This file contains the class definition for the ElementLinkCnv_p1 class.
This file contains the class definition for the ElementLinkVectorCnv_p1 class.
static const P4ImplPxPyPzECnv_p1 momCnv
Definition JetCnv_p1.cxx:30
static const TrackLinkCnv_t trackCnv
ElementLinkCnv_p1< ElementLink< CaloClusterContainer > > ClusterLinkCnv_t
ElementLinkCnv_p1< ElementLink< Rec::TrackParticleContainer > > TrackLinkCnv_t
static const ClusterLinkCnv_t clusterCnv
ElementLinkVectorCnv_p1< ElementLinkVector< Trk::SegmentCollection > > segmentLinkCnv_t
static const segmentLinkCnv_t segmentCnv
static const caloEnergyLinkCnv_t caloEnergyCnv
ElementLinkCnv_p1< ElementLink< MuonCaloEnergyContainer > > caloEnergyLinkCnv_t
static const ParticleBaseCnv_p1 partBaseCnv
The ATLAS Muon object - see doxygen, physics workbookd and the Muon Combined Performance WG's pages f...
MuonParameters::Author author() const
return the primary author of this Muon - the algorithm that is most likely to reconstruct prompt muon...
void set_matchNumberDoF(int x)
set the chi2 parameters - number of degrees of freedom
void set_isAlsoFoundByCaloMuonId(const bool isAlsoSeenByCaloMuonId)
set is also seen by calo muon Id reconstruction
void setMuonSpectrometerTrackLink(const ElementLink< Rec::TrackParticleContainer > &l)
void set_parameter(MuonParameters::ParamDef index, double value, bool overwrite=false)
set a parameter in the MuonParamDefs.h
Definition Muon.cxx:888
void setCaloEnergyLink(const ElementLink< MuonCaloEnergyContainer > &l)
void set_caloMuonAlsoFoundByMuonReco(const unsigned short isAlsoFoundByMuonReco)
set if this calo muon is also reconstructed by one of the standard muon recosntruction algorithms tha...
void set_isCorrected(bool corrected)
is this Muon corrected in AOD-to-AOD correction or not?
void set_isAlsoFoundByLowPt(const bool isAlsoSeenByLowPt)
set is also seen by low Pt reconstruction
bool add_author(MuonParameters::Author author)
the add_author method returns a bool:
Definition Muon.cxx:368
void set_numberOfAssociatedPhiDigits(int nMDT, int nCSC, int nRPC, int nTGC)
Set the LowPt - Associated Phi Digits.
Definition Muon.cxx:848
void setInnerExtrapTrackLink(const ElementLink< Rec::TrackParticleContainer > &l)
void setClusterLink(const ElementLink< CaloClusterContainer > &l)
void set_allAuthors(const uint16_t allAuthors)
set all the authors of this Muon the authors are 16-bit word, 1-bit reserved for each muon Algorithm ...
void set_numberOfAssociatedEtaDigits(int nMDT, int nCSC, int nRPC, int nTGC)
Set the LowPt stuff.
Definition Muon.cxx:840
void setMuonExtrapTrackLink(const ElementLink< Rec::TrackParticleContainer > &l, bool isValid)
void set_author(MuonParameters::Author author)
set the primary Author : the primary author is the algorithm that first created this Muon
void setCombinedTrackLink(const ElementLink< Rec::TrackParticleContainer > &l, bool isValid)
void setMuonSegmentLink(const ElementLinkVector< Trk::SegmentCollection > &l)
void setInDetTrackLink(const ElementLink< Rec::TrackParticleContainer > &l)
void set_matchChi2(float x)
set the chi2 parameters - matchChi2
ElementLinkVector implementation for standalone ROOT.
virtual void transToPers(const Analysis::Muon *transObj, Muon_p3 *persObj, MsgStream &msg) const override
Method creating the persistent representation Muon_p1 from its transient representation Analysis::Muo...
virtual void persToTrans(const Muon_p3 *persObj, Analysis::Muon *transObj, MsgStream &msg) const override
Method creating the transient representation of Analysis::Muon from its persistent representation Muo...
ParticleBase_p1 m_particleBase
the ParticleBase part
Definition Muon_p3.h:65
unsigned short m_caloMuonAlsoFoundByMuonReco
Definition Muon_p3.h:122
bool m_isCorrected
Definition Muon_p3.h:124
bool m_bestMatch
Definition Muon_p3.h:113
P4IPtCotThPhiM_p1 m_momentum
the 4-mom part
Definition Muon_p3.h:62
std::vector< int > m_associatedEtaDigits
Low Pt muon stuff.
Definition Muon_p3.h:85
std::vector< int > m_associatedPhiDigits
Definition Muon_p3.h:86
ElementLinkInt_p1 m_muonSpectrometerTrackParticle
link to associated TrackParticle (Muon Spectrometer)
Definition Muon_p3.h:96
ElementLinkInt_p1 m_inDetTrackParticle
link to associated TrackParticle (Inner Detector)
Definition Muon_p3.h:90
double m_matchChi2
Chi2 of the track matching.
Definition Muon_p3.h:82
ElementLinkIntVector_p1 m_muonSegments
link to the Trk::Segment
Definition Muon_p3.h:93
bool m_isAlsoFoundByLowPt
Definition Muon_p3.h:116
ElementLinkInt_p1 m_cluster
link to CaloCluster
Definition Muon_p3.h:108
std::vector< float > m_parameters
muon parameters
Definition Muon_p3.h:111
bool m_isAlsoFoundByCaloMuonId
Definition Muon_p3.h:117
bool m_hasCombinedMuonTrackParticle
Definition Muon_p3.h:76
int m_matchNumberDoF
Definition Muon_p3.h:114
unsigned int m_author
author
Definition Muon_p3.h:70
ElementLinkInt_p1 m_innerExtrapolatedTrackParticle
link to associated TrackParticle (Inner extrapolated)
Definition Muon_p3.h:102
ElementLinkInt_p1 m_caloEnergyLoss
energy loss in calorimeter
Definition Muon_p3.h:120
bool m_hasMuonExtrapolatedTrackParticle
Definition Muon_p3.h:75
ElementLinkInt_p1 m_muonExtrapolatedTrackParticle
link to associated TrackParticle (Muon extrapolated)
Definition Muon_p3.h:99
ElementLinkInt_p1 m_combinedMuonTrackParticle
links to associated TrackParticle (Combined muon)
Definition Muon_p3.h:105
const momentum_type & momentumBase() const
access to underlying base type (I4Momentum-like)
const particle_type & particleBase() const
access to underlying base type (IParticle-like)
@ innAngle
common MuGirl and MuTag parameters
@ t0
MuGirl parameter.
@ segmentDeltaEta
MuTag parameters.
@ etcone10
isolation enums - common parameters
Author
do not change the order of these enums.
MsgStream & msg
Definition testRead.cxx:32