B->ppbartaunu analysis

People working on this:

Mark Smith, Matthew Tilley, Mitesh Patel, Ryan Newcombe

-- MarkElliotSmith - 2017-12-04

Presentations:

Repository:

https://gitlab.cern.ch/lhcb-slb/B2pplnu

Stripping:

https://gitlab.cern.ch/lhcb/Stripping/blob/master/Phys/StrippingArchive/python/StrippingArchive/Stripping28/StrippingSL/StrippingB2PPbarMuForTauMu.py

Stripping Info:

For the restripping campaign the two fake proton lines (opposite and same-sign) and the TOPO line have been restripped. The changes are:

  • Tighten the track $\chi^{2} / DOF$ cut from 6 to 3 on the protons. This cut should be applied offline anyway.
  • Tighten the $p\overline{p}$ vtx $\chi^{2}$ cut from 10 to 8.
  • Change prescale on the fake proton lines from 0.15 to 0.06 to keep within the rate.
  • Fix to include both sign of fake proton (take wrt to the muon) - previously we had only taken one which missed a large chunk.
  • Include 3 and 4 body TOPO HLT2 in the topo line.
Ensure that the vtx $\chi^{2}$ and track $\chi^{2}$ are consistently applied to all the samples!

Trigger

https://gitlab.cern.ch/lhcb/Hlt/tree/2017-reference/Hlt/Hlt2Lines/python/Hlt2Lines/XcMuXForTau

Data Location:

Run 1 for FF fit

  • 2011 - /LHCb/Collision11/Beam3500GeV-VeloClosed-Mag[Up,Down]/Real Data/Reco14/Stripping21r1p1a/90000000/SEMILEPTONIC.DST
  • 2012 - /LHCb/Collision12/Beam4000GeV-VeloClosed-Mag[Up,Down]/Real Data/Reco14/Stripping21r0p1a/90000000/SEMILEPTONIC.DST
The stripping lines are bhad2PMuXLine and bhad2PMuXFakepLine .

Run 2 for R(pp)

J/psi K for kinematic corrections

  • 2018 - /LHCb/Collision18/Beam6500GeV-VeloClosed-Mag[Down,Up]/Real Data/Reco18/Stripping34/90000000/LEPTONIC.MDST
  • 2017 - /LHCb/Collision17/Beam6500GeV-VeloClosed-Mag[Down,Up]/Real Data/Reco17/Stripping29r2/90000000/LEPTONIC.MDST
  • 2016 - /LHCb/Collision16/Beam6500GeV-VeloClosed-Mag[Down,Up]/Real Data/Reco16/Stripping28r1/90000000/LEPTONIC.MDST
The stripping line is StrippingB2XMuMu_Line

J/psi K for neutral isolation

  • 2018 - /LHCb/Collision18/Beam6500GeV-VeloClosed-Mag[Down,Up]/Real Data/Reco18/Stripping34/90000000/DIMUON.DST
  • 2017 - /LHCb/Collision17/Beam6500GeV-VeloClosed-Mag[Down,Up]/Real Data/Reco17/Stripping29r2/90000000/DIMUON.DST
  • 2016 - /LHCb/Collision16/Beam6500GeV-VeloClosed-Mag[Down,Up]/Real Data/Reco16/Stripping28r1/90000000/DIMUON.DST
The stripping line is StrippingBetaSBu2JpsiKDetachedLine

Data

  • 2018 - stripping 34 - /LHCb/Collision18/Beam6500GeV-VeloClosed-Mag[Up,Down]/Real Data/Reco18/Stripping34/90000000/SEMILEPTONIC.DST
  • 2018 - stripping 34r0p1 - DV v44r10p2 - /LHCb/Collision18/Beam6500GeV-VeloClosed-Mag[Up,Down]/Real Data/Reco18/Stripping34r0p1/90000000/SEMILEPTONIC.DST
  • 2017 - stripping 29r2 - /LHCb/Collision17/Beam6500GeV-VeloClosed-Mag[Up,Down]/Real Data/Reco17/Stripping29r2/90000000/SEMILEPTONIC.DST
  • 2016 - stripping 28r1p1 - /LHCb/Collision16/Beam6500GeV-VeloClosed-Mag[Up,Down]/Real Data/Reco16/Stripping28r1p1/90000000/SEMILEPTONIC.DST
