#include "TFile.h" #include "TH1.h" #include #include #include #include enum Modes {SumBin=0, SelectOneBin,NModes}; std::map decodeproc; std::string procname(int iproc){ std::map::const_iterator i=decodeproc.find(iproc); if (i!=decodeproc.end())return i->second; return "Unknown"; } void dosum(std::string var="Njets_10",bool low=true){ Modes mode=SumBin; std::cout << "======================"<< std::endl; std::cout << "Process " << var << std::endl; bool debug=false; double data[2][2]; double mc[2][2]; double mcproc[8][2][2]; for (int ijet=0;ijet<2;ijet++){ std::ostringstream file; file.str(""); std::string nncut="hi"; if(low) nncut="low"; file << "InputStack160-run16_"<(f->Get(name.str().c_str())); if(!h){ std::cout << "Failed to get "<GetNbinsX(); ibin++){ double presentcontent=h->GetBinContent(ibin); if (mode==SelectOneBin){ if(presentcontent>0){ if(content>0) { std::cout << "Already have content, but got another at " << ibin << " with " << presentcontent << std::endl; }else{ content=presentcontent; } } }else{ content+=presentcontent; } } if(i<8){ sum+=content; mcproc[i][ijet][hilosb]=content; }else{ data[ijet][hilosb]=content; mc[ijet][hilosb]=sum; } bool print=debug; std::string hbstr("HighSB"); if(hilosb==1)hbstr="LowSB"; if(print)std::cout << ijet << " : " << hbstr << " : " ; if(debug)std::cout << procname(i) << ": " ; if(print)std::cout << content << " : " << sum << " : " <Close(); delete f; f=0; } for (int ijet=0;ijet<2;ijet++){ for(int hilosb=0;hilosb<2;hilosb++){ std::string hbstr("HighSB"); if(hilosb==1)hbstr="LowSB"; std::cout << ijet << ": " << hbstr << " : " << data[ijet][hilosb] << " : " << mc[ijet][hilosb] << std::endl; } } for (int ijet=0;ijet<2;ijet++){ std::cout << "Jet="<< ijet<<" : " << data[ijet][0]+data[ijet][1] << " : " << mc[ijet][0]+mc[ijet][1] << " : " << std::endl; } for (int hilosb=0;hilosb<2;hilosb++){ std::string hbstr("HighSB"); if(hilosb==1)hbstr="LowSB"; for(int i=0;i<8;i++){ std::cout < varlist; if(varlisttype==0){ varlist.push_back("DPhiJ1J2_20"); varlist.push_back("DPhiJ1Lep1_21"); varlist.push_back("DPhiJ1Lep2_22"); varlist.push_back("DRJ1J2_23"); varlist.push_back("DRJ1Lep1_24"); varlist.push_back("DRJ1Lep2_25"); varlist.push_back("Ht_0"); varlist.push_back("LRHWW_1"); varlist.push_back("LRWW_2"); varlist.push_back("LRWg_3"); varlist.push_back("LRWj_4"); varlist.push_back("LRZZ_5"); varlist.push_back("MetDelPhi_7"); varlist.push_back("MetSigLJ_26"); varlist.push_back("MetSig_8"); varlist.push_back("MetSpec_9"); varlist.push_back("Met_6"); varlist.push_back("NVtx_27"); varlist.push_back("Njets_10"); varlist.push_back("SumEtCal_28"); varlist.push_back("SumEtJets_12"); varlist.push_back("SumEtUE_29"); varlist.push_back("SumEt_11"); varlist.push_back("addEt_13"); varlist.push_back("dPhiLeptons_14"); varlist.push_back("dRLeptons_15"); varlist.push_back("dimass_16"); varlist.push_back("jet1_Et_17"); varlist.push_back("lep1_E_18"); varlist.push_back("lep2_E_19"); }else{ varlist.push_back("Ht_0"); varlist.push_back("LRHWW_1"); varlist.push_back("LRWW_2"); varlist.push_back("LRWg_3"); varlist.push_back("LRWj_4"); varlist.push_back("LRZZ_5"); varlist.push_back("MetDelPhi_7"); varlist.push_back("MetSig_8"); varlist.push_back("MetSpec_9"); varlist.push_back("Met_6"); varlist.push_back("Njets_10"); varlist.push_back("SumEtJets_12"); varlist.push_back("SumEt_11"); varlist.push_back("addEt_13"); varlist.push_back("dPhiLeptons_14"); varlist.push_back("dRLeptons_15"); varlist.push_back("dimass_16"); varlist.push_back("jet1_Et_17"); varlist.push_back("lep1_E_18"); varlist.push_back("lep2_E_19"); } decodeproc[0]="WW"; decodeproc[1]="WZ"; decodeproc[2]="ZZ"; decodeproc[3]="Top"; decodeproc[4]="DY"; decodeproc[5]="Wg"; decodeproc[6]="Wj"; decodeproc[7]="H"; decodeproc[8]="Data"; for (std::vector::const_iterator vli=varlist.begin(); vli!=varlist.end();vli++) dosum(*vli,low); }