umd-lhcb / lhcb-ntuples-gen

ntuples generation with DaVinci and in-house offline components
BSD 2-Clause "Simplified" License
1 stars 0 forks source link

Selections and Reconstructions for run-1 data #12

Closed yipengsun closed 5 years ago

yipengsun commented 5 years ago

All selection and reconstruction info is from lhcb-ana-2014-052-v2r1.

Stripping

This corresponds to lines 253-260.

The stripping-related code is in the Define pre-filters section of the code.

High-level trigger (HLT)

This corresponds to lines 262-275.

The trigger-related code is in the Define pre-filters section.

Level-0 (L0) trigger

L0 triggers are based around avoiding cuts on the mu transverse momentum. We require the L0 trigger path of the event to be independent of the reconstructed mu candidate.

This corresponds to lines 276-284. The requirements are:

In the code, the sel_stripped_filtered selection is related to L0 trigger. We required the following trigger condition:

INTREE((ABSID == 'mu+') & (TIS('L0.*', 'L0TriggerTisTos')))

Reconstruction for HistFactory

... K- and pi+ candicates identified with DLLK > 4 or < 2, respectively, and IPchi^2 > 45, PT > 300 MeV, and GhostProb < 0.5

The above quote is implemented as:

algo_D0.DaughtersCuts = {
    # PT: transverse momentum
    # MIPCHI2DV: minimum IP-chi^2
    # TRCHI2DOF: chi^2 per degree of freedom of the track fit
    # PIDK: combined delta-log-likelihood for the given hypothesis (wrt the
    #       pion)
    # TRGHOSTPROB: track ghost probability
    'K+': '(PT > 300*MeV) & (MIPCHI2DV(PRIMARY) > 45.0) &' + \
          '(TRCHI2DOF < 4) & (PIDK > 4) & (TRGHOSTPROB < 0.5)',
    'pi-': '(PT > 300*MeV) & (MIPCHI2DV(PRIMARY) > 45.0) &' + \
           '(TRCHI2DOF < 4) & (PIDK < 2) & (TRGHOSTPROB < 0.5)'
}

Note that on line 300, there's an additional step of momentum scale correction. This is implemented in our code:

from Configurables import TrackScaleState as TrkSS

...

ms_scaler = TrkSS('StateScale')

DaVinci().appendToMainSequence([..., ms_scaler])

Our script is missing selections described in the note starting from line 305.

There's also a couple of ROOT scripts for the final selections. These scripts are:

yipengsun commented 5 years ago

I'm trying to understand more for the IP chi^2 cuts. There's a SLAC presentation about how to compute it 1.

From that slide, it seems that high IP chi^2 implies track not coming from primary vertex. In the stripping line, we require minimum IP chi^2 > 45 for muon and kaon and pion, but not for D0.

D0 is reconstructed by kaon and muon, and we already required them to not come from PV, so the reconstructed D0 should not come from PV as well.

yipengsun commented 5 years ago

The missing selection found in #19 is similar to the missing ones found here. We haven't implemented the following selections listed in the analysis note lhcb-ana-2014-052-v2r1, most notably iso_BDT < 0.15 found by @bflaggs: table5

table6

yipengsun commented 5 years ago

We'll start with this single selection:

(DstIDprod > 0 && IDprod > 0 && muPID > 0. && flagDstSB==0.) && isData > 0. && Y_M < 5280 && ((iso_BDT < 0.15) || (ishigher && keepme &&  isData==0.))