TrackCalib Package

This twikipage is obsolete, please use the new TrackCalib2 package at https://gitlab.cern.ch/farchill/trackcalib2. However, this page might be still useful to some, as the principle of use is almost the same in TrackCalib2 as in TrackCalib. For the details about running the new TrackCalib2, see README file.

TrackCalib was created as tool for creating tracking efficiency correction tables allowing for user-defined track-quality cuts, binning and variable combinations. It also allows to check 1D- and 2D-efficiency dependencies for many variables. The name and idea was shamelessly stolen from PIDCalib.

The static tracking efficiency tables are available on the Tracking efficiencies twiki.

In case of any questions of comments regarding the TrackCalibTool contact authors flavio.archilli@cernNOSPAMPLEASE.ch and giulia.frau@cernNOSPAMPLEASE.ch. Also see the Tutorial talk at A&S week, 06.04.2017 and Tutorial talk at LHCb week, 05.12.2017

TrackCalib setup instructions

TrackCalib is now integrated in Urania. To get Urania, standard setup is used:

(Please contact the maintainers for the up to date instructions!)

LbLogin -c x86_64-centos7-gcc8-opt #might need gcc7 on SLC6, or gcc9 on CC7
lb-dev --nightly lhcb-head Urania/HEAD #latest stable release works too: try Urania/v9r0
cd UraniaDev _HEAD
git lb-use Urania
git lb-checkout Urania/master TrackCalib
git checkout Urania/master cmake #*not* lb-checkout

make configure
make

or with the latest Urania:

lb-set-platform x86_64-centos7-gcc9-opt
lb-dev Urania/v10r0
cd UraniaDev_v10r0
git lb-use Urania
git lb-checkout Urania/master TrackCalib
make configure
make install

Ancient instructions:

More detailed instructions can be found in the Git4LHCb twiki.

TrackCalib is currently being cleaned up, in case of problems accessing 2016 sample, contact giulia.frau@cernNOSPAMPLEASE.ch

Easy quick fix in the case of a failure is to replace in TrackCalib/python/TrackCalib/Prepare.py, lines 131-143, Data_2016_Mag by Data_2016_25ns_Mag

TrackCalib running instructions

In order to run the TrackCalib package, a bash shell needs to be loaded

./run bash --norc

The package is run from the Urania folder.

Minimal preparation script execution:

python TrackCalib/scripts/CreateTrackEffTables.py "2016_25ns"

This loops over both MC and Data, all three methods (Long, Velo and T), creates a reduced tuple (with multiplicity weights), fits in the default binning, and create plots of the results. The year_conditions define the dataset used. It is possible to also run this step-by-step or to add other options.

Valid year/conditions strings: are "2015_50ns" (EM), "2015_25ns", "2015_5TeV" and "2016_25ns". For more information see the detailed list.

Running step-by-step

The three sub-scripts can be run separately by specifying:

--Prepare: only runs the Prepare script, reducing the dataset to specified variables, weighting MC in multiplicity, and applying additional matching criteria

--Fit: creates the efficiency fits in a given set of variables, mode, and method with an earlier created tuple

--Plot: Plots the efficiencies from the fit, and creates data/MC correction tables in all 2D variables

Additional options

There are several additional options. Either they are global or they affect the sub-scripts only, as listed below:

Global options

-v: verbose printout

-vROOT: sets ROOT printout level to kInfo, default: kFatal

-mode "MC/Data": specify to only run over Data or MC; default: both

-simVer "SimXYZ": defines the Sim version of the MC; default: Sim09b

-method "<method1>,<method2>": specify method to use, separate by comma; default: Long, T, and Velo

-variables "<var1>,<var2>,<var3>": additional variables for which the efficiency dependency is evaluated; default: P, ETA, nPVs, nSPDHits

-variables2D "<var1>-<var2>,<var3>-<var4>": additional sets of 2D variables for which the efficiency dependency is evaluated. Minus connects the variables within a set, comma separates sets; default: P-ETA

-polarity "MagUp/MagDown": specify to run only over MagUp or MagDown. Does not affect the Prepare script

