ATLAS Offline Software
EGInvariantMassTool.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3 */
4 
6 // EGInvariantMassTool.h
7 // author: giovanni.marchiori@cern.ch
9 
10 #ifndef DERIVATIONFRAMEWORK_EGINVARIANTMASSTOOL_H
11 #define DERIVATIONFRAMEWORK_EGINVARIANTMASSTOOL_H
12 
15 //
17 #include "GaudiKernel/EventContext.h"
20 //
21 #include <string>
22 #include <vector>
23 namespace DerivationFramework {
24 
26 {
30 };
31 class EGInvariantMassTool : public extends<ExpressionParserUser<AthAlgTool, kNumEGInvariantMassToolParser>, IAugmentationTool>
32 {
33 public:
34 
35  using base_class::base_class;
36 
37  virtual StatusCode initialize() override final;
38  virtual StatusCode addBranches(const EventContext& ctx) const override final;
39 
40 private:
41  StatusCode getInvariantMasses(const EventContext& ctx,
42  std::vector<float>&) const;
43 
44  Gaudi::Property<std::string> m_expression1{this, "Object1Requirements", "true"};
45  Gaudi::Property<std::string> m_expression2{this, "Object2Requirements", "true"};
47  "StoreGateEntryName",
48  "",
49  "SG key of output object" };
50 
52  this,
53  "Container1Name",
54  "",
55  "SG key of first container"
56  };
58  this,
59  "Container2Name",
60  "",
61  "SG key of second container"
62  };
63 
65  this,
66  "Pt1BranchName",
67  "",
68  "Pt1 if different than default"
69  };
70 
72  this,
73  "Eta1BranchName",
74  "",
75  "Eta1 if different than default"
76  };
77 
79  this,
80  "Phi1BranchName",
81  "",
82  "Phi1 if different than default"
83  };
84 
86  this,
87  "Pt2BranchName",
88  "",
89  "Pt2 if different than default"
90  };
91 
93  this,
94  "Eta2BranchName",
95  "",
96  "Eta2 if different than default"
97  };
98 
100  this,
101  "Phi2BranchName",
102  "",
103  "Phi2 if different than default"
104  };
105 
106  Gaudi::Property<float> m_mass1Hypothesis{this, "Mass1Hypothesis", 0.f};
107  Gaudi::Property<float> m_mass2Hypothesis{this, "Mass2Hypothesis", 0.f};
108  Gaudi::Property<float> m_mindR{this, "MinDeltaR", 0.f};
109  Gaudi::Property<bool> m_checkCharge{this, "CheckCharge", true};
110  Gaudi::Property<bool> m_doTransverseMass{this,"DoTransverseMass", true};
111 };
112 }
113 
114 #endif // DERIVATIONFRAMEWORK_EGINVARIANTMASSTOOL_H
ReadHandleKey.h
Property holding a SG store/key/clid from which a ReadHandle is made.
DerivationFramework::EGInvariantMassTool::m_phi1BranchName
SG::ReadHandleKey< std::vector< float > > m_phi1BranchName
Definition: EGInvariantMassTool.h:78
DerivationFramework::EGInvariantMassTool::m_container2Name
SG::ReadHandleKey< xAOD::IParticleContainer > m_container2Name
Definition: EGInvariantMassTool.h:57
IAugmentationTool.h
ExpressionParserUser.h
DerivationFramework::kParser2
@ kParser2
Definition: EGInvariantMassTool.h:28
DerivationFramework::EGInvariantMassTool::m_checkCharge
Gaudi::Property< bool > m_checkCharge
Definition: EGInvariantMassTool.h:109
SG::ReadHandleKey
Property holding a SG store/key/clid from which a ReadHandle is made.
Definition: StoreGate/StoreGate/ReadHandleKey.h:39
DerivationFramework::EGInvariantMassTool::m_mass2Hypothesis
Gaudi::Property< float > m_mass2Hypothesis
Definition: EGInvariantMassTool.h:107
DerivationFramework::kParser1
@ kParser1
Definition: EGInvariantMassTool.h:27
DerivationFramework::EGInvariantMassTool::getInvariantMasses
StatusCode getInvariantMasses(const EventContext &ctx, std::vector< float > &) const
Definition: EGInvariantMassTool.cxx:77
SG::WriteHandleKey
Property holding a SG store/key/clid from which a WriteHandle is made.
Definition: StoreGate/StoreGate/WriteHandleKey.h:40
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
IParticleContainer.h
AthAlgTool.h
DerivationFramework::EGInvariantMassTool::initialize
virtual StatusCode initialize() override final
Definition: EGInvariantMassTool.cxx:22
DerivationFramework
THE reconstruction tool.
Definition: ParticleSortingAlg.h:24
DerivationFramework::EGInvariantMassTool::m_expression1
Gaudi::Property< std::string > m_expression1
Definition: EGInvariantMassTool.h:44
DerivationFramework::EGInvariantMassTool::m_doTransverseMass
Gaudi::Property< bool > m_doTransverseMass
Definition: EGInvariantMassTool.h:110
DerivationFramework::EGInvariantMassTool::m_mass1Hypothesis
Gaudi::Property< float > m_mass1Hypothesis
Definition: EGInvariantMassTool.h:106
DerivationFramework::EGInvariantMassTool::m_pt2BranchName
SG::ReadHandleKey< std::vector< float > > m_pt2BranchName
Definition: EGInvariantMassTool.h:85
DerivationFramework::EGInvariantMassTool::addBranches
virtual StatusCode addBranches(const EventContext &ctx) const override final
Definition: EGInvariantMassTool.cxx:61
DerivationFramework::EGInvariantMassTool::m_phi2BranchName
SG::ReadHandleKey< std::vector< float > > m_phi2BranchName
Definition: EGInvariantMassTool.h:99
DerivationFramework::EEGInvariantMassToolParser
EEGInvariantMassToolParser
Definition: EGInvariantMassTool.h:26
DerivationFramework::kNumEGInvariantMassToolParser
@ kNumEGInvariantMassToolParser
Definition: EGInvariantMassTool.h:29
DerivationFramework::EGInvariantMassTool::m_pt1BranchName
SG::ReadHandleKey< std::vector< float > > m_pt1BranchName
Definition: EGInvariantMassTool.h:64
DerivationFramework::EGInvariantMassTool::m_container1Name
SG::ReadHandleKey< xAOD::IParticleContainer > m_container1Name
Definition: EGInvariantMassTool.h:51
DerivationFramework::EGInvariantMassTool::m_expression2
Gaudi::Property< std::string > m_expression2
Definition: EGInvariantMassTool.h:45
DerivationFramework::EGInvariantMassTool::m_eta1BranchName
SG::ReadHandleKey< std::vector< float > > m_eta1BranchName
Definition: EGInvariantMassTool.h:71
DerivationFramework::EGInvariantMassTool::m_mindR
Gaudi::Property< float > m_mindR
Definition: EGInvariantMassTool.h:108
DerivationFramework::EGInvariantMassTool::m_eta2BranchName
SG::ReadHandleKey< std::vector< float > > m_eta2BranchName
Definition: EGInvariantMassTool.h:92
DerivationFramework::EGInvariantMassTool::m_sgName
SG::WriteHandleKey< std::vector< float > > m_sgName
Definition: EGInvariantMassTool.h:46
DerivationFramework::EGInvariantMassTool
Definition: EGInvariantMassTool.h:32