ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
PhysicsAnalysis
TruthParticleID
McParticleEvent
src
TruthParticleContainer.cxx
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
3
*/
4
6
// TruthParticleContainer.cxx
7
// Implementation file for class TruthParticleContainer
8
// Author: S.Binet<binet@cern.ch>
10
11
12
// STL includes
13
#include <iostream>
14
15
// McParticleEvent includes
16
#include "
McParticleEvent/TruthParticleContainer.h
"
17
18
#include "
GeneratorObjects/HepMcParticleLink.h
"
21
22
TruthParticleContainer::TruthParticleContainer
() :
23
DataVector
<
TruthParticle
>(
SG
::OWN_ELEMENTS ),
24
m_genEvent
( ),
25
m_etIsolations
( ),
26
m_particles
( )
27
{}
28
29
/*
30
TruthParticleContainer::TruthParticleContainer( const TruthParticleContainer& rhs ) :
31
DataVector<I4Momentum> ( rhs ),
32
DataVector<INavigable4Momentum>( rhs ),
33
DataVector<TruthParticle>( rhs ),
34
m_genEvent ( rhs.m_genEvent ),
35
m_etIsolations( rhs.m_etIsolations ),
36
m_particles ( rhs.m_particles )
37
{}
38
39
TruthParticleContainer& TruthParticleContainer::operator=( const TruthParticleContainer& rhs )
40
{
41
if ( this != &rhs ) {
42
DataVector<TruthParticle>::operator=(rhs);
43
m_genEvent = rhs.m_genEvent;
44
m_etIsolations = rhs.m_etIsolations;
45
m_particles = rhs.m_particles;
46
}
47
48
return *this;
49
}
50
*/
51
52
TruthParticleContainer::TruthParticleContainer
(
const
SG::OwnershipPolicy
own ) :
53
DataVector
<
TruthParticle
>(own),
54
m_genEvent
( ),
55
m_etIsolations
( ),
56
m_particles
( )
57
{}
58
62
63
const
TruthParticle
*
64
TruthParticleContainer::truthParticle
(
const
int
barcode,std::size_t
genEventIdx
)
const
65
{
66
HepMcParticleLink
mcLink(barcode,
genEventIdx
,
HepMcParticleLink::IS_POSITION
,
HepMcParticleLink::IS_BARCODE
);
// FIXME barcode-based
67
Map_t::const_iterator itr =
m_particles
.find(mcLink.
compress
());
68
if
( itr !=
m_particles
.end() ) {
69
return
itr->second;
70
}
71
return
nullptr
;
72
}
73
74
std::size_t
75
TruthParticleContainer::truthParticleIdx
(
const
int
barcode, std::size_t
genEventIdx
)
const
76
{
77
HepMcParticleLink
mcLink(barcode,
genEventIdx
,
HepMcParticleLink::IS_POSITION
,
HepMcParticleLink::IS_BARCODE
);
// FIXME barcode-based
78
Map_t::const_iterator itr =
m_particles
.find(mcLink.
compress
());
79
if
( itr !=
m_particles
.end() ) {
80
for
( std::size_t idx = 0; idx != this->
size
(); ++idx ) {
81
if
( this->
operator
[](idx) == itr->second ) {
82
return
idx;
83
}
84
}
85
}
86
return
NoIdx
;
87
}
HepMcParticleLink.h
TruthParticleContainer.h
DataVector< TruthParticle >::DataVector
DataVector(SG::OwnershipPolicy ownPolicy=SG::OWN_ELEMENTS, SG::IndexTrackingPolicy trackIndices=SG::DEFAULT_TRACK_INDICES)
DataVector< TruthParticle >::size
size_type size() const noexcept
HepMcParticleLink
a link optimized in size for a GenParticle in a McEventCollection
Definition
HepMcParticleLink.h:72
HepMcParticleLink::compress
barcode_type compress() const
Hash the 32 bit barcode and 16 bit eventindex into a 32bit int.
HepMcParticleLink::IS_POSITION
@ IS_POSITION
Definition
HepMcParticleLink.h:80
HepMcParticleLink::IS_BARCODE
@ IS_BARCODE
Definition
HepMcParticleLink.h:85
TruthParticleContainer::m_etIsolations
ElementLink< TruthEtIsolationsContainer > m_etIsolations
Persistent pointer to the TruthEtIsolations container, holding Et isolations for TruthParticle or Hep...
Definition
PhysicsAnalysis/TruthParticleID/McParticleEvent/McParticleEvent/TruthParticleContainer.h:200
TruthParticleContainer::m_genEvent
ElementLink< McEventCollection > m_genEvent
Persistent pointer to the HepMC::GenEvent we are proxying.
Definition
PhysicsAnalysis/TruthParticleID/McParticleEvent/McParticleEvent/TruthParticleContainer.h:193
TruthParticleContainer::m_particles
Map_t m_particles
Dictionary to ease the extraction of a TruthParticle (contained by this collection) from the HepMC::G...
Definition
PhysicsAnalysis/TruthParticleID/McParticleEvent/McParticleEvent/TruthParticleContainer.h:205
TruthParticleContainer::genEventIdx
std::size_t genEventIdx() const
Retrieve the index (within a McEventCollection) of the HepMC::GenEvent this TruthParticleContainer is...
Definition
PhysicsAnalysis/TruthParticleID/McParticleEvent/McParticleEvent/TruthParticleContainer.h:243
TruthParticleContainer::truthParticle
const TruthParticle * truthParticle(const int barcode, std::size_t genEventIdx=0) const
return a const pointer to an TruthParticle given the barcode of the HepMC::GenParticle it is wrapping
Definition
TruthParticleContainer.cxx:64
TruthParticleContainer::truthParticleIdx
std::size_t truthParticleIdx(const int barcode, std::size_t genEventIdx=0) const
return the index to an TruthParticle given the barcode of the HepMC::GenParticle it is wrapping retur...
Definition
TruthParticleContainer.cxx:75
TruthParticleContainer::NoIdx
static const std::size_t NoIdx
Definition
PhysicsAnalysis/TruthParticleID/McParticleEvent/McParticleEvent/TruthParticleContainer.h:51
TruthParticleContainer::TruthParticleContainer
TruthParticleContainer()
Default constructor:
Definition
TruthParticleContainer.cxx:22
TruthParticle
(HepMC) Monte Carlo particle.
Definition
PhysicsAnalysis/TruthParticleID/McParticleEvent/McParticleEvent/TruthParticle.h:58
SG
Forward declaration.
Definition
CaloCellPacker_400_500.h:32
SG::OwnershipPolicy
OwnershipPolicy
Definition
OwnershipPolicy.h:16
Generated on
for ATLAS Offline Software by
1.17.0