The stripping lines are B2PPbarMuForTauMuLine, B2PPbarMuForTauMuTopoLine, B2PPbarMuForTauMufakePLine, B2PPbarMuForTauMuSSfakePLine, B2PPbarMuForTauMuSSLine, B2PPbarMuForTauMufakeMuLine

MC Location:

Run 1 for FF fit

Mode Event type Dec file BK path Comments
$B\to p\overline{p}\mu\nu_{\mu}$ 12513050 Bu_ppmunu=DecProdCut.dec /MC/2012/Beam4000GeV-2012-MagDown-Nu2.5-Pythia8/Sim09b/Trig0x409f0045/Reco14c/Stripping21NoPrescalingFlagged/12513050/ALLSTREAMS.DST Sim09b, Pythia 8
/MC/2012/Beam4000GeV-2012-MagDown-Nu2.5-Pythia8/Sim08g/Digi13/Trig0x409f0045/Reco14c/Stripping20NoPrescalingFlagged/12513050/ALLSTREAMS.DST Sim08g, Pythia 8
/MC/2012/Beam4000GeV-2012-MagDown-Nu2.5-Pythia6/Sim08g/Digi13/Trig0x409f0045/Reco14c/Stripping20NoPrescalingFlagged/12513050/ALLSTREAMS.DST Sim08g, Pythia 6
$B\to p\Delta(\to pX)\mu\nu_{\mu}$ cocktail 12813410 Bu_Delpbarmunu,pX=TightCut.dec /MC/2012/Beam4000GeV-2012-MagDown-Nu2.5-Pythia8/Sim09c/Trig0x409f0045/Reco14c/Stripping21NoPrescalingFlagged/12813410/ALLSTREAMS.DST Sim09c, Pythia 8, GEN cuts
$B\to pN^{*}(\to pX)\mu\nu_{\mu}$ cocktail 12813400 Bu_pNstmunu,pX=TightCut.dec /MC/2012/ Beam4000GeV -2012-MagDown-Nu2.5-Pythia8/Sim08h/Digi13/Trig0x409f0045/Reco14c/Stripping20NoPrescalingFlagged/12813400/ALLSTREAMS.DST Sim08h, Pythia 8, GEN cuts
$B^{0}\to p\bar{p}DX$ 11774000 Bd_D0ppbar,Xmunu=DecProdCut.dec /MC/2012/Beam4000GeV-2012-MagDown-Nu2.5-Pythia8/Sim09c/Trig0x409f0045/Reco14c/Stripping21NoPrescalingFlagged/11774000/ALLSTREAMS.DST Sim09c, Pythia 8
$B^{+}\to p\bar{p}D\mu\nu_{\mu}$ 12572000 Bu_D0ppmunu=TightCut.dec /MC/2012/Beam4000GeV-2012-MagDown-Nu2.5-Pythia8/Sim09c/Trig0x409f0045/Reco14c/Stripping21NoPrescalingFlagged/12572000/ALLSTREAMS.DST Sim09c, Pythia 8, GEN cuts
$B\to p\Lambda_{c}(\to pK\pi)\mu\nu_{\mu}$ 12875010 Bu_Lcpbarmunu,pKpi=TightCut.dec /MC/2012/Beam4000GeV-2012-MagDown-Nu2.5-Pythia8/Sim08h/Digi13/Trig0x409f0045/Reco14c/Stripping20NoPrescalingFlagged/12875010/ALLSTREAMS.DST Sim08h, Pythia8, GEN cuts
$B\to p\Lambda_{c}(\to pX)\mu\nu_{\mu}$ 12875411 Bu_Lcpbarmunu,pX=TightCut.dec /MC/2012/Beam4000GeV-2012-MagDown-Nu2.5-Pythia8/Sim08h/Digi13/Trig0x409f0045/Reco14c/Stripping20NoPrescalingFlagged/12875411/ALLSTREAMS.DST Sim08h, Pythia8, GEN cuts
$B\to N^{*}(\to \overline{p}X)\Lambda_{c}(\to pX)\mu\nu_{\mu}$ 12675420 Bu_LcNstmunu,pX=TightCut.dec /MC/2012/Beam4000GeV-2012-MagDown-Nu2.5-Pythia8/Sim09c/Trig0x409f0045/Reco14c/Stripping21NoPrescalingFlagged/12675420/ALLSTREAMS.DST Sim09c, Pythia8, GEN cuts
$B\to p\Lambda_{c}\pi\pi\mu\nu_{\mu}$ 12877400 Bu_Lcpipipbarmunu,pX=TightCut.dec /MC/2012/Beam4000GeV-2012-MagDown-Nu2.5-Pythia8/Sim09c/Trig0x409f0045/Reco14c/Stripping21NoPrescalingFlagged/12877400/ALLSTREAMS.DST Sim09c, Pythia8, GEN cuts