Hence, for example to run over 2016 collision data only, use Long and Velo methods for PT and ETA with GhostProb < 0.5 of the probe, run:

python TrackCalib/scripts/CreateTrackEffTables.py "2016_25ns" -mode "Data" -method "Long,Velo" -variables "PT,ETA" -binning "PT:0,1000,5000" -variables2D "PT-ETA" -matchCrit "Probe: GhostProb &lt;0.5"

Note that the -matchCrit is listed in the Prepare options. This example might be useful to check the effect of looser cut on GhostProb on PT and ETA on data. Note that since PT is not a default variable (P and ETA are), binning in PT needs to be specified. For more information about the binning option see Fit options.

'Prepare' script options

Prepare.py runs over the master tuple for the given data taking conditions/Sim version, applies additional selection cuts and reweights MC in nSPDHits. The outputfile is local at tuples/trackEffTuple_Data/MC_conditions(_simVer).root

-noWeight: set to disable reweighting MC to fit the Data multiplicity

-weightVar: reweighting MC to fit the Data multiplicity in the weighting variable; default = "nSPDHits"

-cuts "Probe:<cut1,cut2,cut3>;Tag:<cut4>;Global:<cut6,cut7>": Define additional cuts applied to the probe/tag muon as well as global cuts (e.g. Jpsi cuts, runNumber, etc.). Separate individual cuts by comma, categories by semicolon. Name convention for particles is muplus, muminus, J_psi_1S, a cut example for all particles having η>2 would be -cuts "Probe:ETA>2;Tag:ETA>2;Global:J_psi_1S_ETA > 2"

-matchCrit "Probe:<criterion1,criterion2>;Global:<criterion3>": Define tighter matching criterion (when is an event considered efficient), e.g. Matched_GhostProb < 0.3, separation as above

-maxEntries 1234567: Sets the maximum number of events used per method and charge. Needed to limit memory consumption of fit script; default: 2.5e8

As an example, running Prepare script over MC only, Sim08h with 100000 entries using only T-station method without multiplicity reweighting requires the following command:

python TrackCalib/scripts/CreateTrackEffTables.py "2015_50ns" -mode "MC" -simVer "Sim08h" -noWeight -method "T" -maxEntries 100000 --Prepare

This allows for a quicker check of the efficiencies in different MC samples.

'Fit' script

Executes a simultaneous fit to matched and failed events in each variable and bin to evaluate efficiency. It also creates a separate ROOT file for each variable, containing fitted distributions and efficiency histogram. Output should be checked (at least) for convergence and reasonable data description. Output files are created at results/conditions/(simVer)/trackEffData/MC_variable_method.root

-binning "<var1>:<binborder1>,<binborder2>,<binborder3>;<var2>:<binborder4>,...": binning scheme used for the customised variables defined as above. Bin borders separated by comma, variable+binning sets by semicolon.

-simFit "True/False": controls the use of a simultaneous fit to matched and failed events to evaluate efficiency. Should be set to False for binnings/datasets with low statistic. default: True

-simpleFit "True/False":Controls the fit shape.Should be set to False for binnings/datasets with low statistic. If True fit shape is 2 CBs (sig) + exp (bkg), ifFalse fit shape is 2 Gaussians (sig) + exp (bkg); default: False

-binnedFit: Sets the use of a binned fit to evaluate efficiency. Should be set to True for datasets with large statistics; default: False

-binsInFit 123: Sets the number of bins in the fit; default: 100

As an example, the following command runs the Fit script for both MC and 2016 data, using Long method for PT and ETA with bins of PT 0MeV-1000MeV-5000MeV and standard ETA bins using binned fits:

python TrackCalib/scripts/CreateTrackEffTables.py "2016_25ns" -variables "PT,ETA" -binning "PT:0,1000,5000" -binnedFit --Fit

Sometimes, the unbinned fit requires too much resources and gets killed. In such a case, using -binnedFit: is recommended.

'Plot' script

