I dump information about events with abs(pull) > 10 into 3 files. One contains our reconstruction, with MC id and MCindex in parenthesis. The second contains the full MCtruth decay tree and the last one contains some information like reco and MC z info, dt, dt_res, dt_error, pull, etc...
There seem to be roughly 3 different ways events fail and give very large pulls:
1) Flip lepton - the Dstar is perfectly reconstructed, the lepton is from the other side. Typically the event has Dstars on both sides. The Dstar comes from the side without the D*lnu, the lepton comes from the D*lnu side.
2) Event completely misreconstructed, half of the tracks come from one B0, the other half from the other one.
3) Event reconstructed perfectly, the tag side messed up.
Example - D*lnu side perfect, other side decays as B0->D+mu-nu. The
D+ decays into three charged tracks. VtxBtaSelFit finds the three
tracks, the lepton is too far away and is discarded. The D+ has moved
quite a distance from the vertex => dt_tag much larger than it should be
=> dt_res very negative since dt = reco - tag.
Statistics from Signal, Generic MC
| Failure Mode | SignalMC | GenericMC |
| Flip Lepton | 10/40 | 20/50 |
| Bad Reconstruction | 7/40 | 22/50 |
| Good Reconstruction | 23/40 | 8/40 |
At David's suggestion, I looked at whether "Good Reconstruction" failures have a second reconstructed D* in the events (which we might be able to use to exclude them) but they don't.
Next steps
1) I have added tagging category information, still need to add
a list of all particles + pid used in tag side
2) Verify lepton tag events use lepton in vertex
3) Verify kaon tag events don't use kaon in vertex
4) Take a careful look at how we define dtMC. Sometimes
we get the vertices right but interchanged - this gives very large pulls
which seem artificially large.
Dt_error
I plotted dt_res by breaking dt_error into small intervals (0.3-0.4, 04.-0.5, etc...) and fitting the residual and pulls using our two resolution models. The goal is to establish that dt_error is a reasonable estimate of the per-event-error across its entire range (0.1-2.4ps). I modified the GExp Model so that the outlier gaussian has a floating bias (same as the 3G outlier). Allowing the outlier bias to float significantly improves the fit for both models (the Good reconstruction failures provide a good reason for floating the bias). The plots for each dt_error slice can be found here
along with a lifetime fits for both resolution models
A table of the fit results can be found here
Next steps
1) Redo David's resolution study using the larger signalMC sample
(checking the two resolution models answers broken down by D0 mode, tagging
category, SVT/SVT+DCH, B0/B0bar, etc...)
2) Modify the lifetime fit to fit for both lifetime and oscillation
frequency (for additional cross-checking capability).
3) Put results into BAD 137
Example for 1)
==v 9287 v===================================================
B0 was: wrong.
Lept was: e+ (60) from B0 ( 1) from Ups(4S)
( 0)
D* was: D*- (63) from B0 (62) from
Ups(4S) ( 0)
S Pi was: pi- (69) from D*- (63) from
B0 (62)
D0 was: ^D0 (64) from D*- (63) from
B0 (62)
K was: K+ (65) from ^D0 (64)
from D*- (63)
Pi was: pi- (68) from ^D0 (64) from
D*- (63)
Example for 3)
==v 3372 v===================================================
B0 was: B0 ( 1)
Lept was: e+ (11) from B0 ( 1) from Ups(4S)
( 0)
D* was: D*- ( 2) from B0 ( 1) from
Ups(4S) ( 0)
S Pi was: pi- ( 8) from D*- ( 2) from
B0 ( 1)
D0 was: ^D0 ( 3) from D*- ( 2) from
B0 ( 1)
K was: K+ ( 4) from ^D0 (
3) from D*- ( 2)
Pi was: pi- ( 7) from ^D0 ( 3) from
D*- ( 2)
==v 3372 v======================================================
Ups(4S) ( 0) >> B0 ( 1) >> D*- ( 2) >> ^D0 (
3) >> K+ ( 4) >> mu+ ( 5) >> e+ ( 6)
>> pi- ( 7)
>> pi- ( 8) >> mu- ( 9) >> e- (10)
>> e+ (11) >> e- (12)
>> nu_e (13)
>> ^B0 (14) >> D+ (15) >> ^K0 (16) >> K_L0 (17)
>> p+ (18)
>> pi- (19) >> e- (20)
>> pi+ (21) >> e- (22)
>> n0 (23) >> gamma (24)
>> p+ (25)
>> mu+ (26) >> e+ (27)
>> pi0 (30) >> gamma (31)
>> gamma (32)
>> mu- (33)
>> ^nu_mu (34)
Event number = 3372
MCz1, MCz2, dtMC = -0.992276 -1.00786 0.935414
zreco, ztag, dt = -0.989595 -1.0955 6.35844
Reco index,B1,B2 = 2 1 14
B0s lund ids = 511 -511
dstarlnu,DD,Dmode = 1 0 1
dt_res and error = 5.42302 0.457067
pull
= 11.8648
Number of tag trk = 1
Highest momentum = 2.06053
Tag cat
= 1