ATLAS Offline Software
Loading...
Searching...
No Matches
McEventCollectionCnv_p7.h
Go to the documentation of this file.
1
2
3/*
4 Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
5*/
6
7// McEventCollectionCnv_p7.h
8// Header file for class McEventCollectionCnv_p7
9// Author: J.Chapman, P.Clark and A.Verbytskyi
11#ifndef GENERATOROBJECTSTPCNV_MCEVENTCOLLECTIONCNV_p7_H
12#define GENERATOROBJECTSTPCNV_MCEVENTCOLLECTIONCNV_p7_H
13
14// STL includes
15#include <unordered_map>
16
17#ifdef HEPMC3
18#include "AtlasHepMC/GenEvent.h"
21#include "HepMC3/Data/GenRunInfoData.h"
22#else
23#ifdef __clang__
24#pragma clang diagnostic push
25#pragma clang diagnostic ignored "-Wkeyword-macro"
26#endif
27#define private public
28#define protected public
29#include "AtlasHepMC/GenEvent.h"
32#undef private
33#undef protected
34#ifdef __clang__
35#pragma clang diagnostic pop
36#endif
37#endif
39
40// AthenaPoolCnvSvc includes
42
43// GeneratorObjectsTPCnv includes
45
46#include "GaudiKernel/ServiceHandle.h"
47
48class IHepMCWeightSvc;
49
50// Forward declaration
51class MsgStream;
52namespace HepMC { struct DataPool; }
53
55 McEventCollection,
56 McEventCollection_p7
57 >
58{
59
62
64 // Public methods:
66 public:
67
71
75
79
83
84 void setPileup();
85
89 virtual void persToTrans( const McEventCollection_p7* persObj,
90 McEventCollection* transObj,
91 MsgStream &log ) ;
92
96 virtual void transToPers( const McEventCollection* transObj,
97 McEventCollection_p7* persObj,
98 MsgStream &log ) ;
99
101 // Protected method:
103 protected:
104
105 typedef std::unordered_map<HepMC::GenParticlePtr,int> ParticlesMap_t;
106
117 createGenVertex( const McEventCollection_p7& persEvts,
118 const GenVertex_p7& vtx,
119 ParticlesMap_t& bcToPart,
120 HepMC::DataPool& datapools, HepMC::GenEvent* parent=nullptr ) const;
121
129 ParticlesMap_t& partToEndVtx,
130 HepMC::DataPool& datapools, const HepMC::GenVertexPtr& parent=nullptr, bool add_to_output = true ) const;
131
136#ifdef HEPMC3
137 static void writeGenVertex( const HepMC::ConstGenVertexPtr& vtx, McEventCollection_p7& persEvt );
138#else
139 void writeGenVertex( const HepMC::GenVertex& vtx, McEventCollection_p7& persEvt ) const;
140#endif
146#ifdef HEPMC3
148#else
149 int writeGenParticle( const HepMC::GenParticle& p, McEventCollection_p7& persEvt ) const;
150#endif
151
154};
155#endif //> GENERATOROBJECTSTPCNV_MCEVENTCOLLECTIONCNV_p7_H
TPConverterBase< TRANS, PERS > T_AthenaPoolTPCnvBase
a typed memory pool that saves time spent allocation small object.
Definition DataPool.h:63
IService to read/write HepMC's WeightContainer key names from/to IOVMetaDataContainers author: will b...
HepMC::GenVertexPtr createGenVertex(const McEventCollection_p7 &persEvts, const GenVertex_p7 &vtx, ParticlesMap_t &bcToPart, HepMC::DataPool &datapools, HepMC::GenEvent *parent=nullptr) const
Create a transient GenVertex from a persistent one (version 1) It returns the new GenVertex.
int writeGenParticle(const HepMC::GenParticle &p, McEventCollection_p7 &persEvt) const
Method to write a persistent GenParticle object It returns the index of the persistent GenParticle in...
virtual void persToTrans(const McEventCollection_p7 *persObj, McEventCollection *transObj, MsgStream &log)
Method creating the transient representation of McEventCollection from its persistent representation ...
void writeGenVertex(const HepMC::GenVertex &vtx, McEventCollection_p7 &persEvt) const
Method to write a persistent GenVertex object.
McEventCollectionCnv_p7 & operator=(const McEventCollectionCnv_p7 &rhs)
Assignement operator.
HepMC::GenParticlePtr createGenParticle(const GenParticle_p7 &p, ParticlesMap_t &partToEndVtx, HepMC::DataPool &datapools, const HepMC::GenVertexPtr &parent=nullptr, bool add_to_output=true) const
Create a transient GenParticle from a persistent one (vers.1) It returns the new GenParticle.
virtual ~McEventCollectionCnv_p7()
Destructor.
virtual void transToPers(const McEventCollection *transObj, McEventCollection_p7 *persObj, MsgStream &log)
Method creating the persistent representation McEventCollection_p7 from its transient representation ...
McEventCollectionCnv_p7()
Default constructor:
ServiceHandle< IHepMCWeightSvc > m_hepMCWeightSvc
T_AthenaPoolTPCnvBase< McEventCollection, McEventCollection_p7 > Base_t
std::unordered_map< HepMC::GenParticlePtr, int > ParticlesMap_t
This defines the McEventCollection, which is really just an ObjectVector of McEvent objectsFile: Gene...
HepMC::GenVertex * GenVertexPtr
Definition GenVertex.h:59
GenParticle * GenParticlePtr
Definition GenParticle.h:37
const GenParticle * ConstGenParticlePtr
Definition GenParticle.h:38
const HepMC::GenVertex * ConstGenVertexPtr
Definition GenVertex.h:60