This script uses the results of previous Fit script, plots all 1D efficiencies and compares data with MC. It also creates the data/MC ratio for 2D variables and saves the ratio as a ROOT file (meaning it creates the correction tables). It also combines the results from Velo and T station methods (called combined). As the final step it combines the combined method with Long method (called final). For 2016 results, the T-station method is not fully functional for now , so use only Long method as an input for your analysis! The plots and tables are stored in plots/conditions_simVer/.

-vartitles "<var1>:<vartitle1>;<var2>:<vartitle2>": defines the axis title for the custom variables as defined above, standard TLatex synthax can be used

-maxError: Sets the maximal acceptable error for the efficiency ratios; default: 0.03. If the error is >maxError, the efficiency ratio is set to 1 +- 5%

-maxDeviation: Sets the maximal deviation of the efficiency from 1; default: 0.3. If the deviation is >maxDeviation, the efficiency is set to 1 +- 5%

-ignoreBins "<var1>-<var2>:<bin1var1>-<bin1var2>,<bin2var1>-<bin2var2>,...": Sets which variable bins should be set to 1+-5%; default: P-ETA:1-2,5-1. Given bins are set to 1 +- 5%

In order to set the efficiency to 1+-5% in the first bin of PT-ETA as well as in any bin that has the efficiency error larger than 2%, run:

python TrackCalib/scripts/CreateTrackEffTables.py "2016_25ns" -variables2D "PT-ETA" -vartitles "PT:P_{T} [MeV]" -ignoreBins "PT-ETA:1-1" -maxError 0.02 --Plot

There are known issues when trying to plot only Velo or T methods. The fix will be included in the next release.

Adding global variables

Note that adding non-standard global variables requires manual changes in Prepare.py.

Standard global variables are:

totCandidates, nTracks, nLongTracks, nTTTracks, nVeloTracks, nPVs, nSPDHits, nVeloClusters, nITClusters, nOTClusters, nTTClusters, nRich1Hits, nRich2Hits, nMuonTracks, matched, Polarity, runNumber

In case of any doubt contact the authors.

Available datasets

2015 Early Measurements (50 ns)

”2015_50ns”: [”Sim09b”] EM Data (Reco15em/Turbo01em) and MC (Sim09b)

2015 (25ns)

”2015_25ns”: [”Sim09b”] Data (Reco15a/Turbo01a) and MC (Sim09b)

MC request LHCBGAUSS-1003, event type 12143001.

2015 5 TeV

”2015_5TeV”: [”Sim09b”] 5TeV Data (Reco15a/Turbo01aEM) and MC (Sim09b)

2016

”2016_25ns”: [”Sim09b”] Data (Reco16/Turbo02a) and MC (Sim09b)

Only the VELO & Long methods are available, due to a bug in the T-station Turbo lines

WGP requests for 2016 Turbo data 50326, 50325.

MC request LHCBGAUSS-1003, event type 12143001.

Pending datasets

2011

Requires ntuple production from Stripping 21r1p2 output, and generation of MC.

2012

Requires ntuple production from Stripping 21r0p2 output, and generation of MC.

2016 T-station method

Requires ntuple production from Stripping28r2.

Also need MC with a fixed TCK for the Turbo lines or Stripping28r2. The existing MC from LHCBGAUSS-1003 was filtered with HLT_PASS_RE('Hlt2TrackEffDiMuon.*Decision') with TCK 0x6138160f (MC version of 0x2138160f) from August 2016, which uses the buggy version of the T-station lines.

2017

Requires ntuple production from Stripping29r2p1.

MC ntuples have been produced from Sim09 (MC request LHCBGAUSS-1538, event type 11442012, WGP requests 59564, 59565). The MC were generated with the fix to the T-station method Turbo lines, though the fix wasn't introduced in real data until 2018 (so real data must come from the stripping for 2017).

2018

Ntuples have been produced from Stripping34r0p1 (WGP requests 59568, 59569), as well as 2018 Turbo (WGP requests 50322, 50321).

MC ntuples have been produced from Sim09 (MC request LHCBGAUSS-1665, event type 11442012, WGP requests 59566, 59567).

These need to be added into TrackCalib.

Versions

Version 1.0

First release version.

Version 1.1

Release date: 14.09.2018

Fixes:

-MaxEntries the new default is 2.5e8. This allows to access the full data sample in 2016. This will be especially handy when using special cuts.

