16 ATH_CHECK( m_trackTruthOriginTool.retrieve() );
17 return StatusCode::SUCCESS;
23 std::vector< const xAOD::TruthParticle* > selected;
26 if(
accept( truth ) ) selected.push_back( truth );
31 "\t Size after selection: " << selected.size() );
36 return StatusCode::SUCCESS;
43 if( not m_truthTool->accept( truth ) )
return false;
46 if (m_maxEta!=-9999. and (
eta(*truth)) > m_maxEta )
return false;
47 if (m_minEta!=-9999. and (
eta(*truth)) < m_minEta )
return false;
48 if (m_minPhi!=-9999. and (
phi(*truth)) < m_minPhi )
return false;
49 if (m_maxPhi!=-9999. and (
phi(*truth)) > m_maxPhi )
return false;
50 if (m_minD0!=-9999. and (
d0(*truth)) < m_minD0 )
return false;
51 if (m_maxD0!=-9999. and (
d0(*truth)) > m_maxD0 )
return false;
52 if (m_minZ0!=-9999. and (
z0(*truth)) < m_minZ0 )
return false;
53 if (m_maxZ0!=-9999. and (
z0(*truth)) > m_maxZ0 )
return false;
54 if (m_minQoPT!=-9999. and (
qOverPT(*truth)) < m_minQoPT )
return false;
55 if (m_maxQoPT!=-9999. and (
qOverPT(*truth)) > m_maxQoPT )
return false;
56 if (m_minAbsEta!=-9999. and std::fabs(
eta(*truth)) < m_minAbsEta )
return false;
57 if (m_minAbsPhi!=-9999. and std::fabs(
phi(*truth)) < m_minAbsPhi )
return false;
58 if (m_maxAbsPhi!=-9999. and std::fabs(
phi(*truth)) > m_maxAbsPhi )
return false;
59 if (m_minAbsD0!=-9999. and std::fabs(
d0(*truth)) < m_minAbsD0 )
return false;
60 if (m_maxAbsD0!=-9999. and std::fabs(
d0(*truth)) > m_maxAbsD0 )
return false;
61 if (m_minAbsZ0!=-9999. and std::fabs(
z0(*truth)) < m_minAbsZ0 )
return false;
62 if (m_maxAbsZ0!=-9999. and std::fabs(
z0(*truth)) > m_maxAbsZ0 )
return false;
63 if (m_minAbsQoPT!=-9999. and std::fabs(
qOverPT(*truth)) < m_minAbsQoPT )
return false;
64 if (m_maxAbsQoPT!=-9999. and std::fabs(
qOverPT(*truth)) > m_maxAbsQoPT )
return false;
65 if (m_isHadron and not
isHadron(*truth) )
return false;
66 if (m_isPion and not
isPion(*truth) )
return false;
67 bool isFromBdecay = m_trackTruthOriginTool->isFrom( truth, MC::BQUARK );
68 bool isFromCdecay = m_trackTruthOriginTool->isFrom( truth, MC::CQUARK );
69 bool isFromHeavy = isFromBdecay or isFromCdecay;
70 if( m_isFromB and not isFromBdecay )
return false;
71 if( m_isFromC and not isFromCdecay )
return false;
72 if( m_isFromHeavyFlav and not isFromHeavy )
return false;
73 if( m_isFromLightFlav and isFromHeavy )
return false;