KFParticle for primary vertex finder

idea : as KFparticle takes 1,2 ... N daughters, we can try to use it as primaty vertex finder

First try over real data by comparing the position from KFParticle with the position from MuDst branch : here

  • Changes to KFParticle code :
  1. the primary vertex is set to (0,0,0) in the macro, when defining pVertex

       MVertex vert;
       vert.SetXYZ(0,0,0);
       ....
       particle[0] = KFParticle(vert);

     2. when adding tracks, we need to assume the mass of the particle : i've chosen pion

     3. in KFParticleBase.cxc:Construct()

--> remove the line  if( Parent ) SetProductionVertex( *Parent );

note for me : it would be equivalent to call the method :  DP.Construct(vDaughters,NDaughters,0,-1,0);

The .pdf file shows a good agreement, for the real data ,between the position found by KFParticle and MuDst values

step 2 : use simulation files amd compare :

  • GEANT vs MuDst
  • GEANT vs KFParticle 

==>issue with the vertex from GEANT

When running over a single file, I found a different number of vertices : here

 some tests

1. adding the reconstructed particle to the Primary vertex

     const KFParticle pVertex = particle[0];
      // index_track is the real number of track used in the loop
      int NDaughters = index_track;
      KFParticle DP;
      //      gBenchmark->Start("KFParticle");
      DP.Construct(vDaughters,NDaughters,&pVertex,-1,0);
      particle[0].AddDaughter(DP);

Adding the line (it adds to the primary vertex the mother particle :www.physi.uni-heidelberg.de/~minjung/.../GorbunovKFParticle.08.11.25.pdf)

particle[0].AddDaughter(DP);

does not change the results (comparison btw KFParticle and MuDst)