Plotting either Velo of T-station now doesn't crash

Fixed of the naming convention when plotting the efficiencies in order to produce ready-to-use .C plots.

Fixed using two methods at the same time.

New options:

-fineBinning Creates default tables in the new fine binning

-autoBinning "<var1>:<NoOfBins>,<binBorderLow2>,<binBorderUp>;<var2>:<NoOfBins>,<binBorderLow2>,<binBorderUp>": binning scheme used for the customised variables defined as above. Bin borders separated by comma, variable+binning sets by semicolon. Format follows the usual ROOT definition (Int_t nbinsx, Double_t xlow, Double_t xup)

-ignoreBins1D "<var1><bin1>;<var2><bin3>,...": Sets which variable bins should be set to 1+-5%; default: "". Given bins are set to 1 +- 5%

-MaxError1D Sets the maximal acceptable error for the efficiencies; default: 0.03. If the error is >maxError, the efficiency is set to 1 +- 5%

New features:

When fitting, a two log files are produced. First, called trackEff_mode_method_status.out returns the ROOT fit status (should be 0), χ^2 /NDOF of the fit, all parameter values with errors, its the relative errors and final efficiency values. Second, file called WARNINGS_trackEff_mode_method.out is created. If the fit fails, the χ^2 /NDOF>chi2Limit or when the relative error is bigger than relErrLimit, an entry is created in the WARNINGS file. The limits at the moment are chi2Limit = 5.0 and relErrLimit = 0.5. The values can be changed here Always check at least the warnings file for problematic fits.

Version 2.0

Release date: TBA

Will include 2017 DATA and MC. Will be released once the WG production of 2017 and 2018 data and 2017 Sim09h, 2018 SIM09h MC is finished.

Release date: TBA

Fixes:

2018 and 2017 tables available!

Added division-by-zero check into Fit.py

Organized the WG directory in a more natural way.

Prepared for including Run I efficiencies.

New empty default of -ignoreBins: default: "".

Default cuts were moved into Dictionaries.py

New options:

-plotMassFits Plot also mass fits in all bins for given sample and variables. default: False

-plotOnlyOne Plots only firstSample (see below) efficiency. default: False

New features:

Disabled the annoying pop-up canvases in Fit.py

-firstSample -secondSample Allows for plotting a comparison of two arbitrary samples, including the ratio of these efficiencies. Has to be in the format of mode, year, simVer (if mode is MC). default: -firstSample: "data,year," -secondSample: "MC,year,simVer".

As and example, let's say we want to compare 2015 Data (25ns) (which is our default, therefore -firstSample doesn't have to be specified) and 2016 Sim09b sample:

python TrackCalib/scripts/CreateTrackEffTables.py "2015_25ns" --Plot  -secondSample "MC,2016_25ns,Sim09b"

#Hadron track systematics

Tracking systematics for hadrons

TrackCalib is meant for muon tracking efficiency evaluation and doesn't provide any information for hadrons.

The reason for the difference in efficiency for muons and hadrons are hadronic interactions. Their cross-section depends on the particle type.

A simulation of $B^0 \rightarrow J/\psi; K^{*0}$, where $K^{*0} \rightarrow K^+\pi^-$ shows that about 11% of kaons and 14% of pions cannot be reconstructed due to the hadronic interactions.

The number of tracks that undergo a hadronic interaction before the last T-station depends mostly on its momentum and the amount of material it crosses. Since there is 10% material-budget uncertainty, hadronic efficiencies have an intristic uncertanity of 1.1% for kaons and 1.4% for pions.

In order to evaluate the systematics related to a hadronic track for a specific analysis, the fraction of hadrons that undergo a hadronic interaction before the last T station (around z = 9000mm) has to be evaluated.

The MCTupleToolKinematic almost does that, but it has to be changed in order to make it to give gives you only hadronic interactions, and not also decays: https://gitlab.cern.ch/lhcb/Analysis/blob/master/Phys/DecayTreeTupleMC/src/MCTupleToolKinematic.cpp#L113 All kinematic cuts that are used in the specific analysis has also to be applied, as this can change the final result.

