ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/cbrown/AnalysisFramework/miscFR/trigEff.C
Revision: 1.1
Committed: Fri Jun 24 07:44:49 2011 UTC (13 years, 10 months ago) by fronga
Content type: text/plain
Branch: MAIN
CVS Tags: cbaf_4_98ifb_paper, cbaf_4p7ifb, Honeypot, cbaf_2p1ifb, HEAD
Log Message:
First commit of various scripts used in the first 2011 analyses.

File Contents

# User Rev Content
1 fronga 1.1 //
2     // Attempt to get trigger efficiencies from HT trigger
3     //
4    
5     void getEffErr( Long_t& npass, Long_t& ntot, Float_t& eff, Float_t& err ) {
6    
7     eff = npass/Float_t(ntot);
8     err = sqrt(eff*(1.0-eff)/Float_t(ntot));
9    
10     }
11    
12     int trigEff2( float pt1=20., float pt2=20. ) {
13    
14     // HT file
15     TFile* f = TFile::Open("dcap://t3se01.psi.ch:22125/pnfs/psi.ch/cms/trivcat/store/user/fronga/data/HT-Run2011A-PromptReco-v2_AOD.root");
16     TTree* tree = (TTree*)f->Get("events");
17    
18     Long_t npass = 0, ntot = 0;
19     Float_t eff, err;
20     char ptcut[256]; sprintf(ptcut,"pt1>%f&&pt2>%f",pt1,pt2);
21     TCut kPt(ptcut);
22     TCut kbase(kPt&&"abs(mll-91.2)<20&&pfJetGoodNum>1&&eta1<2.4&&eta2<2.4");
23     TCut kOF("id1!=id2");
24     TCut kSF("id1==id2");
25     TCut kMu("id1==1");
26     TCut kEl("id1==0");
27    
28     std::cout << "Cut: " << kbase.GetTitle() << std::endl;
29     ntot = tree->Draw("pt1",kbase&&kOF,"goff");
30     npass = tree->Draw("pt1",kbase&&kOF&&"passed_triggers","goff");
31     getEffErr(npass,ntot,eff,err);
32     std::cout << "EM: " << npass << "/" << ntot;
33     std::cout << " = " << eff*100. << "+-" << err*100. << std::endl;
34    
35     ntot = tree->Draw("pt1",kbase&&kSF&&kMu,"goff");
36     npass = tree->Draw("pt1",kbase&&kSF&&kMu&&"passed_triggers","goff");
37     getEffErr(npass,ntot,eff,err);
38     std::cout << "MM: " << npass << "/" << ntot;
39     std::cout << " = " << eff*100. << "+-" << err*100. << std::endl;
40    
41     ntot = tree->Draw("pt1",kbase&&kSF&&kEl,"goff");
42     npass = tree->Draw("pt1",kbase&&kSF&&kEl&&"passed_triggers","goff");
43     getEffErr(npass,ntot,eff,err);
44     std::cout << "EE: " << npass << "/" << ntot;
45     std::cout << " = " << eff*100. << "+-" << err*100. << std::endl;
46    
47     return 0;
48    
49     }
50     int trigEff( float pt1=20., float pt2=20. ) {
51    
52     // HT files
53     TFile* fEM = TFile::Open("dcap://t3se01.psi.ch:22125/pnfs/psi.ch/cms/trivcat/store/user/fronga/data/HT-Run2011A-PromptReco-v2_AOD_emTrig.root");
54     TFile* fEE = TFile::Open("dcap://t3se01.psi.ch:22125/pnfs/psi.ch/cms/trivcat/store/user/fronga/data/HT-Run2011A-PromptReco-v2_AOD_elTrig.root");
55     TFile* fMM = TFile::Open("dcap://t3se01.psi.ch:22125/pnfs/psi.ch/cms/trivcat/store/user/fronga/data/HT-Run2011A-PromptReco-v2_AOD_muTrig.root");
56    
57     Long_t npass = 0, ntot = 0;
58     Float_t eff, err;
59     char ptcut[256]; sprintf(ptcut,"pt1>%f&&pt2>%f",pt1,pt2);
60     TCut kPt(ptcut);
61     TCut kbase(kPt&&"abs(mll-91.2)<20&&pfJetGoodNum>1&&eta1<2.4&&eta2<2.4");
62     TCut kOF("id1!=id2");
63     TCut kSF("id1==id2");
64     TCut kMu("id1==1");
65     TCut kEl("id1==0");
66    
67     TTree* tree = (TTree*)fEM->Get("events");
68     ntot = tree->Draw("pt1",kbase&&kOF,"goff");
69     npass = tree->Draw("pt1",kbase&&kOF&&"passed_triggers","goff");
70     getEffErr(npass,ntot,eff,err);
71     std::cout << "EM: " << npass << "/" << ntot;
72     std::cout << " = " << eff << "+-" << err << std::endl;
73    
74     TTree* tree = (TTree*)fMM->Get("events");
75     ntot = tree->Draw("pt1",kbase&&kSF&&kMu,"goff");
76     npass = tree->Draw("pt1",kbase&&kSF&&kMu&&"passed_triggers","goff");
77     getEffErr(npass,ntot,eff,err);
78     std::cout << "MM: " << npass << "/" << ntot;
79     std::cout << " = " << eff << "+-" << err << std::endl;
80    
81     TTree* tree = (TTree*)fEE->Get("events");
82     ntot = tree->Draw("pt1",kbase&&kSF&&kEl,"goff");
83     npass = tree->Draw("pt1",kbase&&kSF&&kEl&&"passed_triggers","goff");
84     getEffErr(npass,ntot,eff,err);
85     std::cout << "EE: " << npass << "/" << ntot;
86     std::cout << " = " << eff << "+-" << err << std::endl;
87    
88     return 0;
89    
90     }