Particle ID: more info


To lhcb-davinci@cern.ch
From Roger Forty <Roger.Forty@cern.ch>
Date Fri, 06 Jun 2003 12:21:13 +0200

Dear Colleagues,

Here is some further information to help in the use of the Combined
particle ID.  In your physics analysis you can get access to the
particle type that has been chosen for a given particle using:
  (*iPart)->particleID().pid()

You can get access to the Delta log-likelihood values mentioned in my
previous message, by first finding the protoparticle that was used to
create the particle ("pporig") and then:
  de = pporig->detPIDvalue( ProtoParticle::LkhPIDe )
This is DLL(e-pi), the difference in log-likelihood between electron and
pion hypotheses, and similar expressions give you the other three values
DLL(mu-pi), DLL(K-pi) and DLL(p-pi).

The detector information that was available for use in calculating the
DLL values can be accessed as follows:
  pporig->caloeBit()
  pporig->muonBit()
  pporig->richBit()
which are boolean values indicating whether the CALO/MUON/RICH info was
available respectively.

Finally there is a "Confidence Level" that has been calculated from the
DLL values, to indicate the confidence that the chosen assignment of
particle ID is correct.  It has a value between 0 and 1 and is accessed
as follows:
  cl = (*iPart)->confLevel()
It is calculated as the ratio of the likelihood of the chosen hypothesis
to the sum of the likelihoods of all hypotheses.  So for example, if the
chosen particle type is the electron hypothesis,
cl = exp(de) / (1+exp(de)+exp(dmu)+exp(dk)+exp(dp))

All of this is illustrated in a simple UserAlgorithm that I have set up
with the help of Gloria.  You can find it in directory:
  /afs/cern.ch/user/r/rforty/newmycmt/Phys/DaVinciUser/v4r1/src
It loops over particles, makes the connection to their protoparticles
and fills an ntuple with the variables mentioned above.  It also finds
the true particle type from the Monte Carlo truth.  I encourage you to
add something similar to your physics analysis, so you can check the
source of your background, and adjust the particle ID selection cuts in
the CombinedParticleMaker accordingly. 

Best regards,
               Roger

P.S. One could imagine an approach of setting loose selection cuts (on
the DLL values) in the CombinedParticleMaker and then cutting on the
confidence level variable in your analysis to make the final selection. 
That would certainly be a simpler arrangement to explain.  However, at
the moment I find a slightly better performance using the DLL cuts. 
Perhaps the definition of the confidence level variable can be improved:
I offer a bottle of champagne for the best idea that anyone comes up
with to improve it.