ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Trigger
EFTracking
FPGATrackSim
FPGATrackSimSGInput
src
FPGATrackSimInputUtils.cxx
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
#include "
FPGATrackSimSGInput/FPGATrackSimInputUtils.h
"
6
#include "
AtlasHepMC/GenVertex.h
"
7
#include "
AtlasHepMC/GenParticle.h
"
8
namespace
FPGATrackSimInputUtils
{
9
10
const
ParentBitmask
construct_truth_bitmap
(
HepMC::ConstGenParticlePtr
particle)
11
{
12
ParentBitmask
result;
13
result.reset();
14
typedef
std::pair<HepMC::ConstGenParticlePtr, unsigned int> Parent;
15
std::vector<Parent> parents;
16
parents.push_back(Parent(particle, 0));
17
while
(!parents.empty()) {
18
HepMC::ConstGenParticlePtr
p = parents.back().first;
19
const
unsigned
int
level = parents.back().second;
20
if
(std::abs(p->pdg_id()) == 15) { result.set(
TAU_PARENT_BIT
, 1); }
21
if
(std::abs(p->pdg_id()) == 5) { result.set(
B_PARENT_BIT
, 1); }
22
if
(std::abs(p->pdg_id()) == 211) { result.set(
PION_PARENT_BIT
, 1); }
23
if
(std::abs(p->pdg_id()) == 211 && level <= 1) { result.set(
PION_IMMEDIATE_PARENT_BIT
, 1); }
24
if
(result.count() ==
NBITS
) {
break
; }
25
parents.pop_back();
26
if
(!(p->production_vertex())) {
continue
; }
27
for
(
HepMC::ConstGenParticlePtr
i: p->production_vertex()->particles_in() ) {
28
parents.push_back(Parent(i, level + 1));
29
}
30
}
31
return
result;
32
}
33
34
35
}
FPGATrackSimInputUtils.h
GenParticle.h
GenVertex.h
FPGATrackSimInputUtils
Definition
FPGATrackSimInputUtils.h:13
FPGATrackSimInputUtils::NBITS
@ NBITS
Definition
FPGATrackSimInputUtils.h:15
FPGATrackSimInputUtils::B_PARENT_BIT
@ B_PARENT_BIT
Definition
FPGATrackSimInputUtils.h:15
FPGATrackSimInputUtils::PION_IMMEDIATE_PARENT_BIT
@ PION_IMMEDIATE_PARENT_BIT
Definition
FPGATrackSimInputUtils.h:15
FPGATrackSimInputUtils::TAU_PARENT_BIT
@ TAU_PARENT_BIT
Definition
FPGATrackSimInputUtils.h:15
FPGATrackSimInputUtils::PION_PARENT_BIT
@ PION_PARENT_BIT
Definition
FPGATrackSimInputUtils.h:15
FPGATrackSimInputUtils::construct_truth_bitmap
const ParentBitmask construct_truth_bitmap(HepMC::ConstGenParticlePtr p)
Definition
FPGATrackSimInputUtils.cxx:10
FPGATrackSimInputUtils::ParentBitmask
std::bitset< NBITS > ParentBitmask
Definition
FPGATrackSimInputUtils.h:16
HepMC::ConstGenParticlePtr
HepMC3::ConstGenParticlePtr ConstGenParticlePtr
Definition
GenParticle.h:20
Generated on
for ATLAS Offline Software by
1.17.0