8#include <tracking/v0Finding/fitter/RaveV0VertexFitter.h>
10#include <framework/logging/Logger.h>
11#include <framework/utilities/IOIntercept.h>
12#include <tracking/v0Finding/dataobjects/VertexVector.h>
14#include <genfit/Track.h>
15#include <genfit/GFRaveVertexFactory.h>
16#include <genfit/GFRaveVertex.h>
23 genfit::GFRaveVertex& vertex)
26 std::vector<genfit::Track*> trackPair {&trackPlus, &trackMinus};
33 genfit::GFRaveVertexFactory vertexFactory;
34 vertexFactory.findVertices(&vertexVector.
v, trackPair);
36 B2ERROR(
"Exception during vertex fit.");
40 if (vertexVector.
size() != 1) {
41 B2DEBUG(21,
"Vertex fit failed. Size of vertexVector not 1, but: " << vertexVector.
size());
45 if ((*vertexVector[0]).getNTracks() != 2) {
46 B2DEBUG(20,
"Wrong number of tracks in vertex.");
50 vertex = *vertexVector[0];
bool start()
Start intercepting the output.
Capture stdout and stderr and convert into log messages.
@ c_Debug
Debug: for code development.
bool fit(genfit::Track &trackPlus, genfit::Track &trackMinus, const int pdgTrackPlus, const int pdgTrackMinus, genfit::GFRaveVertex &vertex) override
Fit the V0 vertex. The PDG codes of the daughters are not used by Rave.
Need this container for exception-safe cleanup, GFRave's interface isn't exception-safe as is.
std::vector< genfit::GFRaveVertex * > v
Fitted vertices.
size_t size() const noexcept
Return size of vertex vector.
Abstract base class for different kinds of events.