This will then give a fraction, say 14%, and multiplied by the material-budget uncertainty, which is 10%, you'll get the uncertainty per particle type.

Meeting contributions

Bugs

2016 TurCal bug

Only affects VELO and T-station methods in 2016. All public plots and correction tables are OK. However, there is a possibility for users to be affected by this bug in special cases as explained below. At the moment the recommendation is to use Long method for 2016.

A bug in Tesla was discovered, that rewrites candidate tracks by long tracks. Details to the bug can be found in this JIRA task: https://its.cern.ch/jira/browse/LHCBPS-1774

This means probe downstream and VELOmuon tracks were replaced by long tracks. Therefore applying any offline cut on variables produced by DaVinci using direct track information is potentially dangerous, since long tracks behave differently when vertex fitting.

Default TrackCalib setting is safe to be used. It uses information directly from the trigger without reprocessing anything. However, several TupleTools access the track information directly. List of variables that are safe and that are potentially dangerous to cut on or bin is can be found below.

In case of doubt, do not hesitate to contact the TrackCalib authors.

Safe variables

It is safe to cut on global event variables, tag mu and Jpsi. It is also safe to use any kinematic variable (produced by TupleToolKinematics, TupleToolGeometry, ETA) or any PID variable.

Dangerous variables

Do not cut on/bin in anything that is produced by TupleToolTrackInfo (such as TRACK CHI2NDOF). Overlap information or matching information is not safe neither.

TupleToolTrackEffMatch Bug

Does not affect the efficiency results. This bug effects 2015 and 2016 results. Due to a wrong if, Overlap variables in the tuples can only have values 0 or 1. This means custom cuts on the Overlap are not possible. The cuts used directly in the trigger are OverlapTT, OverlapIT, OverlapMuon > 0.4, OverlapVelo > 0.5.

For experts

WG production

