BOSS 8.0.0
BESIII Offline Software System
Loading...
Searching...
No Matches
aug14_track_eff_ptmom_count_barrel.cxx
Go to the documentation of this file.
1#include "TCanvas.h"
2#include "TCut.h"
3#include "TFile.h"
4#include "TGraph.h"
5#include "TGraphErrors.h"
6#include "TH1.h"
7#include "TString.h"
8#include "TText.h"
9#include "TTree.h"
10#include "cut_pipijpsi.h"
11#include <iostream>
12
14 "invjpsi>3.0 && invjpsi<3.2 && pipidang<0.98 && cmslepm<1.7 && cmslepp<1.7 && "
15 "cmslepm>1.4 && cmslepp>1.4 && mompionm<0.5 && mompionp<0.5 && Npi0<1 && maxene<0.3 && "
16 "epratio<0.9 && (((eveflag==1||eveflag==6) && missmass<0.25) || eveflag==4)";
17TCut m_cut_four_yes = "invjpsi>3.0 && invjpsi<3.2 && pipidang<0.98 && cmslepm<1.7 && "
18 "cmslepp<1.7 && cmslepm>1.4 && cmslepp>1.4 && mompionm<0.5 && "
19 "mompionp<0.5 && Npi0<1 && maxene<0.3 && epratio<0.9 && eveflag==4";
20
21TCut m_cut_three_no = "invjpsi>3.0 && invjpsi<3.2 && pipidang<0.98 && cmslepm<1.7 && "
22 "cmslepp<1.7 && cmslepm>1.4 && cmslepp>1.4 && mompionm<0.5 && "
23 "mompionp<0.5 && epratio<1.0 && (eveflag==1||eveflag==6 || eveflag==4)";
24TCut m_cut_four_no = "invjpsi>3.0 && invjpsi<3.2 && pipidang<0.98 && cmslepm<1.7 && "
25 "cmslepp<1.7 && cmslepm>1.4 && cmslepp>1.4 && mompionm<0.5 && "
26 "mompionp<0.5 && epratio<1.0 && eveflag==4";
27
28void f_eff( TTree* m_tree, TCut& cut_all, TCut& cut_four, Double_t* m_eff, Double_t* m_err,
29 Double_t* m_xcen, Double_t* m_xerr ) {
30 TH1F* hpionm = new TH1F( "hpionm", "hpionm", 7, 0.05, 0.4 );
31 TH1F* hfourm = new TH1F( "hfourm", "hfourm", 7, 0.05, 0.4 );
32 m_tree->Draw( "tppionratiom*mompionm>>hpionm", cut_all + "fabs(costhe[1])<0.7" );
33 m_tree->Draw( "tppionratiom*mompionm>>hfourm", cut_four + "fabs(costhe[1])<0.7" );
34
35 for ( Int_t i = 1; i < 8; i++ )
36 {
37 m_eff[i - 1] = hpionm->GetBinContent( i )
38 ? hfourm->GetBinContent( i ) / hpionm->GetBinContent( i )
39 : 0;
40 m_err[i - 1] = m_eff[i - 1] * ( hpionm->GetBinContent( i ) )
41 ? sqrt( ( m_eff[i - 1] ) * ( 1 - m_eff[i - 1] ) /
42 ( ( hpionm->GetBinContent( i ) ) ) )
43 : 0;
44 m_xcen[i - 1] = hfourm->GetBinCenter( i );
45 m_xerr[i - 1] = hfourm->GetBinWidth( i ) / 2;
46 cout << "pt mom: " << 0.05 + ( i - 1 ) * ( 0.4 - 0.05 ) / 7 << " eff: " << m_eff[i - 1]
47 << " err: " << m_err[i - 1] << endl;
48 }
49}
50
51// void aug14_track_eff_ptmom_count_barrel(TString
52// file_fir_name="../../651_psip_pipijpsi_data_check.root", TString
53// file_sec_name="../../651_psip_pipijpsi_dst_uu.root", TCut m_cut_run="", TCut m_cut_run="",
54// TString tree_name="infmom", Int_t m_bins=7){
56 TString file_fir_name = "../../651_pipijpsi_inclusive.root",
57 TString file_sec_name = "../../651_pipijpsi_inclusive.root", TCut m_cut_run = "",
58 TCut m_cut_run = "", TString tree_name = "infmom", Int_t m_bins = 7 ) {
59
60 gROOT->SetStyle( "BES" );
61 TFile* m_file = new TFile( file_fir_name );
62 TTree* m_tree = (TTree*)m_file->Get( tree_name );
63
64 Double_t m_data_eff[7], m_data_err[7], m_mc_eff[7], m_mc_err[7];
65 Double_t m_xcen[7], m_xerr[7];
66 f_eff( m_tree, m_cut_three_yes, m_cut_four_yes, m_data_eff, m_data_err, m_xcen, m_xerr );
67
68 TFile* m_file2 = new TFile( file_sec_name );
69 TTree* m_tree2 = (TTree*)m_file2->Get( tree_name );
70 f_eff( m_tree2, m_cut_three_no, m_cut_four_no, m_mc_eff, m_mc_err, m_xcen, m_xerr );
71
72 // create the TGraphErrors and draw it
73 TCanvas* c1 = new TCanvas( "c1", "c1", 10, 10, 800, 643 );
74 TGraphErrors* gr_data = new TGraphErrors( m_bins, m_xcen, m_data_eff, m_xerr, m_data_err );
75 gr_data->SetTitle( "Tracking effciency of #pi^{-}" );
76 gr_data->GetXaxis()->SetTitle( "transverse momentum (GeV)" );
77 gr_data->GetYaxis()->SetTitle( "efficiency" );
78 gr_data->GetYaxis()->SetRangeUser( 0.65, 1.0 );
79 gr_data->SetMarkerColor( 2 );
80 gr_data->SetMarkerStyle( 20 );
81
82 TGraphErrors* gr_mc = new TGraphErrors( m_bins, m_xcen, m_mc_eff, m_xerr, m_mc_err );
83 gr_mc->SetMarkerColor( 4 );
84 gr_mc->SetMarkerStyle( 21 );
85 gr_mc->GetXaxis()->SetTitle( "transverse momentum (GeV)" );
86 gr_mc->GetYaxis()->SetTitle( "efficiency" );
87 gr_data->Draw( "AP" );
88 gr_mc->Draw( "P" );
89 c1->Update();
90
91 TText m_text;
92 m_text.SetTextSize( 0.08 );
93 m_text.SetTextColor( 2 );
94 m_text.DrawTextNDC( 0.5, 0.4, "bg 2.4%" );
95
96 m_text.SetTextColor( 4 );
97 m_text.DrawTextNDC( 0.5, 0.3, "bg 12%" );
98
99 m_text.SetTextColor( 1 );
100 m_text.DrawTextNDC( 0.5, 0.2, "651, Barrel" );
101 m_text.DrawTextNDC( 0.5, 0.5, "Inclusive MC" );
102
103 c1->Print( "figs/nov30_track_eff_ptmom_count_barrel_651_bg_study.eps" );
104 c1->Print( "figs/nov30_track_eff_ptmom_count_barrel_651_bg_study.pdf" );
105}
void f_eff(TTree *m_tree, TCut &cut_all, TCut &cut_four, Double_t *m_eff, Double_t *m_err, Double_t *m_xcen, Double_t *m_xerr)
void aug14_track_eff_ptmom_count_barrel(TString file_fir_name="../../651_pipijpsi_inclusive.root", TString file_sec_name="../../651_pipijpsi_inclusive.root", TCut m_cut_run="", TCut m_cut_run="", TString tree_name="infmom", Int_t m_bins=7)