ATLAS Offline Software
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 
14 #ifndef EVENTCOMMOND3PDMAKER_FOURMOMFILLERTOOL_H
15 #define EVENTCOMMOND3PDMAKER_FOURMOMFILLERTOOL_H
16 
17 
19 #include "xAODBase/IParticle.h"
21 class I4Momentum;
22 class TLorentzVector;
23 namespace CLHEP {
24  class HepLorentzVector;
25 }
26 
27 
28 namespace D3PD {
29 
30 
52  : public BlockFillerTool<Types<INavigable4Momentum,
53  I4Momentum,
54  CLHEP::HepLorentzVector,
55  xAOD::IParticle> >
56 {
57 public:
59  I4Momentum,
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 
113 private:
115  bool m_do_E;
116 
118  bool m_do_p;
119 
121  bool m_do_Et;
122 
124  bool m_do_pt;
125 
127  bool m_do_m;
128 
131 
134 
137 
139  bool m_do_rect;
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
I4Momentum
Definition: I4Momentum.h:31
D3PD::FourMomFillerTool::m_pt
float * m_pt
Variable: Transverse momentum.
Definition: FourMomFillerTool.h:152
IParticle.h
D3PD::FourMomFillerTool::m_phi
float * m_phi
Variable: Azimuth.
Definition: FourMomFillerTool.h:167
D3PD::FourMomFillerTool::fill
virtual StatusCode fill(const INavigable4Momentum &p)
Fill one block — type-safe version.
Definition: FourMomFillerTool.cxx:127
D3PD::FourMomFillerTool::m_do_Et
bool m_do_Et
Property: Should we fill Et?
Definition: FourMomFillerTool.h:121
xAOD::IParticle
Class providing the definition of the 4-vector interface.
Definition: Event/xAOD/xAODBase/xAODBase/IParticle.h:41
D3PD::Types
std::tuple< WrapType< TYPES >... > Types
A simple tuple of multiple types.
Definition: PhysicsAnalysis/D3PDMaker/D3PDMakerUtils/D3PDMakerUtils/Types.h:61
D3PD::FourMomFillerTool::m_do_rect
bool m_do_rect
Property: Should we fill px/py/pz?
Definition: FourMomFillerTool.h:139
D3PD::FourMomFillerTool::m_do_tanth
bool m_do_tanth
Property: Should we fill tan(theta)?
Definition: FourMomFillerTool.h:133
BlockFillerTool.h
Type-safe wrapper for block filler tools.
D3PD::FourMomFillerTool::m_px
float * m_px
Variable: x-component of momentum.
Definition: FourMomFillerTool.h:170
D3PD
Block filler tool for noisy FEB information.
Definition: CaloCellDetailsFillerTool.cxx:29
D3PD::FourMomFillerTool::m_do_p
bool m_do_p
Property: Should we fill p?
Definition: FourMomFillerTool.h:118
python.utils.AtlRunQueryDQUtils.p
p
Definition: AtlRunQueryDQUtils.py:210
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
D3PD::FourMomFillerTool::m_do_rapidity
bool m_do_rapidity
Property: Should we fill rapidity?
Definition: FourMomFillerTool.h:130
CLHEP
STD'S.
Definition: IAtRndmGenSvc.h:19
test_pyathena.parent
parent
Definition: test_pyathena.py:15
D3PD::BlockFillerTool
Type-safe wrapper for block filler tools.
Definition: BlockFillerTool.h:68
D3PD::FourMomFillerTool::m_do_etaphi
bool m_do_etaphi
Property: Should we fill eta/phi?
Definition: FourMomFillerTool.h:136
D3PD::FourMomFillerTool::m_E
float * m_E
Variable: Energy.
Definition: FourMomFillerTool.h:143
D3PD::FourMomFillerTool::m_eta
float * m_eta
Variable: Pseudorapidity.
Definition: FourMomFillerTool.h:164
D3PD::FourMomFillerTool::m_py
float * m_py
Variable: y-component of momentum.
Definition: FourMomFillerTool.h:173
D3PD::FourMomFillerTool::m_do_pt
bool m_do_pt
Property: Should we fill pt?
Definition: FourMomFillerTool.h:124
D3PD::FourMomFillerTool::m_do_m
bool m_do_m
Property: Should we fill m?
Definition: FourMomFillerTool.h:127
D3PD::FourMomFillerTool::m_y
float * m_y
Variable: Rapidity.
Definition: FourMomFillerTool.h:158
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:221
D3PD::FourMomFillerTool::m_tanth
float * m_tanth
Variable: Tangent of polar angle.
Definition: FourMomFillerTool.h:161
D3PD::FourMomFillerTool
Block filler tool for a four-momentum.
Definition: FourMomFillerTool.h:56
D3PD::FourMomFillerTool::book
virtual StatusCode book()
Book variables for this block.
Definition: FourMomFillerTool.cxx:63
D3PD::FourMomFillerTool::Base
BlockFillerTool< Types< INavigable4Momentum, I4Momentum, CLHEP::HepLorentzVector, xAOD::IParticle > > Base
Definition: FourMomFillerTool.h:61
D3PD::FourMomFillerTool::m_Et
float * m_Et
Variable: Transverse energy (E*sin(theta)).
Definition: FourMomFillerTool.h:149
D3PD::FourMomFillerTool::FourMomFillerTool
FourMomFillerTool(const std::string &type, const std::string &name, const IInterface *parent)
Standard Gaudi tool constructor.
Definition: FourMomFillerTool.cxx:32
D3PD::FourMomFillerTool::m_p
float * m_p
Variable: Momentum.
Definition: FourMomFillerTool.h:146
D3PD::FourMomFillerTool::m_m
float * m_m
Variable: Mass.
Definition: FourMomFillerTool.h:155
INavigable4Momentum
Definition: INavigable4Momentum.h:21
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
D3PD::FourMomFillerTool::m_pz
float * m_pz
Variable: z-component of momentum.
Definition: FourMomFillerTool.h:176
D3PD::FourMomFillerTool::m_do_E
bool m_do_E
Property: Should we fill E?
Definition: FourMomFillerTool.h:115