Skip to content
Snippets Groups Projects

Multi adaptive vertex fitter

Merged Bastian Schlag requested to merge MultiAdaptiveVertexFitter into master
1 file
+ 16
14
Compare changes
  • Side-by-side
  • Inline
@@ -81,7 +81,8 @@ Acts::IterativeVertexFinder<BField, InputTrack, Propagator_t>::find(
VertexingStatus status
= seedFinder.find(perigeeList, seedState, propagator);
if (status == VertexingStatus::SUCCESS) {
seedVertex = seedState.vertexCollection[0];
// current seed is last element in collection
seedVertex = seedState.vertexCollection.back();
if (debugMode) {
Vector3D seedPos = seedVertex.position();
std::cout << "No constraint. Seed found at position: (" << seedPos[eX]
@@ -104,10 +105,15 @@ Acts::IterativeVertexFinder<BField, InputTrack, Propagator_t>::find(
std::vector<InputTrack> perigeesToFit;
std::vector<InputTrack> perigeesToFitSplitVertex;
// Fill vector with tracks to fit: perigeesToFit or perigeesToFitSplitVertex
// Fill vector with tracks to fit, only compatible with seed:
fillPerigeesToFit(
perigeeList, seedVertex, perigeesToFit, perigeesToFitSplitVertex);
if(debugMode){
std::cout << "Perigees use for fit: " << perigeesToFit.size() << std::endl;
}
/// Begin vertex fit
Vertex<InputTrack> currentVertex;
Vertex<InputTrack> currentSplitVertex;
@@ -124,8 +130,10 @@ Acts::IterativeVertexFinder<BField, InputTrack, Propagator_t>::find(
}
/// End vertex fit
std::cout << "vertex position: " << std::endl;
std::cout << currentVertex.position() << std::endl;
if(debugMode){
std::cout << "After vertex fit: Position: " << std::endl;
std::cout << currentVertex.position() << std::endl;
}
// Number degrees of freedom
double ndf = currentVertex.fitQuality().second;
@@ -137,15 +145,14 @@ Acts::IterativeVertexFinder<BField, InputTrack, Propagator_t>::find(
int nTracksAtVertex = currentVertex.tracks().size();
int nTracksAtSplitVertex = currentSplitVertex.tracks().size();
std::cout << ndf << " " << ndfSplitVertex << " " << nTracksAtVertex << " "
<< nTracksAtSplitVertex << std::endl;
bool isGoodVertex
= ((!m_cfg.useBeamConstraint && ndf > 0 && nTracksAtVertex >= 2)
|| (m_cfg.useBeamConstraint && ndf > 3 && nTracksAtVertex >= 2));
std::cout << "isGoodVertex: " << isGoodVertex << std::endl;
if(debugMode){
std::cout << "isGoodVertex: " << isGoodVertex << std::endl;
}
if (!isGoodVertex) {
removeAllTracks(perigeesToFit, seedTracks);
} else {
@@ -461,11 +468,6 @@ Acts::IterativeVertexFinder<BField, InputTrack, Propagator_t>::
}
}
}
if (debugMode) {
std::cout << "number of tracks to fit (size = count): "
<< perigeesToFitOut.size() << ", " << count << std::endl;
}
/// End taking only tracks compatible with current seed
}
template <typename BField, typename InputTrack, typename Propagator_t>
Loading