/** * @file DalitzplotXi1690.C * @mainpage DalitzplotXi1690.C Analysis macro to create Dalitzplots from simple EvtGen * * @author Jennifer Puetz (jennifer.puetz@fz-juelich.de) * @date 2016 * @brief create dalitzplots * */ #include "TFile.h" #include "TTree.h" #include "TMath.h" #include "TH2.h" #include "TCanvas.h" #include "TLorentzVector.h" enum id{ pbarp = 0, Xi1690 = 1, xi=2, lambda0 = 3, kaon = 4 }; void DalitzplotXi1690_EvtGen(){ //*** Data input TString inputFile ="/home/ikp1/puetz/panda/myscripts/simChain/EvtGen/XiMinus_1690_1500000_events.root"; TFile * data = new TFile(inputFile, "READ"); TString outPath = "/home/ikp1/puetz/panda/myscripts/simChain/EvtGen/"; TFile * out = new TFile(outPath+"Dalitzplots_pbarsys_simpleEvtGen_Xi1690_Xi1690.root", "RECREATE"); TTree * sim = (TTree*) data->Get("ntp"); int nevents = sim->GetEntriesFast(); TH2D * dalitz_Xilk = new TH2D("dalitz_Xilk", "Dalitz plot; m^{2}(#Lambda^{0},K^{-})/GeV^{2}/c^{4}; m^{2}(#bar{#Xi}, K^{-})/GeV^{2}/c^{4}", 150,2.7,3.3,150,3.2,4.1); // TH2D * dalitz_Xilk = new TH2D("dalitz_Xilk", "Dalitz plot; m^{2}(#bar{#Xi}, #Lambda^{0})/GeV^{2}/c^{4}; m^{2}(#Lambda^{0},K^{-})/GeV^{2}/c^{4}",200,5.8,7.3, 200,3.2,3.8); TH1D * massXi = new TH1D("mass", "Mass distribution of #Xi(1820)^{-}; m/GeV/c^{2}; counts", 150, 1.61, 1.94); gStyle->SetOptStat(0); TLorentzVector lXi, lk, lla, lXi1690; TLorentzVector PXiK, PlaK, PXil; for (int n=0; nGetEntry(n); double Eaxi = sim->GetLeaf("E")->GetValue(xi); double Ek = sim->GetLeaf("E")->GetValue(kaon); double Ela = sim->GetLeaf("E")->GetValue(lambda0); double EXi1690 = sim->GetLeaf("E")->GetValue(Xi1690); double Pxaxi = sim->GetLeaf("px")->GetValue(xi); double Pxk = sim->GetLeaf("px")->GetValue(kaon); double Pxla = sim->GetLeaf("px")->GetValue(lambda0); double PxXi1690 = sim->GetLeaf("px")->GetValue(Xi1690); double Pyaxi = sim->GetLeaf("py")->GetValue(xi); double Pyk = sim->GetLeaf("py")->GetValue(kaon); double Pyla = sim->GetLeaf("py")->GetValue(lambda0); double PyXi1690 = sim->GetLeaf("py")->GetValue(Xi1690); double Pzaxi = sim->GetLeaf("pz")->GetValue(xi); double Pzk = sim->GetLeaf("pz")->GetValue(kaon); double Pzla = sim->GetLeaf("pz")->GetValue(lambda0); double PzXi1690 = sim->GetLeaf("pz")->GetValue(Xi1690); lXi.SetPxPyPzE(Pxaxi, Pyaxi, Pzaxi, Eaxi); lk.SetPxPyPzE(Pxk, Pyk, Pzk, Ek); lla.SetPxPyPzE(Pxla, Pyla, Pzla, Ela); lXi1690.SetPxPyPzE(PxXi1690, PyXi1690, PzXi1690, EXi1690); PXiK = lXi + lk; PlaK = lla + lk; PXil = lXi + lla; dalitz_Xilk->Fill(PlaK.M2(),PXiK.M2()); // mass->Fill(lXi1690.M()); // massXi->Fill(lXi.M()); } out->cd(); dalitz_Xilk->Write(); out->Save(); // TCanvas * c_mass = new TCanvas("c_mass", "Mass distribution Xi1690 model", 0,0,1000,900); // c->Divide(2,1); // c->cd(1); // mass->Draw(); // c_mass->Print(outPath+"Massdist_pbarsys_simpleEvtGen_Xi1690_Xi1690.pdf"); // c_mass->Print(outPath+"Massdist_pbarsys_simpleEvtGen_Xi1690_Xi1690.png"); TCanvas * c = new TCanvas("c", "Dalitz plot", 0,0,1500,800); // c->cd(2); // dalitz_Xilk->GetZaxis()->SetRangeUser(0,40); dalitz_Xilk->Draw("COLZ"); //****write histograms c->Print(outPath+"Dalitzplots_pbarsys_simpleEvtGen_Xi1690.pdf"); c->Print(outPath+"Dalitzplots_pbarsys_simpleEvtGen_Xi1690.png"); }