The technique used for combining the information from the different subdetectors was presented during the Tracking-PID-physics meeting of the last LHCb week, which you can find at http://agenda.cern.ch/age?a03997 The product is made of the likelihoods for each particle type from the different detectors. Particles are then selected by cutting on the ratio of likelihoods between different hypotheses, or equivalently on the difference of log-likelihood (DLL), eg: DLL(e-pi) = ln L(e) - ln L(pi) = ln [ L(e) / L(pi) ] for the electron and pion hypotheses. The output of the combination is, for each track, a list of the detector information that is available (RICH/CALO/MUON) and the 4 log-likelihood differences for the (e, mu, K, p) hypotheses compared to the pion hypothesis. Any other DLL can be simply determined from these, eg. DLL(K-p) = DLL(K-pi) - DLL(p-pi).
To select particles of a given type, one then specifies which detector information is required to be available, and which cut (or cuts) on DLL values are required. For example, to select electrons, one would normally require the Calorimeter information to be available, as this is the most important detector element for electron ID. The most significant background is from pions, so one cuts on the DLL between the electron and pion hypotheses. This DLL is distributed mostly to positive values for electrons, and negative for pions, so a reasonable choice for the cut is DLL(e-pi) > 0. As shown in the presentation mentioned above, this gives an efficiency of 95% for electrons that are within the Calorimeter acceptance, with a pion misid rate of about 0.7%. The pions could be even more strongly suppressed by increasing the cut on DLL(e-pi), at the cost of a loss in electron efficiency. Reasonable values for the cut on DLL values are usually in the range -10 to +10, according to the compromise between efficiency and purity.
The combined particle ID is implemented in a DaVinci "Particle Maker" that takes tracks (protoparticles) and assigns a particle ID to them to form particles which will be used in the physics analysis. The particle maker is called "CombinedParticleMaker", and does the job previously done by a number of different particle makers (ElectronParticleMaker, RichParticleMaker etc). Reasonable values are set by default for the particle ID selection cuts, but they can be modified using options, according the efficiency/purity requirements of your analysis. The particle types to be selected are defined by a "Particles" option, with the names of the 5 common charged particle types as arguments. The default is Particles = { "muon", "electron", "kaon", "proton", "pion" } If you wish only to select kaons and pions then you would put: Particles = { "kaon", "pion" }
The selection can be exclusive, or not, as set by an ExclusiveSelection option that is set either true or false. If true, as is the case by default, then the selection criteria are applied in the order that the particle types were listed in the Particles option, and if the selection is satisfied for one particle type the track is not considered for subsequent particle types. So for the default Particles option given above, muons are first searched for, then electrons, and so on. In this way each track will have at most one selected particle type. Conversely, if ExclusiveSelection is set false then the selection criteria are applied independently for the different particle types. Tracks can then be selected as more than one particle type, and care should be taken to avoid double counting in the physics algorithm.
The selections themselves have the form: ElectronSelection = { "det='CALO' e-pi='0.0'" } This defines that for selecting electrons, the Calorimeter detector information should be available, and cut is applied on DLL(e-pi) > 0. To require that both Calorimeter and RICH are available, one would put det='CALO,RICH'. e-pi is a symbol that has been defined to represent the lower limit on the difference in log-likelihood between electron and pion hypotheses. All other DLLs have similarly defined symbols, constructed using e,mu,pi,k,p to represent the particle types. More than one cut can be applied if desired. For example, to select kaons one may wish to reject pions (and hence cut on DLL(k-pi)) but also reject protons (and hence also cut on DLL(k-p)). This is done in the default selection as follows: KaonSelection = { "det='RICH' k-pi='2.0' k-p='-2.0'" } If your algorithm is interested in selecting kaons and doesn't suffer from proton background you could remove the cut on DLL(k-p): this would emulate what is currently done by the RichParticleMaker, identifying as kaons any "heavy" particle (kaon or proton).
If you are really keen you can also apply different DLL cuts according to which detectors are available. For example: KaonSelection = { "det='RICH,CALO' k-pi='0.0'", "det='RICH' k-pi='2.0'" } would apply a looser cut when both RICH and Calorimeter are available, and a tighter cut when only the RICH is available. The criteria are applied in the order they are listed.
In the default selection the pion criteria are left empty, so that all tracks that have not been selected as other particle types are called pions. Obviously this relies on the fact that ExclusiveSelection is true, and the pion hypothesis is listed last in the Particles option.
As an example, the default DaVinci options for the combined particle ID are given below. ("PreLoadParticles" should be replaced by the name of your algorithm). The values chosen should be understandable once you have taken a look at the distributions shown in the presentation mentioned above. An example of how to control an algorithm using the CombinedParticleMaker is provided with DaVinci v8r1 in: $DAVINCIROOT/options/PreLoadCombinedParticles.opts Note that DaVinci.opts provides the possibility of executing such an example algorithm.
PreLoadParticles.PhysDesktop.ParticleMakerType = "CombinedParticleMaker"; PreLoadParticles.PhysDesktop.CombinedParticleMaker.Particles = { "muon", "electron", "kaon", "proton", "pion" }; PreLoadParticles.PhysDesktop.CombinedParticleMaker.ExclusiveSelection = true; PreLoadParticles.PhysDesktop.CombinedParticleMaker.MuonSelection = { "det='MUON' mu-pi='-8.0'" }; PreLoadParticles.PhysDesktop.CombinedParticleMaker.ElectronSelection = { "det='CALO' e-pi='0.0'" }; PreLoadParticles.PhysDesktop.CombinedParticleMaker.KaonSelection = { "det='RICH' k-pi='2.0' k-p='-2.0'" }; PreLoadParticles.PhysDesktop.CombinedParticleMaker.ProtonSelection = { "det='RICH' p-pi='3.0'" };