This is a little blog about the things I have done for my summer project of measuring the radius of the top.
Untill now we have used lab frame variables as the . The following images compare signal and standard model
We used these variables in order to make reconstructed level MC of signal. We serialized these variables in order to make transform a 2D histogram into a 1D as seen in the picture below.
Using these variables we reweighted a SM ttbat MC in order to get reconstructed level MC of signal. Below there some pictures that show the results of the rewighting using the variables.

Using the above criteria, we got the rvalue from each signal. If , there is the probability that we can exclude the signal. The following graph represents a 3D plot there the zaxis represents #$r$# for some signal. The xaxis represents the radius of the top #$R_{t}$%, and the yaxis the anomalous magnetic moment #$\kappa_{V}$#. Until now, the plots are done without including systematics.
I have run the code without implementing systematics on generator level samples in order to get recontrusted level samples.Uppon this moment, the code set a limit on the radius of the top to be less than 0.001 Tev1.
* I have created a github repository to check the code. The link is GitHub
python scripts/plotter.py i topradius_analysis j data/era2016/samples.json signalJson data/era2016/topradius_samples.json lumiSpecs EE:11391,MM:12870,EM:12870
python scripts/plotter.py i topFless/ j data/era2016/samples.json lumiSpecs EE:11391,MM:12870,EM:12870 onlyData only mll o dy_plotter.root
python scripts/runDYRinRout.py in topFless/plots/dy_plotter.root categs 2b out topFless/plots/
python scripts/runAnomalousTopProductionAnalysis4.py i /store/cmst3/group/top/summer2016/TopWidth_era2016_ichep o `pwd`/topradius_analysis q 8nh filter topRadiusFilter=Rt_0.00E+00_kappat__2.50E_01_xqcut_30.0_njetmax_1_qcut_60.0.root,SM.root,h_dphillH
https://github.com/pfs/TopLJets2015/blob/80x_dev/TopAnalysis/scripts/steerTOP16019.sh#L80
python scripts/runAnomalousTopProductionAnalysis4_.py i /store/cmst3/group/top/summer2016/TopWidth_era2016_ichep/ o Top/top_Rt_500E_03_kappat_100E_01/ q 8nh filter topRadiusFilter=Rt_5.00E_03_kappat_1.00E_01_xqcut_30.0_njetmax_1_qcut_60.0.root,SM.root,h_dphillH l scripts/specialNtuples.txt
The code above solved the problem for MC files in the specialNtuples.txt file. For the Data ntuples with problems, we have to still work.
Pedro has told me what to do in order to compute the theoretical systemacis. First, he make some corrections about my script to compute the systematic uncerntainties. The last version of that script at current time is the 5th version. The next is the description
Hi Jorge, thanks for the update looking at the script i see you add every single variation in quadrature, but one has to be careful. The variations come in pairs. e.g. btag up followed by btag down. For each pair you need to evaluate whether the change in the bin contents is going upwards or downwards and add it in quadrature to the corresponding histogram of upward/downward variations. Once all the pairs of systs have been looped over there is a second histogram with the theory uncertainties (QCD scale variations, top pT, PDFs). These ones are more cumbersome to compute:  the 6 QCD scale variations corresponding to different variations of the factorization/renormalization scale must be used to find the envelope (max./min. variations at each bin)  top pT is done as for the experimental variations (check binbybin where is the variation going to happen)  PDFs these are 100 variations which need to be considered and the RMS at each bin is to be used as the uncertainty Once the 3 above are computed separately they can be added in quadrature to the experimental ones. Unfortunately today will be hard for me to meet and then I'll be travelling to Portugal, but still with internet connection throughout holidays, so we can at least exchange mails cheers, Pedro
The following is the web page of an example of how to apply theoretical systematics using weights.
https://github.com/pfs/TopLJets2015/blob/80x_dev/TopAnalysis/scripts/runTopWidthAnalysis.py#L335L343
1. The rivet code to compute the angle between the bbbar and l+l in the rest frame of the ttbar system.
const FourMomentum p4_3 = 2*leptons[0].momentum()+bjets[0].momentum()+2*leptons[1].momentum()+ bjets[1].momentum(); LorentzTransform transform3(p4_3.boostVector()); const FourMomentum lepton1_tt = transform3.transform(leptons[0]); const FourMomentum lepton2_tt = transform3.transform(leptons[1]); const FourMomentum bjet1_tt = transform3.transform(bjets[0]); const FourMomentum bjet2_tt = transform3.transform(bjets[1]); histos["dphill_tt"] > fill(deltaPhi(lepton1_tt,lepton2_tt),weight); histos["dphibb_tt"] > fill(deltaPhi(bjet1_tt,bjet2_tt),weight); dphill_tt_=deltaPhi(lepton1_tt,lepton2_tt); dphibb_tt_=deltaPhi(bjet1_tt,bjet2_tt);
2. Another useful piece of code
{ double totE; unsigned int pixel;// < !!!! TCanvas *c1= new TCanvas ("c1","c1",800,800); gPad>Divide(0,2); TH1F *h= new TH1F("h","h",1000,0,40); TH1F *h1= new TH1F("h1","h1",1000,0,600); TFile *myfile= TFile::Open("test4pixels.root"); TTree *tree= (TTree*)myfile>Get("tree"); tree>SetBranchAddress("pixel",&pixel); tree>SetBranchAddress("totE",&totE); for (int i=0; i<tree>GetEntries(); i++) { tree>GetEntry(i); h>Fill(pixel); h1>Fill(totE); } h>Draw(); }
</verbatim>