22 const IInterface*
p) :
24 m_v0Tools(
"Trk::V0Tools"),
25 m_fourMuonTool(
"DerivationFramework::FourMuonTool",this),
26 m_pvRefitter(
"Analysis::PrimaryVertexRefitter",this)
28 declareInterface<DerivationFramework::IAugmentationTool>(
this);
61 return StatusCode::SUCCESS;
70 return StatusCode::SUCCESS;
82 bool acceptEvent =
false;
86 if( !
m_fourMuonTool->performSearch(pairContainer, pairAuxContainer, quadContainer, quadAuxContainer, acceptEvent).isSuccess() ) {
88 return StatusCode::FAILURE;
110 return StatusCode::FAILURE;
121 refPvContainer->setStore(refPvAuxContainer);
127 if(quadContainer->
size() >0){
130 ATH_MSG_FATAL(
"refitting failed - check the vertices you passed");
131 return StatusCode::FAILURE;
134 if(pairContainer->
size()>0) {
137 ATH_MSG_FATAL(
"refitting failed - check the vertices you passed");
138 return StatusCode::FAILURE;
142 if(quadContainer->
size() >0){
146 if(pairContainer->
size() >0)
157 std::vector<double> muonPairMasses = std::vector<double>(2, 105.658);
158 std::vector<double> muonQuadMasses = std::vector<double>(4, 105.658);
168 for(; pairItr!=pairContainer->
end(); ++pairItr) {
178 double massErr =
m_v0Tools->invariantMassError(pairHelper.
vtx(), muonPairMasses);
194 for(; quadItr!=quadContainer->
end(); ++quadItr) {
204 double massErr =
m_v0Tools->invariantMassError(quadHelper.
vtx(), muonQuadMasses);
238 return StatusCode::SUCCESS;
259 const float errConst = -9999999;