09/01/2006
<<< 08/31/2006Add Chi^2 for every plot
From :
/home/srs63/K0Finder/fits/M2missFit.c
Test
DHadFit.py -t d -p desidebandl -m 0
09/04/2006
Add Chi^2 for every plot
DHadFit.py -t d -p desidebandl -m 0
OK.
Update Regular fits
Test DHadFit.py -t d -m 0 OK
DHadFit.py -t d —qsub job 503838 ... Done.
DHadFit.py -t s —qsub job 503838 ... Done.
DHadFit.py -t g —qsub job 503840 ... Done.
Examine the fits for Floatmass fitparams float sigmaE
Change 0.4 to 0.5 for example for mode 203 to have a better ``f1a''
09/05/2006
Examine the fits for Floatmass fitparams float sigmaE
Change 0.4 to 0.5 for example for mode 203 to have a better ``f1a''
In lineshapefit2d.C:
f1a=new RooRealVar("f1a","f1a",0.05,0.0,0.4); to: f1a=new RooRealVar("f1a","f1a",0.05,0.0,0.5);
DHadFit.py -t s --tag d -p f1a_diag_floatmass_fitparams_floatsigmaE -m 203,203
... Done.
Compare with the old one:
f1a range | Value | Error |
---|---|---|
0 - 0.4 | 0.3999892061 | 0.3923895414 |
0 - 0.5 | 0.2094920676 | 0.1033997351 |
Do not use f1b and s1b for modes without pi0
Modes have pi0: kpipi0, kpipipi0 kspipi0 1, 201, 203
All the others, set f1b = 0, s1b = 1
Implement in the code lineshapefit2d.C:
if (mode1=="kpipi0"||mode1=="kpipipi0"||mode1=="kspipi0"){ s1b=new RooRealVar("s1b","s1b",2.0,1.5,4.0); f1b=new RooRealVar("f1b","f1b",0.05,0.0,0.4); } else { s1b=new RooRealVar("s1b","s1b",1.0); f1b=new RooRealVar("f1b","f1b",0.0); }
Fit the data, saving the output to subdirectory
DHadFit.py -t s —tag d -p dir_Nopi0Fixfbsb_diag_floatmass_fitparams_floatsigmaE -m 203,203
09/07/2006
Use f1b and s1b for modes with pi0
Use opt 'f1' in fitting code:
if (opt.Contains("f1")){ // Use the s1b and f1b only for modes with pi0 if (mode1=="kpipi0"||mode1=="kpipipi0"||mode1=="kspipi0"){ s1b=new RooRealVar("s1b","s1b",2.0,1.5,4.0); f1b=new RooRealVar("f1b","f1b",0.05,0.0,0.4); } else { s1b=new RooRealVar("s1b","s1b",1.0); f1b=new RooRealVar("f1b","f1b",0.0); } } else { s1b=new RooRealVar("s1b","s1b",2.0,1.5,4.0); f1b=new RooRealVar("f1b","f1b",0.05,0.0,0.4); }
DHadFit.py -t d —tag d -p dir_Nopi0Fixfbsb_diag_floatmass_fitparams_floatsigmaE -m 203,203 OK.
DHadFit.py -t s —tag d -p dir_Nopi0Fixfbsb_diag_floatmass_fitparams_floatsigmaE —qsub job 505653 ...
desideband high and low for generic MC in mode 0
- plot deltaE vs. mbc for all the whole region
DHadPlot.py -a deltaE_vs_mbc
For generic 31:
09/08/2006
Plot and fit sigmaE in the generic MC
DHadPlot.py -a sigmaE
By using all the generic MC, we get
sigmaE = 2.12162e-03 +/- 3.62454e-07 GeV = 2.1216 +/- 0.0004 MeV
So, we are going to use
sigmaE = 2.12 MeV
09/09/2006
Check the previous fit - Use f1b and s1b for modes with pi0
Fix sigmaE = 2.1 MeV and fit the other parameters in double tag
Test:
DHadFit.py -t d —tag d -p diag_floatmass_fitparams -m 201,201 OK.
DHadFit.py -t s —tag d -p diag_floatmass_fitparams —qsub job 506999 ... Done.
09/10/2006
Get the new parameters for the fits
- fix sigmaE = 2.1 MeV
- Update the parameters file fitpars.C
- Test DHadFit.py -t s -m 205 -p dir_cleo200609 OK.
Submit all the fits to the dir: cleo200609
Single Tag
- Data
DHadFit.py -t d -p dir_cleo200609 —qsub job 507228 ... Done. DHadFit.py -t d -p dir_cleo200609_widede —qsub job 507231 ... Done. DHadFit.py -t d -p dir_cleo200609_Gamma_0.0325 —qsub job 507232 ... Done. DHadFit.py -t d -p dir_cleo200609_Gamma_0.0225 —qsub job 507233 ... Done. DHadFit.py -t d -p dir_cleo200609_Gamma_0.027 —qsub job 507234 ... Done. DHadFit.py -t d -p dir_cleo200609_Gamma_0.02 —qsub job 507235 ... Done. DHadFit.py -t d -p dir_cleo200609_Gamma_float —qsub job 507238 ... DHadFit.py -t d -p dir_cleo200609_R_12.7 —qsub job 507239 ... Done
DHadFit.py -t d -p dir_cleo200609_P_0.5 —qsub job 507240 ... Done.
- Signal MC
DHadFit.py -t s -p dir_cleo200609 —qsub job 507227 ...
DHadFit.py -t s -p dir_cleo200609_P_0.5 —qsub job 507241
DHadFit.py -t s -p dir_cleo200609_noFSR —qsub job 507242
DHadFit.py -t s -p dir_cleo200609_widede —qsub job 507243 DHadFit.py -t s -p dir_cleo200609_widede_noFSR —qsub job 507244
All done.
- Generic MC
DHadFit.py -t g -p dir_cleo200609 —qsub job 507229 ... Done.
Double Tag
- Data
DHadFit.py -t d —tag d -p dir_cleo200609 —qsub job 507245
DHadFit.py -t d —tag d -p dir_cleo200609_Gamma_0.0225 —qsub job 507246
DHadFit.py -t d —tag d -p dir_cleo200609_Gamma_0.0325 —qsub job 507247
DHadFit.py -t d —tag d -p dir_cleo200609_P_0.5 —qsub job 507248
All done.
- Signal MC
DHadFit.py -t s —tag d -p dir_cleo200609 —qsub job 507249
DHadFit.py -t s —tag d -p dir_cleo200609_noFSR —qsub job 507250
All done.
- Generic MC
DHadFit.py -t g —tag d -p dir_cleo200609 —qsub job 507251 Done.
09/11/2006
Check the updated plots
Update the tables
- rename the background table name as: single_bkg.tab , double_bkg.tab
- Efficiency calculation method refine
In the tabletools.py:
Efcy: Efficiency * -------- a_err_new = \/ np(1-p) --- ------ = \/ np \/ 1 - p ~ ---------- = a_err \/ 1 - c_val * Note: The a_err_new has taken account the errors other than the Binomial uncertainty. a_err_new c_err = ----------- b_val ---------- a_err \/ 1 - c_val = ------------------- b_val fac1 = a_err fac2 = math.sqrt(1 - c_val) fac3 = 1./b_val c_err = fac1*fac2*fac3
DHadTable.py -a single_signal_eff -o dir_cleo200609 DHadTable.py -a single_signal_eff_noFSR -o dir_cleo200609 DHadTable.py -a single_generic_eff -o dir_cleo200609 DHadTable.py -a single_data_gamma -o dir_cleo200609 DHadTable.py -a single_widede -o dir_cleo200609 DHadTable.py -a single_fix_p -o dir_cleo200609 DHadTable.py -a double_signal_eff -o dir_cleo200609 DHadTable.py -a double_generic_eff -o dir_cleo200609 DHadTable.py -a double_data_gamma -o dir_cleo200609
09/12/2006
Update the plots
Rename the filenames in the CBX:
toolbox.py - a replace_content -o cbx_fig
DHadPlot.py -a update_CBX -o dir_cleo200609 DHadPlot.py -a update_CBX -o dir_cleo200609_widede
Output the file format for fitter
Message from Peter:
On further thought, I'm going to have you make the files for the BR fitter, since my code makes assumptions that are not necessarily true. The files I need to do the fitting are data_yields, signal_single_efficiencies, signal_single_efficiencies_errors, signal_double_efficiencies, and signal_double_efficiencies_errors. The formats are: ** data_yields: The yields for every mode. Every entry is three lines: yield for mode x statistical uncertainty in the yield for mode x systematic uncertainty in the yield for mode x [this used to be 0.5%, the "yield fit functions" uncertainty, in quadrature with 0.8% for the D0/D0B double tags, the "double DCSD interference" uncertainty] The modes are listed in the following order: D0 -> K- pi+ D0B -> K+ pi- D0 -> K- pi+ pi0 D0B -> K+ pi- pi0 ... Dp -> K- K+ pi+ Dm -> K+ K- pi- D0 -> K- pi+, D0B -> K+ pi- D0 -> K- pi+, D0B -> K+ pi- pi0 ... D0 -> K- pi+ pi0, D0B -> K+ pi- ... ** signal_single_efficiencies: This is the efficiency from single tag signal MC. It is actually a matrix, one matrix element written on every line. The entries are: eff((D0 -> K- pi+) found as (D0 -> K- pi+)) eff((D0 -> K- pi+) found as (D0B -> K+ pi-)) eff((D0 -> K- pi+) found as (D0 -> K- pi+ pi0)) eff((D0 -> K- pi+) found as (D0B -> K+ pi- pi0)) ... eff((D0 -> K- pi+) found as (Dm -> K+ K- pi-)) eff((D0B -> K+ pi-) found as (D0 -> K- pi+)) eff((D0B -> K+ pi-) found as (D0B -> K+ pi-)) ... ** signal_single_efficiencies_errors: This is the errors on the efficiencies in signal_single_efficiencies. The entry on each line is the error on the number in the same line in signal_single_efficiencies. ** signal_double_efficiencies: This is the efficiency matrix from double tag MC. It is an even bigger matrix, one matrix element on each line. The entries are: eff((D0 -> K- pi+, D0B -> K+ pi-) found as (D0 -> K- pi+, D0B -> K+ pi-)) eff((D0 -> K- pi+, D0B -> K+ pi-) found as (D0 -> K- pi+, D0B -> K+ pi- pi0)) ... eff((D0 -> K- pi+, D0B -> K+ pi-) found as (Dp -> K- K+ pi+, Dm -> K+ K- pi-)) eff((D0 -> K- pi+, D0B -> K+ pi- pi0) found as (D0 -> K- pi+, D0B -> K+ pi-)) eff((D0 -> K- pi+, D0B -> K+ pi- pi0) found as (D0 -> K- pi+, D0B -> K+ pi- pi0)) ** signal_double_efficiencies_errors: This is the error file for signal_double_efficiencies; the idea is the same as for signal_single_efficiencies_errors.
The files I need to do the fitting are :
- data_yields
- signal_single_efficiencies
- signal_single_efficiencies_errors
- signal_double_efficiencies
- signal_double_efficiencies_errors
Take a look at the files in /nfs/cor/user/ponyisi/daf9/hadD/summerconf ; they have the same names except they have "_for_werner" at the end.
Continue this after the talk. Move this to the ToDo list.
09/13/2006
Update the background table from Peter
Message from Peter:
For Xin's use, here are the background estimates for generic MC, in the same order as in the CBX tables. ST: 970.066 970.066 1736.27 1736.27 2700.62 2700.62 0 0 0 0 477 477 3381 3381 2228.51 2228.51 0 0 DT: 0.0965676 0.174114 45.3516 0.174114 0.312138 88.5123 45.3516 88.5123 131.845 0 0 23.6974 167.968 110.717 0 0 0 9.19561 65.1789 42.972 0 23.6974 9.19561 6.25872 28.1829 20.0447 3.34711 167.968 65.1789 28.1829 85.1065 66.5717 23.7245 110.717 42.972 20.0447 66.5717 50.7653 15.6313 0 0 3.34711 23.7245 15.6313 0
- Update the tab file
single_bkg.tab, double_bkg.tab
DHadTable.py -a single_generic_eff -o dir_cleo200609 DHadTable.py -a double_generic_eff -o dir_cleo200609
Update the CBX
09/14/2006
Write up the talk
09/18/2006
Plot the generic without the signal in it by using the MC truth info.
09/21/2006
Update the CBX
09/22/2006
Cos(theta)< 0.9 Cut
- Check the variables in the NTuple at here.
FLOAT variable xangle "Crossing angle"
Take a look :
DHadPlot.py -a variable -o xangle
Not that one.
- Ask Peter, should be here:
FLOAT variable trcosth[ntrack] "Track cos theta"
- Impose this on the checkVeto part only for the tracks we are interested in, not for every tracks.
DHad.py -t s -p dir_costh —qsub job 3895 done.
DHad.py -t g -p dir_costh —qsub job 3896 done.
DHad.py -t d -p dir_costh —qsub job 3897 done.
Create the CVS repository dhadprd281
Done.
09/25/2006
Fit the costh sample
DHadFit.py -t s -p dir_costh —qsub job 7999 done.
DHadFit.py -t d -p dir_costh —qsub job 8000 done.
DHadFit.py -t g -p dir_costh —qsub job 8001 done.
Do not use f1b and s1b for modes without pi0 in double tag fit
Plots:
DHadFit.py -t s —tag d -p dir_Nopi0Fixfbsb_diag_floatmass_fitparams_floatsigmaE
Table:
DHadTable.py -a line_shape_parameters -o dir_Nopi0Fixfbsb
09/28/2006
Check the fitting results
Make comparison table
There are something wrong with fitting of mode 203. Compare these two plots:
Change the code in mbc_singletag_3s.C
//RooRealVar sigmap("sigmap","sigmap",0.0055,0.004,0.011); RooRealVar sigmap("sigmap","sigmap",0.0055,0.001,0.011);
DHadFit.py -t d -p dir_costh -m 203 —qsub job 9054 done. But still bad.
change the inital value to 0.007. Do the fit again: job 9099 done.
09/29/2006
Check the fitting result
Still "STATUS=NOT POSDEF". So, there might be some other reasons.
- Steve's suggestion: try to change more parameters close to the default value.
// xi= new RooRealVar("xi","xi",-20.0,-100.0,-0.1); xi= new RooRealVar("xi","xi",-6.3,-100.0,-0.1); //RooRealVar sigmap("sigmap","sigmap",0.0055,0.004,0.011); RooRealVar sigmap("sigmap","sigmap",0.007,0.001,0.011);
DHadFit.py -t d -p dir_costh -m 203 —qsub job 9333 done.
It looks good now. Update the table.
Restore the .C file to the original state.
Plot the generic without the signal in it by using the MC truth info.
- Try Mode 0 first for the Generic MC
Look at the mcdmode code,use the mod func to allow the gamma, also be aware of the Double Cabibo Suppressed modes.
For now, consider the simple situation first to look at the rough result.
Test the single MC
DHad.py -t s -p dir_nosig_desidebandl -m 0
OK.
DHad.py -t g -p dir_nosig_desidebandl -m 0 —qsub job 9442 done.
DHad.py -t g -p dir_nosig_desidebandh -m 0 —qsub job 9443 done.
Update the CBX
>>> 10/04/2006