ATLAS Offline Software
Loading...
Searching...
No Matches
HepMcParticleLinkCnv_p3.cxx
Go to the documentation of this file.
1
2
3/*
4 Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
5*/
6
7// Framework includes
8#include "GaudiKernel/MsgStream.h"
9#include "GaudiKernel/ThreadLocalContext.h"
11
13
14
32
34 HepMcParticleLink_p3* persObj,
35 MsgStream &msg ) const
36{
37 // In the case that the standard production workflow is being used
38 // then the first event in the McEventCollection is the only one
39 // where the eventIndex could exceed the maximum value of unsigned
40 // short. In this case we can work around the issue by using an
41 // m_mcEvtIndex of zero as a special case, in which m_mcEvtIndex
42 // should be interpreted as the position in the McEventCollection
43 // rather than the value of GenEvent::event_number().
44 const EventContext& ctx = Gaudi::Hive::currentContext();
45 const IProxyDict* proxy = Atlas::getExtendedEventContext(ctx).proxy();
46 unsigned short index{0};
47 const HepMcParticleLink::index_type position =
49 proxy).at(0);
50 if (position!=0) {
51 index = transObj->eventIndex();
52 if(transObj->eventIndex()!=static_cast<HepMcParticleLink::index_type>(index)) {
53 msg << MSG::WARNING << "Attempting to persistify an eventIndex larger than max unsigned short!" << endmsg;
54 }
55 }
56 persObj->m_mcEvtIndex = index;
57 persObj->m_id = transObj->id();
58 persObj->m_truthSupp = transObj->getTruthSuppressionTypeAsChar();
59}
60
#define endmsg
virtual void transToPers(const HepMcParticleLink *transObj, HepMcParticleLink_p3 *persObj, MsgStream &msg) const override
Method creating the persistent representation HepMcParticleLink_p3 from its transient representation ...
virtual void persToTrans(const HepMcParticleLink_p3 *persObj, HepMcParticleLink *transObj, MsgStream &msg) const override
Method creating the transient representation of HepMcParticleLink from its persistent representation ...
const ExtendedEventContext & getExtendedEventContext(const EventContext &ctx)
Retrieve an extended context from a context object.
Definition index.py:1
MsgStream & msg
Definition testRead.cxx:32