DEC files of interest

The GEN level cuts on the background modes should be:

# tightCut.Cuts = {
#'[p+]cc' : " in_range( 0.010 , GTHETA , 0.400 )& ( GPT > 750 * MeV ) & (GP > 14600 * MeV)" ,
#'[mu-]cc' : " in_range( 0.010 , GTHETA , 0.400 ) & (GP > 2900 * MeV)"
# }

Mode No File Comments Outstanding Issues Generated
$ \tau $ signal 12513060   No GEN cuts EvtGen model  
$\mu$ normalisation 12513050   No GEN cuts EvtGen model  
$\Delta$ cocktail 12813411 Bu_Delpbarmunu,pX=TightCut2.dec GEN cuts EvtGen model  
$N^{*}$ cocktail 12813401 Bu_pNstmunu,pX=TightCut2.dec GEN cuts EvtGen model  
$B^{0}\to p\bar{p}DX$ 11774004 - needs committing Bd_D0ppbarX,Xmunu=TightCut.dec GEN cuts    
$B^{+}\to p\bar{p}DX$ 12773002 - needs committing Bu_D+ppbarX,Xmunu=TightCut.dec GEN cuts    
$p\Lambda_{c}^{*}\mu\nu$ 12877401 - needs committing Bu_Lcpipipbarmunu,pX=TightCut2.dec GEN cuts $p_{T}$ cut on muon  
$p\Lambda_{c}\mu\nu$, $\Lambda_{c}\to pX$ 12875412 Bu_Lcpbarmunu,pX=TightCut2.dec GEN cuts    
$p\Lambda_{c}\mu\nu$, $\Lambda_{c}\to pK\pi$ 12875010 Bu_Lcpbarmunu,pKpi=TightCut.dec only has acceptance $\theta$ cuts    
$p\Lambda_{c}\mu\nu$, $\Lambda_{c}\to pK^{0}\pi^{0}$ ----        
$ppD\mu\nu$ 12572000   GEN cuts need fixing plus more D modes $p_{T}$ cut on muon  

MC efficiencies and estimated yields for Run 2

These numbers should be for the initial yields in the fit which will then add in the final selection efficiencies:

Note this is a slight underestimate, particularly on the tau yield due to the muon pT cut.

