void dalitzplot(TString input=""){ gStyle->SetOptStat(0); TLorentzVector * plamFit = new TLorentzVector(); TLorentzVector * pKFit = new TLorentzVector(); TLorentzVector * pXiFit = new TLorentzVector(); TLorentzVector * plamData = new TLorentzVector(); TLorentzVector * pKData = new TLorentzVector(); TLorentzVector * pXiData = new TLorentzVector(); TLorentzVector lamkFit, llamFit, lkFit, lXiFit, lXiKFit; TLorentzVector lamkData, llamData, lkData, lXiData, lXiKData; TFile * inFile = new TFile(input, "READ"); TTree * fit = (TTree*) inFile->Get("_fittedFourvecs"); fit->SetBranchAddress("Lambda", &plamFit); fit->SetBranchAddress("K-",&pKFit); fit->SetBranchAddress("Xibar+", &pXiFit); TLeaf * w = fit->GetLeaf("weight"); TTree * Data = (TTree*) inFile->Get("_dataFourvecs"); Data->SetBranchAddress("Lambda", &plamData); Data->SetBranchAddress("K-",&pKData); Data->SetBranchAddress("Xibar+", &pXiData); int nevts = fit->GetEntriesFast(); TH2D * hFit = new TH2D("hFit","#bar{#Xi}^{+} #Lambda K^{-} Fit ", 50,2.5,3.2,50,3.2,4.1); TH2D * hData = new TH2D("hData","#bar{#Xi}^{+} #Lambda K^{-} Data ", 50,2.5,3.2,50,3.2,4.1); for (int i=0; iGetEntry(i); Data->GetEntry(i); lkFit.SetXYZT(pKFit->X(), pKFit->Y(), pKFit->Z(), pKFit->E()); llamFit.SetXYZT(plamFit->X(), plamFit->Y(), plamFit->Z(), plamFit->E()); lXiFit.SetXYZT(pXiFit->X(), pXiFit->Y(), pXiFit->Z(), pXiFit->E()); double weight=w->GetValue(0); lamkFit = lkFit + llamFit; lXiKFit = lkFit + lXiFit; hFit->Fill(lamkFit.M2(), lXiKFit.M2(), weight); lkData.SetXYZT(pKData->X(), pKData->Y(), pKData->Z(), pKData->E()); llamData.SetXYZT(plamData->X(), plamData->Y(), plamData->Z(), plamData->E()); lXiData.SetXYZT(pXiData->X(), pXiData->Y(), pXiData->Z(), pXiData->E()); lamkData = lkData + llamData; lXiKData = lkData + lXiData; hData->Fill(lamkData.M2(), lXiKData.M2(), weight); } TCanvas * c = new TCanvas("c", "", 0,0,1500,1000); c->Divide(2,1); c->cd(1); hData->GetZaxis()->SetRangeUser(0,60); hData->Draw("COLZ"); c->cd(2); hFit->Draw("COLZ"); c->Print("Dalitzplots.pdf"); c->Print("Dalitzplots.png"); c->Print("Dalitzplots.root"); }