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}^{*}\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

Run 2 for R(pp)

Mode Event type Dec file BK yield BK path Comments
$B\to p\overline{p}\mu\nu_{\mu}$ 12513051 Bu_ppmunu=DecProdCutpQCD.dec 4075524 /MC/2018/Beam6500GeV-2018-MagDown-Nu1.6-25ns-Pythia8/Sim09h/Trig0x617d18a4/Reco18/Turbo05-WithTurcal/Stripping34r0p1NoPrescalingFlagged/12513051/ALLSTREAMS.DST  
$B\to p\overline{p}\tau\nu_{\tau}$ 12513061 Bu_pptaunu,mununu=DecProdCutpQCD.dec 4028316 /MC/2018/Beam6500GeV-2018-MagDown-Nu1.6-25ns-Pythia8/Sim09h/Trig0x617d18a4/Reco18/Turbo05-WithTurcal/Stripping34r0p1NoPrescalingFlagged/12513061/ALLSTREAMS.DST  

Run 2 for Matt's analysis

Samples below were produced for the $B\to p\overline{p}\mu\nu_{\mu}$ BF analysis. Most will be replaced by new samples with adjustments as per the 'Comments.' All 2016, stripping 28r1, with the following path in common:

CommonPath = /MC/2016/Beam6500GeV-2016-MagDown-Nu1.6-25ns-Pythia8/Sim09c/Trig0x6138160F/Reco16/Turbo03/Stripping28r1NoPrescalingFlagged/

The background samples in the table below were used to determine the rejection factors for the MC request for R(pp).

$B^{0}\to p\bar{p}DX$ 11774000 Bd_D0ppbar,Xmunu=DecProdCut.dec 1009709 CommonPath + 11774000/ALLSTREAMS.DST Change GEN cuts, will be superseded by 11774004
$B\to p\overline{p}\mu\nu_{\mu}$ 12513050 Bu_ppmunu=DecProdCut.dec 4015601 CommonPath + 12513050/ALLSTREAMS.DST PHSP, will be superseded by 12513051 with pQCD model
$B\to p\overline{p}\tau\nu_{\tau}$ 12513060 Bu_pptaunu,mununu=DecProdCut.dec 4030760 CommonPath + 12513060/ALLSTREAMS.DST PHSP, will be superseded by 12513061 with pQCD model
$B^{+}\to p\bar{p}D\mu\nu_{\mu}$ 12572000 Bu_D0ppmunu=TightCut.dec 1012569 CommonPath + 12572000/ALLSTREAMS.DST Change GEN cuts, need new decfile
$B\to N^{*}(\to \overline{p}X)\Lambda_{c}(\to pX)\mu\nu_{\mu}$ 12675420 Bu_LcNstmunu,pX=TightCut.dec 1006390 CommonPath + 12675420/ALLSTREAMS.DST New decfile?
$B\to pN^{*}(\to pX)\mu\nu_{\mu}$ cocktail 12813400 Bu_pNstmunu,pX=TightCut.dec 1005731 CommonPath + 12813400/ALLSTREAMS.DST PHSP, will be superseded by 12813402 with pQCD model
$B\to p\Delta(\to pX)\mu\nu_{\mu}$ cocktail 12813410 Bu_Delpbarmunu,pX=TightCut.dec 1015908 CommonPath + 12813410/ALLSTREAMS.DST PHSP, will be superseded by 12813412 with pQCD model
$B\to p\Lambda_{c}(\to pK\pi)\mu\nu_{\mu}$ 12875010 Bu_Lcpbarmunu,pKpi=TightCut.dec 1110857 CommonPath + 12875010/ALLSTREAMS.DST Change GEN cuts, need new decfile
$B\to p\Lambda_{c}(\to pX)\mu\nu_{\mu}$ 12875411 Bu_Lcpbarmunu,pX=TightCut.dec 2001873 CommonPath + 12875411/ALLSTREAMS.DST Change GEN cuts, will be superseded by 12875412
$B\to p\Lambda_{c}^{*}\mu\nu_{\mu}$ 12877400 Bu_Lcpipipbarmunu,pX=TightCut.dec 1015453 CommonPath + 12877400/ALLSTREAMS.DST Change GEN cuts, will be superseded by 12877401
Mode Event type Dec file BK yield BK path Comments