Tracking efficiency TupleTools

  • TupleToolTrackEffMatch
    • TupleTool for creating TrackCalib input from both Turbo and Stripping. Input parameters are:
      • MC is MC? Default: false
      • Turbo use Turbo or stripping output? Default: true
    • Turbo-related options:
      • MatchedLocation1 location of muons in turbo data. Default LowStat trigger line
      • MatchedLocation2 location of muons in turbo data. Default HighStat trigger line
    • Stripping-related options:
      • Method Which method is used? Options are "MuonTT" (long), "VeloMuon" (T), "DownMuon" (velo) or "Downstream" (velo). Default: MuonTT
      • VeloAssocFrac Minimal fraction of common VELO hits when a track is considered associate. Default: 0.5=
      • MuonAssocFrac Minimal fraction of common MUON hits when a track is considered associate. Default: 0.4=
      • TTAssocFrac Minimal fraction of common TT hits when a track is considered associate. Default: 0.4=
      • ITAssocFrac Minimal fraction of common IT hits when a track is considered associate. Default: 0.4=
      • OTAssocFrac Minimal fraction of common OT hits when a track is considered associate. Default: 0.4
    • Output:
      • -head_Assoc: Does the probe track have an associated track?
      • -head_hasTTHits: Does the probe track have an associated track?
      • -head_Overlap_TTFraction: Maximum overlap fraction of the probe track in TT
      • -head_Overlap_TFraction: Maximum overlap fraction of the probe track in T (meaning OT+IT)
      • -head_Overlap_ITFraction: Maximum overlap fraction of the probe track in IT
      • -head_Overlap_OTFraction: Maximum overlap fraction of the probe track in OT
      • -head_Overlap_VeloFraction: Maximum overlap fraction of the probe track in VELO
      • -head_Overlap_MuonFraction: Maximum overlap fraction of the probe track in MUONs
      • -head_maxOverlap: Maximum sum of all previous overlap fractions.
      • -head_Matched_StateCTB_tx: state closest to beam Tx
      • -head_Matched_StateCTB_ty: state closest to beam Ty
      • -head_Matched_StateCTB_x: state closest to beam X
      • -head_Matched_StateCTB_y: state closest to beam Y
      • -head_Matched_StateCTB_z: state closest to beam Z
      • -head_Matched_Px: x component of momentum of track matched to the probe track.
      • -head_Matched_Py: y component of momentum of track matched to the probe track.
      • -head_Matched_Pz: z component of momentum of track matched to the probe track.
      • -head_Matched_dP: Momentum error of associated track
      • -head_Matched_probChi2: ProbChi2 of track matched to the probe track.
      • -head_Matched_Chi2NDoF: Chi2 / ndof of track matched to the probe track.
      • -head_Matched_VeloChi2: ProbChi2 of track matched to the probe track.
      • -head_Matched_VeloNDoF: Chi2 / ndof of velo track matched to the probe track.
      • -head_Matched_GhostProb: Chi2 / ndof of velo track matched to the probe track.
      • -head_DeltaR: Delta R between the probe track and track matched to the probe track.
      • -head_DeltaP: Momentum difference between the probe track and track matched to the probe track.
      • -head_DeltaPhi: Phi difference between the probe track and track matched to the probe track.
      • -head_DeltaEta: Pseudorapidity difference between the probe track and track matched to the probe track.
      • -head_Matched_SameMCPart: probe MC particle has an associated MC particle
      • -head_MCPart: Does the probe track have an MC particle?
      • -head_Matched_MCPart: Does the associated track have an MC particle?
      • -head_MatchedMCPx: Associated MC particle x component of momentum
      • -head_MatchedMC_Py:Associated MC particle y component of momentum
      • -head_MatchedMC_Pz: Associated MC particle z component of momentum
      • -head_MatchedMC_P: Associated MC particle momentum
      • -head_MatchedMC_PID: Associated MC particle PID

  • TupleToolTrackEff
    • TupleTool for creating long method (MuonTT tracks) tuples suitable for efficiency studies from Stripping.
    • Parameters of the tool:
      • TTAssocFraction: Minimal fraction of common TT hits when a track is considered associate
      • MuonAssocFraction: Minimal fraction of common muon hits when a track is considered associate
      • InverseMatch: Start tag-and-probe from J/psi
      • InverseMatchLocation: Location of the J/psi from stripping
      • MotherLocation: Location of the J/psi from stripping (for purityAssoc)
      • MC: Use MC output?
    • Basic output (the MuonTT suffix is there in order to distinguish output from this tool from the output of TupleToolTrackEffMatch)
      • -head_Overlap_MuonFraction_MuonTT: The maximum fraction of muon hits matched to the long track
      • -head_TFraction_MuonTT: The maximum fraction of muon hits matched to the long track
      • -head_hasTTHits_MuonTT: Has the probe track TT hits?
      • -head_TTHitAssoc_MuonT: Is MuonTT track matched to a long track with TT hits?
      • -head_noTTHitAssoc_MuonTT: Is MuonTT track matched to a long track without TT hits?
    • if Verbose is true:
      • -head_upgradedMass_MuonTT: Invariant mass of tag track and track associated to probe track
      • -head_nTTHits_MuonTT: Number of TT hits of MuonTT track.
      • -head_Matched_nTTHits_MuonTT: Number of TT hits on track matched to MuonTT track.
      • -head_Matched_Px_MuonTT: x component of momentum of track matched to MuonTT track.
      • -head_Matched_Py_MuonTT: y component of momentum of track matched to MuonTT track.
      • -head_Matched_Pz_MuonTT: z component of momentum of track matched to MuonTT track.
      • -head_Matched_P_MuonTT: absolute value of momentum of track matched to MuonTT track.
      • -head_Matched_dP_MuonTT: error on first track state of track matched to MuonTT track.
      • -head_Matched_probChi2_MuonTT: ProbChi2 of track matched to MuonTT track.
      • -head_Matched_Chi2NDoF_MuonTT: Chi2 / ndof of track matched to MuonTT track.
      • -head_DeltaR_MuonTT: Delta R between MuonTT track and track matched to MuonTT track.
      • -head_DeltaP_MuonTT: Momentum difference between MuonTT track and track matched to MuonTT track.
      • -head_wrongDeltaR_MuonTT: Delta R between MuonTT track and track closest to MuonTT track, not being the matched one. A track was matched in this event.
      • -head_wrongDeltaP_MuonTT: Momentum difference between MuonTT track and track closest to MuonTT track, not being the matched one. A track was matched in this event.
      • -head_wrongP_MuonTT: Momentum of track closest to MuonTT track, not being the matched one. A track was matched in this event.
      • -head_wrongDeltaR2_MuonTT: Delta R between MuonTT track and track closest to MuonTT track. No track was matched in this event.
      • -head_wrongDeltaP2_MuonTT: Momentum difference between MuonTT track and track closest to MuonTT track. No track was matched in this event.
      • -head_wrongP2_MuonTT: Momentum of track closest to MuonTT track. No track was matched in this event.
      • -head_Matched_MCPart_T: Has the probe track matched MC particle?
      • -head_MatchedMC_Px_MuonTT: x component of momentum of MC particle mached to the track matched to MuonTT track.
      • -head_MatchedMC_Py_MuonTT: y component of momentum of MC particle mached to the track matched to MuonTT track.
      • -head_MatchedMC_Pz_MuonTT: z component of momentum of MC particle mached to the track matched to MuonTT track.
      • -head_MatchedMC_P_MuonTT: Absolute value of momentum of MC particle mached to the track matched to MuonTT track.
      • -head_MatchedMC_PID_MuonTT: PID of MC particle mached to the track matched to MuonTT track.

