23 gROOT->LoadMacro(
"$VMCWORKDIR/gconfig/rootlogon.C");
rootlogon();
25 TCanvas *
c1=
new TCanvas(
"c1",
"c1",600,600);
27 PndEventReader evr(fname);
29 if (nevts==0) nevts=evr.GetEntries();
33 TH1F *jpsimass =
new TH1F(
"jpsimass",
"J/psi cands",100,3.1-0.3,3.1+0.3);
34 TH1F *jpsi2mass =
new TH1F(
"jpsi2mass",
"J/psi cands 4C fit",100,3.1-0.3,3.1+0.3);
36 TH1F *ppmass =
new TH1F(
"ppmass",
"pbarp cands",100,3.68598-0.5,3.68598+0.5);
37 TH1F *pp2mass =
new TH1F(
"pp2mass",
"pbarp fitted",100,3.68598-0.5,3.68598+0.5);
41 TCandList pip, pim, ep, em;
44 TPidMassSelector *jpsiMSel =
new TPidMassSelector(
"jpsiSelector" , 3.096 , 0.3);
46 TLorentzVector ini(0,0,6.23164,7.24015);
52 while (evr.GetEvent() && ++i<nevts)
55 cout <<
"evt "<<i<<endl;
57 evr.FillList(pip,
"PionLoosePlus");
58 evr.FillList(pim,
"PionLooseMinus");
59 evr.FillList(ep,
"ElectronLoosePlus");
60 evr.FillList(em,
"ElectronLooseMinus");
64 for (j=0;j<jpsi.GetLength();++j)
66 jpsimass->Fill(jpsi[j].M());
70 pp.Combine(jpsi,pip,pim);
72 for (j=0;j<pp.GetLength();++j)
74 ppmass->Fill(pp[j].M());
79 fitter.FitConserveMasses();
81 TCandidate *ppfit=fitter.FittedCand(pp[j]);
82 pp2mass->Fill(ppfit->M());
84 TCandidate *epfit=fitter.FittedCand(*(pp[j].Daughter(0)->Daughter(0)));
85 TCandidate *emfit=fitter.FittedCand(*(pp[j].Daughter(0)->Daughter(1)));
87 TLorentzVector sum=epfit->P4()+emfit->P4();
89 jpsi2mass->Fill(sum.Mag());
99 c1->cd(1); jpsimass->Draw();
100 c1->cd(2); jpsi2mass->Draw();
101 c1->cd(3); ppmass->Draw();
102 c1->cd(4); pp2mass->Draw();
109 printf(
"RealTime=%f seconds, CpuTime=%f seconds\n",rtime,ctime);
printf("RealTime=%f seconds, CpuTime=%f seconds\n", rtime, ctime)