ATLAS Offline Software
McEventCollectionCnv_p6.h
Go to the documentation of this file.
1 
3 /*
4  Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
5 */
6 
7 // McEventCollectionCnv_p6.h
8 // Header file for class McEventCollectionCnv_p6
9 // Author: J.Chapman
11 #ifndef GENERATOROBJECTSTPCNV_MCEVENTCOLLECTIONCNV_p6_H
12 #define GENERATOROBJECTSTPCNV_MCEVENTCOLLECTIONCNV_p6_H
13 
14 // STL includes
15 #include <unordered_map>
16 
17 #ifdef HEPMC3
18 #include "AtlasHepMC/GenEvent.h"
19 #include "AtlasHepMC/GenVertex.h"
20 #include "AtlasHepMC/GenParticle.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
30 #include "AtlasHepMC/GenVertex.h"
31 #include "AtlasHepMC/GenParticle.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 
48 class IHepMCWeightSvc;
49 
50 // Forward declaration
51 class MsgStream;
52 namespace HepMC { struct DataPool; }
53 
55  McEventCollection,
56  McEventCollection_p6
57  >
58 {
59 
62 
64  // Public methods:
66  public:
67 
71 
75 
79 
83 
84  void setPileup();
85 
89  virtual void persToTrans( const McEventCollection_p6* persObj,
90  McEventCollection* transObj,
91  MsgStream &log ) ;
92 
96  virtual void transToPers( const McEventCollection* transObj,
97  McEventCollection_p6* persObj,
98  MsgStream &log ) ;
99 
100  protected:
101 
102  typedef std::unordered_map<HepMC::GenParticlePtr,int> ParticlesMap_t;
103 
114  createGenVertex( const McEventCollection_p6& persEvts,
115  const GenVertex_p6& vtx,
116  ParticlesMap_t& bcToPart,
117  HepMC::DataPool& datapools, HepMC::GenEvent* parent=nullptr ) const;
118 
126  ParticlesMap_t& partToEndVtx,
127  HepMC::DataPool& datapools, const HepMC::GenVertexPtr& parent=nullptr, bool add_to_output = true ) const;
128 
133 #ifdef HEPMC3
134  static void writeGenVertex( const HepMC::ConstGenVertexPtr& vtx, McEventCollection_p6& persEvt );
135 #else
136  void writeGenVertex( const HepMC::GenVertex& vtx, McEventCollection_p6& persEvt ) const;
137 
138 #endif
139 
144 #ifdef HEPMC3
145  static int writeGenParticle( const HepMC::ConstGenParticlePtr& p, McEventCollection_p6& persEvt );
146 #else
147  int writeGenParticle( const HepMC::GenParticle& p, McEventCollection_p6& persEvt ) const;
148 #endif
149 
152 };
153 #endif //> GENERATOROBJECTSTPCNV_MCEVENTCOLLECTIONCNV_p6_H
HepMC::GenVertexPtr
HepMC::GenVertex * GenVertexPtr
Definition: GenVertex.h:59
McEventCollection_p6
Definition: McEventCollection_p6.h:27
IHepMCWeightSvc
IService to read/write HepMC's WeightContainer key names from/to IOVMetaDataContainers author: will b...
Definition: IHepMCWeightSvc.h:18
GenEvent.h
python.PerfMonSerializer.p
def p
Definition: PerfMonSerializer.py:743
HepMC::DataPool
Definition: HepMcDataPool.h:81
GenVertex.h
HepMC::GenParticlePtr
GenParticle * GenParticlePtr
Definition: GenParticle.h:37
McEventCollection
McEventCollection
Definition: GeneratorObjectsTPCnv.cxx:60
TPConverterBase
Definition: TPConverter.h:738
McEventCollectionCnv_p6
Definition: McEventCollectionCnv_p6.h:58
GenParticle.h
McEventCollectionCnv_p6::persToTrans
virtual void persToTrans(const McEventCollection_p6 *persObj, McEventCollection *transObj, MsgStream &log)
Method creating the transient representation of McEventCollection from its persistent representation ...
Definition: McEventCollectionCnv_p6.cxx:68
McEventCollectionCnv_p6::createGenParticle
HepMC::GenParticlePtr createGenParticle(const GenParticle_p6 &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.
Definition: McEventCollectionCnv_p6.cxx:697
McEventCollection_p6.h
McEventCollectionCnv_p6::writeGenVertex
void writeGenVertex(const HepMC::GenVertex &vtx, McEventCollection_p6 &persEvt) const
Method to write a persistent GenVertex object.
Definition: McEventCollectionCnv_p6.cxx:840
McEventCollection.h
T_AthenaPoolTPConverter.h
test_pyathena.parent
parent
Definition: test_pyathena.py:15
McEventCollection
This defines the McEventCollection, which is really just an ObjectVector of McEvent objects.
Definition: McEventCollection.h:33
McEventCollectionCnv_p6::ParticlesMap_t
std::unordered_map< HepMC::GenParticlePtr, int > ParticlesMap_t
Definition: McEventCollectionCnv_p6.h:102
McEventCollectionCnv_p6::~McEventCollectionCnv_p6
virtual ~McEventCollectionCnv_p6()
Destructor.
McEventCollectionCnv_p6::transToPers
virtual void transToPers(const McEventCollection *transObj, McEventCollection_p6 *persObj, MsgStream &log)
Method creating the persistent representation McEventCollection_p6 from its transient representation ...
Definition: McEventCollectionCnv_p6.cxx:364
GenVertex_p6
Definition: GenVertex_p6.h:24
McEventCollectionCnv_p6::m_hepMCWeightSvc
ServiceHandle< IHepMCWeightSvc > m_hepMCWeightSvc
Definition: McEventCollectionCnv_p6.h:151
GenParticle_p6
Definition: GenParticle_p6.h:22
HepMC::ConstGenParticlePtr
const GenParticle * ConstGenParticlePtr
Definition: GenParticle.h:38
McEventCollectionCnv_p6::McEventCollectionCnv_p6
McEventCollectionCnv_p6()
Default constructor:
Definition: McEventCollectionCnv_p6.cxx:40
McEventCollectionCnv_p6::writeGenParticle
int writeGenParticle(const HepMC::GenParticle &p, McEventCollection_p6 &persEvt) const
Method to write a persistent GenParticle object It returns the index of the persistent GenParticle in...
Definition: McEventCollectionCnv_p6.cxx:921
McEventCollectionCnv_p6::Base_t
T_AthenaPoolTPCnvBase< McEventCollection, McEventCollection_p6 > Base_t
Definition: McEventCollectionCnv_p6.h:61
McEventCollectionCnv_p6::operator=
McEventCollectionCnv_p6 & operator=(const McEventCollectionCnv_p6 &rhs)
Assignement operator.
Definition: McEventCollectionCnv_p6.cxx:51
McEventCollectionCnv_p6::m_isPileup
bool m_isPileup
Definition: McEventCollectionCnv_p6.h:150
McEventCollectionCnv_p6::setPileup
void setPileup()
Definition: McEventCollectionCnv_p6.cxx:967
HepMC
Definition: Barcode.h:14
python.CaloCondTools.log
log
Definition: CaloCondTools.py:20
DataPool
a typed memory pool that saves time spent allocation small object. This is typically used by containe...
Definition: DataPool.h:47
HepMC::ConstGenVertexPtr
const HepMC::GenVertex * ConstGenVertexPtr
Definition: GenVertex.h:60
McEventCollectionCnv_p6::createGenVertex
HepMC::GenVertexPtr createGenVertex(const McEventCollection_p6 &persEvts, const GenVertex_p6 &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.
Definition: McEventCollectionCnv_p6.cxx:630
GenParticle
@ GenParticle
Definition: TruthClasses.h:30
ServiceHandle< IHepMCWeightSvc >