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
cut from 6 to 3 on the protons. This cut should be applied offline anyway.
- Tighten the
vtx
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

and track

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 |
|
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 |
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 |
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 |
|
11774000 |
Bd_D0ppbar,Xmunu=DecProdCut.dec |
/MC/2012/Beam4000GeV-2012-MagDown-Nu2.5-Pythia8/Sim09c/Trig0x409f0045/Reco14c/Stripping21NoPrescalingFlagged/11774000/ALLSTREAMS.DST |
Sim09c, Pythia 8 |
|
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 |
|
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 |
|
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 |
|
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 |
|
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 |
|
12513051 |
Bu_ppmunu=DecProdCutpQCD.dec |
4075524 |
/MC/2018/Beam6500GeV-2018-MagDown-Nu1.6-25ns-Pythia8/Sim09h/Trig0x617d18a4/Reco18/Turbo05-WithTurcal/Stripping34r0p1NoPrescalingFlagged/12513051/ALLSTREAMS.DST |
|
|
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

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).
Mode |
Event type |
Dec file |
BK yield |
BK path |
Comments |
|
12513050 |
Bu_ppmunu=DecProdCut.dec |
4015601 |
CommonPath + 12513050/ALLSTREAMS.DST |
PHSP, will be superseded by 12513051 with pQCD model |
|
12513060 |
Bu_pptaunu,mununu=DecProdCut.dec |
4030760 |
CommonPath + 12513060/ALLSTREAMS.DST |
PHSP, will be superseded by 12513061 with pQCD model |
cocktail |
12813410 |
Bu_Delpbarmunu,pX=TightCut.dec |
1015908 |
CommonPath + 12813410/ALLSTREAMS.DST |
PHSP, will be superseded by 12813412 with pQCD model |
cocktail |
12813400 |
Bu_pNstmunu,pX=TightCut.dec |
1005731 |
CommonPath + 12813400/ALLSTREAMS.DST |
PHSP, will be superseded by 12813402 with pQCD model |
|
11774000 |
Bd_D0ppbar,Xmunu=DecProdCut.dec |
1009709 |
CommonPath + 11774000/ALLSTREAMS.DST |
Change GEN cuts, will be superseded by 11774004 |
|
12572000 |
Bu_D0ppmunu=TightCut.dec |
1012569 |
CommonPath + 12572000/ALLSTREAMS.DST |
Change GEN cuts, need new decfile |
|
12875010 |
Bu_Lcpbarmunu,pKpi=TightCut.dec |
1110857 |
CommonPath + 12875010/ALLSTREAMS.DST |
Change GEN cuts, need new decfile |
|
12875411 |
Bu_Lcpbarmunu,pX=TightCut.dec |
2001873 |
CommonPath + 12875411/ALLSTREAMS.DST |
Change GEN cuts, will be superseded by 12875412 |
|
12675420 |
Bu_LcNstmunu,pX=TightCut.dec |
1006390 |
CommonPath + 12675420/ALLSTREAMS.DST |
New decfile? |
|
12877400 |
Bu_Lcpipipbarmunu,pX=TightCut.dec |
1015453 |
CommonPath + 12877400/ALLSTREAMS.DST |
Change GEN cuts, will be superseded by 12877401 |
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 |
cocktail |
12813412 |
Bu_Delpbarmunu,pX=TightCutpQCD |
|
0.02825 |
0.001461 |
|
cocktail |
12813402 |
Bu_pNstmunu,pX=TightCutpQCD |
|
0.06923 |
0.003698 |
|
|
11876005 |
Bd_D0ppbarX,Xmunu=TightCut |
|
0.08983 |
0.004683 |
|
|
12775004 |
Bu_D+ppbarX,Xmunu=TightCut |
|
|
|
Waiting for Ryan to produce full DST |
|
12877401 |
Bu_Lcpipipbarmunu,pX=TightCut2.dec |
|
0.02721 |
0.001452 |
|
, |
12875412 |
Bu_Lcpbarmunu,pX=TightCut2.dec |
|
0.01890 |
0.003498 |
|
, |
12875010 |
Bu_Lcpbarmunu,pKpi=TightCut.dec |
|
0.02634 |
0.005100 |
|
|
12572001 |
Bu_D0ppmunu=TightCut2.dec |
|
|
0.001370 |
|
, |
11874110 |
Bd_LcpX,pmuX=TightCut |
|
|
|
Waiting for Ryan to produce full DST |
|
15876401 |
Lb_Lcppbarmunu,pX=TightCut |
|
|
|
Waiting for Ryan to produce full DST |
|
12763000 |
Bu_Dsppbar,taunu=DecProdCut.dec |
|
|
|
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 |
cocktail |
12813410 |
Bu_Delpbarmunu,pX=TightCut.dec |
0.011725 |
0.1246 |
0.001461 |
cocktail |
12813400 |
Bu_pNstmunu,pX=TightCut.dec |
0.028915 |
0.1279 |
0.003698 |
|
11774000 |
Bd_D0ppbar,Xmunu=DecProdCut.dec |
0.18612 |
0.02516 |
0.004683 |
|
12572000 |
Bu_D0ppmunu=TightCut.dec |
0.007997 |
0.1713 |
0.001370 |
|
12875010 |
Bu_Lcpbarmunu,pKpi=TightCut.dec |
0.184705 |
0.02761 |
0.005100 |
|
12875411 |
Bu_Lcpbarmunu,pX=TightCut.dec |
0.028815 |
0.1214 |
0.003498 |
|
12675420 |
Bu_LcNstmunu,pX=TightCut.dec |
0.007943 |
0.1265 |
0.001005 |
|
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 |
signal |
12513061 |
Bu_ppmunu=DecProdCutpQCD |
No GEN cuts - pQCD model |
|
|
4M |
|
normalisation |
12513051 |
Bu_pptaunu,mununu=DecProdCutpQCD |
No GEN cuts - pQCD model |
|
|
4M |
|
cocktail |
12813412 |
Bu_Delpbarmunu,pX=TightCutpQCD |
GEN cuts - pQCD model |
|
|
|
|
cocktail |
12813402 |
Bu_pNstmunu,pX=TightCutpQCD |
GEN cuts - pQCD model |
|
|
|
|
|
11876005 |
Bd_D0ppbarX,Xmunu=TightCut |
GEN cuts |
|
|
|
|
|
12775004 |
Bu_D+ppbarX,Xmunu=TightCut |
GEN cuts |
|
|
|
|
|
12877401 |
Bu_Lcpipipbarmunu,pX=TightCut2.dec |
GEN cuts |
|
|
|
|
, |
12875412 |
Bu_Lcpbarmunu,pX=TightCut2.dec |
GEN cuts |
|
|
|
|
, |
12875010 |
Bu_Lcpbarmunu,pKpi=TightCut.dec |
only has acceptance cuts |
|
|
|
|
, |
---- |
|
|
|
|
|
|
|
12572001 |
Bu_D0ppmunu=TightCut2.dec |
GEN cuts need fixing plus more D modes |
cut on muon |
|
|
|
, |
11874110 |
Bd_LcpX,pmuX=TightCut |
GEN cuts |
|
|
|
|
|
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 |
|
1,012,569 |
140,341 |
0.7998 |
0.11 |
10000 |
? |
31.0 |
3100 |
normalisation |
4,015,601 |
83,166 |
20.309 |
0.42 |
13093.92 |
BF = |
81.1 |
10619.2 |
|
1,015,453 |
100,742 |
1.1552 |
0.114 |
17770 |
with |
30.7 |
5455.39 |
, |
1,110,857 |
18,592 |
18.51 |
0.31 |
17770 |
with |
27.2 |
4833.44 |
signal |
4,030,760 |
46,356 |
21.336 |
0.245 |
332.3 |
|
74.2 |
246.6 |
cocktail |
1,015,908 |
93,069 |
1.1709 |
0.107 |
3335.8 |
BF = |
77.0 |
2568.6 |
cocktail |
1,005,731 |
93,899 |
2.892 |
0.27 |
3335.8 |
assume same as |
73.3 |
2445.1 |
|
1,000,388 |
10,045 |
18.61 |
0.19 |
89582 |
of which 6.5% to |
25.1 |
22485.1 |
|
|
|
|
|
|
|
|
|

, Run 2 luminosity

,

,

in LHCB acceptance
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!
- 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!
- 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