Mode BK yield Preselection Yield (strip + trig) GEN/filter eff [%]Sorted ascending Stripping * Gen/filter eff [%] Estimated yield after stripping Assumptions Angle cut eff [%] Yield after angle cut
$ppD\mu\nu$ 1,012,569 140,341 0.7998 0.11 10000 ? 31.0 3100
$p\Lambda_{c}^{*}\mu\nu$ 1,015,453 100,742 1.1552 0.114 17770 $BF(B\to\Lambda_{c}^{*}\mu\nu) = 2.5\times 10^{-4}$ with $BF(\Lambda_{c}\to pX) = 12\%$ 30.7 5455.39
$\Delta$ cocktail 1,015,908 93,069 1.1709 0.107 3335.8 BF = $6\times 10^{-6}$ 77.0 2568.6
$p\Lambda_{c}\mu\nu$, $\Lambda_{c}\to pX$ 1,110,857 18,592 18.51 0.31 17770 $BF(B\to\Lambda_{c}^{*}\mu\nu) = 2.5\times 10^{-4}$ with $BF(\Lambda_{c}\to pX) = 12\%$ 27.2 4833.44
$B^{0}\to p\bar{p}DX$ 1,000,388 10,045 18.61 0.19 89582 $BF(B\to ppD) = 13.96\times 10^{-4}$ of which 6.5% to $X\mu$ 25.1 22485.1
$N^{*}$ cocktail 1,005,731 93,899 2.892 0.27 3335.8 assume same as $\Delta$ 73.3 2445.1
$\mu$ normalisation 4,015,601 83,166 20.309 0.42 13093.92 BF = $6\times 10^{-6}$ 81.1 10619.2
$ \tau $ signal 4,030,760 46,356 21.336 0.245 332.3 $R(pp) = 0.25$ 74.2 246.6
$B^{+}\to p\bar{p}DX$                
$\sigma(pp\to B^{+}X) = 86.6\mu b$ , Run 2 luminosity $\approx 6 fb^{-1}$, $BF(\tau\to\mu\nu\nu) = 17.4 \%$, $5.196\times 10^{11}$ $B^{\pm}$ in LHCB acceptance

HistFactory extras

There is a nice set of slides introducing HistFactory here: https://indico.cern.ch/event/509900/contributions/2031935/

That link also includes a patch for HistFactory to implement Barlow-Beeston in more than 1 dimension. There are some more patches and speed gains to be found at https://twiki.cern.ch/twiki/bin/viewauth/LHCbPhysics/HistFactoryInfo

The file that you want is 'Patches_May2017_ROOT-6.08.06.tar.gz'. The other versions seem to throw compilation errors. I have only tested the BB fix (HistFactoryModelUtils.cxx) - I couldn't get the other speed patches to work.

Compiling ROOT

Mark's environment

