#include <Thin_vtxTrk.h>
Definition at line 29 of file Thin_vtxTrk.h.
◆ Thin_vtxTrk()
DerivationFramework::Thin_vtxTrk::Thin_vtxTrk |
( |
const std::string & |
t, |
|
|
const std::string & |
n, |
|
|
const IInterface * |
p |
|
) |
| |
◆ ~Thin_vtxTrk()
DerivationFramework::Thin_vtxTrk::~Thin_vtxTrk |
( |
| ) |
|
|
default |
◆ doThinning()
StatusCode DerivationFramework::Thin_vtxTrk::doThinning |
( |
| ) |
const |
|
virtual |
Definition at line 88 of file Thin_vtxTrk.cxx.
90 const EventContext& ctx = Gaudi::Hive::currentContext();
95 unsigned int nTracks = importedTrackParticles->size();
96 if (nTracks==0)
return StatusCode::SUCCESS;
99 std::vector<bool> trackMask(nTracks,
false);
104 std::unordered_map<std::string, SG::ReadDecorHandle<xAOD::VertexContainer, Char_t>> handles;
107 auto it = handles.emplace(std::piecewise_construct, std::forward_as_tuple(
key.key()), std::forward_as_tuple(
key, ctx));
108 if(!(*
it.first).second.isPresent())
return StatusCode::FAILURE;
114 std::vector<bool> vtxMask(vertexContainer->size(),
false);
118 for(
auto vtxItr = vertexContainer->begin(); vtxItr!=vertexContainer->end(); ++vtxItr, ++
k) {
124 for(std::vector<std::string>::const_iterator flagItr =
m_passFlags.begin(); flagItr!=
m_passFlags.end(); ++flagItr) {
125 std::string lookupstr =
name.key() +
'.' + (*flagItr);
126 const auto& handle = handles.at(lookupstr);
127 if(handle(*vtx) != 0) {
142 TLorentzVector centreCandidate;
147 for(
uint i=0;
i<nTracks; ++
i) {
157 for(
uint i=0;
i<nTracks; ++
i) {
173 vertexContainer.keep(vtxMask);
182 importedTrackParticles.keep(trackMask);
185 return StatusCode::SUCCESS;
◆ finalize()
StatusCode DerivationFramework::Thin_vtxTrk::finalize |
( |
| ) |
|
◆ initialize()
StatusCode DerivationFramework::Thin_vtxTrk::initialize |
( |
| ) |
|
Definition at line 40 of file Thin_vtxTrk.cxx.
48 ATH_MSG_INFO(
"IgnoreFlags is set, all vertices in the container will be kept");
54 return StatusCode::FAILURE;
57 ATH_MSG_INFO(
"Vertices must pass the \"" << *itr <<
"\" selection");
75 return StatusCode::SUCCESS;
◆ m_acceptanceR
double DerivationFramework::Thin_vtxTrk::m_acceptanceR |
|
private |
◆ m_noFlags
bool DerivationFramework::Thin_vtxTrk::m_noFlags |
|
private |
◆ m_npass
std::atomic<unsigned int> DerivationFramework::Thin_vtxTrk::m_npass |
|
private |
◆ m_ntot
std::atomic<unsigned int> DerivationFramework::Thin_vtxTrk::m_ntot |
|
mutableprivate |
◆ m_nVtxPass
std::atomic<unsigned int> DerivationFramework::Thin_vtxTrk::m_nVtxPass |
|
private |
◆ m_nVtxTot
std::atomic<unsigned int> DerivationFramework::Thin_vtxTrk::m_nVtxTot |
|
mutableprivate |
◆ m_passArray
◆ m_passFlags
std::vector<std::string> DerivationFramework::Thin_vtxTrk::m_passFlags |
|
private |
◆ m_streamName
StringProperty DerivationFramework::Thin_vtxTrk::m_streamName { this, "StreamName", "", "Name of the stream being thinned" } |
|
private |
◆ m_thinTracks
bool DerivationFramework::Thin_vtxTrk::m_thinTracks |
|
private |
◆ m_trackParticleContainerName
◆ m_vertexContainerName
The documentation for this class was generated from the following files:
virtual FourMom_t p4() const override final
The full 4-momentum of the particle.
Class describing a TrackParticle.