ATLAS Offline Software
PhysicsAnalysis/MuonID/MuonIDAnalysis/MuonMomentumCorrections/src/TrackInfo.cxx
Go to the documentation of this file.
1 #define __TrackInfo_cxx__
2 #include <utility>
3 
4 #include "TrackInfo.h"
5 namespace MMCTest {
6  TrackInfo::TrackInfo(std::string type, std::vector<std::string> systs)
7  : m_Type (std::move (type)),
8  m_Systs (std::move (systs))
9  {
10  Reset();
11  }
12 
14  m_Pt = -999.;
15  for (const auto& s : m_Systs) { m_CalibPt[s] = -999.; }
16  m_Eta = -999.;
17  m_Phi = -999.;
18  m_QoverP = -999.;
19  m_Chi2 = -999.;
20  m_Charge = -999;
21  m_NDoF = 0;
22  m_TrackPars.clear();
23  for (unsigned int i = 0; i < 5; i++) m_TrackPars.push_back(0.);
24  m_TrackCovMatrix.clear();
25  for (unsigned int i = 0; i < 5; i++)
26  for (unsigned int j = 0; j < 5; j++) m_TrackCovMatrix.push_back(0.);
27  }
28 
29  void TrackInfo::Register(TTree* t) {
30  t->Branch(("Muon_" + m_Type + "_Pt").c_str(), &m_Pt);
31  t->Branch(("Muon_" + m_Type + "_Eta").c_str(), &m_Eta);
32  t->Branch(("Muon_" + m_Type + "_Phi").c_str(), &m_Phi);
33  t->Branch(("Muon_" + m_Type + "_Charge").c_str(), &m_Charge);
34  t->Branch(("Muon_" + m_Type + "_QoverP").c_str(), &m_QoverP);
35  t->Branch(("Muon_" + m_Type + "_Chi2").c_str(), &m_Chi2);
36  t->Branch(("Muon_" + m_Type + "_NDoF").c_str(), &m_NDoF);
37  t->Branch(("Muon_" + m_Type + "_TrackPars").c_str(), &m_TrackPars);
38  t->Branch(("Muon_" + m_Type + "_TrackCovMatrix").c_str(), &m_TrackCovMatrix);
39  for (const auto& s : m_Systs) { t->Branch(("Muon_" + m_Type + "_" + s + "CalibPt").c_str(), &m_CalibPt[s]); }
40  }
41 
44  m_Eta = tp->eta();
45  m_Phi = tp->phi();
46  m_Charge = (int)tp->charge();
48  m_Chi2 = tp->chiSquared();
49  m_NDoF = (int)tp->numberDoF();
50  AmgVector(5) pars = tp->definingParameters();
51  AmgSymMatrix(5) cov = tp->definingParametersCovMatrix();
52 
53  m_TrackPars.clear();
54  for (unsigned int i = 0; i < 5; i++) m_TrackPars.push_back(pars[i]);
55  m_TrackCovMatrix.clear();
56 
57  for (unsigned int i = 0; i < 5; i++)
58  for (unsigned int j = 0; j < 5; j++) m_TrackCovMatrix.push_back(cov(i, j));
59  }
60 
61  TLorentzVector TrackInfo::GetFourMomentum(bool calib) {
62  TLorentzVector result;
63  if (calib)
64  result.SetPtEtaPhiM(m_CalibPt[""], m_Eta, m_Phi, 0.105658);
65  else
66  result.SetPtEtaPhiM(m_Pt, m_Eta, m_Phi, 0.105658);
67  return result;
68  }
69 } // namespace MMCTest
MMCTest::TrackInfo::m_Phi
float m_Phi
Definition: PhysicsAnalysis/MuonID/MuonIDAnalysis/MuonMomentumCorrections/src/TrackInfo.h:22
make_hlt_rep.pars
pars
Definition: make_hlt_rep.py:90
MMCTest
Definition: PhysicsAnalysis/MuonID/MuonIDAnalysis/MuonMomentumCorrections/src/TrackInfo.cxx:5
MMCTest::TrackInfo::m_Systs
std::vector< std::string > m_Systs
Definition: PhysicsAnalysis/MuonID/MuonIDAnalysis/MuonMomentumCorrections/src/TrackInfo.h:21
python.SystemOfUnits.s
int s
Definition: SystemOfUnits.py:131
get_generator_info.result
result
Definition: get_generator_info.py:21
MMCTest::TrackInfo::m_Pt
float m_Pt
Definition: PhysicsAnalysis/MuonID/MuonIDAnalysis/MuonMomentumCorrections/src/TrackInfo.h:22
CaloCellPos2Ntuple.int
int
Definition: CaloCellPos2Ntuple.py:24
MMCTest::TrackInfo::m_TrackCovMatrix
std::vector< float > m_TrackCovMatrix
Definition: PhysicsAnalysis/MuonID/MuonIDAnalysis/MuonMomentumCorrections/src/TrackInfo.h:26
plotBeamSpotVxVal.cov
cov
Definition: plotBeamSpotVxVal.py:201
MMCTest::TrackInfo::GetFourMomentum
TLorentzVector GetFourMomentum(bool calib=false)
Definition: PhysicsAnalysis/MuonID/MuonIDAnalysis/MuonMomentumCorrections/src/TrackInfo.cxx:61
MMCTest::TrackInfo::m_QoverP
float m_QoverP
Definition: PhysicsAnalysis/MuonID/MuonIDAnalysis/MuonMomentumCorrections/src/TrackInfo.h:22
ParticleTest.tp
tp
Definition: ParticleTest.py:25
MMCTest::TrackInfo::Reset
void Reset()
Definition: PhysicsAnalysis/MuonID/MuonIDAnalysis/MuonMomentumCorrections/src/TrackInfo.cxx:13
MMCTest::TrackInfo::m_CalibPt
std::map< std::string, float > m_CalibPt
Definition: PhysicsAnalysis/MuonID/MuonIDAnalysis/MuonMomentumCorrections/src/TrackInfo.h:23
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
AmgSymMatrix
#define AmgSymMatrix(dim)
Definition: EventPrimitives.h:52
MMCTest::TrackInfo::Fill
void Fill(const xAOD::TrackParticle *tp)
Definition: PhysicsAnalysis/MuonID/MuonIDAnalysis/MuonMomentumCorrections/src/TrackInfo.cxx:42
lumiFormat.i
int i
Definition: lumiFormat.py:92
AmgVector
AmgVector(4) T2BSTrackFilterTool
Definition: T2BSTrackFilterTool.cxx:114
MMCTest::TrackInfo::m_Chi2
float m_Chi2
Definition: PhysicsAnalysis/MuonID/MuonIDAnalysis/MuonMomentumCorrections/src/TrackInfo.h:22
python.SystemOfUnits.perThousand
float perThousand
Definition: SystemOfUnits.py:278
TrackInfo.h
PlotSFuncertainty.calib
calib
Definition: PlotSFuncertainty.py:110
MMCTest::TrackInfo::m_Charge
int m_Charge
Definition: PhysicsAnalysis/MuonID/MuonIDAnalysis/MuonMomentumCorrections/src/TrackInfo.h:24
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
MMCTest::TrackInfo::m_NDoF
int m_NDoF
Definition: PhysicsAnalysis/MuonID/MuonIDAnalysis/MuonMomentumCorrections/src/TrackInfo.h:24
MMCTest::TrackInfo::m_Eta
float m_Eta
Definition: PhysicsAnalysis/MuonID/MuonIDAnalysis/MuonMomentumCorrections/src/TrackInfo.h:22
xAOD::TrackParticle_v1
Class describing a TrackParticle.
Definition: TrackParticle_v1.h:43
MMCTest::TrackInfo::TrackInfo
TrackInfo(std::string type, std::vector< std::string > systs)
Definition: PhysicsAnalysis/MuonID/MuonIDAnalysis/MuonMomentumCorrections/src/TrackInfo.cxx:6
MMCTest::TrackInfo::m_Type
std::string m_Type
Definition: PhysicsAnalysis/MuonID/MuonIDAnalysis/MuonMomentumCorrections/src/TrackInfo.h:20
MMCTest::TrackInfo::m_TrackPars
std::vector< float > m_TrackPars
Definition: PhysicsAnalysis/MuonID/MuonIDAnalysis/MuonMomentumCorrections/src/TrackInfo.h:25
MMCTest::TrackInfo::Register
void Register(TTree *t)
Definition: PhysicsAnalysis/MuonID/MuonIDAnalysis/MuonMomentumCorrections/src/TrackInfo.cxx:29