ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
PhysicsAnalysis
D3PDMaker
MuonD3PDMaker
src
TrackRecordFillerTool.cxx
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
// Gaudi/Athena include(s):
6
#include "
AthenaKernel/errorcheck.h
"
7
#include "CLHEP/Units/SystemOfUnits.h"
8
9
// Local include(s):
10
#include "
TrackRecordFillerTool.h
"
11
12
13
using
CLHEP::GeV;
14
15
16
namespace
D3PD
{
17
18
TrackRecordFillerTool::TrackRecordFillerTool
(
const
std::string&
type
,
19
const
std::string& name,
20
const
IInterface* parent )
21
:
BlockFillerTool
<
TrackRecord
>(
type
, name, parent ),
22
m_OnlyMuon
(false),
23
m_EnergyThreshold
(1.*
GeV
)
24
{
25
TrackRecordFillerTool::book
().ignore();
// Avoid coverity warnings.
26
}
27
28
StatusCode
TrackRecordFillerTool::book
() {
29
30
CHECK
(
addVariable
(
"barcode"
,
m_barcode
,
"particle bar code"
) );
31
CHECK
(
addVariable
(
"pdgId"
,
m_pdgid
,
"particle PDG id"
) );
32
CHECK
(
addVariable
(
"E"
,
m_energy
,
"particle energy"
) );
33
CHECK
(
addVariable
(
"pt"
,
m_pt
,
"particle transverse momentum"
) );
34
CHECK
(
addVariable
(
"eta"
,
m_eta
,
"particle pseudorapidity"
) );
35
CHECK
(
addVariable
(
"phi"
,
m_phi
,
"particle azimuthal angle"
) );
36
CHECK
(
addVariable
(
"pos_x"
,
m_posx
,
"particle position x coordinate"
) );
37
CHECK
(
addVariable
(
"pos_y"
,
m_posy
,
"particle position y coordinate"
) );
38
CHECK
(
addVariable
(
"pos_z"
,
m_posz
,
"particle position z coordinate"
) );
39
CHECK
(
addVariable
(
"time"
,
m_time
,
"particle time"
) );
40
return
StatusCode::SUCCESS;
41
}
42
43
StatusCode
TrackRecordFillerTool::fill
(
const
TrackRecord
& obj ) {
44
45
bool
pass(
true
);
46
if
(
m_OnlyMuon
&& abs( obj.GetPDGCode() ) != 13 ) pass =
false
;
47
if
( obj.GetEnergy() <
m_EnergyThreshold
) pass =
false
;
48
if
( pass ){
49
*
m_barcode
= obj.barcode();
// FIXME barcode-based
50
*
m_pdgid
= obj.GetPDGCode();
51
*
m_energy
= obj.GetEnergy();
52
*
m_pt
= obj.GetMomentum().rho();
53
*
m_eta
= obj.GetMomentum().eta();
54
*
m_phi
= obj.GetMomentum().phi();
55
*
m_posx
= obj.GetPosition().x();
56
*
m_posy
= obj.GetPosition().y();
57
*
m_posz
= obj.GetPosition().z();
58
*
m_time
= obj.GetTime();
59
}
60
return
StatusCode::SUCCESS;
61
}
62
63
64
}
// namespace D3PD
65
errorcheck.h
Helpers for checking error return status codes and reporting errors.
CHECK
#define CHECK(...)
Evaluate an expression and check for errors.
Definition
Control/AthenaKernel/AthenaKernel/errorcheck.h:422
GeV
#define GeV
Definition
PhysicsAnalysis/TauID/TauAnalysisTools/Root/HelperFunctions.cxx:17
TrackRecordFillerTool.h
D3PD::BlockFillerTool< TrackRecord >::addVariable
virtual StatusCode addVariable(const std::string &name, const std::type_info &ti, void *&ptr, const std::string &docstring="", const void *defval=0)
Definition
AddVariable.cxx:85
D3PD::BlockFillerTool
Type-safe wrapper for block filler tools.
Definition
BlockFillerTool.h:65
D3PD::TrackRecordFillerTool::fill
virtual StatusCode fill(const TrackRecord &obj)
Function filling the ntuple variables for a single object.
Definition
TrackRecordFillerTool.cxx:43
D3PD::TrackRecordFillerTool::book
virtual StatusCode book()
Function booking the ntuple variables.
Definition
TrackRecordFillerTool.cxx:28
D3PD::TrackRecordFillerTool::m_time
float * m_time
Definition
TrackRecordFillerTool.h:47
D3PD::TrackRecordFillerTool::m_energy
float * m_energy
Definition
TrackRecordFillerTool.h:40
D3PD::TrackRecordFillerTool::m_eta
float * m_eta
Definition
TrackRecordFillerTool.h:42
D3PD::TrackRecordFillerTool::m_EnergyThreshold
float m_EnergyThreshold
Definition
TrackRecordFillerTool.h:52
D3PD::TrackRecordFillerTool::m_posx
float * m_posx
Definition
TrackRecordFillerTool.h:44
D3PD::TrackRecordFillerTool::m_phi
float * m_phi
Definition
TrackRecordFillerTool.h:43
D3PD::TrackRecordFillerTool::m_pt
float * m_pt
Definition
TrackRecordFillerTool.h:41
D3PD::TrackRecordFillerTool::m_barcode
int * m_barcode
Definition
TrackRecordFillerTool.h:38
D3PD::TrackRecordFillerTool::TrackRecordFillerTool
TrackRecordFillerTool(const std::string &type, const std::string &name, const IInterface *parent)
Regular Gaudi AlgTool constructor.
Definition
TrackRecordFillerTool.cxx:18
D3PD::TrackRecordFillerTool::m_OnlyMuon
bool m_OnlyMuon
Definition
TrackRecordFillerTool.h:50
D3PD::TrackRecordFillerTool::m_posy
float * m_posy
Definition
TrackRecordFillerTool.h:45
D3PD::TrackRecordFillerTool::m_pdgid
int * m_pdgid
Definition
TrackRecordFillerTool.h:39
D3PD::TrackRecordFillerTool::m_posz
float * m_posz
Definition
TrackRecordFillerTool.h:46
TrackRecord
Definition
TrackRecord.h:12
D3PD
Block filler tool for noisy FEB information.
Definition
CaloCellDetailsFillerTool.cxx:29
type
Generated on
for ATLAS Offline Software by
1.17.0