Stripping lines

In the restripping campaign in 2019 (restripping of both Run I and Run II data), significant changes in the stripping lines were made. Main changes are summarized in this talk, however, the list in the talk is not exhaustive.

General naming convension is to have two lines per method: one for μ+ as a probe and one for μ- being a probe. The Jpsi/Upsilon/Z in the line stands for the mother particle of the muons.

Strucutre of the lines is as follows: first, probe μ is created (algorithm starts by creating muon protoParticles, from which a muon Particle is made), then the tag filter selectes tag μ (by applying tag cuts on HLT muons). Then chargeFilter that depending on the line (1 or 2) selects μ+ as a probe and μ- as a tag (or the other way around) is applied. Last, an algorithm that creates the resonance from tag and probe and applies cuts on the resonance is used.

The tag, probe and resonance cuts are defined outside of these algorithms to increase transparency of the StrippingLine code. The units of the cuts are always MeV, in the case of p and pT the unit is GeV. All cuts in the stripping lines now agree with Run II Turbo cuts or they are looser.

Having StrippingLines in an unified structure also allows for using TrackCalib very easily on Run I data.

DownMuon (velo method)

StrippingTrackEffDownMuon

The main change is replacing StrippingTrackEffDownMuonNominalLine by DownMuonLine1 and DownMuonLine2. StrippingTrackEffDownMuonNominalLine used two downstream tracks for tag and probe, while DownMuonLine1,2 use downstream track as a probe and long track as a tag. Study was made to check the possible bias on tracks that might occur to resonances creaty very close to the VELO edge. The effect is of second order and it is not significant for the efficiencies. The effect on the data/MC ratio is negligible.

VeloMuon (T-station method)

StrippingTrackEffVeloMuon

The T-station method tracking was buggy in the previous version. New lines were written, they are not in accordance of the previously described structure.

Variables used for cuts in this stripping lines were redefined in a way that there is a clear distinction between probe, tag and resonance (Jpsi/Z/Upsilon) cuts.

MuonTT (Long method)

StrippingTrackEffMuonTT

All the previously hard-coded cuts were now moved to the config.

LowMultJpsiLines were added. These lines are designed to select Jpsis from events with very low occupancy, making them very useful for very-low multiplicity production studies.

Edit | Attach | Watch | Print version | History: r50 < r49 < r48 < r47 < r46 | Backlinks | Raw View | WYSIWYG | More topic actions
Topic revision: r50 - 2022-06-01 - RenataKopecna
 
    • Cern Search Icon Cern Search
    • TWiki Search Icon TWiki Search
    • Google Search Icon Google Search

    LHCb All webs login

This site is powered by the TWiki collaboration platform Powered by PerlCopyright &© 2008-2023 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