9 #include "CLHEP/Units/SystemOfUnits.h"
22 m_typeName(
"CompositeParticle"){
24 declareInterface<IDataRetriever>(
this);
26 "Collection to be first in output, shown in Atlantis without switching");
40 if (
sc.isFailure() ) {
66 return StatusCode::SUCCESS;
77 const auto nParticles = cpcont->
size();
78 DataVect phi; phi.reserve(nParticles);
79 DataVect eta; eta.reserve(nParticles);
86 DataVect pdgId; pdgId.reserve(nParticles);
87 DataVect typeEV; typeEV.reserve(nParticles);
95 std::string typeLabel =
"n_a";
97 for (; compPartItr != compPartItrE; ++compPartItr) {
98 const auto & pCompPart = *compPartItr;
99 phi.emplace_back(pCompPart->phi());
100 eta.emplace_back(pCompPart->eta());
108 charge.emplace_back( pCompPart->charge() );
109 dataType.emplace_back( pCompPart->dataType() );
110 pdgId2 = pCompPart->pdgId();
111 pdgId.emplace_back(pdgId2);
112 const auto absId = std::abs(pdgId2);
115 typeLabel =
"EV_Electron";
118 typeLabel =
"EV_NeutrinoElectron";
121 typeLabel =
"EV_Muon";
124 typeLabel =
"EV_NeutrinoMuon";
127 typeLabel =
"EV_Tau";
130 typeLabel =
"EV_NeutrinoTau";
133 typeLabel =
"EV_Top";
136 typeLabel =
"EV_Bottom";
139 typeLabel =
"EV_Photon";
145 typeLabel = ( pdgId2 == 24) ?
"EV_Wplus":
"EV_Wminus";
152 typeEV.emplace_back(typeLabel);
153 label.emplace_back(
"none" );
157 DataMap[
"phi"] = std::move(phi);
158 DataMap[
"eta"] = std::move(eta);
165 DataMap[
"pdgId"] = std::move(pdgId);
166 DataMap[
"typeEV"] = std::move(typeEV);