void Trans_mass() { TCanvas *c1 = new TCanvas("c1","transverse mass",800,600); c1->Divide(1,1); TFile *F = new TFile("May26_2.root"); TTree *AnaTree1 = (TTree*)F->Get("demo/AnaTree"); TH1F *h1 = new TH1F("h1","transverse mass",500,0,1000); Float_t mt, met_pt, met_phi; TLorentzVector met(0,0,0,0), mu_neutrino(0,0,0,0); TLorentzVector mu_neutrinoPz; //met.SetPtEtaPhiM(ev.met_pt,0,ev.met_phi,0.); //met.SetPz(0.); met.SetE(met.Pt()); //met_pt = ev.met_pt; AnaTree1->SetBranchAddress("mt",&mt); AnaTree1->SetBranchAddress("met_phi",&met_phi); AnaTree1->SetBranchAddress("met_pt",&met_pt); Long64_t nentries = AnaTree1->GetEntries(); for (int i=0;i<233428;i++) { AnaTree1->GetEntry(i); met.SetPtEtaPhiM(met_pt,0,met_phi,0); met.SetPz(0); met.SetE(met.Pt()); met_pt = met_pt[0]; //mu_neutrino.SetPtEtaPhiM( //TLorentzVector mu_neutrinoPz; //mu_neutrinoPz.SetMET(met); //mu_neutrinoPz.SetLepton(mup4_w); float mu_nupz; //=mu_neutrinoPz.Calculate(); float mu_nuE = sqrt( met.Px()*met.Px() + met.Py()*met.Py() + mu_nupz*mu_nupz); mu_neutrino = TLorentzVector(met.Px(), met.Py(), mu_nupz, mu_nuE ); double transverse = (mu_neutrino+met).Mt(); h1->Fill(transverse); } h1->Draw(); }