static JSC::JSValue handleInitMessageEvent(JSMessageEvent* jsEvent, JSC::ExecState& state) { const String& typeArg = state.argument(0).toString(&state)->value(&state); bool canBubbleArg = state.argument(1).toBoolean(&state); bool cancelableArg = state.argument(2).toBoolean(&state); const String originArg = valueToUSVString(&state, state.argument(4)); const String lastEventIdArg = state.argument(5).toString(&state)->value(&state); DOMWindow* sourceArg = JSDOMWindow::toWrapped(state, state.argument(6)); std::unique_ptr<MessagePortArray> messagePorts; std::unique_ptr<ArrayBufferArray> arrayBuffers; if (!state.argument(7).isUndefinedOrNull()) { messagePorts = std::make_unique<MessagePortArray>(); arrayBuffers = std::make_unique<ArrayBufferArray>(); fillMessagePortArray(state, state.argument(7), *messagePorts, *arrayBuffers); if (state.hadException()) return jsUndefined(); } Deprecated::ScriptValue dataArg(state.vm(), state.argument(3)); if (state.hadException()) return jsUndefined(); MessageEvent& event = jsEvent->wrapped(); event.initMessageEvent(typeArg, canBubbleArg, cancelableArg, dataArg, originArg, lastEventIdArg, sourceArg, WTFMove(messagePorts)); jsEvent->m_data.set(state.vm(), jsEvent, dataArg.jsValue()); return jsUndefined(); }
int main(int argc, char** argv) { try { TCLAP::CmdLine cmd("reduce Zprime dataset", ' ', "0.1"); TCLAP::ValueArg<std::string> inputListArg("", "input-list", "A text file containing a list of input files", true, "", "string"); TCLAP::ValueArg<std::string> inputFileArg("i", "input-file", "The input file", true, "", "string"); cmd.xorAdd(inputListArg, inputFileArg); TCLAP::ValueArg<std::string> outputFileArg("o", "output-file", "output file", true, "", "string", cmd); TCLAP::SwitchArg dataArg("", "data", "Is this data?", false); TCLAP::SwitchArg mcArg("", "mc", "Is this mc?", false); cmd.xorAdd(dataArg, mcArg); TCLAP::ValueArg<std::string> typeArg("", "type", "current inputfile type (semie or semimu)", true, "", "string", cmd); TCLAP::ValueArg<std::string> pileupArg("", "pileup", "PU profile used for MC production", false, "S10", "string", cmd); TCLAP::ValueArg<int> maxEntriesArg("n", "", "Maximal number of entries to process", false, -1, "int", cmd); TCLAP::ValueArg<double> generatorWeightArg("", "weight", "MC generator weight", false, 1., "double", cmd); TCLAP::ValueArg<std::string> pdfSystArg("", "pdf-syst", "PDF systematic to compute", false, "nominal", "string", cmd); TCLAP::ValueArg<std::string> jecSystArg("", "jec-syst", "Computing trigger weight for this JEC up / down", false, "nominal", "string", cmd); TCLAP::ValueArg<std::string> triggerSystArg("", "trigger-syst", "Computing trigger weight systematic", false, "nominal", "string", cmd); TCLAP::ValueArg<std::string> pileupSystArg("", "pileup-syst", "PU profile to use for pileup reweigthing", false, "nominal", "string", cmd); TCLAP::ValueArg<std::string> btagSystArg("", "btag-syst", "Compute btag weight systematic", false, "nominal", "string", cmd); TCLAP::ValueArg<std::string> leptonSystArg("", "lepton-syst", "Compute lepton weight systematic", false, "nominal", "string", cmd); TCLAP::SwitchArg skimArg("", "skim", "Run over a skimmed file", cmd, false); TCLAP::SwitchArg chi2Arg("", "chi2", "Use chi2 sorting algorithm", false); TCLAP::SwitchArg mvaArg("", "mva", "Use MVA instead of chi2", false); TCLAP::SwitchArg kfArg("", "kf", "Use KF instead of chi2", false); TCLAP::SwitchArg hybridArg("", "hybrid", "Use hybrid method for sorting algorithm", false); std::vector<TCLAP::Arg*> xorlist; xorlist.push_back(&chi2Arg); xorlist.push_back(&mvaArg); xorlist.push_back(&kfArg); xorlist.push_back(&hybridArg); cmd.xorAdd( xorlist ); cmd.parse(argc, argv); std::string p = pileupArg.getValue(); std::transform(p.begin(), p.end(), p.begin(), ::tolower); if (p == "s6") puProfile = PUProfile::S6; else if (p == "s7") puProfile = PUProfile::S7; else if (p == "s10") puProfile = PUProfile::S10; std::string triggerSyst = triggerSystArg.getValue(); std::transform(triggerSyst.begin(), triggerSyst.end(), triggerSyst.begin(), ::tolower); if (triggerSyst != "nominal" && triggerSyst != "up" && triggerSyst != "down") { std::cerr << "--trigger-syst can only be 'nominal', 'up' or 'down'" << std::endl; exit(1); } std::string jecSyst = jecSystArg.getValue(); std::transform(jecSyst.begin(), jecSyst.end(), jecSyst.begin(), ::tolower); if (jecSyst != "nominal" && jecSyst != "up" && jecSyst != "down") { std::cerr << "--jec-syst can only be 'nominal', 'up' or 'down'" << std::endl; exit(1); } std::string puSyst = pileupSystArg.getValue(); std::transform(puSyst.begin(), puSyst.end(), puSyst.begin(), ::tolower); if (puSyst != "nominal" && puSyst != "up" && puSyst != "down") { std::cerr << "--pilup-syst can only be 'nominal', 'up' or 'down'" << std::endl; exit(1); } std::string pdfSyst = pdfSystArg.getValue(); std::transform(pdfSyst.begin(), pdfSyst.end(), pdfSyst.begin(), ::tolower); if (pdfSyst != "nominal" && pdfSyst != "up" && pdfSyst != "down") { std::cerr << "--pdf-syst can only be 'nominal', 'up' or 'down'" << std::endl; exit(1); } std::string leptonSyst = leptonSystArg.getValue(); std::transform(leptonSyst.begin(), leptonSyst.end(), leptonSyst.begin(), ::tolower); if (leptonSyst != "nominal" && leptonSyst != "up" && leptonSyst != "down") { std::cerr << "--lepton-syst can only be 'nominal', 'up' or 'down'" << std::endl; exit(1); } std::string btagSyst = btagSystArg.getValue(); std::transform(btagSyst.begin(), btagSyst.end(), btagSyst.begin(), ::tolower); if (btagSyst != "nominal" && btagSyst != "up" && btagSyst != "down") { std::cerr << "--btag-syst can only be 'nominal', 'up' or 'down'" << std::endl; exit(1); } bool isData = dataArg.isSet(); std::vector<std::string> inputFiles; if (inputFileArg.isSet()) { inputFiles.push_back(inputFileArg.getValue()); } else { loadInputFiles(inputListArg.getValue(), inputFiles); } reduce(inputFiles, outputFileArg.getValue(), isData, typeArg.getValue(), maxEntriesArg.getValue(), generatorWeightArg.getValue(), puSyst, pdfSyst, jecSyst, triggerSyst, leptonSyst, btagSyst, mvaArg.getValue(), chi2Arg.getValue(), kfArg.getValue(), hybridArg.getValue(), skimArg.getValue()); } catch (TCLAP::ArgException& e) { std::cout << e.what() << std::endl; } }