File indexing completed on 2024-04-06 12:33:12
0001
0002 #include <iostream>
0003 #include <string>
0004 #include "TFile.h"
0005 #include "THashList.h"
0006 #include "TH1.h"
0007 #include "TKey.h"
0008 #include "TClass.h"
0009 #include "TSystem.h"
0010
0011 int makeCompositeEff( TString fname, TString assocName )
0012 {
0013 int a = makeValidTrackEff(fname,assocName);
0014 return a;
0015 }
0016
0017 int makeValidTrackEff( TString fname, TString assocName)
0018 {
0019
0020 TFile* source = TFile::Open( fname , "UPDATE");
0021 if( source==0 ){
0022 return 1;
0023 }
0024
0025 bool glbDir = source->cd("DQMData/Track/cutsGLB_"+assocName);
0026 if(!glbDir) return -1;
0027
0028 TH1F *glbSimRec_eta, *glbSimRec_pt, *glbreco2sim_eta, *glbreco_eta;
0029 TH1F *glbeffic, *glbeffic_pt, *glbfakerate;
0030 gDirectory->GetObject("num_assoc(simToReco)_eta",glbSimRec_eta);
0031 gDirectory->GetObject("num_assoc(simToReco)_pT",glbSimRec_pt);
0032
0033
0034
0035
0036
0037
0038 bool staDir = source->cd("DQMData/Track/cutsSTA_"+assocName);
0039 if(!staDir) return -1;
0040
0041
0042 TH1F *staSimRec_eta, *staSimRec_pt, *stareco2sim_eta, *stareco_eta;
0043 TH1F *staeffic, *staeffic_pt, *stafakerate;
0044 gDirectory->GetObject("num_assoc(simToReco)_eta",staSimRec_eta);
0045 gDirectory->GetObject("num_assoc(simToReco)_pT",staSimRec_pt);
0046
0047
0048
0049
0050
0051
0052 bool seedDir = source->cd("DQMData/Track/muonSeedTrack_"+assocName);
0053 if(!seedDir) return -1;
0054
0055 TH1F *seedSimRec_eta, *seedSimRec_pt, *seedreco2sim_eta, *seedreco_eta;
0056 TH1F *seedeffic, *seedeffic_pt, *seedfakerate;
0057 gDirectory->GetObject("num_assoc(simToReco)_eta",seedSimRec_eta);
0058 gDirectory->GetObject("num_assoc(simToReco)_pT",seedSimRec_pt);
0059
0060
0061
0062
0063
0064
0065 source->cd("DQMData/Track");
0066
0067 TString effPath("eff_"+assocName);
0068
0069 TDirectory* effDir = gDirectory->mkdir(effPath.Data());
0070
0071 effDir->cd();
0072
0073 TGraphAsymmErrors * glbStaEff = new TGraphAsymmErrors(glbSimRec_eta,staSimRec_eta);
0074 TGraphAsymmErrors * glbSeedEff = new TGraphAsymmErrors(glbSimRec_eta,seedSimRec_eta);
0075 TGraphAsymmErrors * staSeedEff = new TGraphAsymmErrors(staSimRec_eta,seedSimRec_eta);
0076
0077 TGraphAsymmErrors * glbStaEff_pt = new TGraphAsymmErrors(glbSimRec_pt,staSimRec_pt);
0078 TGraphAsymmErrors * glbSeedEff_pt = new TGraphAsymmErrors(glbSimRec_pt,seedSimRec_pt);
0079 TGraphAsymmErrors * staSeedEff_pt = new TGraphAsymmErrors(staSimRec_pt,seedSimRec_pt);
0080
0081 glbStaEff->SetNameTitle("glbStaEff_eta","Global-Standalone Efficiency vs #eta");
0082 glbSeedEff->SetNameTitle("glbSeedEff_eta","Global-Seed Efficiency vs #eta");
0083 staSeedEff->SetNameTitle("staSeedEff_eta","Standalone-Seed Efficiency vs #eta");
0084 glbStaEff_pt->SetNameTitle("glbStaEff_pt","Global-Standalone Efficiency vs #eta");
0085 glbSeedEff_pt->SetNameTitle("glbSeedEff_pt","Global-Seed Efficiency vs #eta");
0086 staSeedEff_pt->SetNameTitle("staSeedEff_pt","Standalone-Seed Efficiency vs #eta");
0087
0088 glbStaEff->Write("",TObject::kOverwrite);
0089 glbSeedEff->Write("",TObject::kOverwrite);
0090 staSeedEff->Write("",TObject::kOverwrite);
0091 glbStaEff_pt->Write("",TObject::kOverwrite);
0092 glbSeedEff_pt->Write("",TObject::kOverwrite);
0093 staSeedEff_pt->Write("",TObject::kOverwrite);
0094
0095
0096
0097
0098
0099 return 0;
0100 }