ATLAS Offline Software
Loading...
Searching...
No Matches
Tracking
TrkValidation
TrkValEvent
TrkValEvent
TrackJet.h
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
3
*/
4
6
// TrackJet.h
7
// Header file for TrackJet helper class
9
// (c) ATLAS Detector software
11
12
#ifndef TRK_TRKVALEVENT_TRACKJET_H
13
#define TRK_TRKVALEVENT_TRACKJET_H
14
15
#include <vector>
16
#include "TrkEventPrimitives/GlobalMomentum.h"
17
#include "TrkParameters/Perigee.h"
18
#include "
TrkTrack/Track.h
"
19
20
namespace
Trk
{
21
30
31
class
TrackJet
32
{
33
34
public
:
36
TrackJet
():
m_tracks
(),
m_energy
(0.),
m_momentum
(0.0, 0.0, 0.0),
m_totalPt2
(0.),
m_totalMom2
(0.),
m_pDotJetAxis
(0.),
m_magP
(0.)
37
{
38
39
};
40
41
TrackJet
(
const
TrackJet
&
a
){
42
m_tracks
=
a
.m_tracks;
43
m_energy
=
a
.m_energy;
44
m_momentum
=
a
.m_momentum;
45
m_totalPt2
=
a
.m_totalPt2;
46
m_totalMom2
=
a
.m_totalMom2;
47
m_pDotJetAxis
=
a
.m_pDotJetAxis;
48
m_magP
=
a
.m_magP;
49
};
50
51
~TrackJet
(){};
// destructor
52
53
void
setEnergy
(
double
energy){
m_energy
= energy;}
54
55
double
getEnergy
(){
return
m_energy
;}
56
57
Trk::Track
*
getTrack
(
unsigned
int
i)
58
{
59
return
m_tracks
.at(i);
60
}
61
62
std::vector<Trk::Track* >
getTracks
(){
return
m_tracks
;}
63
64
int
getNumTracks
(){
return
m_tracks
.size();}
65
68
void
addTrack
(
Trk::Track
* trk){
69
m_tracks
.push_back(trk);
70
m_energy
=
m_energy
+
thisEnergy
(trk);
71
HepGeom::Vector3D<double> moment = trk->
perigeeParameters
()->
momentum
();
72
m_momentum
=
m_momentum
+ moment;
73
74
double
longMoment = fabs((trk->
perigeeParameters
()->
momentum
()).dot((
m_momentum
)/(
m_momentum
.mag())));
75
m_totalPt2
=
m_totalPt2
+
pow
(trk->
perigeeParameters
()->
momentum
().mag(), 2) -
pow
((longMoment), 2);
76
m_pDotJetAxis
=
m_pDotJetAxis
+ longMoment;
77
m_magP
=
m_magP
+ trk->
perigeeParameters
()->
momentum
().mag();
78
m_totalMom2
=
m_totalMom2
+
pow
((trk->
perigeeParameters
()->
momentum
().mag()), 2);
79
}
80
81
HepGeom::Vector3D<double>
getMomentum
(){
return
m_momentum
;}
82
83
double
getThrust
(){
return
m_pDotJetAxis
/
m_magP
;}
84
double
getSphericity
(){
return
m_totalPt2
/
m_totalMom2
;}
85
86
private
:
87
88
std::vector<Trk::Track* >
m_tracks
;
89
double
m_energy
;
90
HepGeom::Vector3D<double>
m_momentum
;
91
double
m_totalPt2
;
92
double
m_totalMom2
;
93
double
m_pDotJetAxis
;
94
double
m_magP
;
95
96
double
thisEnergy
(
const
Trk::Track
* i)
97
{
98
HepGeom::Vector3D<double> moment = i->perigeeParameters()->momentum();
99
return
sqrt(moment.dot(moment) +
ParticleConstants::chargedPionMassInMeV
*
ParticleConstants::chargedPionMassInMeV
);
100
}
101
};
102
103
}
// end of namespace
104
105
#endif
// TRK_TRKVALEVENT_TRACKJET_H
a
static Double_t a
Definition
LArPhysWaveHECTool.cxx:38
Track.h
pow
constexpr int pow(int base, int exp) noexcept
Definition
ap_fixedTest.cxx:15
Trk::ParametersBase::momentum
const Amg::Vector3D & momentum() const
Access method for the momentum.
Trk::TrackJet::getMomentum
HepGeom::Vector3D< double > getMomentum()
Definition
TrackJet.h:81
Trk::TrackJet::getThrust
double getThrust()
Definition
TrackJet.h:83
Trk::TrackJet::setEnergy
void setEnergy(double energy)
Definition
TrackJet.h:53
Trk::TrackJet::getSphericity
double getSphericity()
Definition
TrackJet.h:84
Trk::TrackJet::TrackJet
TrackJet()
default constructor
Definition
TrackJet.h:36
Trk::TrackJet::m_totalMom2
double m_totalMom2
Definition
TrackJet.h:92
Trk::TrackJet::addTrack
void addTrack(Trk::Track *trk)
the main method used during build-up clustering: adds track and re-calculated the jet quantities
Definition
TrackJet.h:68
Trk::TrackJet::m_magP
double m_magP
Definition
TrackJet.h:94
Trk::TrackJet::m_momentum
HepGeom::Vector3D< double > m_momentum
Definition
TrackJet.h:90
Trk::TrackJet::getTrack
Trk::Track * getTrack(unsigned int i)
Definition
TrackJet.h:57
Trk::TrackJet::m_energy
double m_energy
Definition
TrackJet.h:89
Trk::TrackJet::m_totalPt2
double m_totalPt2
Definition
TrackJet.h:91
Trk::TrackJet::getEnergy
double getEnergy()
Definition
TrackJet.h:55
Trk::TrackJet::getNumTracks
int getNumTracks()
Definition
TrackJet.h:64
Trk::TrackJet::thisEnergy
double thisEnergy(const Trk::Track *i)
Definition
TrackJet.h:96
Trk::TrackJet::TrackJet
TrackJet(const TrackJet &a)
copy constructor
Definition
TrackJet.h:41
Trk::TrackJet::m_pDotJetAxis
double m_pDotJetAxis
Definition
TrackJet.h:93
Trk::TrackJet::m_tracks
std::vector< Trk::Track * > m_tracks
Definition
TrackJet.h:88
Trk::TrackJet::getTracks
std::vector< Trk::Track * > getTracks()
Definition
TrackJet.h:62
Trk::TrackJet::~TrackJet
~TrackJet()
destructor
Definition
TrackJet.h:51
Trk::Track
The ATLAS Track class.
Definition
Tracking/TrkEvent/TrkTrack/TrkTrack/Track.h:73
Trk::Track::perigeeParameters
const Perigee * perigeeParameters() const
return Perigee.
Definition
Tracking/TrkEvent/TrkTrack/src/Track.cxx:163
ParticleConstants::PDG2011::chargedPionMassInMeV
constexpr double chargedPionMassInMeV
the mass of the charged pion (in MeV)
Definition
ParticleConstants.h:41
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition
FakeTrackBuilder.h:9
Generated on
for ATLAS Offline Software by
1.14.0