.. _analysiskey: FAQ === ------------------------------------- PID corrections and systematic errors ------------------------------------- Efficiency correction factors and systematic errors for Belle PID were obtained using corresponding MC and data samples. Those studies were done for different PID selections, and possible selections differ for different hypotheses. There are three groups of lookup tables in Belle: * Lepton ID: * Possible cuts for electron: [0.01, 0.10, 0.50, 0.60, 0.80, 0.90] * Possible cuts for muons: [0.10, 0.80, 0.90, 0.95, 0.97] * Kaon/:math:`\pi` ID: * PID cut can be 0.1 - 0.9 * Proton ID: * Possible cuts for proton: [0.6, 0.7, 0.8, 0.9] Details of these tables and how they were studies can be found at `Belle PID Joint Homepage `_. The weights for LID and KID are available in basf2 and can be retrieved via payloads in ``Belle_PID``; naming schemes of each PID payloads are slightly different. .. rubric:: Lepton ID Naming scheme for LID is ``BelleLID_``. Using ``eIDBelle>0.9`` as an example: .. code-block:: python3 import variables as va import basf2 as b2 b2.conditions.prepend_globaltag("BellePID") lid_table = "BelleLIDe_0.90" va.variables.addAlias('LID_ratio', f"extraInfo({lid_table}_ratio)") va.variables.addAlias('LID_ratio_stat_err', f"extraInfo({lid_table}_ratio_stat_err)") va.variables.addAlias('LID_ratio_syst_err', f"extraInfo({lid_table}_ratio_syst_err)") va.variables.addAlias('LID_ratio_syst_err_from_2photon', f"extraInfo({lid_table}_ratio_syst_err_from_2photon)") va.variables.addAlias('LID_ratio_syst_err_from_JPsi', f"extraInfo({lid_table}_ratio_syst_err_from_JPsi)") va.variables.addAlias('LID_run_bin', f"extraInfo({lid_table}_run_bin)") va.variables.addAlias('LID_kinematic_bin', f"extraInfo({lid_table}_kinematic_bin)") reweighter = b2.register_module('ParticleWeighting') reweighter.param('tableName', lid_table) reweighter.param('particleList', 'e+:all') my_path.add_module(reweighter) .. note:: The lepton ID fake-rate tables (lepton ID efficiency for pions and kaons) are not prepared at Belle. It can be studied using the :math:`D^{*}` sample (see ~nishida6/public/kid/00dstar_nt.txt on kekcc for details). .. rubric:: Kaon/:math:`\pi` ID Naming scheme for payloads is: ``BelleKID_`` Here, - K or Pi refers to correction information obtained for kaons or pions, accordingly - Eff or Fake refers to efficiency or fake rate corrections - Combined, Plus or Minus refers to the charge of tracks used for the study - PID cut is an integer number from 1 to 9 that corresponds to "cut > 0.number" To append PID correction information for pion efficiency selected as kaons with ``atcPIDBelle(3, 2)>0.6`` cut: .. code-block:: python3 kid_table = "BelleKIDPiFakePlus_6" va.variables.addAlias('KID_eff_data', f"extraInfo({kid_table}_eff_data)") va.variables.addAlias('KID_eff_data_stat_err', f"extraInfo({kid_table}_eff_data_stat_err)") va.variables.addAlias('KID_eff_data_syst_err', f"extraInfo({kid_table}_eff_data_syst_err)") va.variables.addAlias('KID_eff_mc', f"extraInfo({kid_table}_eff_mc)") va.variables.addAlias('KID_eff_mc_stat_err', f"extraInfo({kid_table}_eff_mc_stat_err)") va.variables.addAlias('KID_fit_flag', f"extraInfo({kid_table}_fit_flag)") va.variables.addAlias('KID_kinematic_bin', f"extraInfo({kid_table}_kinematic_bin)") va.variables.addAlias('KID_ratio', f"extraInfo({kid_table}_ratio)") va.variables.addAlias('KID_ratio_stat_err', f"extraInfo({kid_table}_ratio_stat_err)") va.variables.addAlias('KID_ratio_syst_err', f"extraInfo({kid_table}_ratio_syst_err)") va.variables.addAlias('KID_run_bin', f"extraInfo({kid_table}_run_bin)") kid_weights = ['KID_eff_data', 'KID_eff_data_stat_err', 'KID_eff_data_syst_err', 'KID_eff_mc', 'KID_eff_mc_stat_err', 'KID_fit_flag', 'KID_ratio', 'KID_ratio_stat_err', 'KID_ratio_syst_err', 'KID_run_bin', 'KID_kinematic_bin'] reweighter2 = b2.register_module('ParticleWeighting') reweighter2.param('tableName', kid_table) reweighter2.param('particleList', 'pi+:all') my_path.add_module(reweighter2) .. note:: ``fit_flag`` indicates if the fits failed; ``fit_flag = 0`` is for successful fit, while any non-zero values of fit_flag are for failed fit. Please only use ``fit_flag==0`` when evaluating PID contributions. .. rubric:: Proton ID Naming scheme for proton ID payloads is: ``BellePID_`` Here, - Plus or Minus refers to the charge of tracks used for the study - PID cut can be 0.6, 0.7, 0.8 or 0.9 If you'd like to add the information for proton efficiency selected with ``atcPIDBelle(4, 2)>0.6`` and ``atcPIDBelle(4, 3)>0.6``. .. code-block:: python3 pid_table = "BellePIDPlus_0.6" va.variables.addAlias("PID_eff_data", f"extraInfo({pid_table}_eff_data)") va.variables.addAlias("PID_eff_data_stat_err", f"extraInfo({pid_table}_eff_data_stat_err)") va.variables.addAlias("PID_eff_mc", f"extraInfo({pid_table}_eff_mc)") va.variables.addAlias("PID_eff_mc_stat_err", f"extraInfo({pid_table}_eff_mc_stat_err)") va.variables.addAlias("PID_ratio", f"extraInfo({pid_table}_ratio)") va.variables.addAlias("PID_ratio_stat_err", f"extraInfo({pid_table}_ratio_stat_err)") va.variables.addAlias("PID_ratio_syst_err", f"extraInfo({pid_table}_ratio_syst_err)") va.variables.addAlias("PID_kinematic_bin", f"extraInfo({pid_table}_kinematic_bin)") va.variables.addAlias("PID_run_bin", f"extraInfo({pid_table}_run_bin)") reweighter3 = b2.register_module('ParticleWeighting') reweighter3.param('tableName', pid_table) reweighter3.param('particleList', 'pi+:all') my_path.add_module(reweighter3) ------------------------- Full Event Interpretation ------------------------- To utilize FEI, the correct prefix of FEI payloads needs to be set: .. code-block:: python3 import fei configuration = fei.config.FeiConfiguration(prefix='FEI_B2BII_light-2012-minos', cache=0) feistate = fei.get_path(particles, configuration) path.add_path(feistate.path) For more details please see :code:`analysis/examples/FEI/B_converted_apply.py` -------------- Flavour Tagger -------------- To apply flavour tagger in a b2bii analysis, one will need to append the correct global tag. FlavorTagger will call the corresponding payloads in the module. .. code-block:: python3 import flavorTagger as ft # Flavour Tagger weightfiles = 'B2nunubarBGx1' basf2.conditions.append_globaltag("analysis_tools_light-2012-minos") ft.flavorTagger( particleLists=['B+:sig'], weightFiles=weightfiles, path=my_path)