23 , m_vertexTypesVector(0)
25 , m_doVertexRangeCheck(false)
26 , m_vertexTypeRangeLow(0)
27 , m_vertexTypeRangeHigh(0)
28 , m_vertexTypeRangeLength(0)
29 , m_passProcessCategory(0)
31 , m_parentPdgCodesVector(0)
57 if ( m_vertexTypeRangeHigh < m_vertexTypeRangeLow) {
58 ATH_MSG_ERROR(
"The given parameter VertexTypeRangeLow is bigger than VertexTypeRangeHigh. ABORT");
59 return StatusCode::FAILURE;
62 m_vertexTypeRangeLength =
unsigned(m_vertexTypeRangeHigh - m_vertexTypeRangeLow) + 1;
64 m_doVertexRangeCheck = m_vertexTypeRangeLow && m_vertexTypeRangeHigh;
67 m_parentPdgCodes.insert( m_parentPdgCodesVector.begin(), m_parentPdgCodesVector.end());
70 m_vertexTypes.insert( m_vertexTypesVector.begin(), m_vertexTypesVector.end());
72 return StatusCode::SUCCESS;
81 (m_parentPdgCodes.size() && m_parentPdgCodes.find(ti.
parentPdgCode())==m_parentPdgCodes.end()) ||
82 (!m_bsmParent && !m_parentPdgCodes.size()) ) ){
90 if ((processCategory!=m_passProcessCategory && m_passProcessCategory!=0) &&
91 (m_doVertexRangeCheck || m_vertexTypes.size()) ){
94 bool vtxTypeRangePassed = m_doVertexRangeCheck && (
unsigned(vxtype-m_vertexTypeRangeLow) < m_vertexTypeRangeLength );
97 if ( (!vtxTypeRangePassed) && (m_vertexTypes.find(vxtype)==m_vertexTypes.end()) ) {