41 const EventContext& ctx = Gaudi::Hive::currentContext();
44 ATH_CHECK(xTruthParticleContainerGen.
record(std::make_unique<xAOD::TruthParticleContainer>(),
45 std::make_unique<xAOD::TruthParticleAuxContainer>()));
50 if ( !xTruthEventContainer.
isValid() )
53 return StatusCode::FAILURE;
58 for (itr = xTruthEventContainer->begin(); itr!=xTruthEventContainer->end(); ++itr) {
60 unsigned int nPart = (*itr)->nTruthParticles();
61 std::vector<int> uniqueID_list;
65 for (
unsigned int iPart = 0; iPart < nPart; ++iPart) {
74 if (uniqueID_list.size() > 0){
75 found = (std::find(uniqueID_list.begin(), uniqueID_list.end(), my_uniqueID) != uniqueID_list.end());
80 uniqueID_list.push_back(my_uniqueID);
85 xTruthParticleContainerGen->push_back( xTruthParticle );
87 *xTruthParticle=*theParticle;
90 if (zero_uniqueID != 0 || dup_uniqueID != 0)
ATH_MSG_DEBUG(
"Found " << zero_uniqueID <<
" uniqueID=0 particles and " << dup_uniqueID <<
" duplicated");
93 return StatusCode::SUCCESS;
SG::ReadHandleKey< xAOD::TruthEventContainer > m_xaodTruthEventContainerName
SG::WriteHandleKey< xAOD::TruthParticleContainer > m_xaodTruthParticleContainerNameGen
The key for the output xAOD truth containers.
virtual StatusCode initialize()
Function initialising the algorithm.
xAODTruthParticleSlimmerGen(const std::string &name, ISvcLocator *svcLoc)
Regular algorithm constructor.
PublicToolHandle< IMCTruthClassifier > m_classif
virtual StatusCode execute()
Function executing the algorithm.