Dear experts,
I have tried to check performance of the vertex reconstruction, assuming perfect pi/K/p ID for my PFO objects, updating their mass and energy parameters accordingly.
Looking at the vertices with low momentum protons, I have noticed, that after updating mass and the energy of the PFOs, number of reconstructed vertices has reduced significantly! (see number of entries in red vs black histograms)

Debugging this issue, I found out that the algorithm which is responsible for creating secondary vertices uses a cut based on the PFO energy to accept/reject pairs of tracks to form a vertex:
|
double mass = (v1+v2).M(); |
|
|
|
// 110216 do not accept tracks with opposite direction |
|
// if(v1.Vect().Dot(v2.Vect()) < 0.)continue; |
|
if (!cfg.avf && mass > min(v1.E(), v2.E()))continue; |
|
if(cfg.avf && 0.6*mass > min(v1.E(), v2.E())) continue; //0.7 |
|
//if(cfg.avf && mass > max(v1.E(), v2.E())) continue; |
which is with default steering parameters is: (v1+v2).M() > min(v1.E(), v2.E())
Could somebody explain the motivation of this cut?
What is its impact of this cut on vertex reconstruction?
Is it necessary?
Does it properly works with any mass parameters in mind?
I would naively expect that vertexing algorithm should work only with the track information (e.g. d0, z0, momentum, etc.). So I am puzzled to see energy cut here. It means that two different particles (types) with identical tracks (and momentum) might get a very different cut to reject a vertex.
And as my study shows, providing PFOs with kaon or proton mass rejects too many "good" vertices.
And here is one particular example, where vertex reconstruction goes wrong because of this cut:



@suehara
cheers,
Bohdan
Dear experts,
I have tried to check performance of the vertex reconstruction, assuming perfect pi/K/p ID for my PFO objects, updating their mass and energy parameters accordingly.
Looking at the vertices with low momentum protons, I have noticed, that after updating mass and the energy of the PFOs, number of reconstructed vertices has reduced significantly! (see number of entries in red vs black histograms)
Debugging this issue, I found out that the algorithm which is responsible for creating secondary vertices uses a cut based on the PFO energy to accept/reject pairs of tracks to form a vertex:
LCFIPlus/src/VertexFinderSuehara.cc
Lines 447 to 453 in 8a46298
which is with default steering parameters is:
(v1+v2).M() > min(v1.E(), v2.E())Could somebody explain the motivation of this cut?
What is its impact of this cut on vertex reconstruction?
Is it necessary?
Does it properly works with any mass parameters in mind?
I would naively expect that vertexing algorithm should work only with the track information (e.g. d0, z0, momentum, etc.). So I am puzzled to see energy cut here. It means that two different particles (types) with identical tracks (and momentum) might get a very different cut to reject a vertex.
And as my study shows, providing PFOs with kaon or proton mass rejects too many "good" vertices.
And here is one particular example, where vertex reconstruction goes wrong because of this cut:
@suehara
cheers,
Bohdan