|
ATLAS Offline Software
|
#include <McEventCollectionCnv_p6.h>
|
| McEventCollectionCnv_p6 () |
| Default constructor: More...
|
|
| McEventCollectionCnv_p6 (const McEventCollectionCnv_p6 &rhs) |
| Copy constructor. More...
|
|
McEventCollectionCnv_p6 & | operator= (const McEventCollectionCnv_p6 &rhs) |
| Assignement operator. More...
|
|
virtual | ~McEventCollectionCnv_p6 () |
| Destructor. More...
|
|
void | setPileup () |
|
virtual void | persToTrans (const McEventCollection_p6 *persObj, McEventCollection *transObj, MsgStream &log) |
| Method creating the transient representation of McEventCollection from its persistent representation McEventCollection_p6 . More...
|
|
virtual void | transToPers (const McEventCollection *transObj, McEventCollection_p6 *persObj, MsgStream &log) |
| Method creating the persistent representation McEventCollection_p6 from its transient representation McEventCollection . More...
|
|
virtual TPObjRef | virt_toPersistent (const TRANS *trans, MsgStream &log) |
| Internal interface method that is used to invoke the real conversion method (toPersistent_impl) in the derived converter. More...
|
|
virtual TPObjRef | virt_toPersistentWithKey (const TRANS *trans, const std::string &key, MsgStream &log) |
| Internal interface method that is used to invoke the real conversion method (toPersistent_impl) in the derived converter. More...
|
|
virtual void | pstoreToTrans (unsigned index, TRANS *trans, MsgStream &log) |
| Convert persistent representation stored in the storage vector of the top-level object to transient. More...
|
|
virtual TRANS * | createTransient (const PERS *persObj, MsgStream &log) |
| Create transient representation of a persistent object. More...
|
|
virtual TRANS * | createTransientWithKey (const PERS *persObj, const std::string &key, MsgStream &log) |
| Create transient representation of a persistent object, with SG key. More...
|
|
virtual TRANS * | virt_createTransFromPStore (unsigned index, MsgStream &log) |
| Internal interface method that is used to invoke the real conversion method (createTransient) More...
|
|
virtual TRANS * | virt_createTransFromPStoreWithKey (unsigned index, const std::string &key, MsgStream &log) |
| Internal interface method that is used to invoke the real conversion method (createTransient) More...
|
|
virtual void | persToTrans (const PERS *persObj, TRANS *transObj, MsgStream &log)=0 |
| Convert persistent representation to transient one. More...
|
|
virtual void | transToPers (const TRANS *transObj, PERS *persObj, MsgStream &log)=0 |
| Convert transient representation to persistent one. More...
|
|
virtual void | persToTransWithKey (const PERS *persObj, TRANS *transObj, const std::string &, MsgStream &log) |
| Convert persistent representation to transient one. More...
|
|
virtual void | transToPersWithKey (const TRANS *transObj, PERS *persObj, const std::string &, MsgStream &log) |
| Convert transient representation to persistent one. More...
|
|
virtual void | persToTransUntyped (const void *pers, void *trans, MsgStream &log) |
| Convert persistent object representation to transient. More...
|
|
virtual void | transToPersUntyped (const void *trans, void *pers, MsgStream &log) |
| Convert transient object representation to persistent. More...
|
|
virtual void | persToTransWithKeyUntyped (const void *pers, void *trans, const std::string &key, MsgStream &log) |
| Convert persistent object representation to transient. More...
|
|
virtual void | transToPersWithKeyUntyped (const void *trans, void *pers, const std::string &key, MsgStream &log) |
| Convert transient object representation to persistent. More...
|
|
virtual PERS * | createPersistent (const TRANS *transObj, MsgStream &log) |
| Create persistent representation of a transient object. More...
|
|
virtual PERS * | createPersistentWithKey (const TRANS *transObj, const std::string &key, MsgStream &log) |
| Create persistent representation of a transient object, with SG key. More...
|
|
TPObjRef | toPersistentWithKey_impl (const TRANS *trans, const std::string &key, MsgStream &log) |
| Convert transient object to persistent representation. More...
|
|
virtual const std::type_info & | transientTInfo () const |
| return C++ type id of the transient class this converter is for More...
|
|
virtual const std::type_info & | transientTInfo () const |
| return C++ type id of the transient class this converter is for More...
|
|
virtual const std::type_info & | persistentTInfo () const |
| return C++ type id of the persistent class this converter is for More...
|
|
virtual const std::type_info & | persistentTInfo () const =0 |
| return C++ type id of the persistent class this converter is for More...
|
|
void | setPStorage (std::vector< PERS > *storage) |
| Tell this converter which storage vector it should use to store or retrieve persistent representations. More...
|
|
void | setRecursive (bool flag=true) |
| Tell the converter if it should work in recursive mode slower but it can safely handle recursion. More...
|
|
void | ignoreRecursion (bool flag=false) |
| Tell the converter to ignore recursion (do not throw errors) even when recurion is detected. More...
|
|
virtual void | reservePStorage (size_t size) |
| Reserve 'size' elements for persistent storage. More...
|
|
template<class CNV > |
CNV * | converterForType (CNV *cnv, const std::type_info &t_info, MsgStream &log) const |
| Find converter for a given C++ type ID, that is or ihnerits from CNV type. More...
|
|
template<class CNV > |
CNV * | converterForRef (CNV *cnv, const TPObjRef &ref, MsgStream &log) const |
| Find converter for a TP type ID (passed in a TP Ref), that is or ihnerits from CNV type. More...
|
|
template<class CNV > |
TPObjRef | baseToPersistent (CNV **cnv, const typename CNV::Trans_t *transObj, MsgStream &log) const |
| Persistify bass class of a given object and store the persistent represenation in the storage vector of the top-level persistent object. More...
|
|
template<class CNV > |
TPObjRef | toPersistent (CNV **cnv, const typename CNV::TransBase_t *transObj, MsgStream &log) const |
| Persistify an object and store the persistent represenation in the storage vector of the top-level persistent object. More...
|
|
template<class CNV , class TRANS_T > |
void | fillTransFromPStore (CNV **cnv, const TPObjRef &ref, TRANS_T *trans, MsgStream &log) const |
| Convert persistent object, stored in the the top-level persistent object and referenced by the TP Ref, to transient representation. More...
|
|
template<class CNV > |
CNV::Trans_t * | createTransFromPStore (CNV **cnv, const TPObjRef &ref, MsgStream &log) const |
| Create transient representation of a persistent object, stored in the the top-level persistent object and referenced by the TP Ref. More...
|
|
virtual void | initPrivateConverters (TopLevelTPCnvBase *) |
|
virtual TopLevelTPCnvBase * | topConverter () |
| return the top-level converter for this elemental TP converter More...
|
|
virtual const TopLevelTPCnvBase * | topConverter () const |
| return the top-level converter for this elemental TP converter More...
|
|
const std::type_info & | transBaseTInfo () const |
| return C++ type id of the common base transient type for all converters for a group of polymorphic types More...
|
|
virtual const TPObjRef::typeID_t & | typeID () const |
| Return TP typeID for persistent objects produced by this converter. More...
|
|
unsigned | typeIDvalue () const |
| inlined non-virtual version to get the typeID value fast More...
|
|
virtual void | setRuntimeTopConverter (TopLevelTPCnvBase *topConverter) |
| Set runtime top-level converter - usually it is the owning TL converter, but in case of extended objects it will be the TL converter of the extended object. More...
|
|
virtual void | setTopConverter (TopLevelTPCnvBase *topConverter, const TPObjRef::typeID_t &TPtypeID) |
| Set which top-level converter owns this elemental converter, and what TPtypeID was assigned to the persistent objects it produces. More...
|
|
void | setReadingFlag () |
|
void | clearReadingFlag () |
|
bool | wasUsedForReading () |
|
virtual void | converterNotFound (const std::type_info &converterType, ITPConverter *c, const std::string &typeName, MsgStream &log) const |
| method called when the right TP converter was not found during writing More...
|
|
virtual void | converterNotFound (unsigned typeID, ITPConverter *c, const std::string &typeName, MsgStream &log) const |
| method called when the right TP converter was not found during reading More...
|
|
|
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 . More...
|
|
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 . More...
|
|
void | writeGenVertex (const HepMC::GenVertex &vtx, McEventCollection_p6 &persEvt) const |
| Method to write a persistent GenVertex object. More...
|
|
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 into the collection of persistent of GenParticles from the persistent GenEvent . More...
|
|
Definition at line 54 of file McEventCollectionCnv_p6.h.
◆ Base_t
◆ Factory
◆ ParticlesMap_t
◆ Pers_t
◆ PersBase_t
◆ PolyCnvBase_t
◆ Trans_t
◆ TransBase_t
◆ McEventCollectionCnv_p6() [1/2]
McEventCollectionCnv_p6::McEventCollectionCnv_p6 |
( |
| ) |
|
◆ McEventCollectionCnv_p6() [2/2]
◆ ~McEventCollectionCnv_p6()
McEventCollectionCnv_p6::~McEventCollectionCnv_p6 |
( |
| ) |
|
|
virtualdefault |
◆ baseToPersistent()
template<class TRANS >
template<class CNV >
Persistify bass class of a given object and store the persistent represenation in the storage vector of the top-level persistent object.
The converter is located using the transient type from the CNV parameter, not from the object itself (because we need the base type, not the actual type)
- Parameters
-
cnv | [IN/OUT] type of this parameter decides which converter will be used. Once the converter is found, this pointer will be set so the search is done only once |
transObj | [IN] transient object |
log | [IN] output message stream |
- Returns
- TPObjRef TP reference to the persistent representation stored in the storage vector of the top-level persistent object
Definition at line 97 of file TPConverter.h.
98 if( !*cnv || (*cnv)->wasUsedForReading() ) {
102 (*cnv)->clearReadingFlag();
105 return (**cnv).virt_toPersistent(transObj,
log);
◆ clearReadingFlag()
◆ converterForRef()
template<class TRANS >
template<class CNV >
Find converter for a TP type ID (passed in a TP Ref), that is or ihnerits from CNV type.
- Parameters
-
cnv | [IN] parameter specifying the converter type |
ref | [IN] TP Ref to an object for which a converter is sought |
log | [IN] output message stream |
- Returns
- CNV* pointer to the converter, if found
Definition at line 74 of file TPConverter.h.
76 cnv =
dynamic_cast<CNV*
>(
c);
◆ converterForType()
template<class TRANS >
template<class CNV >
CNV* ITPConverterFor< TRANS >::converterForType |
( |
CNV * |
cnv, |
|
|
const std::type_info & |
t_info, |
|
|
MsgStream & |
log |
|
) |
| const |
|
inlineinherited |
Find converter for a given C++ type ID, that is or ihnerits from CNV type.
- Parameters
-
cnv | [IN] parameter specifying the converter type |
t_info | [IN] C++ type id for which a converter is sought |
log | [IN] output message stream |
- Returns
- CNV* pointer to the converter, if found
Definition at line 58 of file TPConverter.h.
60 cnv =
dynamic_cast< CNV*
>(
c );
◆ converterNotFound() [1/2]
void ITPConverter::converterNotFound |
( |
const std::type_info & |
converterType, |
|
|
ITPConverter * |
c, |
|
|
const std::string & |
typeName, |
|
|
MsgStream & |
log |
|
) |
| const |
|
virtualinherited |
method called when the right TP converter was not found during writing
- useful as a debugging hook, prints a detailed error message
- Parameters
-
converterType | [IN] converterType that was requested |
c | [IN] converter that was actually found (0 if not) |
typeName | [IN] the C++ type name of the type for which converter was searched for |
log | [IN] output message stream |
Definition at line 22 of file ITPConverter.cxx.
27 log << MSG::ERROR <<
">>>>>> in parent TP converter " <<
typeid(*this).name()
28 <<
": could not find matching TP converter for type " <<
typeName <<
endmsg;
30 log << MSG::ERROR <<
" - found incompatible converter of type "
31 <<
typeid(*c).name() <<
endmsg;
33 log << MSG::ERROR <<
" Converter handle type was " << converterType.name() <<
endmsg;
◆ converterNotFound() [2/2]
void ITPConverter::converterNotFound |
( |
unsigned |
typeID, |
|
|
ITPConverter * |
c, |
|
|
const std::string & |
typeName, |
|
|
MsgStream & |
log |
|
) |
| const |
|
virtualinherited |
method called when the right TP converter was not found during reading
- useful as a debugging hook, prints a detailed error message
- Parameters
-
typeID | [IN] converter ID that was requested |
c | [IN] converter that was actually found (0 if not) |
typeName | [IN] the C++ type name of the type for which converter was searched for |
log | [IN] output message stream |
Definition at line 40 of file ITPConverter.cxx.
45 log << MSG::ERROR <<
">>>>>> in parent TP converter " <<
typeid(*this).name()
46 <<
" requested TP converter for TP type ID " <<
typeID <<
" not found " <<
endmsg;
48 log << MSG::ERROR <<
" - found converter " <<
typeid(*c).name()
49 <<
" for " <<
c->transientTInfo().name()
50 <<
" with an incompatible base type " <<
c->transBaseTInfo().name()
53 log << MSG::ERROR <<
" Converter handle type was " << reqCnvTypeName <<
endmsg;
◆ createGenParticle()
Create a transient GenParticle
from a persistent one (vers.1) It returns the new GenParticle
.
Note that the map being passed as an argument is to hold the association of barcodes to particle so that we can reconnect all the particles to their decay vertex (if any).
Definition at line 697 of file McEventCollectionCnv_p6.cxx.
708 p->set_pdg_id( persPart.m_pdgId);
710 p->add_attribute(
"phi",std::make_shared<HepMC3::DoubleAttribute>(persPart.m_phiPolarization));
711 p->add_attribute(
"theta",std::make_shared<HepMC3::DoubleAttribute>(persPart.m_thetaPolarization));
713 p->set_generated_mass(persPart.m_generated_mass);
720 if ( 0 == persPart.m_recoMethod ) {
721 double temp_e = std::sqrt( (
long double)(persPart.m_px)*persPart.m_px +
722 (
long double)(persPart.m_py)*persPart.m_py +
723 (
long double)(persPart.m_pz)*persPart.m_pz +
724 (
long double)(persPart.m_m) *persPart.m_m );
725 p->set_momentum( HepMC::FourVector(persPart.m_px,persPart.m_py,persPart.m_pz,temp_e));
727 const int signM2 = ( persPart.m_m >= 0. ? 1 : -1 );
728 const double persPart_ene =
729 std::sqrt( std::abs((
long double)(persPart.m_px)*persPart.m_px +
730 (
long double)(persPart.m_py)*persPart.m_py +
731 (
long double)(persPart.m_pz)*persPart.m_pz +
732 signM2* (
long double)(persPart.m_m)* persPart.m_m));
733 const int signEne = ( persPart.m_recoMethod == 1 ? 1 : -1 );
734 p->set_momentum(HepMC::FourVector( persPart.m_px,
737 signEne * persPart_ene ));
741 std::vector<int> flows;
742 const unsigned int nFlow = persPart.m_flow.size();
743 for (
unsigned int iFlow= 0; iFlow != nFlow; ++iFlow ) {
744 flows.push_back(persPart.m_flow[iFlow].second );
747 p->add_attribute(
"flows", std::make_shared<HepMC3::VectorIntAttribute>(flows));
749 p->m_pdg_id = persPart.m_pdgId;
751 p->m_polarization.m_theta=
static_cast<double>(persPart.m_thetaPolarization);
752 p->m_polarization.m_phi =
static_cast<double>(persPart.m_phiPolarization );
753 p->m_production_vertex = 0;
755 p->m_barcode = persPart.m_barcode;
756 p->m_generated_mass =
static_cast<double>(persPart.m_generated_mass);
763 if ( 0 == persPart.m_recoMethod ) {
765 p->m_momentum.setPx( persPart.m_px);
766 p->m_momentum.setPy( persPart.m_py);
767 p->m_momentum.setPz( persPart.m_pz);
768 double temp_e = std::sqrt( (
long double)(persPart.m_px)*persPart.m_px +
769 (
long double)(persPart.m_py)*persPart.m_py +
770 (
long double)(persPart.m_pz)*persPart.m_pz +
771 (
long double)(persPart.m_m) *persPart.m_m );
772 p->m_momentum.setE( temp_e);
774 const int signM2 = ( persPart.m_m >= 0. ? 1 : -1 );
775 const double persPart_ene =
776 std::sqrt( std::abs((
long double)(persPart.m_px)*persPart.m_px +
777 (
long double)(persPart.m_py)*persPart.m_py +
778 (
long double)(persPart.m_pz)*persPart.m_pz +
779 signM2* (
long double)(persPart.m_m)* persPart.m_m));
780 const int signEne = ( persPart.m_recoMethod == 1 ? 1 : -1 );
781 p->m_momentum.set( persPart.m_px,
784 signEne * persPart_ene );
788 const unsigned int nFlow = persPart.m_flow.size();
790 for (
unsigned int iFlow= 0; iFlow != nFlow; ++iFlow ) {
791 p->m_flow.set_icode( persPart.m_flow[iFlow].first,
792 persPart.m_flow[iFlow].second );
796 if ( persPart.m_endVtx != 0 ) {
797 partToEndVtx[
p] = persPart.m_endVtx;
◆ createGenVertex()
Create a transient GenVertex
from a persistent one (version 1) It returns the new GenVertex
.
This method calls createGenParticle
for each of the out-going particles and only for the in-going particle which are orphans (no production vertex): for optimisation purposes. Note that the map being passed as an argument is to hold the association of barcodes to particle so that we can reconnect all the (non-orphan) particles to their decay vertex (if any).
Definition at line 630 of file McEventCollectionCnv_p6.cxx.
644 vtx->set_position(HepMC::FourVector( persVtx.m_x , persVtx.m_y , persVtx.m_z ,persVtx.m_t ));
648 std::vector<double>
weights( persVtx.m_weights.begin(), persVtx.m_weights.end() );
649 vtx->add_attribute(
"weights",std::make_shared<HepMC3::VectorDoubleAttribute>(
weights));
652 const unsigned int nPartsIn = persVtx.m_particlesIn.size();
653 for (
unsigned int i = 0;
i != nPartsIn; ++
i ) {
654 createGenParticle( persEvt.m_genParticles[persVtx.m_particlesIn[
i]], partToEndVtx, datapools, vtx,
false );
658 const unsigned int nPartsOut = persVtx.m_particlesOut.size();
659 for (
unsigned int i = 0;
i != nPartsOut; ++
i ) {
660 createGenParticle( persEvt.m_genParticles[persVtx.m_particlesOut[
i]], partToEndVtx, datapools, vtx );
663 vtx->m_position.setX( persVtx.m_x );
664 vtx->m_position.setY( persVtx.m_y );
665 vtx->m_position.setZ( persVtx.m_z );
666 vtx->m_position.setT( persVtx.m_t );
667 vtx->m_particles_in.clear();
668 vtx->m_particles_out.clear();
670 vtx->
m_weights.m_weights.reserve( persVtx.m_weights.size() );
671 vtx->
m_weights.m_weights.assign ( persVtx.m_weights.begin(),
672 persVtx.m_weights.end() );
677 const unsigned int nPartsIn = persVtx.m_particlesIn.size();
678 for (
unsigned int i = 0;
i != nPartsIn; ++
i ) {
685 const unsigned int nPartsOut = persVtx.m_particlesOut.size();
686 for (
unsigned int i = 0;
i != nPartsOut; ++
i ) {
687 vtx->add_particle_out(
createGenParticle( persEvt.m_genParticles[persVtx.m_particlesOut[
i]],
◆ createPersistent()
Create persistent representation of a transient object.
Simply creates a new persistent object and calls transToPers()
- Parameters
-
transObj | [IN] transient object |
log | [IN] output message stream |
- Returns
- the created persistent representation
◆ createPersistentWithKey()
Create persistent representation of a transient object, with SG key.
Simply creates a new persistent object and calls transToPersWithKey()
- Parameters
-
transObj | [IN] transient object |
key | [IN] SG key of object being written |
log | [IN] output message stream |
- Returns
- the created persistent representation
◆ createTransFromPStore()
template<class TRANS >
template<class CNV >
Create transient representation of a persistent object, stored in the the top-level persistent object and referenced by the TP Ref.
If a TP converter is not specified, it will be found based on the Ref type.
- Parameters
-
cnv | [IN][OUT] pointer to the converter, usually 0 at the start. Once the right converter is found, this pointer will be set so the search is done only once |
ref | [IN] TP Ref to the persistent object to be converted |
log | [IN] output message stream |
- Returns
- pointer to the created transient represention
Definition at line 172 of file TPConverter.h.
173 if(
ref.isNull() )
return 0;
175 if( !cnv ) cnv = &temp_cnv_p;
177 if( !*cnv || (*cnv)->typeID().value() !=
ref.typeID() ) {
180 if( !*cnv )
return 0;
181 (*cnv)->setReadingFlag();
183 return (**cnv).virt_createTransFromPStore(
ref.index(),
log );
◆ createTransient()
Create transient representation of a persistent object.
Simply creates a new transient object and calls persToTrans()
- Parameters
-
persObj | [IN] persistent object |
log | [IN] output message stream |
- Returns
- the created transient object
◆ createTransientWithKey()
Create transient representation of a persistent object, with SG key.
Simply creates a new transient object and calls persToTransWithKey()
- Parameters
-
persObj | [IN] persistent object |
key | [IN] SG key of object being read |
log | [IN] output message stream |
- Returns
- the created transient object
◆ fillTransFromPStore()
template<class TRANS >
template<class CNV , class TRANS_T >
Convert persistent object, stored in the the top-level persistent object and referenced by the TP Ref, to transient representation.
An empty transient object to be filled in is provided. If converter is not given, it will be found based on the Ref type.
- Parameters
-
cnv | [IN][OUT] pointer to the converter, usually 0 at the start. Once the right converter is found, this pointer will be set so the search is done only once |
ref | [IN] TP Ref to the persistent object to be converted |
trans | [IN] pointer to the empty transient object |
log | [IN] output message stream |
Definition at line 145 of file TPConverter.h.
146 if(
ref.isNull() )
return;
148 if( !cnv ) cnv = &temp_cnv_p;
150 if( !*cnv || (*cnv)->typeID().value() !=
ref.typeID() ) {
154 (*cnv)->setReadingFlag();
156 (**cnv).pstoreToTrans(
ref.index(), trans,
log );
◆ ignoreRecursion()
Tell the converter to ignore recursion (do not throw errors) even when recurion is detected.
UNSAFE! use only if you are sure you preallocated enough persistent storage
Definition at line 568 of file TPConverter.h.
◆ initPrivateConverters()
Reimplemented in JetConverterBase< Jet_p5 >, JetConverterBase< Jet_p6 >, JetCnv_p4, TauPi0DetailsCnv_p2, TauPi0ClusterCnv_p1, TauPi0DetailsCnv_p1, TauPi0CandidateCnv_p1, TrackParticleBaseCnv_p1, TrigVertexCnv_p1, TrigVertexCnv_p2, TrigInDetTrackCollectionCnv_p1, MeasuredNeutralAtaSurfaceCnv_p1< SURFACE_CNV, ATA_SURFACE >, MeasuredNeutralAtaSurfaceCnv_p1< NeutralAtaStraightLineCnv_p1, Trk::NeutralAtaStraightLine >, MeasuredNeutralAtaSurfaceCnv_p1< NeutralAtaPlaneCnv_p1, Trk::NeutralAtaPlane >, MeasuredNeutralAtaSurfaceCnv_p1< NeutralAtaDiscCnv_p1, Trk::NeutralAtaDisc >, MeasuredNeutralAtaSurfaceCnv_p1< NeutralAtaCylinderCnv_p1, Trk::NeutralAtaCylinder >, SegmentCnv_p1, VxCandidateCnv_p1, MeasuredAtaSurfaceCnv_p1< SURFACE_CNV, ATA_SURFACE >, TrackCnv_p3, MeasuredAtaSurfaceCnv_p1< AtaDiscCnv_p1, Trk::AtaDisc >, MeasuredAtaSurfaceCnv_p1< AtaPlaneCnv_p1, Trk::AtaPlane >, MeasuredAtaSurfaceCnv_p1< AtaCylinderCnv_p1, Trk::AtaCylinder >, MeasuredAtaSurfaceCnv_p1< CurvilinearParametersCnv_p1, Trk::CurvilinearParameters >, MeasuredAtaSurfaceCnv_p1< AtaStraightLineCnv_p1, Trk::AtaStraightLine >, TrackParticleCnv_p2, TrackCnv_p1, TrackCnv_p2, TrackCnv_p4, TrackCnv_p12, V0CandidateCnv_p1, VxCandidateCnv_p2, and TrackParticleCnv_p3.
Definition at line 187 of file TPConverter.h.
◆ operator=()
◆ persistentTInfo() [1/2]
return C++ type id of the persistent class this converter is for
- Returns
- std::type_info&
Definition at line 482 of file TPConverter.h.
482 {
return typeid(
PERS); }
◆ persistentTInfo() [2/2]
virtual const std::type_info& ITPCnvBase::persistentTInfo |
( |
| ) |
const |
|
pure virtualinherited |
◆ persToTrans() [1/2]
Method creating the transient representation of McEventCollection
from its persistent representation McEventCollection_p6
.
Definition at line 68 of file McEventCollectionCnv_p6.cxx.
72 const EventContext& ctx = Gaudi::Hive::currentContext();
74 msg <<
MSG::DEBUG <<
"Loading McEventCollection from persistent state..."
85 datapools.
part.prepareToAdd(nParts);
86 const unsigned int nEvts = persObj->
m_genEvents.size();
87 datapools.
evt.prepareToAdd(nEvts);
90 for ( std::vector<GenEvent_p6>::const_iterator
96 HepMC::GenEvent * genEvt(
nullptr);
98 genEvt =
new HepMC::GenEvent();
103 genEvt->add_attribute (
"barcodes", std::make_shared<HepMC::GenEventBarcodes>());
110 genEvt->add_attribute(
"signal_process_id", std::make_shared<HepMC3::IntAttribute>(persEvt.
m_signalProcessId));
112 genEvt->add_attribute(
"mpi", std::make_shared<HepMC3::IntAttribute>(persEvt.
m_mpi));
113 genEvt->add_attribute(
"event_scale", std::make_shared<HepMC3::DoubleAttribute>(persEvt.
m_eventScale));
114 genEvt->add_attribute(
"alphaQCD", std::make_shared<HepMC3::DoubleAttribute>(persEvt.
m_alphaQCD));
115 genEvt->add_attribute(
"alphaQED", std::make_shared<HepMC3::DoubleAttribute>(persEvt.
m_alphaQED));
116 genEvt->add_attribute(
"filterWeight", std::make_shared<HepMC3::DoubleAttribute>(persEvt.
m_filterWeight));
117 genEvt->add_attribute(
"filterHT", std::make_shared<HepMC3::DoubleAttribute>(persEvt.m_filterHT));
118 genEvt->add_attribute(
"filterMET", std::make_shared<HepMC3::DoubleAttribute>(persEvt.m_filterMET));
120 genEvt->add_attribute(
"random_states", std::make_shared<HepMC3::VectorLongIntAttribute>(persEvt.
m_randomStates));
122 genEvt->set_units(
static_cast<HepMC3::Units::MomentumUnit
>(persEvt.
m_momentumUnit),
123 static_cast<HepMC3::Units::LengthUnit
>(persEvt.
m_lengthUnit));
126 if(!genEvt->run_info()) {
127 HepMC3::GenRunInfoData ri_read;
129 ri_read.tool_name = std::vector<std::string>();
130 ri_read.tool_version = std::vector<std::string>();
131 ri_read.tool_description = std::vector<std::string>();
134 auto ri = std::make_shared<HepMC3::GenRunInfo>();
135 ri->read_data(ri_read);
136 genEvt->set_run_info(ri);
141 auto cs = std::make_shared<HepMC3::GenCrossSection>();
143 genEvt->set_cross_section(cs);
144 if(
static_cast<bool>(xsection[0]) )
145 cs->set_cross_section(xsection[2],xsection[1]);
147 cs->set_cross_section(-1.0, -1.0);
152 auto hi = std::make_shared<HepMC3::GenHeavyIon>();
153 const std::vector<float>& hIon = persEvt.
m_heavyIon;
156 static_cast<int>(hIon[12]),
157 static_cast<int>(hIon[11]),
158 static_cast<int>(hIon[10]),
159 static_cast<int>(hIon[9]),
160 static_cast<int>(hIon[8]),
161 static_cast<int>(hIon[7]),
162 static_cast<int>(hIon[6]),
163 static_cast<int>(hIon[5]),
164 static_cast<int>(hIon[4]),
169 genEvt->set_heavy_ion(hi);
179 pi->set(
static_cast<int>(
pdf[8]),
180 static_cast<int>(
pdf[7]),
186 static_cast<int>(
pdf[6]),
187 static_cast<int>(
pdf[5]));
188 genEvt->set_pdf_info(
pi);
198 std::map<int, HepMC::GenVertexPtr> brc_to_vertex;
202 for (
unsigned int iVtx = persEvt.
m_verticesBegin; iVtx != endVtx; ++iVtx ) {
209 if ( sigProcVtx != 0 && brc_to_vertex.count(sigProcVtx) ) {
214 for (
auto &
p : partToEndVtx) {
215 if ( brc_to_vertex.count(
p.second) ) {
216 auto decayVtx = brc_to_vertex[
p.second];
217 decayVtx->add_particle_in(
p.first );
219 msg << MSG::ERROR <<
"GenParticle points to null end vertex !!" <<
endmsg;
225 if ( beamPart1 != 0 && beamPart2 != 0 ) {
233 genEvt->m_mpi = persEvt.
m_mpi;
237 genEvt->m_signal_process_vertex = 0;
238 genEvt->m_beam_particle_1 = 0;
239 genEvt->m_beam_particle_2 = 0;
242 genEvt->m_vertex_barcodes.clear();
243 genEvt->m_particle_barcodes.clear();
244 genEvt->m_momentum_unit =
static_cast<HepMC::Units::MomentumUnit
>(persEvt.
m_momentumUnit);
245 genEvt->m_position_unit =
static_cast<HepMC::Units::LengthUnit
>(persEvt.
m_lengthUnit);
251 if( genEvt->m_cross_section )
252 delete genEvt->m_cross_section;
253 genEvt->m_cross_section = 0;
256 genEvt->m_cross_section =
new HepMC::GenCrossSection();
258 if(
static_cast<bool>(xsection[0]) )
259 genEvt->m_cross_section->set_cross_section(xsection[2],xsection[1]);
263 if(genEvt->m_heavy_ion )
264 delete genEvt->m_heavy_ion;
265 genEvt->m_heavy_ion = 0;
267 const std::vector<float>& hIon = persEvt.
m_heavyIon;
268 genEvt->m_heavy_ion =
new HepMC::HeavyIon
270 static_cast<int>(hIon[12]),
271 static_cast<int>(hIon[11]),
272 static_cast<int>(hIon[10]),
273 static_cast<int>(hIon[9]),
274 static_cast<int>(hIon[8]),
275 static_cast<int>(hIon[7]),
276 static_cast<int>(hIon[6]),
277 static_cast<int>(hIon[5]),
278 static_cast<int>(hIon[4]),
288 if(genEvt->m_pdf_info)
289 delete genEvt->m_pdf_info;
290 genEvt->m_pdf_info = 0;
293 genEvt->m_pdf_info =
new HepMC::PdfInfo
295 static_cast<int>(
pdf[8]),
296 static_cast<int>(
pdf[7]),
302 static_cast<int>(
pdf[6]),
303 static_cast<int>(
pdf[5])
318 for (
unsigned int iVtx= persEvt.
m_verticesBegin; iVtx != endVtx; ++iVtx ) {
327 if ( sigProcVtx != 0 ) {
328 genEvt->set_signal_process_vertex( genEvt->barcode_to_vertex( sigProcVtx ) );
333 p = partToEndVtx.begin(),
334 endItr = partToEndVtx.end();
339 decayVtx->add_particle_in(
p->first );
342 <<
"GenParticle points to null end vertex !!"
350 if ( beamPart1 != 0 && beamPart2 !=0 ) {
351 genEvt->set_beam_particles(genEvt->barcode_to_particle(beamPart1),
352 genEvt->barcode_to_particle(beamPart2));
360 msg <<
MSG::DEBUG <<
"Loaded McEventCollection from persistent state [OK]"
◆ persToTrans() [2/2]
Convert persistent representation to transient one.
Copies data members from persistent object to an existing transient one. Needs to be implemented by the developer on the actual converter.
- Parameters
-
persObj | [IN] persistent object |
transObj | [IN] transient object |
log | [IN] output message stream |
Implemented in TPCnvIDContFromIdentifier< TRANS, PERS, CONV >, TPCnvIDCont< TRANS, PERS, CONV >, TPCnvStdVector< TRANS, PERS, CONV >, TPCnvVector< TRANS, PERS, CONV >, TPValVectorCnv< TRANS, PERS, CONV >, TPPtrVectorCnv< TRANS, PERS, CONV >, TPConverterConstBase< TRANS, PERS >, T_AtlasHitsVectorCnv< TRANS, PERS, CONV >, and T_AthenaHitsVectorCnv< TRANS, PERS, CONV >.
◆ persToTransUntyped()
Convert persistent object representation to transient.
- Parameters
-
pers | [IN] void* pointer to the persistent object |
trans | [OUT] void* pointer to the empty transient object |
log | [IN] output message stream |
Implements ITPCnvBase.
Definition at line 400 of file TPConverter.h.
405 reinterpret_cast<TRANS*
> (trans),
◆ persToTransWithKey()
Convert persistent representation to transient one.
Copies data members from persistent object to an existing transient one. Needs to be implemented by the developer on the actual converter.
- Parameters
-
persObj | [IN] persistent object |
transObj | [IN] transient object |
log | [IN] output message stream |
Reimplemented in TPConverterWithKeyBase< TRANS, PERS >.
Definition at line 376 of file TPConverter.h.
◆ persToTransWithKeyUntyped()
Convert persistent object representation to transient.
- Parameters
-
pers | [IN] void* pointer to the persistent object |
trans | [OUT] void* pointer to the empty transient object |
key | [IN] SG key of object being read. |
log | [IN] output message stream |
Reimplemented from ITPCnvBase.
Definition at line 420 of file TPConverter.h.
426 reinterpret_cast<TRANS*
> (trans),
◆ pstoreToTrans()
template<class TRANS , class PERS >
virtual void TPConverterBase< TRANS, PERS >::pstoreToTrans |
( |
unsigned |
index, |
|
|
TRANS * |
trans, |
|
|
MsgStream & |
log |
|
) |
| |
|
inlinevirtualinherited |
Convert persistent representation stored in the storage vector of the top-level object to transient.
Internal.
- Parameters
-
index | [IN] index of the persistent representation in the storage vector |
trans | [IN] empty transient object |
log | [IN] output message stream
|
Reimplemented from TPAbstractPolyCnvBase< TRANS, TRANS, PERS >.
Definition at line 760 of file TPConverter.h.
◆ reservePStorage()
◆ setPileup()
void McEventCollectionCnv_p6::setPileup |
( |
| ) |
|
◆ setPStorage()
Tell this converter which storage vector it should use to store or retrieve persistent representations.
- Parameters
-
storage | [IN] the address of the storage vector |
Definition at line 551 of file TPConverter.h.
◆ setReadingFlag()
◆ setRecursive()
Tell the converter if it should work in recursive mode slower but it can safely handle recursion.
Definition at line 559 of file TPConverter.h.
◆ setRuntimeTopConverter()
Set runtime top-level converter - usually it is the owning TL converter, but in case of extended objects it will be the TL converter of the extended object.
- Parameters
-
topConverter | [IN] runtime top-level converter for this converter |
Implements ITPConverter.
Definition at line 215 of file TPConverter.h.
◆ setTopConverter()
Set which top-level converter owns this elemental converter, and what TPtypeID was assigned to the persistent objects it produces.
- Parameters
-
topConverter | [IN] the top-level converter owning this converter |
TPtypeID | [IN] TP type id for persistent objects (used in TP refs) |
Implements ITPConverter.
Definition at line 221 of file TPConverter.h.
◆ topConverter() [1/2]
return the top-level converter for this elemental TP converter
- Returns
- TopLevelTPCnvBas
Reimplemented from ITPConverter.
Definition at line 191 of file TPConverter.h.
◆ topConverter() [2/2]
return the top-level converter for this elemental TP converter
- Returns
- TopLevelTPCnvBas
Reimplemented from ITPConverter.
Definition at line 196 of file TPConverter.h.
◆ toPersistent()
template<class TRANS >
template<class CNV >
Persistify an object and store the persistent represenation in the storage vector of the top-level persistent object.
The correct converter is located using the actual object type.
- Parameters
-
cnv | [IN/OUT] pointer to the converter, usually 0 at the start. Once the right converter is found, this pointer will be set so the search is done only once |
transObj | [IN] transient object |
log | [IN] output message stream |
- Returns
- TPObjRef TP reference to the persistent representation stored in the storage vector of the top-level persistent object
Definition at line 119 of file TPConverter.h.
122 if( !cnv ) cnv = &temp_cnv_p;
123 if( !*cnv || (*cnv)->wasUsedForReading() ) {
127 (*cnv)->clearReadingFlag();
129 return (**cnv).virt_toPersistent(transObj,
log);
◆ toPersistentWithKey_impl()
Convert transient object to persistent representation.
Stores the result in the storage vector of the top-level object and returns a TP Ref to it.
- Parameters
-
trans | [IN] transient object |
key | [IN] SG key of object being converted |
log | [IN] output message stream |
- Returns
- TP reference to the persistent representation
◆ transBaseTInfo()
return C++ type id of the common base transient type for all converters for a group of polymorphic types
- Returns
- std::type_info& this method is not overwritten in the subclasses like transientTInfo()
Implements ITPConverter.
Definition at line 205 of file TPConverter.h.
205 {
return typeid(TRANS); }
◆ transientTInfo() [1/2]
return C++ type id of the transient class this converter is for
- Returns
- std::type_info&
Implements ITPCnvBase.
Reimplemented in TPAbstractPolyCnvBase< Analysis::MuonContainer, Analysis::MuonContainer, MuonContainer_p3 >, TPAbstractPolyCnvBase< TileTrackMuFeatureContainer, TileTrackMuFeatureContainer, TileTrackMuFeatureContainer_p3 >, TPAbstractPolyCnvBase< std::vector< Analysis::TauPi0Cluster * >, std::vector< Analysis::TauPi0Cluster * >, std::vector< TPObjRef > >, TPAbstractPolyCnvBase< IsoMuonFeatureContainer, IsoMuonFeatureContainer, IsoMuonFeatureContainer_p2 >, TPAbstractPolyCnvBase< MuonFeatureDetailsContainer, MuonFeatureDetailsContainer, MuonFeatureDetailsContainer_p2 >, TPAbstractPolyCnvBase< std::vector< Trk::VxCandidate * >, std::vector< Trk::VxCandidate * >, std::vector< TPObjRef > >, TPAbstractPolyCnvBase< MuonFeatureContainer, MuonFeatureContainer, MuonFeatureContainer_p3 >, TPAbstractPolyCnvBase< std::vector< TrigConfAlg >, std::vector< TrigConfAlg >, std::vector< TrigConfAlg_p1 > >, TPAbstractPolyCnvBase< TrigT2MbtsBitsContainer, TrigT2MbtsBitsContainer, TrigT2MbtsBitsContainer_p3 >, TPAbstractPolyCnvBase< TrigCompositeContainer, TrigCompositeContainer, TrigCompositeContainer_p1 >, TPAbstractPolyCnvBase< LumiBlockCollection, LumiBlockCollection, LumiBlockCollection_p2 >, TPAbstractPolyCnvBase< TrigTauClusterContainer, TrigTauClusterContainer, TrigTauClusterContainer_p5 >, TPAbstractPolyCnvBase< TrigRNNOutputContainer, TrigRNNOutputContainer, TrigRNNOutputContainer_p2 >, TPAbstractPolyCnvBase< TrigRoiDescriptorCollection, TrigRoiDescriptorCollection, TrigRoiDescriptorCollection_p3 >, TPAbstractPolyCnvBase< TrigTauClusterContainer, TrigTauClusterContainer, TrigTauClusterContainer_p4 >, TPAbstractPolyCnvBase< TrigT2JetContainer, TrigT2JetContainer, TrigT2JetContainer_p3 >, TPAbstractPolyCnvBase< TrigPassBitsCollection, TrigPassBitsCollection, TrigPassBitsCollection_p1 >, TPAbstractPolyCnvBase< TrigRoiDescriptorCollection, TrigRoiDescriptorCollection, TrigRoiDescriptorCollection_p2 >, TPAbstractPolyCnvBase< std::vector< const JetTagInfoBase * >, std::vector< const JetTagInfoBase * >, std::vector< TPObjRef > >, TPAbstractPolyCnvBase< TrigTauClusterContainer, TrigTauClusterContainer, TrigTauClusterContainer_p3 >, TPAbstractPolyCnvBase< TrigMuonEFIsolationContainer, TrigMuonEFIsolationContainer, TrigMuonEFIsolationContainer_p1 >, TPAbstractPolyCnvBase< MultiComponentStateOnSurfaceDV, MultiComponentStateOnSurfaceDV, std::vector< TPObjRef > >, TPAbstractPolyCnvBase< RingerRingsContainer, RingerRingsContainer, RingerRingsContainer_p2 >, TPAbstractPolyCnvBase< std::vector< Trk::VxTrackAtVertex * >, std::vector< Trk::VxTrackAtVertex * >, std::vector< TPObjRef > >, TPAbstractPolyCnvBase< std::vector< TrigMonTE >, std::vector< TrigMonTE >, std::vector< TrigMonTE_p1 > >, TPAbstractPolyCnvBase< Analysis::MuonContainer, Analysis::MuonContainer, MuonContainer_p6 >, TPAbstractPolyCnvBase< TrigMissingETContainer, TrigMissingETContainer, TrigMissingETContainer_p3 >, TPAbstractPolyCnvBase< TileHitVector, TileHitVector, TileHitVector_p1 >, TPAbstractPolyCnvBase< DataVector< eflowObject >, DataVector< eflowObject >, std::vector< eflowObject_p2 > >, TPAbstractPolyCnvBase< std::vector< TrigConfSeq >, std::vector< TrigConfSeq >, std::vector< TrigConfSeq_p1 > >, TPAbstractPolyCnvBase< TrigTrtHitCountsCollection, TrigTrtHitCountsCollection, TrigTrtHitCountsCollection_p2 >, TPAbstractPolyCnvBase< JetCollection, JetCollection, ParticleJetContainer_p1 >, TPAbstractPolyCnvBase< TrigL2BjetContainer, TrigL2BjetContainer, TrigL2BjetContainer_p3 >, TPAbstractPolyCnvBase< TrigMuonEFIsolationContainer, TrigMuonEFIsolationContainer, TrigMuonEFIsolationContainer_p2 >, TPAbstractPolyCnvBase< TrigPassFlagsCollection, TrigPassFlagsCollection, TrigPassFlagsCollection_p1 >, TPAbstractPolyCnvBase< DataVector< const Trk::MeasurementBase >, DataVector< const Trk::MeasurementBase >, std::vector< TPObjRef > >, TPAbstractPolyCnvBase< DataVector< eflowObject >, DataVector< eflowObject >, std::vector< eflowObject_p3 > >, TPAbstractPolyCnvBase< TrigTauTracksInfoCollection, TrigTauTracksInfoCollection, TrigTauTracksInfoCollection_p2 >, TPAbstractPolyCnvBase< TrackInVertexVector, TrackInVertexVector, std::vector< TPObjRef > >, TPAbstractPolyCnvBase< TrigTauClusterDetailsContainer, TrigTauClusterDetailsContainer, TrigTauClusterDetailsContainer_p2 >, TPAbstractPolyCnvBase< std::vector< Analysis::TauShot * >, std::vector< Analysis::TauShot * >, std::vector< TPObjRef > >, TPAbstractPolyCnvBase< TrigEMClusterContainer, TrigEMClusterContainer, TrigEMClusterContainer_p4 >, TPAbstractPolyCnvBase< DataVector< eflowObject >, DataVector< eflowObject >, std::vector< eflowObject_p4 > >, TPAbstractPolyCnvBase< std::vector< TrigMonRoi >, std::vector< TrigMonRoi >, std::vector< TrigMonRoi_p1 > >, TPAbstractPolyCnvBase< TrigMuonEFContainer, TrigMuonEFContainer, TrigMuonEFContainer_p2 >, TPAbstractPolyCnvBase< DataVector< eflowObject >, DataVector< eflowObject >, std::vector< eflowObject_p5 > >, TPAbstractPolyCnvBase< TrigTauContainer, TrigTauContainer, TrigTauContainer_p3 >, TPAbstractPolyCnvBase< TrigEMClusterContainer, TrigEMClusterContainer, TrigEMClusterContainer_p3 >, TPAbstractPolyCnvBase< ElectronMuonTopoInfoContainer, ElectronMuonTopoInfoContainer, ElectronMuonTopoInfoContainer_p1 >, TPAbstractPolyCnvBase< TrigInDetTrackCollection, TrigInDetTrackCollection, std::vector< TPObjRef > >, TPAbstractPolyCnvBase< std::vector< const Trk::TrackParameters * >, std::vector< const Trk::TrackParameters * >, std::vector< TPObjRef > >, TPAbstractPolyCnvBase< EventBookkeeperCollection, EventBookkeeperCollection, EventBookkeeperCollection_p2 >, TPAbstractPolyCnvBase< SkimDecisionCollection, SkimDecisionCollection, SkimDecisionCollection_p1 >, TPAbstractPolyCnvBase< std::vector< TrigConfChain >, std::vector< TrigConfChain >, std::vector< TrigConfChain_p1 > >, TPAbstractPolyCnvBase< Trk::TrackStates, Trk::TrackStates, std::vector< TPObjRef > >, TPAbstractPolyCnvBase< CombinedMuonFeatureContainer, CombinedMuonFeatureContainer, CombinedMuonFeatureContainer_p4 >, TPAbstractPolyCnvBase< TrigPhotonContainer, TrigPhotonContainer, TrigPhotonContainer_p3 >, TPAbstractPolyCnvBase< std::vector< TrigMonSeq >, std::vector< TrigMonSeq >, std::vector< TrigMonSeq_p1 > >, TPAbstractPolyCnvBase< EventBookkeeperCollection, EventBookkeeperCollection, EventBookkeeperCollection_p1 >, TPAbstractPolyCnvBase< std::vector< TrigMonAlg >, std::vector< TrigMonAlg >, std::vector< TrigMonAlg_p1 > >, TPAbstractPolyCnvBase< CombinedMuonFeatureContainer, CombinedMuonFeatureContainer, CombinedMuonFeatureContainer_p3 >, TPAbstractPolyCnvBase< DataVector< eflowObject >, DataVector< eflowObject >, std::vector< eflowObject_p1 > >, TPAbstractPolyCnvBase< std::vector< Analysis::TauPi0Candidate * >, std::vector< Analysis::TauPi0Candidate * >, std::vector< TPObjRef > >, TPAbstractPolyCnvBase< CombinedMuonFeatureContainer, CombinedMuonFeatureContainer, CombinedMuonFeatureContainer_p2 >, TPAbstractPolyCnvBase< TrigElectronContainer, TrigElectronContainer, TrigElectronContainer_p3 >, TPAbstractPolyCnvBase< TrigSpacePointCountsCollection, TrigSpacePointCountsCollection, TrigSpacePointCountsCollection_p4 >, TPAbstractPolyCnvBase< Analysis::MuonContainer, Analysis::MuonContainer, MuonContainer_p5 >, TPAbstractPolyCnvBase< TileMuFeatureContainer, TileMuFeatureContainer, TileMuFeatureContainer_p2 >, TPAbstractPolyCnvBase< std::vector< TrigConfSig >, std::vector< TrigConfSig >, std::vector< TrigConfSig_p1 > >, TPAbstractPolyCnvBase< std::vector< TrigMonROBData >, std::vector< TrigMonROBData >, std::vector< TrigMonROBData_p1 > >, TPAbstractPolyCnvBase< Analysis::MuonContainer, Analysis::MuonContainer, MuonContainer_p4 >, TPAbstractPolyCnvBase< LumiBlockCollection, LumiBlockCollection, LumiBlockCollection_p1 >, TPAbstractPolyCnvBase< std::vector< const JetAssociationBase * >, std::vector< const JetAssociationBase * >, std::vector< TPObjRef > >, TPAbstractPolyCnvBase< IsoMuonFeatureContainer, IsoMuonFeatureContainer, IsoMuonFeatureContainer_p3 >, TPAbstractPolyCnvBase< TrigCaloClusterContainer, TrigCaloClusterContainer, TrigCaloClusterContainer_p3 >, and TPAbstractPolyCnvBase< std::vector< TrigMonROB >, std::vector< TrigMonROB >, std::vector< TrigMonROB_p1 > >.
Definition at line 201 of file TPConverter.h.
201 {
return typeid(TRANS); }
◆ transientTInfo() [2/2]
return C++ type id of the transient class this converter is for
- Returns
- std::type_info&
Definition at line 479 of file TPConverter.h.
479 {
return typeid(TRANS); }
◆ transToPers() [1/2]
Method creating the persistent representation McEventCollection_p6
from its transient representation McEventCollection
.
Definition at line 364 of file McEventCollectionCnv_p6.cxx.
368 const EventContext& ctx = Gaudi::Hive::currentContext();
370 msg <<
MSG::DEBUG <<
"Creating persistent state of McEventCollection..."
374 const std::pair<unsigned int,unsigned int>
stats = nbrParticlesAndVertices( transObj );
384 const HepMC::GenEvent* genEvt = *itr;
387 auto ri = genEvt->run_info();
388 HepMC3::GenRunInfoData ri_data;
390 ri->write_data(ri_data);
391 if (!ri_data.weight_names.empty()) {
392 m_hepMCWeightSvc->setWeightNames( names_to_name_index_map(ri_data.weight_names), ctx ).ignore();
400 auto A_mpi=genEvt->attribute<HepMC3::IntAttribute>(
"mpi");
401 auto A_signal_process_id=genEvt->attribute<HepMC3::IntAttribute>(
"signal_process_id");
402 auto A_event_scale=genEvt->attribute<HepMC3::DoubleAttribute>(
"event_scale");
403 auto A_alphaQCD=genEvt->attribute<HepMC3::DoubleAttribute>(
"alphaQCD");
404 auto A_alphaQED=genEvt->attribute<HepMC3::DoubleAttribute>(
"alphaQED");
405 auto A_filterWeight=genEvt->attribute<HepMC3::DoubleAttribute>(
"filterWeight");
406 auto A_filterHT=genEvt->attribute<HepMC3::DoubleAttribute>(
"filterHT");
407 auto A_filterMET=genEvt->attribute<HepMC3::DoubleAttribute>(
"filterMET");
409 auto A_random_states=genEvt->attribute<HepMC3::VectorLongIntAttribute>(
"random_states");
410 auto beams=genEvt->beams();
412 emplace_back(A_signal_process_id?(A_signal_process_id->value()):-1,
413 genEvt->event_number(),
414 A_mpi?(A_mpi->value()):-1,
415 A_event_scale?(A_event_scale->value()):0.0,
416 A_alphaQCD?(A_alphaQCD->value()):0.0,
417 A_alphaQED?(A_alphaQED->value()):0.0,
418 A_filterWeight?(A_filterWeight->value()):1.0,
419 A_filterHT?(A_filterHT->value()):-13.,
420 A_filterMET?(A_filterMET->value()):-13.0,
425 A_random_states?(A_random_states->value()):std::vector<long>(),
426 std::vector<double>(),
427 std::vector<float>(),
428 std::vector<double>(),
429 genEvt->momentum_unit(),
430 genEvt->length_unit(),
432 nPersVtx + genEvt->vertices().size(),
434 nPersParts + genEvt->particles().size() );
437 std::map< std::string, std::map<int, std::shared_ptr<HepMC3::Attribute> > > e_atts = genEvt->attributes();
441 for (
auto& attmap: e_atts) {
442 if (attributes_to_ignore.count(attmap.first))
continue;
443 if (attmap.first ==
"ShadowParticle")
continue;
444 if (attmap.first ==
"ShadowParticleId")
continue;
445 for (
auto& att: attmap.second) {
449 att.second->to_string(st);
469 if (genEvt->cross_section()) {
470 auto cs=genEvt->cross_section();
490 if (genEvt->heavy_ion()) {
491 auto hi=genEvt->heavy_ion();
493 std::vector<float>& heavyIon = persEvt.
m_heavyIon;
495 heavyIon[12] =
static_cast<float>(hi->Ncoll_hard);
496 heavyIon[11] =
static_cast<float>(hi->Npart_proj);
497 heavyIon[10] =
static_cast<float>(hi->Npart_targ);
498 heavyIon[9] =
static_cast<float>(hi->Ncoll);
499 heavyIon[8] =
static_cast<float>(hi->spectator_neutrons);
500 heavyIon[7] =
static_cast<float>(hi->spectator_protons);
501 heavyIon[6] =
static_cast<float>(hi->N_Nwounded_collisions);
502 heavyIon[5] =
static_cast<float>(hi->Nwounded_N_collisions);
503 heavyIon[4] =
static_cast<float>(hi->Nwounded_Nwounded_collisions);
504 heavyIon[3] = hi->impact_parameter;
505 heavyIon[2] = hi->event_plane_angle;
506 heavyIon[1] = hi->eccentricity;
507 heavyIon[0] = hi->sigma_inel_NN;
511 if (genEvt->pdf_info()) {
512 auto pi=genEvt->pdf_info();
514 std::vector<double>& pdfinfo = persEvt.
m_pdfinfo;
516 pdfinfo[8] =
static_cast<double>(
pi->parton_id[0]);
517 pdfinfo[7] =
static_cast<double>(
pi->parton_id[1]);
518 pdfinfo[6] =
static_cast<double>(
pi->pdf_id[0]);
519 pdfinfo[5] =
static_cast<double>(
pi->pdf_id[1]);
520 pdfinfo[4] =
pi->x[0];
521 pdfinfo[3] =
pi->x[1];
522 pdfinfo[2] =
pi->scale;
523 pdfinfo[1] =
pi->xf[0];
524 pdfinfo[0] =
pi->xf[1];
528 for (
const auto&
v: genEvt->vertices()) {
532 const int signalProcessVtx = genEvt->m_signal_process_vertex
533 ? genEvt->m_signal_process_vertex->barcode()
535 const int beamParticle1Barcode = genEvt->m_beam_particle_1
536 ? genEvt->m_beam_particle_1->barcode()
538 const int beamParticle2Barcode = genEvt->m_beam_particle_2
539 ? genEvt->m_beam_particle_2->barcode()
543 m_hepMCWeightSvc->setWeightNames( genEvt->m_weights.m_names, ctx ).ignore();
547 push_back(
GenEvent_p6( genEvt->m_signal_process_id,
548 genEvt->m_event_number,
550 genEvt->m_event_scale,
555 beamParticle1Barcode,
556 beamParticle2Barcode,
557 genEvt->m_weights.m_weights,
558 genEvt->m_random_states,
559 std::vector<double>(),
560 std::vector<float>(),
561 std::vector<double>(),
562 genEvt->m_momentum_unit,
563 genEvt->m_position_unit,
565 nPersVtx + genEvt->vertices_size(),
567 nPersParts + genEvt->particles_size() ) );
569 if (genEvt->m_cross_section) {
573 crossSection[2] = genEvt->m_cross_section->m_cross_section;
574 crossSection[1] = genEvt->m_cross_section->m_cross_section_error;
575 crossSection[0] =
static_cast<double>(genEvt->m_cross_section->m_is_set);
579 if (genEvt->m_heavy_ion) {
581 std::vector<float>& heavyIon = persEvt.
m_heavyIon;
583 heavyIon[12] =
static_cast<float>(genEvt->m_heavy_ion->m_Ncoll_hard);
584 heavyIon[11] =
static_cast<float>(genEvt->m_heavy_ion->m_Npart_proj);
585 heavyIon[10] =
static_cast<float>(genEvt->m_heavy_ion->m_Npart_targ);
586 heavyIon[9] =
static_cast<float>(genEvt->m_heavy_ion->m_Ncoll);
587 heavyIon[8] =
static_cast<float>(genEvt->m_heavy_ion->m_spectator_neutrons);
588 heavyIon[7] =
static_cast<float>(genEvt->m_heavy_ion->m_spectator_protons);
589 heavyIon[6] =
static_cast<float>(genEvt->m_heavy_ion->m_N_Nwounded_collisions);
590 heavyIon[5] =
static_cast<float>(genEvt->m_heavy_ion->m_Nwounded_N_collisions);
591 heavyIon[4] =
static_cast<float>(genEvt->m_heavy_ion->m_Nwounded_Nwounded_collisions);
592 heavyIon[3] = genEvt->m_heavy_ion->m_impact_parameter;
593 heavyIon[2] = genEvt->m_heavy_ion->m_event_plane_angle;
594 heavyIon[1] = genEvt->m_heavy_ion->m_eccentricity;
595 heavyIon[0] = genEvt->m_heavy_ion->m_sigma_inel_NN;
599 if (genEvt->m_pdf_info) {
601 std::vector<double>& pdfinfo = persEvt.
m_pdfinfo;
603 pdfinfo[8] =
static_cast<double>(genEvt->m_pdf_info->m_id1);
604 pdfinfo[7] =
static_cast<double>(genEvt->m_pdf_info->m_id2);
605 pdfinfo[6] =
static_cast<double>(genEvt->m_pdf_info->m_pdf_id1);
606 pdfinfo[5] =
static_cast<double>(genEvt->m_pdf_info->m_pdf_id2);
607 pdfinfo[4] = genEvt->m_pdf_info->m_x1;
608 pdfinfo[3] = genEvt->m_pdf_info->m_x2;
609 pdfinfo[2] = genEvt->m_pdf_info->m_scalePDF;
610 pdfinfo[1] = genEvt->m_pdf_info->m_pdf1;
611 pdfinfo[0] = genEvt->m_pdf_info->m_pdf2;
615 const HepMC::GenEvent::vertex_const_iterator endVtx=genEvt->vertices_end();
616 for ( HepMC::GenEvent::vertex_const_iterator
i = genEvt->vertices_begin();
◆ transToPers() [2/2]
Convert transient representation to persistent one.
Copies data members from transient object to an existing persistent one. Needs to be implemented by the developer on the actual converter.
- Parameters
-
transObj | [IN] transient object |
persObj | [IN] persistent object |
log | [IN] output message stream |
Implemented in TPCnvIDContFromIdentifier< TRANS, PERS, CONV >, TPCnvIDCont< TRANS, PERS, CONV >, TPCnvStdVector< TRANS, PERS, CONV >, TPCnvVector< TRANS, PERS, CONV >, TPValVectorCnv< TRANS, PERS, CONV >, TPPolyVectorCnv< TRANS, PERS, CONV >, TPPtrVectorCnv< TRANS, PERS, CONV >, TPConverterConstBase< TRANS, PERS >, T_AtlasHitsVectorCnv< TRANS, PERS, CONV >, and T_AthenaHitsVectorCnv< TRANS, PERS, CONV >.
◆ transToPersUntyped()
Convert transient object representation to persistent.
- Parameters
-
trans | [IN] void* pointer to the transient object |
pers | [OUT] void* pointer to the empty persistent object |
log | [IN] output message stream |
Implements ITPCnvBase.
Definition at line 410 of file TPConverter.h.
414 transToPers (
reinterpret_cast<const TRANS*
> (trans),
415 reinterpret_cast<PERS*
> (pers),
◆ transToPersWithKey()
Convert transient representation to persistent one.
Copies data members from transient object to an existing persistent one. Needs to be implemented by the developer on the actual converter.
- Parameters
-
transObj | [IN] transient object |
persObj | [IN] persistent object |
key | [IN] SG key of object being written. |
log | [IN] output message stream |
Reimplemented in TPConverterWithKeyBase< TRANS, PERS >.
Definition at line 392 of file TPConverter.h.
◆ transToPersWithKeyUntyped()
Convert transient object representation to persistent.
- Parameters
-
trans | [IN] void* pointer to the transient object |
pers | [OUT] void* pointer to the empty persistent object |
key | [IN] SG key of object being written. |
log | [IN] output message stream |
Reimplemented from ITPCnvBase.
Definition at line 432 of file TPConverter.h.
438 reinterpret_cast<PERS*
> (pers),
◆ typeID()
◆ typeIDvalue()
inlined non-virtual version to get the typeID value fast
Definition at line 211 of file TPConverter.h.
◆ virt_createTransFromPStore()
virtual TRANS* TPPolyCnvBase< TRANS , TRANS, PERS >::virt_createTransFromPStore |
( |
unsigned |
index, |
|
|
MsgStream & |
log |
|
) |
| |
|
inlinevirtualinherited |
Internal interface method that is used to invoke the real conversion method (createTransient)
- Parameters
-
index | [IN] index of the persistent object in the storage vector |
log | [IN] output message stream |
- Returns
- Created transient object (by pointer)
Reimplemented from TPAbstractPolyCnvBase< TRANS, TRANS, PERS >.
Definition at line 706 of file TPConverter.h.
◆ virt_createTransFromPStoreWithKey()
virtual TRANS* TPPolyCnvBase< TRANS , TRANS, PERS >::virt_createTransFromPStoreWithKey |
( |
unsigned |
index, |
|
|
const std::string & |
key, |
|
|
MsgStream & |
log |
|
) |
| |
|
inlinevirtualinherited |
Internal interface method that is used to invoke the real conversion method (createTransient)
- Parameters
-
index | [IN] index of the persistent object in the storage vector |
key | [IN] SG key of the object being converted |
log | [IN] output message stream |
- Returns
- Created transient object (by pointer)
Reimplemented from TPAbstractPolyCnvBase< TRANS, TRANS, PERS >.
Definition at line 718 of file TPConverter.h.
◆ virt_toPersistent()
template<class TRANS , class PERS >
Internal interface method that is used to invoke the real conversion method (toPersistent_impl) in the derived converter.
- Parameters
-
trans | [IN] transient object |
log | [IN] output message stream |
- Returns
- TPObjRef TP reference to the persistent representation stored in the storage vector of the top-level persistent object Here toPersistent_impl is invoked with the dynamic cast of the transient type pointer to it's actual type
Reimplemented from TPAbstractPolyCnvBase< TRANS, TRANS, PERS >.
Definition at line 747 of file TPConverter.h.
◆ virt_toPersistentWithKey()
template<class TRANS , class PERS >
Internal interface method that is used to invoke the real conversion method (toPersistent_impl) in the derived converter.
- Parameters
-
trans | [IN] transient object |
key | [IN] SG key of the object being converted. |
log | [IN] output message stream |
- Returns
- TPObjRef TP reference to the persistent representation stored in the storage vector of the top-level persistent object Here toPersistentWithKey_impl is invoked with the dynamic cast of the transient type pointer to it's actual type
Reimplemented from TPAbstractPolyCnvBase< TRANS, TRANS, PERS >.
Definition at line 752 of file TPConverter.h.
◆ wasUsedForReading()
◆ writeGenParticle()
Method to write a persistent GenParticle
object It returns the index of the persistent GenParticle
into the collection of persistent of GenParticles
from the persistent GenEvent
.
Definition at line 921 of file McEventCollectionCnv_p6.cxx.
924 const HepMC::FourVector&
mom =
p.m_momentum;
925 const double ene =
mom.e();
926 const double m2 =
mom.m2();
929 const bool useP2M2 = !(
m2 > 0) &&
931 !(std::abs(
m2) < 2.0*DBL_EPSILON*ene*ene);
933 const short recoMethod = ( !useP2M2
947 p.m_polarization.theta(),
948 p.m_polarization.phi(),
949 p.m_production_vertex
950 ?
p.m_production_vertex->barcode()
953 ?
p.m_end_vertex->barcode()
◆ writeGenVertex()
Method to write a persistent GenVertex
object.
The persistent vertex is added to the persistent is added to the persistent GenEvent
.
Definition at line 840 of file McEventCollectionCnv_p6.cxx.
843 const HepMC::FourVector& position = vtx.m_position;
850 vtx.m_weights.m_weights.begin(),
851 vtx.m_weights.m_weights.end(),
856 const std::vector<HepMC::GenParticlePtr>::const_iterator endInVtx = vtx.m_particles_in.end();
858 for ( std::vector<HepMC::GenParticlePtr>::const_iterator
p = vtx.m_particles_in.begin();
861 if ( 0 == (*p)->production_vertex() ) {
866 const std::vector<HepMC::GenParticlePtr>::const_iterator endOutVtx = vtx.m_particles_out.end();
868 for ( std::vector<HepMC::GenParticlePtr>::const_iterator
p = vtx.m_particles_out.begin();
◆ m_curRecLevel
count recursive invocations, to detect recursion
Definition at line 582 of file TPConverter.h.
◆ m_hepMCWeightSvc
◆ m_ignoreRecursion
if true, do not throw errors in case of recursion.
Definition at line 588 of file TPConverter.h.
◆ m_isPileup
bool McEventCollectionCnv_p6::m_isPileup |
|
protected |
◆ m_pStorage
the address of the storage vector for persistent representations
Definition at line 579 of file TPConverter.h.
◆ m_pStorageTID
TP Ref typeID for the persistent objects this converter is creating.
Definition at line 292 of file TPConverter.h.
◆ m_pStorageTIDvalue
m_pStorageTID converted to integer value
Definition at line 295 of file TPConverter.h.
◆ m_recursive
if true, work in recursion-safe way (slower)
Definition at line 585 of file TPConverter.h.
◆ m_topConverter
top level converter that owns this elemental TP converter it also holds the storage object
Definition at line 299 of file TPConverter.h.
◆ m_topConverterRuntime
top level converter "owning" this TP converter at runtime (different from m_topConverter in case the top-level converter and object have extensions)
Definition at line 302 of file TPConverter.h.
◆ m_wasUsedForReading
flag set when using this converter for reading triggers search for a new converter before writing, to prevent possible use of old version
Definition at line 306 of file TPConverter.h.
The documentation for this class was generated from the following files:
void reserve(size_type n)
Attempt to preallocate enough memory for a specified number of elements.
HepMC::GenVertex * GenVertexPtr
double m_alphaQED
value of the QED coupling.
JetConstituentVector::iterator iterator
virtual const TPObjRef::typeID_t & typeID() const =0
Return TP typeID for persistent objects produced by this converter.
bool suggest_barcode(T &p, int i)
ITPConverter * converterForType(const std::type_info &info) const
Find and return a TP converter for a given C++ type info.
std::vector< PERS > * m_pStorage
the address of the storage vector for persistent representations
int old_vertex_status_from_new(const int newStatus)
Get vertex status in the old scheme from the status in the new scheme.
std::vector< GenEvent_p6 > m_genEvents
The vector of persistent representation of GenEvents.
Const iterator class for DataVector/DataList.
int nVertices(const Polygon &p)
TopLevelTPCnvBase * m_topConverter
top level converter that owns this elemental TP converter it also holds the storage object
TPObjRef toPersistentWithKey_impl(const TRANS *trans, const std::string &key, MsgStream &log)
Convert transient object to persistent representation.
int m_lengthUnit
HepMC::Units::LengthUnit casted to int.
int m_mpi
Number of multi particle interactions.
@ VIEW_ELEMENTS
this data object is a view, it does not own its elmts
unsigned value() const
Returns the type ID as an integer.
virtual TRANS * createTransient(const PERS *persObj, MsgStream &log)
Create transient representation of a persistent object.
std::vector< GenParticle_p6 > m_genParticles
The vector of persistent representation of GenParticles.
GenParticle * GenParticlePtr
double m_filterWeight
value of the extra weight introduced during reweighting events in filter and value of some variables ...
int m_momentumUnit
HepMC::Units::MomentumUnit casted to int.
HepMC::PdfInfo * GenPdfInfoPtr
unsigned int m_particlesBegin
Begin position in the vector of particles composing this event.
ITPConverter * converterForRef(const TPObjRef &ref) const
Find and return a TP converter for persistent type referenced by ref.
virtual TRANS * createTransientWithKey(const PERS *persObj, const std::string &key, MsgStream &log)
Create transient representation of a persistent object, with SG key.
std::vector< GenVertex_p6 > m_genVertices
The vector of persistent representation of GenVertices.
bool m_ignoreRecursion
if true, do not throw errors in case of recursion.
virtual TopLevelTPCnvBase * topConverter()
return the top-level converter for this elemental TP converter
int m_signalProcessId
Id of the processus being generated.
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.
int m_signalProcessVtx
Barcode of the GenVertex holding the signal process.
HepMC::GenParticlePtr getGenParticle()
unsigned int m_verticesEnd
End position in the vector of vertices composing this event.
virtual void transToPers(const TRANS *transObj, PERS *persObj, MsgStream &log)=0
Convert transient representation to persistent one.
bool m_wasUsedForReading
flag set when using this converter for reading triggers search for a new converter before writing,...
std::vector< int > m_e_attribute_id
We define those exactly as in the HepMC3::GenEvent.
void set_signal_process_vertex(GenEvent *e, T v)
void writeGenVertex(const HepMC::GenVertex &vtx, McEventCollection_p6 &persEvt) const
Method to write a persistent GenVertex object.
std::vector< double > m_crossSection
Container of HepMC::GenCrossSection object translated to vector<double>
CNV * converterForType(CNV *cnv, const std::type_info &t_info, MsgStream &log) const
Find converter for a given C++ type ID, that is or ihnerits from CNV type.
GenParticle * barcode_to_particle(const GenEvent *e, int id)
GenEvtPool_t evt
an arena of HepMC::GenEvent for efficient object instantiation
int old_particle_status_from_new(const int newStatus)
Get particle status in the old scheme from the status in the new scheme.
GenVertexPtr newGenVertexPtr(const HepMC::FourVector &pos=HepMC::FourVector(0.0, 0.0, 0.0, 0.0), const int i=0)
TPObjRef::typeID_t m_pStorageTID
TP Ref typeID for the persistent objects this converter is creating.
int new_vertex_status_from_old(const int oldStatus, const int barcode)
Get vertex status in the new scheme from the barcode and status in the old scheme.
unsigned int m_particlesEnd
End position in the vector of particles composing this event.
virtual void persToTransWithKey(const PERS *persObj, TRANS *transObj, const std::string &, MsgStream &log)
Convert persistent representation to transient one.
std::vector< long int > m_randomStates
Container of random numbers for the generator states.
GenVtxPool_t vtx
an arena of HepMC::GenVertex for efficient object instantiation
TopLevelTPCnvBase * m_topConverterRuntime
top level converter "owning" this TP converter at runtime (different from m_topConverter in case the ...
std::unordered_map< HepMC::GenParticlePtr, int > ParticlesMap_t
int m_barcode
barcode of this vertex (uniquely identifying a vertex within an event)
void clear()
Erase all the elements in the collection.
CNV * converterForRef(CNV *cnv, const TPObjRef &ref, MsgStream &log) const
Find converter for a TP type ID (passed in a TP Ref), that is or ihnerits from CNV type.
ServiceHandle< IHepMCWeightSvc > m_hepMCWeightSvc
int m_beamParticle1
Barcode of the beam particle 1.
std::vector< int > m_particlesOut
collection of barcodes of out-going particles connected to this vertex
double m_eventScale
Energy scale.
std::vector< float > m_weights
Weights for this vertex.
int m_eventNbr
Event number.
RpcSectorLogicContainer_p1 PERS
value_type push_back(value_type pElem)
Add an element to the end of the collection.
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...
virtual void transToPersWithKey(const TRANS *transObj, PERS *persObj, const std::string &, MsgStream &log)
Convert transient representation to persistent one.
virtual void initPrivateConverters(TopLevelTPCnvBase *)
bool m_recursive
if true, work in recursion-safe way (slower)
T_AthenaPoolTPCnvBase< McEventCollection, McEventCollection_p6 > Base_t
const_iterator end() const noexcept
Return a const_iterator pointing past the end of the collection.
GenParticlePtr newGenParticlePtr(const HepMC::FourVector &mom=HepMC::FourVector(0.0, 0.0, 0.0, 0.0), int pid=0, int status=0)
std::vector< std::string > m_r_attribute_name
Attribute name for run info.
unsigned m_pStorageTIDvalue
m_pStorageTID converted to integer value
const boost::regex ref(r_ef)
std::vector< std::string > m_e_attribute_name
Attribute name for event.
virtual void persToTrans(const PERS *persObj, TRANS *transObj, MsgStream &log)=0
Convert persistent representation to transient one.
unsigned int m_verticesBegin
Begin position in the vector of vertices composing this event.
std::vector< double > m_weights
Weights for this event.
HepMC::GenEvent * getGenEvent()
GenVertex * barcode_to_vertex(const GenEvent *e, int id)
std::vector< std::string > m_e_attribute_string
Attribute serialized as string for event.
std::vector< int > m_particlesIn
collection of barcodes of in-going particles connected to this vertex
std::vector< float > m_heavyIon
Container of HepMC::HeavyIon object translated to vector<double>
int m_id
Id of this vertex.
int m_beamParticle2
Barcode of the beam particle 2.
virtual void converterNotFound(const std::type_info &converterType, ITPConverter *c, const std::string &typeName, MsgStream &log) const
method called when the right TP converter was not found during writing
unsigned typeID() const
returns the type ID (as integer) of the referenced object
double m_alphaQCD
value of the QCD coupling.
HepMC::GenVertexPtr getGenVertex()
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.
size_type size() const noexcept
Returns the number of elements in the collection.
std::vector< std::string > m_r_attribute_string
Attribute serialized as string for run info.
std::vector< double > m_pdfinfo
Container of HepMC::PdfInfo object translated to vector<double> for simplicity.
int m_curRecLevel
count recursive invocations, to detect recursion
const_iterator begin() const noexcept
Return a const_iterator pointing at the beginning of the collection.
GenPartPool_t part
an arena of HepMC::GenParticle for efficient object instantiation
int new_particle_status_from_old(const int oldStatus, const int barcode)
Get particle status in the new scheme from the barcode and status in the old scheme.
GenVertex * signal_process_vertex(const GenEvent *e)