ATLAS Offline Software
Loading...
Searching...
No Matches
MuonCnv_p4.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_p4.cxx
8// Implementation file for class MuonCnv_p4
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_p4.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[ 4] );
115 trans->set_parameter(MuonParameters::nucone20, params[ 5] );
116 trans->set_parameter(MuonParameters::nucone30, params[ 6] );
117 trans->set_parameter(MuonParameters::nucone40, params[ 7] );
118
119 trans->set_parameter(MuonParameters::ptcone10, params[ 8] );
120 trans->set_parameter(MuonParameters::ptcone20, params[ 9] );
121 trans->set_parameter(MuonParameters::ptcone30, params[10] );
122 trans->set_parameter(MuonParameters::ptcone40, params[11] );
123
127 trans->set_parameter(MuonParameters::annBarrel, params[15] );
128 trans->set_parameter(MuonParameters::annEndCap, params[16] );
129 trans->set_parameter(MuonParameters::innAngle, params[17] );
130 trans->set_parameter(MuonParameters::midAngle, params[18] );
131
132 trans->set_parameter(MuonParameters::t0, params[19] );
133 trans->set_parameter(MuonParameters::beta, params[20] );
134
135 // author
136 trans->set_author (static_cast<MuonParameters::Author>(pers->m_author));
137
138 // chi2 of the track matching
139 trans->set_matchChi2 (pers->m_matchChi2);
140
141 // Low Pt muon stuff
144
145 trans->set_bestMatch (pers->m_bestMatch);
147
148 // this muon is also found by the lowPT reconstruction algorithm
150
151 // this muon is also found by the Calo Muon ID reconstruction algorithm
153
156
157 trans->set_isCorrected (pers->m_isCorrected);
158
159 trans->set_allAuthors (pers->m_allAuthors);
160// msg << MSG::DEBUG << "Loaded Muon from persistent state [OK]"
161// << endmsg;
162
163 return;
164}
165
167 Muon_p4* pers,
168 MsgStream& msg ) const
169{
170// msg << MSG::DEBUG << "Creating persistent state of Muon..."
171// << endmsg;
172 msg << MSG::ERROR << "Analysis::Muon at " << trans << " Persistent Muon_p4 at " << pers << " Cannot write to Muon_p4" << endmsg;
173 throw std::runtime_error("Writing to Muon_p4 is not supported - MuonCnv_p4::transToPers(...)");
174 return;
175}
#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...
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
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 persToTrans(const Muon_p4 *persObj, Analysis::Muon *transObj, MsgStream &msg) const override
Method creating the transient representation of Analysis::Muon from its persistent representation Muo...
virtual void transToPers(const Analysis::Muon *transObj, Muon_p4 *persObj, MsgStream &msg) const override
Method creating the persistent representation Muon_p1 from its transient representation Analysis::Muo...
ElementLinkInt_p1 m_cluster
link to CaloCluster
Definition Muon_p4.h:112
ElementLinkInt_p1 m_muonExtrapolatedTrackParticle
link to associated TrackParticle (Muon extrapolated)
Definition Muon_p4.h:103
bool m_hasMuonExtrapolatedTrackParticle
Definition Muon_p4.h:78
ElementLinkInt_p1 m_innerExtrapolatedTrackParticle
link to associated TrackParticle (Inner extrapolated)
Definition Muon_p4.h:106
double m_matchChi2
Chi2 of the track matching.
Definition Muon_p4.h:86
ParticleBase_p1 m_particleBase
the ParticleBase part
Definition Muon_p4.h:68
unsigned short m_caloMuonAlsoFoundByMuonReco
Definition Muon_p4.h:126
ElementLinkInt_p1 m_inDetTrackParticle
link to associated TrackParticle (Inner Detector)
Definition Muon_p4.h:94
ElementLinkInt_p1 m_caloEnergyLoss
energy loss in calorimeter
Definition Muon_p4.h:124
std::vector< float > m_parameters
muon parameters
Definition Muon_p4.h:115
uint16_t m_allAuthors
Definition Muon_p4.h:130
bool m_isAlsoFoundByLowPt
Definition Muon_p4.h:120
ElementLinkInt_p1 m_combinedMuonTrackParticle
links to associated TrackParticle (Combined muon)
Definition Muon_p4.h:109
bool m_bestMatch
Definition Muon_p4.h:117
ElementLinkIntVector_p1 m_muonSegments
link to the Trk::Segment
Definition Muon_p4.h:97
int m_matchNumberDoF
Definition Muon_p4.h:118
bool m_isCorrected
Definition Muon_p4.h:128
bool m_hasCombinedMuonTrackParticle
Definition Muon_p4.h:80
bool m_isAlsoFoundByCaloMuonId
Definition Muon_p4.h:121
std::vector< int > m_associatedPhiDigits
Definition Muon_p4.h:90
P4IPtCotThPhiM_p1 m_momentum
the 4-mom part
Definition Muon_p4.h:65
unsigned int m_author
author
Definition Muon_p4.h:73
ElementLinkInt_p1 m_muonSpectrometerTrackParticle
link to associated TrackParticle (Muon Spectrometer)
Definition Muon_p4.h:100
std::vector< int > m_associatedEtaDigits
Low Pt muon stuff.
Definition Muon_p4.h:89
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