Compiling ROOT can be a bit of a pain. The compilers on slc6 are ancient so you need to point CMake in the direction of an LCG installation to use instead. Also make sure you enable all the options.
  • Extract the ROOT source code to some directory (i.e. ~/root_source)
  • In the source directory you need to alter the CMakeLists.txt to use a reasonably modern version of gcc and g++ by adding the following:
    • SET(CMAKE_C_COMPILER /cvmfs/lhcb.cern.ch/lib/lcg/releases/gcc/6.2.0binutils/x86_64-slc6/bin/gcc)
      SET(CMAKE_CXX_COMPILER /cvmfs/lhcb.cern.ch/lib/lcg/releases/gcc/6.2.0binutils/x86_64-slc6/bin/g++)
  • You need to alter your PATH and LD_LIBRARY_PATH to pick up the correct libraries etc (note this is for C shell but I am sure you can figure it out for bash):
    • setenv PATH /cvmfs/lhcb.cern.ch/lib/lcg/releases/gcc/6.2.0binutils/x86_64-slc6/bin\:$PATH
      setenv LD_LIBRARY_PATH $LD_LIBRARY_PATH\:/cvmfs/lhcb.cern.ch/lib/lcg/releases/gcc/6.2.0/x86_64-slc6/lib64/\:/cvmfs/lhcb.cern.ch/lib/lcg/releases/gcc/6.2.0/x86_64-slc6/lib/\:/cvmfs/lhcb.cern.ch/lib/lcg/releases/gcc/6.2.0/x86_64-slc6/lib64/\:/cvmfs/lhcb.cern.ch/lib/lcg/releases/LCG_92/xrootd/4.7.0/x86_64-slc6-gcc62-opt/lib64
  • Now copy in the code patches you wish to use (i.e. for HistFactory)
  • Make a new directory into which ROOT will be compiled (i.e. ~/myROOT) and cd into it.
  • Configure cmake
    • cmake -DAll=ON ~/root_source
  • Now you need to alter CMakeCache.txt so that it picks up the correct libraries for some things
    • //Path to a library.
      XROOTD_XrdCl_LIBRARY:FILEPATH=/cvmfs/lhcb.cern.ch/lib/lcg/releases/LCG_92/xrootd/4.7.0/x86_64-slc6-gcc62-opt/lib64/libXrdCl.so

      //Path to a library.
      XROOTD_XrdClient_LIBRARY:FILEPATH=/cvmfs/lhcb.cern.ch/lib/lcg/releases/LCG_92/xrootd/4.7.0/x86_64-slc6-gcc62-opt/lib64/libXrdClient.so

      //Path to a library.
      XROOTD_XrdMain_LIBRARY:FILEPATH=XROOTD_XrdMain_LIBRARY-NOTFOUND

      //Path to a library.
      XROOTD_XrdUtils_LIBRARY:FILEPATH=/cvmfs/lhcb.cern.ch/lib/lcg/releases/LCG_92/xrootd/4.7.0/x86_64-slc6-gcc62-opt/lib64/libXrdUtils.so

      //Dependencies for the target
      XrdProofd_LIB_DEPENDS:STATIC=general;/cvmfs/lhcb.cern.ch/lib/lcg/releases/LCG_92/xrootd/4.7.0/x86_64-slc6-gcc62-opt/lib64/libXrdUtils.so;general;/cvmfs/lhcb.cern.ch/lib/lcg/releases/LCG_92/xrootd/4.7.0/x86_64-slc6-gcc62-opt/lib64/libXrdClient.so;general;/cvmfs/lhcb.cern.ch/lib/lcg/releases/LCG_92/xrootd/4.7.0/x86_64-slc6-gcc62-opt/lib64/libXrdCl.so;general;rpdutil;general;-lpthread;general;dl;
  • Now compile!
    • cmake --build .
  • At some point the compilation may segfault or throw some other fit. Don't worry - just run the last command again and it should pick up where it left off.
  • Now make sure you are using your newly installed ROOT version:
    • source ~/myROOT/bin/thisroot.csh

Ryan's environment