Background rejection factors for MC request

This is the relevant table for the background rejection factors for the filtered MC samples. The table below this one pertains to the MC samples produced for Matt's analysis. This is deprecated as the decfiles have been adjusted. However, the combined rejection factors were used from these samples to get the filtering rejection factor for the corresponding new decfiles. These decfiles are taken from the 'DEC files of interest' table.

Mode Event type Dec file Gen-level Filtering Combined Comments
$\Delta$ cocktail 12813412 Bu_Delpbarmunu,pX=TightCutpQCD $0.051722\pm 0.0022259$ 0.02825 0.001461  
$N^{*}$ cocktail 12813402 Bu_pNstmunu,pX=TightCutpQCD $0.05342\pm 0.00236$ 0.06923 0.003698  
$B^{0}\to p\bar{p}DX$ 11876005 Bd_D0ppbarX,Xmunu=TightCut $0.052133\pm 0.0022676$ 0.08983 0.004683  
$B^{+}\to p\bar{p}DX$ 12775004 Bu_D+ppbarX,Xmunu=TightCut $0.050411\pm 0.0022169$     Waiting for Ryan to produce full DST
$p\Lambda_{c}^{*}\mu\nu$ 12877401 Bu_Lcpipipbarmunu,pX=TightCut2.dec $0.050435\pm 0.0022023$ 0.02721 0.001452  
$p\Lambda_{c}\mu\nu$, $\Lambda_{c}\to pX$ 12875412 Bu_Lcpbarmunu,pX=TightCut2.dec $0.056149\pm 0.0024274$ 0.01890 0.003498  
$p\Lambda_{c}\mu\nu$, $\Lambda_{c}\to pK\pi$ 12875010 Bu_Lcpbarmunu,pKpi=TightCut.dec $0.19361\pm 0.0075734$ 0.02634 0.005100  
$ppD\mu\nu$ 12572001 Bu_D0ppmunu=TightCut2.dec     0.001370  
$B^{0} \to \Lambda_{c}pX$, $p\mu X$ 11874110 Bd_LcpX,pmuX=TightCut $0.17921\pm 0.0071269$     Waiting for Ryan to produce full DST
$\Lambda_{b}\to \Lambda_{c}p\bar{p}\mu\nu$ 15876401 Lb_Lcppbarmunu,pX=TightCut       Waiting for Ryan to produce full DST
$B^{+}\to p\bar{p}D_{s}(\to\tau\nu_{\tau})$ 12763000 Bu_Dsppbar,taunu=DecProdCut.dec $0.2191\pm 0.0084663$     Waiting for Ryan to produce full DST

Background rejection factors for 2016 MC

This table can largely be ignored. Below are the rejection factors for the 2016 background MC samples. There are two factors which combine to make an overall rejection factor. One factor is the rejection due to any generator-level cuts, the second is due to the filtering (i.e. stripping in our case). The combined rejection factor here will be used to calculate the filtering factor for some of the decfiles used in the main R(pp) analysis in the table above.

