ATLAS Offline Software
Loading...
Searching...
No Matches
FourMomFillerTool.h
Go to the documentation of this file.
1// This file's extension implies that it's C, but it's really -*- C++ -*-.
2
3/*
4 Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
5*/
6
13
14#ifndef EVENTCOMMOND3PDMAKER_FOURMOMFILLERTOOL_H
15#define EVENTCOMMOND3PDMAKER_FOURMOMFILLERTOOL_H
16
17
19#include "xAODBase/IParticle.h"
21class I4Momentum;
22class TLorentzVector;
23namespace CLHEP {
24 class HepLorentzVector;
25}
26
27
28namespace D3PD {
29
30
52 : public BlockFillerTool<Types<INavigable4Momentum,
53 I4Momentum,
54 CLHEP::HepLorentzVector,
55 xAOD::IParticle> >
56{
57public:
60 CLHEP::HepLorentzVector,
62
69 FourMomFillerTool (const std::string& type,
70 const std::string& name,
71 const IInterface* parent);
72
73
75 virtual StatusCode book();
76
77
82 virtual StatusCode fill (const INavigable4Momentum& p);
83
84
89 virtual StatusCode fill (const I4Momentum& p);
90
91
96 virtual StatusCode fill (const CLHEP::HepLorentzVector& p);
97
98
103 virtual StatusCode fill (const xAOD::IParticle& p);
104
105
110 virtual StatusCode fill (const TLorentzVector& p);
111
112
113private:
115 bool m_do_E;
116
118 bool m_do_p;
119
122
125
127 bool m_do_m;
128
131
134
137
140
141
143 float* m_E;
144
146 float* m_p;
147
149 float* m_Et;
150
152 float* m_pt;
153
155 float* m_m;
156
158 float* m_y;
159
161 float* m_tanth;
162
164 float* m_eta;
165
167 float* m_phi;
168
170 float* m_px;
171
173 float* m_py;
174
176 float* m_pz;
177};
178
179
180} // namespace D3PD
181
182
183#endif // not EVENTCOMMOND3PDMAKER_FOURMOMFILLERTOOL_H
Type-safe wrapper for block filler tools.
Type-safe wrapper for block filler tools.
float * m_pt
Variable: Transverse momentum.
float * m_py
Variable: y-component of momentum.
virtual StatusCode fill(const INavigable4Momentum &p)
Fill one block — type-safe version.
bool m_do_rapidity
Property: Should we fill rapidity?
bool m_do_Et
Property: Should we fill Et?
float * m_pz
Variable: z-component of momentum.
float * m_tanth
Variable: Tangent of polar angle.
bool m_do_m
Property: Should we fill m?
virtual StatusCode book()
Book variables for this block.
bool m_do_p
Property: Should we fill p?
FourMomFillerTool(const std::string &type, const std::string &name, const IInterface *parent)
Standard Gaudi tool constructor.
float * m_m
Variable: Mass.
float * m_y
Variable: Rapidity.
bool m_do_E
Property: Should we fill E?
float * m_E
Variable: Energy.
float * m_p
Variable: Momentum.
bool m_do_etaphi
Property: Should we fill eta/phi?
float * m_phi
Variable: Azimuth.
float * m_Et
Variable: Transverse energy (E*sin(theta)).
bool m_do_pt
Property: Should we fill pt?
BlockFillerTool< Types< INavigable4Momentum, I4Momentum, CLHEP::HepLorentzVector, xAOD::IParticle > > Base
bool m_do_tanth
Property: Should we fill tan(theta)?
float * m_eta
Variable: Pseudorapidity.
float * m_px
Variable: x-component of momentum.
bool m_do_rect
Property: Should we fill px/py/pz?
I4Momentum is an abstract base class providing 4-momentum behavior.
Definition I4Momentum.h:31
Class providing the definition of the 4-vector interface.
Block filler tool for noisy FEB information.
std::tuple< WrapType< TYPES >... > Types
A simple tuple of multiple types.