14#include "CLHEP/Units/SystemOfUnits.h"
28 declareInterface<ITrackTruthClassifier>(
this);
46 return StatusCode::SUCCESS;
51 return StatusCode::SUCCESS;
56 const std::vector<HepMC::ConstGenParticlePtr>* )
const {
76 if (genParticle->production_vertex()) {
77 HepMC::FourVector startVertex = genParticle->production_vertex()->position();
83 if (genParticle->end_vertex() ==
nullptr) {
86 HepMC::FourVector endVertex = genParticle->end_vertex()->position();
89 primary=
true;
else truncated =
true;
95 if (genParticle->end_vertex() ==
nullptr) {
98 HepMC::FourVector endVertex = genParticle->end_vertex()->position();
110 ATH_MSG_DEBUG (
"Could not classify this particle: " << genParticle );
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T, V, H > &t)
This defines the McEventCollection, which is really just an ObjectVector of McEvent objectsFile: Gene...
PrimaryTruthClassifier(const std::string &type, const std::string &name, const IInterface *parent)
virtual StatusCode finalize()
float m_minREndPrimary
If track has end vertex, this is min R of end vertex to be considered primary.
float m_minZEndPrimary
If track has end vertex, this is min Z of end vertex to be considered primary.
virtual StatusCode initialize()
initialize
float m_maxRStartPrimary
Max R of start vertex to be considered primary.
virtual void initClassification(const McEventCollection &, const std::vector< HepMC::ConstGenParticlePtr > *) const
explain
float m_maxZStartSecondary
float m_maxRStartSecondary
float m_maxZStartPrimary
Max Z of start vertex to be considered primary.
virtual unsigned int classify(HepMC::ConstGenParticlePtr) const
const GenParticle * ConstGenParticlePtr
@ OutsideClassification
providing some well-defined error condition