Mode Event type Dec file Gen-level Filtering Combined
$B\to p\Delta(\to pX)\mu\nu_{\mu}$ cocktail 12813410 Bu_Delpbarmunu,pX=TightCut.dec 0.011725 0.1246 0.001461
$B\to pN^{*}(\to pX)\mu\nu_{\mu}$ cocktail 12813400 Bu_pNstmunu,pX=TightCut.dec 0.028915 0.1279 0.003698
$B^{0}\to p\bar{p}DX$ 11774000 Bd_D0ppbar,Xmunu=DecProdCut.dec 0.18612 0.02516 0.004683
$B^{+}\to p\bar{p}D\mu\nu_{\mu}$ 12572000 Bu_D0ppmunu=TightCut.dec 0.007997 0.1713 0.001370
$B\to p\Lambda_{c}(\to pK\pi)\mu\nu_{\mu}$ 12875010 Bu_Lcpbarmunu,pKpi=TightCut.dec 0.184705 0.02761 0.005100
$B\to p\Lambda_{c}(\to pX)\mu\nu_{\mu}$ 12875411 Bu_Lcpbarmunu,pX=TightCut.dec 0.028815 0.1214 0.003498
$B\to N^{*}(\to \overline{p}X)\Lambda_{c}(\to pX)\mu\nu_{\mu}$ 12675420 Bu_LcNstmunu,pX=TightCut.dec 0.007943 0.1265 0.001005
$B\to p\Lambda_{c}^{*}\mu\nu_{\mu}$ 12877400 Bu_Lcpipipbarmunu,pX=TightCut.dec 0.011603 0.1251 0.001452

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 GEN eff Requested Generated
$ \tau $ signal 12513061 Bu_ppmunu=DecProdCutpQCD No GEN cuts - pQCD model   $19.5\pm1.8$ 4M  
$\mu$ normalisation 12513051 Bu_pptaunu,mununu=DecProdCutpQCD No GEN cuts - pQCD model   $16.1\pm1.6$ 4M  
$\Delta$ cocktail 12813412 Bu_Delpbarmunu,pX=TightCutpQCD GEN cuts - pQCD model   $3.3\pm0.4$    
$N^{*}$ cocktail 12813402 Bu_pNstmunu,pX=TightCutpQCD GEN cuts - pQCD model   $4.7\pm0.5$    
$B^{0}\to p\bar{p}DX$ 11876005 Bd_D0ppbarX,Xmunu=TightCut GEN cuts   $4.7\pm0.5$    
$B^{+}\to p\bar{p}DX$ 12775004 Bu_D+ppbarX,Xmunu=TightCut GEN cuts   $4.6\pm0.5$    
$p\Lambda_{c}^{*}\mu\nu$ 12877401 Bu_Lcpipipbarmunu,pX=TightCut2.dec GEN cuts   $3.1\pm0.3$    
$p\Lambda_{c}\mu\nu$, $\Lambda_{c}\to pX$ 12875412 Bu_Lcpbarmunu,pX=TightCut2.dec GEN cuts   $4.4\pm0.4$    
$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$ 12572001 Bu_D0ppmunu=TightCut2.dec GEN cuts need fixing plus more D modes $p_{T}$ cut on muon      
$B^{0} \to \Lambda_{c}pX$, $p\mu X$ 11874110 Bd_LcpX,pmuX=TightCut GEN cuts        
$\Lambda_{b}\to \Lambda_{c}p\bar{p}\mu\nu$ 15876401 Lb_Lcppbarmunu,pX=TightCut GEN cuts        

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 [%] Stripping * Gen/filter eff [%] Estimated yield after stripping Assumptions Angle cut eff [%] Yield after angle cut
$ \tau $ signal 4,030,760 46,356 21.336 0.245 332.3 $R(pp) = 0.25$ 74.2 246.6
$\mu$ normalisation 4,015,601 83,166 20.309 0.42 13093.92 BF = $6\times 10^{-6}$ 81.1 10619.2
$\Delta$ cocktail 1,015,908 93,069 1.1709 0.107 3335.8 BF = $6\times 10^{-6}$ 77.0 2568.6
$N^{*}$ cocktail 1,005,731 93,899 2.892 0.27 3335.8 assume same as $\Delta$ 73.3 2445.1
$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
$B^{+}\to p\bar{p}DX$                
$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
$ppD\mu\nu$ 1,012,569 140,341 0.7998 0.11 10000 ? 31.0 3100
$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
$\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: r33 < r32 < r31 < r30 < r29 | Backlinks | Raw View | WYSIWYG | More topic actions
Topic revision: r33 - 2020-03-09 - 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-2020 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
or Ideas, requests, problems regarding TWiki? use Discourse or Send feedback