ATLAS Offline Software
Loading...
Searching...
No Matches
V0MainDecorator.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef INDETV0FINDER_V0MAINDECORATOR_H
6#define INDETV0FINDER_V0MAINDECORATOR_H
7
9#include "GaudiKernel/ToolHandle.h"
12#include "GaudiKernel/IPartPropSvc.h"
13
14namespace InDet
15{
16
18 {
19 public:
20 V0MainDecorator(const std::string& t, const std::string& n, const IInterface* p);
22 StatusCode initialize();
23 StatusCode decorateV0(xAOD::VertexContainer *container, const EventContext& ctx) const;
24 StatusCode decorateks(xAOD::VertexContainer *container, const EventContext& ctx) const;
25 StatusCode decoratela(xAOD::VertexContainer *container, const EventContext& ctx) const;
26 StatusCode decoratelb(xAOD::VertexContainer *container, const EventContext& ctx) const;
27 private:
28
29 IntegerProperty m_masses{this, "masses", 1};
30 DoubleProperty m_masspi{this, "masspi", ParticleConstants::chargedPionMassInMeV};
31 DoubleProperty m_massp{this, "massp", ParticleConstants::protonMassInMeV};
32 DoubleProperty m_masse{this, "masse", ParticleConstants::electronMassInMeV};
33 DoubleProperty m_massK0S{this, "massK0s", ParticleConstants::KZeroMassInMeV};
34 DoubleProperty m_massLambda{this, "massLambda", ParticleConstants::lambdaMassInMeV};
35 ToolHandle<Trk::V0Tools> m_V0Tools {this, "V0Tools", "Trk::V0Tools", "V0 tools to calculate things like Lxy"};
36 StatusCode initKey(const std::string&, SG::WriteDecorHandleKey<xAOD::VertexContainer> &decokey) const;
37
38 Gaudi::Property<std::string> m_v0Key
39 { this, "V0ContainerName", "V0Candidates", "V0 container name (same calling alg)" };
40 Gaudi::Property<std::string> m_ksKey { this, "KshortContainerName", "KshortCandidates", "Ks container" };
41 Gaudi::Property<std::string> m_laKey { this, "LambdaContainerName", "LambdaCandidates",
42 "Lambda container" };
43 Gaudi::Property<std::string> m_lbKey { this, "LambdabarContainerName", "LambdabarCandidates",
44 "Lambdabar container" };
45
46
48 { this, "KsMass_v0", ".Kshort_mass", "Ks mass for v0" };
50 { this, "KsMassErr_v0", ".Kshort_massError", "Ks mass error for v0" };
52 { this, "LaMass_v0", ".Lambda_mass", "Lambda mass for v0" };
54 { this, "LaMassErr_v0", ".Lambda_massError", "Lambda mass error for v0" };
56 { this, "LbMass_v0", ".Lambdabar_mass", "Lambdabar mass for v0" };
58 { this, "LbMassErr_v0", ".Lambdabar_massError", "Lambdabar mass error for v0" };
60 { this, "Pt_v0", ".pT", "Transverse momentum for v0" };
62 { this, "PtErr_v0", ".pTError", "Transverse momentum error for v0" };
64 { this, "Rxy_v0", ".Rxy", "Rxy for v0" };
66 { this, "RxyErr_v0", ".RxyError", "Rxy error for v0" };
68 { this, "Px_v0", ".px", "Px for v0" };
70 { this, "Py_v0", ".py", "Py for v0" };
72 { this, "Pz_v0", ".pz", "Pz for v0" };
73
74 // Ks decorators
76 { this, "Mass_ks", ".mass", "mass for Ks" };
78 { this, "MassErr_ks", ".massError", "mass error for Ks" };
80 { this, "Pt_ks", ".pT", "Transverse momentum for Ks" };
82 { this, "PtErr_ks", ".pTError", "Transverse momentum error for Ks" };
84 { this, "Rxy_ks", ".Rxy", "Rxy for Ks" };
86 { this, "RxyErr_ks", ".RxyError", "Rxy error for Ks" };
88 { this, "Px_ks", ".px", "Px for Ks" };
90 { this, "Py_ks", ".py", "Py for Ks" };
92 { this, "Pz_ks", ".pz", "Pz for Ks" };
93
94 // Lambda decorators
96 { this, "Mass_la", ".mass", "mass for Lambda" };
98 { this, "MassErr_la", ".massError", "mass error for Lambda" };
100 { this, "Pt_la", ".pT", "Transverse momentum for Lambda" };
102 { this, "PtErr_la", ".pTError", "Transverse momentum error for Lambda" };
104 { this, "Rxy_la", ".Rxy", "Rxy for la" };
106 { this, "RxyErr_la", ".RxyError", "Rxy error for Lambda" };
108 { this, "Px_la", ".px", "Px for Lambda" };
110 { this, "Py_la", ".py", "Py for Lambda" };
112 { this, "Pz_la", ".pz", "Pz for Lambda" };
113
114 // Lambdabar decorators
116 { this, "Mass_lb", ".mass", "mass for Lambdabar" };
118 { this, "MassErr_lb", ".massError", "mass error for Lambdabar" };
120 { this, "Pt_lb", ".pT", "Transverse momentum for Lambdabar" };
122 { this, "PtErr_lb", ".pTError", "Transverse momentum error for Lambdabar" };
124 { this, "Rxy_lb", ".Rxy", "Rxy for Lambdabar" };
126 { this, "RxyErr_lb", ".RxyError", "Rxy error for Lambdabar" };
128 { this, "Px_lb", ".px", "Px for Lambdabar" };
130 { this, "Py_lb", ".py", "Py for Lambdabar" };
132 { this, "Pz_lb", ".pz", "Pz for Lambdabar" };
133
134 ServiceHandle<IPartPropSvc> m_partPropSvc{this, "PartPropSvc", "PartPropSvc"};
135 };
136
137}
138
139
140#endif
AthAlgTool(const std::string &type, const std::string &name, const IInterface *parent)
Constructor with parameters:
SG::WriteDecorHandleKey< xAOD::VertexContainer > m_decorPx_ks
DoubleProperty m_masse
electron mass (0.510999 MeV)
StatusCode decorateV0(xAOD::VertexContainer *container, const EventContext &ctx) const
SG::WriteDecorHandleKey< xAOD::VertexContainer > m_decorPx_v0
StatusCode decoratela(xAOD::VertexContainer *container, const EventContext &ctx) const
SG::WriteDecorHandleKey< xAOD::VertexContainer > m_decorRxyErr_v0
Gaudi::Property< std::string > m_v0Key
ServiceHandle< IPartPropSvc > m_partPropSvc
SG::WriteDecorHandleKey< xAOD::VertexContainer > m_decorPy_v0
DoubleProperty m_massK0S
Kshort mass (497.672 MeV)
Gaudi::Property< std::string > m_lbKey
SG::WriteDecorHandleKey< xAOD::VertexContainer > m_decorMassErr_ks
SG::WriteDecorHandleKey< xAOD::VertexContainer > m_decorMassErr_la
SG::WriteDecorHandleKey< xAOD::VertexContainer > m_decorRxyErr_la
DoubleProperty m_massp
proton mass (938.272 MeV)
SG::WriteDecorHandleKey< xAOD::VertexContainer > m_decorLbMassErr
SG::WriteDecorHandleKey< xAOD::VertexContainer > m_decorPtErr_v0
SG::WriteDecorHandleKey< xAOD::VertexContainer > m_decorLbMass
DoubleProperty m_massLambda
Lambda mass (1115.68 MeV)
SG::WriteDecorHandleKey< xAOD::VertexContainer > m_decorKsMassErr
SG::WriteDecorHandleKey< xAOD::VertexContainer > m_decorPt_ks
SG::WriteDecorHandleKey< xAOD::VertexContainer > m_decorPt_v0
SG::WriteDecorHandleKey< xAOD::VertexContainer > m_decorPtErr_ks
SG::WriteDecorHandleKey< xAOD::VertexContainer > m_decorKsMass
V0MainDecorator(const std::string &t, const std::string &n, const IInterface *p)
SG::WriteDecorHandleKey< xAOD::VertexContainer > m_decorPtErr_la
SG::WriteDecorHandleKey< xAOD::VertexContainer > m_decorMass_ks
SG::WriteDecorHandleKey< xAOD::VertexContainer > m_decorRxy_v0
StatusCode decoratelb(xAOD::VertexContainer *container, const EventContext &ctx) const
SG::WriteDecorHandleKey< xAOD::VertexContainer > m_decorPy_la
StatusCode initKey(const std::string &, SG::WriteDecorHandleKey< xAOD::VertexContainer > &decokey) const
SG::WriteDecorHandleKey< xAOD::VertexContainer > m_decorRxy_la
SG::WriteDecorHandleKey< xAOD::VertexContainer > m_decorPz_v0
SG::WriteDecorHandleKey< xAOD::VertexContainer > m_decorPz_lb
IntegerProperty m_masses
= 1 if using PDG values, = 2 if user set (1)
SG::WriteDecorHandleKey< xAOD::VertexContainer > m_decorPt_la
SG::WriteDecorHandleKey< xAOD::VertexContainer > m_decorPy_lb
SG::WriteDecorHandleKey< xAOD::VertexContainer > m_decorRxyErr_ks
SG::WriteDecorHandleKey< xAOD::VertexContainer > m_decorPtErr_lb
SG::WriteDecorHandleKey< xAOD::VertexContainer > m_decorLaMassErr
SG::WriteDecorHandleKey< xAOD::VertexContainer > m_decorPx_la
SG::WriteDecorHandleKey< xAOD::VertexContainer > m_decorMass_lb
Gaudi::Property< std::string > m_laKey
SG::WriteDecorHandleKey< xAOD::VertexContainer > m_decorMass_la
SG::WriteDecorHandleKey< xAOD::VertexContainer > m_decorPz_ks
DoubleProperty m_masspi
pion mass (139.57 MeV)
SG::WriteDecorHandleKey< xAOD::VertexContainer > m_decorPz_la
SG::WriteDecorHandleKey< xAOD::VertexContainer > m_decorMassErr_lb
SG::WriteDecorHandleKey< xAOD::VertexContainer > m_decorPt_lb
SG::WriteDecorHandleKey< xAOD::VertexContainer > m_decorRxyErr_lb
Gaudi::Property< std::string > m_ksKey
SG::WriteDecorHandleKey< xAOD::VertexContainer > m_decorPx_lb
ToolHandle< Trk::V0Tools > m_V0Tools
SG::WriteDecorHandleKey< xAOD::VertexContainer > m_decorLaMass
SG::WriteDecorHandleKey< xAOD::VertexContainer > m_decorRxy_lb
StatusCode decorateks(xAOD::VertexContainer *container, const EventContext &ctx) const
SG::WriteDecorHandleKey< xAOD::VertexContainer > m_decorPy_ks
SG::WriteDecorHandleKey< xAOD::VertexContainer > m_decorRxy_ks
Property holding a SG store/key/clid/attr name from which a WriteDecorHandle is made.
Primary Vertex Finder.
constexpr double protonMassInMeV
the mass of the proton (in MeV)
constexpr double KZeroMassInMeV
the mass of the neutral kaon (K0) (in MeV)
constexpr double chargedPionMassInMeV
the mass of the charged pion (in MeV)
constexpr double electronMassInMeV
the mass of the electron (in MeV)
constexpr double lambdaMassInMeV
the mass of the lambda baryon (in MeV)
VertexContainer_v1 VertexContainer
Definition of the current "Vertex container version".