} static const char *yes = "yes"; static const char *no = "no"; static const char *bool_str(vt_bool_t b) { return b == VT_BOOL_TRUE ? yes : no; } static int vt_cmd_sys_fancy_off(const struct vt_handle *vh, __attribute__ ((unused)) const char *str) { struct vt_handle *sysvh = vt_handle_get(); sysvh->vh_opt.fancy = VT_BOOL_FALSE; fprintf(vh->vh_stream, "%s\n", bool_str(sysvh->vh_opt.fancy)); return 0; } static int vt_cmd_sys_fancy_on(const struct vt_handle *vh, __attribute__ ((unused)) const char *str) { struct vt_handle *sysvh = vt_handle_get(); sysvh->vh_opt.fancy = VT_BOOL_TRUE; fprintf(vh->vh_stream, "%s\n", bool_str(sysvh->vh_opt.fancy)); return 0; } static int vt_cmd_sys_fancy(const struct vt_handle *vh, __attribute__ ((unused)) const char *str) {
int main(int argc, char* argv[]) { if( argc != 8 && argc != 7 ) { std::cout << "USAGE: ./drawMinBias [(string)DiJet/Inclusive] [(string)data_dataset] [(string)mc_dataset] [(string)algoType] [(int)pt_thresh] [(string)raw/corr] [(bool)useID=true]" << std::endl; exit(23); } std::string dijet_inclusive( argv[1] ); std::string data_dataset( argv[2] ); std::string mc_dataset( argv[3] ); std::string algoType( argv[4] ); int pt_thresh = atoi( argv[5] ); std::string raw_corr( argv[6] ); Float_t etamax = 3.; bool useID = true; if( argc==8 ) { std::string bool_str( argv[7] ); if( bool_str=="false" ) useID = false; } bool sameEvents = false; //until njets histos have no overflows... or maybe use GetEntries instead of integral? DrawBase* db = new DrawBase("MinBias"); db->set_raw_corr( raw_corr ); db->set_pt_thresh( pt_thresh ); //db->set_etamax( etamax ); db->set_etamax(3.); db->set_pdf_aussi((bool)false); char outputdir_char[200]; sprintf( outputdir_char, "%sPlots_%s_vs_%s_%s_%dGeV%s_eta%d", dijet_inclusive.c_str(), data_dataset.c_str(), mc_dataset.c_str(), algoType.c_str(), pt_thresh, raw_corr.c_str(), (int)(10.*db->get_etamax())); std::string outputdir_str(outputdir_char); if( !useID ) outputdir_str = outputdir_str + "_noID"; db->set_outputdir(outputdir_str); //std::string dataFileName = "MinBias_" + data_dataset + "_" + algoType; char dataFileName[150]; if( useID ) sprintf( dataFileName, "%s_%s_%s_%dGeV%s_eta%d.root", dijet_inclusive.c_str(), data_dataset.c_str(), algoType.c_str(), pt_thresh, raw_corr.c_str(), (int)(10.*db->get_etamax())); //sprintf( dataFileName, "%s_DATA_%s_%s_%dGeV%s_eta%d.root", data_dataset.c_str(), algoType.c_str(), pt_thresh, raw_corr.c_str(), (int)(10.*ETAMAX)); else sprintf( dataFileName, "%s_%s_%s_%dGeV%s_eta%d_noID.root", dijet_inclusive.c_str(), data_dataset.c_str(), algoType.c_str(), pt_thresh, raw_corr.c_str(), (int)(10.*db->get_etamax())); //sprintf( dataFileName, "%s_DATA_%s_%s_%dGeV%s_eta%d_noDeltaPhi.root", data_dataset.c_str(), algoType.c_str(), pt_thresh, raw_corr.c_str(), (int)(10.*ETAMAX)); TFile* dataFile = TFile::Open(dataFileName); std::cout << "Opened data file '" << dataFileName << "'." << std::endl; db->set_dataFile( dataFile ); char mcFileName[150]; //if( mc_dataset=="" ) { // if( useID ) // sprintf( mcFileName, "%s_%s_%s_%dGeV%s_eta%d.root", dijet_inclusive.c_str(), data_dataset.c_str(), algoType.c_str(), pt_thresh, raw_corr.c_str(), (int)(10.*ETAMAX)); // else // sprintf( mcFileName, "%s_%s_%s_%dGeV%s_eta%d_noID.root", dijet_inclusive.c_str(), data_dataset.c_str(), algoType.c_str(), pt_thresh, raw_corr.c_str(), (int)(10.*ETAMAX)); //} else { if( useID ) sprintf( mcFileName, "%s_%s_%s_%dGeV%s_eta%d.root", dijet_inclusive.c_str(), mc_dataset.c_str(), algoType.c_str(), pt_thresh, raw_corr.c_str(), (int)(10.*db->get_etamax())); else sprintf( mcFileName, "%s_%s_%s_%dGeV%s_eta%d_noID.root", dijet_inclusive.c_str(), mc_dataset.c_str(), algoType.c_str(), pt_thresh, raw_corr.c_str(), (int)(10.*db->get_etamax())); //} TFile* mcFile = TFile::Open(mcFileName); std::cout << "Opened mc file '" << mcFileName << "'." << std::endl; db->set_mcFile( mcFile ); if( sameEvents ) { db->set_sameEventNormalization(); } else { db->set_sameInstanceNormalization(); } //TH1F* h1_nJets_data = (TH1F*)dataFile->Get("nJets"); //TH1F* h1_nJets_mc = (TH1F*)mcFile->Get("nJets"); //TH1F* h1_phiJet_data = (TH1F*)dataFile->Get("phiJet"); //TH1F* h1_phiJet_mc = (TH1F*)mcFile->Get("phiJet"); //Float_t scaleFactor = ( sameEvents ) ? h1_nJets_data->Integral()/h1_nJets_mc->Integral() : h1_phiJet_data->Integral()/h1_phiJet_mc->Integral(); bool log = true; if( dijet_inclusive == "DiJet" ) { db->drawHisto( "deltaPhiJet", "",0); db->drawHisto( "asymmJet", ""); db->drawHisto( "diJetMass", "",1, log); } db->drawHisto( "massJet", "",1, log); db->drawHisto( "MoEJet", "",1, log); db->drawHisto( "ptJet", "",1, log); db->drawHisto( "ptCorrJet", "",1, log); db->drawHisto( "ptCorrJet", "barrel",1, log); db->drawHisto( "ptCorrJet", "endcap",1, log); db->drawHisto( "ptCorrJet", "eta1430",1, log); db->drawHisto( "ptCorrJet", "Rch050",1, log); db->drawHisto( "ptCorrJet", "Rch5070",1, log); db->drawHisto( "ptCorrJet", "Rch70100",1, log); db->drawHisto( "phiJet", ""); db->drawHisto( "etaJet", ""); db->drawHisto( "nCandJet", "",log); db->drawHisto( "RchJet", "",1); db->drawHisto( "RchJet", "eta02",1); db->drawHisto( "RchJet", "eta23",1); db->drawHisto( "RchJet", "barrel",1); db->drawHisto( "RchJet", "eta163",1); db->drawHisto( "RchJet", "eta1425",1); db->drawHisto( "RnhJet", "",1, log); db->drawHisto( "RnhJet", "eta02",1, log); db->drawHisto( "RnhJet", "eta23",1, log); db->drawHisto( "RnhJet", "barrel",1, log); db->drawHisto( "RnhJet", "eta163",1, log); db->drawHisto( "RnhJet", "eta1425",1, log); db->drawHisto( "RgammaJet", "",1, log); db->drawHisto( "RgammaJet", "eta02",1, log); db->drawHisto( "RgammaJet", "eta23",1, log); db->drawHisto( "RgammaJet", "barrel",1, log); db->drawHisto( "RgammaJet", "eta163",1, log); db->drawHisto( "RgammaJet", "eta1425",1, log); db->drawHisto( "RgammanhJet", "barrel",1, log); db->drawHisto( "RgammanhJet", "eta163",1, log); db->drawHisto( "RgammanhJet", "eta1425",1, log); db->drawHisto( "EchJet", "",1, log); db->drawHisto( "EchJet", "eta02",1, log); db->drawHisto( "EchJet", "eta23",1, log); db->drawHisto( "EchJet", "barrel",1, log); db->drawHisto( "EchJet", "eta163",1, log); db->drawHisto( "EchJet", "eta1425",1, log); db->drawHisto( "EnhJet", "",1, log); db->drawHisto( "EnhJet", "eta02",1, log); db->drawHisto( "EnhJet", "eta23",1, log); db->drawHisto( "EnhJet", "barrel",1, log); db->drawHisto( "EnhJet", "eta163",1, log); db->drawHisto( "EnhJet", "eta1425",1, log); db->drawHisto( "EgammaJet", "",1, log); db->drawHisto( "EgammaJet", "eta02",1, log); db->drawHisto( "EgammaJet", "eta23",1, log); db->drawHisto( "EgammaJet", "barrel",1, log); db->drawHisto( "EgammaJet", "eta163",1, log); db->drawHisto( "EgammaJet", "eta1425",1, log); db->drawHisto( "EgammanhJet", "barrel",1, log); db->drawHisto( "EgammanhJet", "eta163",1, log); db->drawHisto( "EgammanhJet", "eta1425",1, log); db->drawHisto( "PTchJet", "",1, log); db->drawHisto( "PTgammaJet", "",1, log); db->drawHisto( "PTnhJet", "",1, log); db->drawHisto( "EphotAveJet", "",1, log); db->drawHisto( "NchJet", "",1, log); db->drawHisto( "NchJet", "barrel",1, log); db->drawHisto( "NchJet", "eta163",1, log); db->drawHisto( "NchJet", "eta1425",1, log); db->drawHisto( "NchJet", "eta02",1, log); db->drawHisto( "NchJet", "eta23",1, log); db->drawHisto( "NnhJet", "",1, log); db->drawHisto( "NnhJet", "eta02",1, log); db->drawHisto( "NnhJet", "eta23",1, log); db->drawHisto( "NnhJet", "barrel",1, log); db->drawHisto( "NnhJet", "eta163",1, log); db->drawHisto( "NnhJet", "eta1425",1, log); db->drawHisto( "NgammaJet", "",1, log); db->drawHisto( "NgammaJet", "eta02",1, log); db->drawHisto( "NgammaJet", "eta23",1, log); db->drawHisto( "NgammaJet", "barrel",1, log); db->drawHisto( "NgammaJet", "eta163",1, log); db->drawHisto( "NgammaJet", "eta1425",1, log); db->drawHisto( "NgammanhJet", "barrel",1, log); db->drawHisto( "NgammanhJet", "eta163",1, log); db->drawHisto( "NgammanhJet", "eta1425",1, log); std::string ptVar; if( raw_corr=="raw" ) ptVar = "pt"; else ptVar = "ptCorr"; db->drawProfile( "pt", "eta", 1); db->drawProfile( "ptCorr", "eta", 1); db->drawProfile( "Rch", "eta", 1); db->drawProfile( "Rgamma", "eta", 1); db->drawProfile( "Rnh", "eta", 1); db->drawProfile( "Rgammanh", "eta", 1); db->drawProfile( "Ech", "eta", 1); db->drawProfile( "Egamma", "eta", 1); db->drawProfile( "Enh", "eta", 1); db->drawProfile( "Egammanh", "eta", 1); db->drawProfile( "PTch", "eta", 1); db->drawProfile( "PTgamma", "eta", 1); db->drawProfile( "PTnh", "eta", 1); db->drawProfile( "Nch", "eta", 1); db->drawProfile( "Ngamma", "eta", 1); db->drawProfile( "Nnh", "eta", 1); db->drawProfile( "Ngammanh", "eta", 1); db->drawProfile( "Rch", ptVar, 1); db->drawProfile( "Rgamma", ptVar, 1); db->drawProfile( "Rnh", ptVar, 1); db->drawProfile( "Ech", ptVar, 1); db->drawProfile( "Egamma", ptVar, 1); db->drawProfile( "Enh", ptVar, 1); db->drawProfile( "Nch", ptVar, 1); db->drawProfile( "Ngamma", ptVar, 1); db->drawProfile( "Nnh", ptVar, 1); db->drawProfile( "Egamma", "Ech", 1); db->drawProfile( "Enh", "Ech", 1); db->drawProfile( "Rgamma", "Rch", 1); db->drawProfile( "Rnh", "Rch", 1); db->drawProfile( "Rgamma", "Rnh", 1); //drawH2( dataFile, mcFile, "Rgamma", "Rch", 1); //drawH2( dataFile, mcFile, "Rnh", "Rch", 1); //drawH2( dataFile, mcFile, "Rnh", "Rgamma", 1); db->drawProfile( "Ngamma", "Nch", 1); db->drawProfile( "Nnh", "Nch", 1); // stacks: db->drawStack( "R", "eta", "RECO", (bool)true); db->drawStack( "R", "eta", "RECO", (bool)false); db->drawStack( "R", ptVar, "barrel", "RECO", (bool)true); db->drawStack( "R", ptVar, "barrel", "RECO", (bool)false); db->drawStack( "R", "phi", "barrel", "RECO", (bool)true); db->drawStack( "R", "phi", "barrel", "RECO", (bool)false); db->drawStack( "R", "eta", "GEN", (bool)false); db->drawStack( "R", "pt", "barrel", "GEN", (bool)false); db->drawStack( "R", "phi", "barrel", "GEN", (bool)false); return 0; }
int main(int argc, char ** argv) { ::diagnostics::Logging_Config::init(); if(argc < 2){ usage(); return 1; } ::std::string root_dir(""); ::std::string _namespace(""); ::std::string include_prefix(""); ::std::string formula = (""); bool include_type = false; ::std::string bool_str("false"); ::std::string pos_nfa("Pos_Nfa"); ::std::string neg_nfa("Neg_Nfa"); ::std::string classname(""); while(argc > 1 && argv[1][0] == '-'){ switch(argv[1][1]){ case 'r': root_dir = argv[2]; --argc; ++argv; break; case 'n': _namespace = argv[2]; --argc; ++argv; break; case 'p': include_prefix = argv[2]; --argc; ++argv; break; case 'i': bool_str = argv[2]; --argc; ++argv; break; case 'c': classname = argv[2]; pos_nfa = ""; neg_nfa = ""; pos_nfa = "Pos_" + classname; neg_nfa = "Neg_" + classname; --argc; ++argv; break; case 'f': formula = argv[2]; --argc; ++argv; break; default: usage(); break; } --argc; ++argv; } if(formula == ""){ ::std::cout << "You must specify a formula! Exiting..." << ::std::endl; return 1; } if(bool_str == "true") include_type = true; typedef ::ltl2fsm::Graphviz_Representation Representation_t; typedef ::ltl2fsm::Ltl_To_Nfa_Pair_Module<Representation_t> Ltl_To_Nfa_Pair_Module_t; typedef ::ltl2fsm::Nfa_To_Cpp_Module<Representation_t> Nfa_To_Cpp_Module_t; Ltl_To_Nfa_Pair_Module_t ltl_to_nfa_pair_module; Ltl_To_Nfa_Pair_Module_t::Nfa_Pair_t nfa_pair; Nfa_To_Cpp_Module_t nfa_to_cpp_module; try{ nfa_pair = ltl_to_nfa_pair_module.execute(formula); } catch( ::ltl2fsm::Invalid_Ltl_Syntax const & ils){ ::std::cout << ils.what() << ::std::endl; return 1; } catch( ::ltl2fsm::Fork_Error const & fe ){ ::std::cout << fe.what() << ::std::endl; return 1; } if(root_dir != ""){ ::std::string root_dir_pos_nfa = root_dir + pos_nfa; ::std::ofstream pos_nfa_cpp((root_dir_pos_nfa + ".cpp").c_str()); ::std::ofstream pos_nfa_hpp((root_dir_pos_nfa + ".hpp").c_str()); nfa_to_cpp_module.execute(*nfa_pair.first, pos_nfa_cpp, pos_nfa_hpp, pos_nfa, _namespace, include_prefix, formula, include_type); ::std::string root_dir_neg_nfa = root_dir + neg_nfa; ::std::ofstream neg_nfa_cpp((root_dir_neg_nfa + ".cpp").c_str()); ::std::ofstream neg_nfa_hpp((root_dir_neg_nfa + ".hpp").c_str()); nfa_to_cpp_module.execute(*nfa_pair.second, neg_nfa_cpp, neg_nfa_hpp, neg_nfa, _namespace, include_prefix, ::std::string("!(" + formula + ")"), include_type); } else{ nfa_to_cpp_module.execute(*nfa_pair.first, ::std::cout, ::std::cout, pos_nfa, _namespace, include_prefix, formula, include_type); nfa_to_cpp_module.execute(*nfa_pair.second, ::std::cout, ::std::cout, neg_nfa, _namespace, include_prefix, ::std::string("!(" + formula + ")"), include_type); } return 0; }