The following instructions pertain to building ROOT on lx0X. The version I managed to use is 6.06.02, but it appears that 6.08.06 should also work.

  • Extract the ROOT source code to some directory (i.e. ~/root_source)
  • In order to get around the issue of ancient compilers, it sufficed for me to add the following to my ~/.bashrc
    • export CC=/cvmfs/lhcb.cern.ch/lib/lcg/releases/gcc/4.9.3binutils/x86_64-slc6/bin/gcc
      export CXX=/cvmfs/lhcb.cern.ch/lib/lcg/releases/gcc/4.9.3binutils/x86_64-slc6/bin/g++
  • You need to alter your PATH and LD_LIBRARY_PATH to pick up the correct libraries etc (note this is for C shell but I am sure you can figure it out for bash):
    • export PATH=/cvmfs/lhcb.cern.ch/lib/lcg/releases/gcc/4.9.3binutils/x86_64-slc6/bin:$PATH
      export LD_LIBRARY_PATH=/cvmfs/lhcb.cern.ch/lib/lcg/releases/gcc/4.9.3/x86_64-slc6/lib64:/cvmfs/lhcb.cern.ch/lib/lcg/releases/gcc/4.9.3/x86_64-slc6/lib:/cvmfs/lhcb.cern.ch/lib/lcg/releases/gcc/4.9.3/x86_64-slc6/lib64:/cvmfs/lhcb.cern. ch/lib/lcg/releases/LCG_83/xrootd/4.2.3/x86_64-slc6-gcc49-opt/lib64:$LD_LIBRARY_PATH
  • Also, you will need to source a newer version of python, since the default version (2.6.6) on lx0X is also ancient by adding the following to your ~/.bashrc if you haven't done so already
    • export PATH=/cvmfs/lhcb.cern.ch/lib/lcg/releases/LCG_88/Python/2.7.13/x86_64-slc6-gcc49-opt/bin:$PATH
      export PYTHONPATH=$PYTHONPATH:/cvmfs/lhcb.cern.ch/lib/lcg/releases/LCG_88/Python/2.7.13/x86_64-slc6-gcc49-opt/lib/python2.7/site-packages/
      export LD_LIBRARY_PATH=$LD_LIBRARY_PATH/cvmfs/lhcb.cern.ch/lib/lcg/releases/LCG_88/Python/2.7.13/x86_64-slc6-gcc49-opt/lib/
  • Now copy in the code patches you wish to use (i.e. for HistFactory)
  • Make a new directory into which ROOT will be compiled (i.e. ~/myROOT) and cd into it.
  • Configure cmake
    • cmake -DAll=ON ~/root_source
  • Now you need to alter CMakeCache.txt so that it picks up the correct libraries for some things
    • //Path to a library.
      XROOTD_XrdCl_LIBRARY:FILEPATH=/cvmfs/lhcb.cern.ch/lib/lcg/releases/LCG_83/xrootd/4.2.3/x86_64-slc6-gcc49-opt/lib64/libXrdCl.so

      //Path to a library.
      XROOTD_XrdClient_LIBRARY:FILEPATH=/cvmfs/lhcb.cern.ch/lib/lcg/releases/LCG_83/xrootd/4.2.3/x86_64-slc6-gcc49-opt/lib64/libXrdClient.so

      //Path to a library.
      XROOTD_XrdMain_LIBRARY:FILEPATH=XROOTD_XrdMain_LIBRARY-NOTFOUND

      //Path to a library.
      XROOTD_XrdUtils_LIBRARY:FILEPATH=/cvmfs/lhcb.cern.ch/lib/lcg/releases/LCG_83/xrootd/4.2.3/x86_64-slc6-gcc49-opt/lib64/libXrdUtils.so

      //Dependencies for the target
      XrdProofd_LIB_DEPENDS:STATIC=general;/cvmfs/lhcb.cern.ch/lib/lcg/releases/LCG_83/xrootd/4.2.3/x86_64-slc6-gcc49-opt/lib64/libXrdUtils.so;general;/cvmfs/lhcb.cern.ch/lib/lcg/releases/LCG_83/xrootd/4.2.3/x86_64-slc6-gcc49-opt/lib64/libXrdClient.so;general;/cvmfs/lhcb.cern.ch/lib/lcg/releases/LCG_83/xrootd/4.2.3/x86_64-slc6-gcc49-opt/lib64/libXrdCl.so;general;rpdutil;general;-lpthread;general;dl;
  • You also need to make sure that the following flag is set in CMakeCache.txt
    • //Build the libRooFit advanced fitting package
      roofit:BOOL=ON
  • Now compile!
    • cmake --build .
  • At some point the compilation may segfault or throw some other fit. Don't worry - just run the last command again and it should pick up where it left off.
  • You may also need to employ the two fixes at the following links at some point during compilation
  • Now make sure you are using your newly installed ROOT version:
    • source ~/myROOT/bin/thisroot.sh
Edit | Attach | Watch | Print version | History: r22 < r21 < r20 < r19 < r18 | Backlinks | Raw View | WYSIWYG | More topic actions
Topic revision: r22 - 2019-11-26 - RyanNewcombe
 
    • Cern Search Icon Cern Search
    • TWiki Search Icon TWiki Search
    • Google Search Icon Google Search

    Main All webs login

This site is powered by the TWiki collaboration platform Powered by PerlCopyright & 2008-2019 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback