77{
78 using namespace asg::CreateDummyEl;
80 setMsgLevel(MSG::INFO);
81
82
83
84 std::unique_ptr<xAOD::EventInfo> eventInfo =
85 std::make_unique<xAOD::EventInfo>();
86 eventInfo->makePrivateStore();
87 eventInfo->setEventNumber(363636);
88 eventInfo->setRunNumber(runNumber);
90 "RandomRunNumber");
92 if (!
store.
record(std::move(eventInfo),
"EventInfo").isSuccess()) {
94 return StatusCode::FAILURE;
95 }
96
97 size_t numel = pt_eta.size();
98
99 std::unique_ptr<xAOD::CaloClusterContainer>
clusters =
100 std::make_unique<xAOD::CaloClusterContainer>();
101 std::unique_ptr<xAOD::CaloClusterAuxContainer> clAux =
102 std::make_unique<xAOD::CaloClusterAuxContainer>();
105 for (const auto& i : pt_eta) {
106 const double pt{
i.first };
107 const double eta{
i.second };
108 const double e{
pt * cosh(
eta) };
111 fill_cluster(cluster,
eta, 0.0, e);
112 }
113
114 if (!
store.
record(std::move(clusters),
"MyClusters").isSuccess() ||
115 !
store.
record(std::move(clAux),
"MyClustersAux.").isSuccess()) {
117 return StatusCode::FAILURE;
118 }
119
120 std::vector<ElementLink<xAOD::CaloClusterContainer>>
links{};
121 std::unique_ptr<xAOD::ElectronContainer>
electrons =
122 std::make_unique<xAOD::ElectronContainer>();
123 std::unique_ptr<xAOD::ElectronAuxContainer> electronsAux =
124 std::make_unique<xAOD::ElectronAuxContainer>();
127 for (const auto& i : pt_eta) {
128 const double pt{
i.first };
129 const double eta{
i.second };
133 links.emplace_back(
"MyClusters",
el->index());
134 el->setCaloClusterLinks(links);
138 }
139 if (!
store.
record(std::move(electrons),
"MyElectrons").isSuccess() ||
140 !
store.
record(std::move(electronsAux),
"MyElectronAux.").isSuccess()) {
142 return StatusCode::FAILURE;
143 }
144
145 return StatusCode::SUCCESS;
146}
Scalar eta() const
pseudorapidity method
void record(const T *p, const std::string &key)
SG::Decorator< T, ALLOC > Decorator
CaloCluster_v1 CaloCluster
Define the latest version of the calorimeter cluster class.
Electron_v1 Electron
Definition of the current "egamma version".