ATLAS Offline Software
Loading...
Searching...
No Matches
TauCommonExtraDetailsCnv_p1.cxx
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
3*/
4
17
21
28
33
35 const TauCommonExtraDetails_p1 *pers,
37 MsgStream &msg )
38{
39 trans->setSumPtLooseTrk (pers->m_sumPtLooseTrk);
40 trans->setSumPtTrk (pers->m_sumPtTrk);
46 m_cellCnv.resetForCnv( pers->m_linkNames );
47 const unsigned int tracks = pers->m_tracks;
48 if ( tracks == 0 ) return;
49 const unsigned short int samplings =
50 pers->m_closestPhiTrkCell.size()/tracks;
51 trans->allocTracksAndSamplings( tracks, samplings );
52 int ind = 0;
53 for( unsigned short int i = 0; i < tracks; ++i ) {
54 for( unsigned short int j = 0; j < samplings; ++j ) {
55 m_cellCnv.persToTrans(
56 pers->m_closestEtaTrkVertCell[ind],
57 trans->closestEtaTrkVertCell()[i][j], msg );
58 m_cellCnv.persToTrans(
59 pers->m_closestEtaTrkCell[ind],
60 trans->closestEtaTrkCell()[i][j], msg );
61 m_cellCnv.persToTrans(
62 pers->m_closestPhiTrkVertCell[ind],
63 trans->closestPhiTrkVertCell()[i][j], msg );
64 m_cellCnv.persToTrans(
65 pers->m_closestPhiTrkCell[ind],
66 trans->closestPhiTrkCell()[i][j], msg );
67 trans->etaTrkCaloSamp()[i][j] =
68 pers->m_etaTrkCaloSamp[ind];
69 trans->phiTrkCaloSamp()[i][j] =
70 pers->m_phiTrkCaloSamp[ind];
71
72 ++ind;
73 }
74 }
75 const unsigned int looseTracks = pers->m_looseTracks;
76 if ( looseTracks == 0 ) return;
77 const unsigned short int looseSamplings =
78 pers->m_etaLooseTrkCaloSamp.size()/tracks;
79 ind = 0;
80 for( unsigned short int i = 0; i < looseTracks; ++i ) {
81 for( unsigned short int j = 0; j < looseSamplings; ++j ) {
82 trans->etaLooseTrkCaloSamp()[i][j] =
83 pers->m_etaLooseTrkCaloSamp[ind];
84 trans->phiLooseTrkCaloSamp()[i][j] =
85 pers->m_phiLooseTrkCaloSamp[ind];
86 ++ind;
87
88
89 }
90 }
91
92}
93
97 MsgStream &msg )
98{
99 pers->m_sumPtLooseTrk=trans->sumPtLooseTrk();
100 pers->m_sumPtTrk=trans->sumPtTrk();
106 m_cellCnv.resetForCnv( pers->m_linkNames );
107 const unsigned int tracks = trans->closestEtaTrkVertCell().size();
108 const unsigned int looseTracks = trans->etaLooseTrkCaloSamp().size();
109 pers->m_tracks = tracks;
110 pers->m_looseTracks = looseTracks;
111 if ( tracks == 0 ) return;
112 const unsigned int colsize = trans->closestEtaTrkVertCell()[0].size();
113 const unsigned int size = tracks*colsize;
114 const unsigned int loosesize = looseTracks*colsize;
115 pers->m_closestEtaTrkVertCell.resize( size );
116 pers->m_closestEtaTrkCell.resize( size );
117 pers->m_closestPhiTrkVertCell.resize( size );
118 pers->m_closestPhiTrkCell.resize( size );
119 pers->m_etaTrkCaloSamp.resize( size );
120 pers->m_phiTrkCaloSamp.resize( size );
121 pers->m_etaLooseTrkCaloSamp.resize( loosesize );
122 pers->m_phiLooseTrkCaloSamp.resize( loosesize );
123
124 int ind = 0;
125 for( unsigned short int i = 0; i < tracks; ++i ) {
126 for( unsigned short int j = 0; j < colsize; ++j ) {
127 m_cellCnv.transToPers(
128 trans->closestEtaTrkVertCell()[i][j],
129 pers->m_closestEtaTrkVertCell[ind], msg );
130 m_cellCnv.transToPers(
131 trans->closestEtaTrkCell()[i][j],
132 pers->m_closestEtaTrkCell[ind], msg );
133 m_cellCnv.transToPers(
134 trans->closestPhiTrkVertCell()[i][j],
135 pers->m_closestPhiTrkVertCell[ind], msg );
136 m_cellCnv.transToPers(
137 trans->closestPhiTrkCell()[i][j],
138 pers->m_closestPhiTrkCell[ind], msg );
139 pers->m_etaTrkCaloSamp[ind] =
140 trans->etaTrkCaloSamp()[i][j];
141 pers->m_phiTrkCaloSamp[ind] =
142 trans->phiTrkCaloSamp()[i][j];
143 pers->m_etaLooseTrkCaloSamp[ind] =
144 trans->etaLooseTrkCaloSamp()[i][j];
145 pers->m_phiLooseTrkCaloSamp[ind] =
146 trans->phiLooseTrkCaloSamp()[i][j];
147
148 ++ind;
149 }
150 }
151
152
153 ind = 0;
154 for( unsigned short int i = 0; i < looseTracks; ++i ) {
155 for( unsigned short int j = 0; j < colsize; ++j ) {
156 pers->m_etaLooseTrkCaloSamp[ind] =
157 trans->etaLooseTrkCaloSamp()[i][j];
158 pers->m_phiLooseTrkCaloSamp[ind] =
159 trans->phiLooseTrkCaloSamp()[i][j];
160
161 ++ind;
162
163 }
164 }
165
166}
TPPolyCnvBase< TRANS_BASE, TRANS, PERS > T_AthenaPoolTPPolyCnvBase
Implementation of transient<->persistent converter for Analysis::TauCommonExtraDetails.
Declaration of extra details class for tau event.
Extra detail class containing information for track and calo seeded tau reconstruction algorithms.
void setSumPtLooseTrk(double pt)
Set sum of p_T for loose tracks.
const std::vector< std::vector< double > > & etaLooseTrkCaloSamp() const
Get eta vector.
const std::vector< std::vector< ElementLink< CaloCellContainer > > > & closestEtaTrkCell() const
Get closest eta vector.
const std::vector< std::vector< double > > & etaTrkCaloSamp() const
Get eta vector.
void setSeedCalo_nEMCell(int n)
Setumber of EM cells.
void setSeedCalo_stripEt(double et)
Set sum of ET in strip layer.
void setSeedCalo_EMCentFrac(double fraction)
Get EM Centrality Fraction.
double seedCalo_sumCellEnergy() const
Get energy sum.
double seedCalo_sumEMCellEnergy() const
Get EM energy sum.
const std::vector< std::vector< ElementLink< CaloCellContainer > > > & closestPhiTrkCell() const
Get closest phi vector.
void setSeedCalo_sumCellEnergy(double energy)
Set energy sum.
double sumPtTrk() const
Get sum of p_T for loose tracks.
void allocTracksAndSamplings(unsigned int tracks, unsigned int samplings)
Allocate data structures for given number of tracks and samplings.
const std::vector< std::vector< ElementLink< CaloCellContainer > > > & closestEtaTrkVertCell() const
Get closest eta vector.
const std::vector< std::vector< ElementLink< CaloCellContainer > > > & closestPhiTrkVertCell() const
Get closest phi vector.
void setSumPtTrk(double pt)
Set sum of p_T for loose tracks.
const std::vector< std::vector< double > > & phiLooseTrkCaloSamp() const
Get phi vector.
int seedCalo_nEMCell() const
Get number of EM cells.
void setSeedCalo_sumEMCellEnergy(double energy)
Set EM energy sum.
double seedCalo_EMCentFrac() const
Set EM Centrality Fraction.
double seedCalo_stripEt() const
Get sum of ET in strip layer.
const std::vector< std::vector< double > > & phiTrkCaloSamp() const
Get phi vector.
double sumPtLooseTrk() const
Get sum of p_T for loose tracks.
virtual void persToTrans(const TauCommonExtraDetails_p1 *pers, Analysis::TauCommonExtraDetails *trans, MsgStream &msg)
Creates persistent object from transient object.
ElementLinkCnv_p2< ElementLink< CaloCellContainer > > m_cellCnv
virtual void transToPers(const Analysis::TauCommonExtraDetails *trans, TauCommonExtraDetails_p1 *pers, MsgStream &msg)
Creates transient object from persistent object.
Persistent class for Analysis::TauCommonExtraDetails.
std::vector< float > m_phiTrkCaloSamp
Phi of extrapolation point in EM Calo.
float m_seedCalo_EMCentFrac
EM Centrality Fraction (ET(dr<0.1)/ET(dr<0.4) for EM calos only.
int m_seedCalo_nEMCell
Number of EM cells within dR < 0.4, with E > m_cellEthr.
std::vector< ElementLinkInt_p2 > m_closestPhiTrkVertCell
Closest cell to track position at vertex in phi.
float m_seedCalo_sumCellEnergy
Energy sum of all cells within dR < 0.4.
float m_sumPtTrk
Sum of p_T for tracks.
float m_sumPtLooseTrk
Sum of p_T for loose tracks.
std::vector< float > m_etaLooseTrkCaloSamp
Eta of extrapolation point in EM Calo.
std::vector< ElementLinkInt_p2 > m_closestEtaTrkVertCell
Closest cell to track position at vertex in eta.
ElementLinkContNames_p2 m_linkNames
Element link container name lookup table.
std::vector< float > m_etaTrkCaloSamp
Eta of extrapolation point in EM Calo.
std::vector< ElementLinkInt_p2 > m_closestEtaTrkCell
Closest cell to track position from extrapolation in eta.
std::vector< ElementLinkInt_p2 > m_closestPhiTrkCell
Closest cell to track position from extrapolation in phi.
std::vector< float > m_phiLooseTrkCaloSamp
Phi of extrapolation point in EM Calo.
float m_seedCalo_sumEMCellEnergy
Energy sum of all em cells within dR < 0.4 (Presampler + EM1 + EM2)
float m_seedCalo_stripEt
Uncalibrated sum of ET in the strip layer within dR < 0.4.
unsigned short int m_looseTracks
Element link container name lookup table.
unsigned short int m_tracks
Element link container name lookup table.
The namespace of all packages in PhysicsAnalysis/JetTagging.
MsgStream & msg
Definition testRead.cxx:32